Implante seu contrato
Agora que geramos o arquivo binário Wasm a partir do nosso código-fonte e nos conectamos a um nó local, queremos implantar esse contrato em nossa blockchain Lunes.
A implantação de contratos inteligentes na Lunes é um pouco diferente do que em blockchains tradicionais de contratos inteligentes.
Enquanto em outras plataformas é implantado um novo bloco de código-fonte de contrato inteligente toda vez que você envia um contrato, o Substrate opta por otimizar esse comportamento. Por exemplo, o token ERC20 padrão foi implantado milhares de vezes no Ethereum, às vezes apenas com alterações na configuração inicial (por meio da função construtora Solidity). Cada uma dessas instâncias ocupa espaço na blockchain equivalente ao tamanho do código-fonte do contrato, mesmo que nenhum código tenha sido realmente alterado.
No Lunes, o processo de implantação de contrato é dividido em duas etapas:
Inserir o código do seu contrato na blockchain.
Criando uma instância do seu contrato.
Com esse padrão, o código do contrato, como o padrão ERC20, pode ser colocado no blockchain apenas uma vez, mas instanciado várias vezes. Não é necessário fazer o upload contínuo do mesmo código-fonte e desperdiçar espaço no blockchain.
Using the Contracts UI Usando a Contracts UI
1. Enviar Código do Contrato
Aqui iremos enviar o código do contrato e instanciar uma cópia do contrato na blockchain (geralmente é por isso que enviamos o código do contrato em primeiro lugar):
Clique no botão Add New Contract na barra lateral.
Clique no botão Upload New Contract Code na página Add New Contract.
Escolha uma Instantiation account (por exemplo, ALICE).
Dê ao contrato um Name descritivo (por exemplo, Flipper Contract).
Arraste o arquivo
flipper.contract
que contém o pacote Wasm e metadados para a área de arrastar e soltar. Você verá a interface do usuário analisar os metadados e habilitar o botão que o levará para a próxima etapa.Clique no botão Next.
2. Instanciar um Contrato na Blockchain
Os contratos inteligentes existem como uma extensão do sistema de contas na blockchain. Assim, a criação de uma instância desse contrato criará um novo AccountId
, que armazenará qualquer saldo gerenciado pelo contrato inteligente e nos permitirá interagir com o contrato.
Agora uma tela exibe as informações que representam nosso contrato inteligente. Vamos instanciar uma cópia do contrato inteligente:
Aceite as opções padrão para o Deployment Constructor do contrato.
Aceite as opções padrão para o Max Gas Allowed que é de
200000
.Clique em
Next
A transação está agora em fila, revise seus dados e clique em Upload and Instantiate ou volte e modifique suas entradas.
Quando você clicar em Upload and Instantiate, você deverá ver a extrínseca instantiateWithCode
sendo processada e uma série de eventos aparecendo, incluindo a criação de uma nova conta (system.NewAccoun
t) e a instanciação do contrato (contracts.Instantiated
). Você será redirecionado para uma nova página, onde poderá interagir com a instância do contrato recém-criado.
Utilizando cargo-contract
cargo-contract
Os contratos também podem ser implantados através da linha de comando. Com o cargo-contract
, é apenas uma simples sequência de comandos:
Last updated
Was this helpful?