Compilação e implantação de contratos inteligentes em ambiente de nó

Ganache selecionado para ambiente de teste

npm install ganache-cli

Certifique-se de que web3 e solcjs foram instalados no ambiente

Consulte a postagem do blog para a instalação do web3 e solc.

Instalação web3 do ambiente CentOS 7 e criação de objeto_m0_47233175 blog-blog CSDN icon-default.png?t=LA92https://blog.csdn.net/m0_47233175/article/details/121960931

Configuração e instalação npm e solc do ambiente CentOS 7_m0_47233175 blog-blog CSDN icon-default.png?t=LA92https://blog.csdn.net/m0_47233175/article/details/121959778

1. No nó, use solc para compilar contratos inteligentes

1. Instancie o objeto web3

var web = require('we3')
var web3 = new web(new web.providers.HttpProvider("HTTP://LOCALHOST:8545"))

2. Introduzir solc

var solc = require('solc')

3. Use o sistema de arquivos do nó para ler contratos inteligentes de forma síncrona

var sourceCode = fs.readFileSync('Voting.sol').toString()

Nota: O contrato inteligente aqui toma Voting.sol como exemplo. O contrato inteligente precisa ser armazenado no mesmo diretório do nó que está aberto neste momento.

4. Use solc para compilar o contrato inteligente (o resultado final compilado é um objeto js)

var compiledCode = solc.compile(sourceCode)

Um erro pode ser relatado neste momento. Para soluções, consulte a postagem do blog a seguir. No ambiente de nó, usando solc para compilar relatórios de contratos inteligentes, blog de erros_m0_47233175 - blog CSDN icon-default.png?t=LA92https://blog.csdn.net/m0_47233175/article /detalhes/121999193

2. Implante contratos inteligentes

1. Retire abi e bin em compiladoCode (converta abi para o formato JSON)

var abi = JSON.parse(compiledCode.contracts[':Voting'].interface)
var bin = compiledCode.contracts[':Voting'].bytecode

2. Crie um objeto de contrato

var VotingContract = web3.eth.contract(abi)

3. Crie objetos de transação para contratos de implantação

var depolyTxObj = {data:bin,from:web3.eth.accounts[0],gas:30000}

4. Crie uma transação que implemente o contrato

var contractInstance = VotingContract.new([parameter],depolyTxObj)

Obs.: O parâmetro é preenchido com os parâmetros exigidos pela construtora no contrato implantado.

Os seguintes erros podem ocorrer

Tente alterar o valor do gás na etapa 7. O teste do blogueiro foi alterado para 600.000 e aprovado.

Acho que você gosta

Origin blog.csdn.net/m0_47233175/article/details/121999413
Recomendado
Clasificación