Este guia irá mostrar passo a passo como implantar um contrato inteligente Solidity na nova Cadeia Qan. Observe que esta cadeia é muito nova e, portanto, este guia não é de forma alguma exaustivo, mas apenas um exemplo para ajudar os desenvolvedores a embarcarem neste novo e emocionante ecossistema. Poderão haver alterações adicionais neste guia ou no ecossistema Qan no futuro e, sendo assim, este guia também poderá estar sujeito a alterações.
Etapa 1: Obtenha um Endereço Assinado x-link e uma Chave Privada
Qan é uma blockchain compatível com Ethereum resistente a quantum, e esse processo é alcançado por meio de endereços assinados x-link. Basta instalar o x-link através do docker e gerar um endereço e uma chave privada seguindo este guia. Esse é um processo curto que não deve demorar mais de 5 minutos se você estiver acostumado com o docker. Uma vez iniciado em sua máquina, o Xlink validará suas transações para contornar a verificação de segurança quantum por 24 horas, mesmo se você fechá-la.
https://learn.qanplatform.com/developers/qan-testnet/setting-up-qan-testnet/2.-install-qan-xlink
Nota: use o seguinte comando para executar o docker e gerar a chave.
docker run -d --name=xlink --restart=always --volume=xlink:/xlink qanplatform/xlink 0 http://rpc.qanx.live:8545
Assim que terminar o processo, você poderá encontrar seu mnemônico e sua chave privada clicando em “Volumes” e depois em “xlink”. Basta clicar no arquivo “privkey” para mostrar a chave privada.
Etapa 2: Crie uma Pasta npm e Instale as Dependências Necessárias
Basta clonar este git https://github.com/zorglob21/qan-solidity-deployment ou criar um repositório npm e instalar os pacotes você mesmo.
git clone https://github.com/zorglob21/qan-solidity-deployment
Em seguida, abra uma janela de terminal no diretório clonado e construa as dependências.
npm i
Etapa 3: Crie e Compile um Contrato Inteligente
Crie seu contrato inteligente na pasta de contratos e salve-o com uma extensão .sol.
Agora vamos compilá-lo. Para ter certeza de que temos a versão correta do compilador para nosso contrato, instale a versão solc apropriada com:
npm install --save-dev [email protected] // qualquer versão que você precisar!
Então iremos compilá-lo com este comando solc:
npx solcjs --bin --abi --include-path node_modules/ --base-path . --output-dir ./bin ./contracts/<REPLACEWITHYOURCONTRACTNAME>.sol
Os arquivos compilados aparecerão na pasta “bin”.
Etapa 4: Implantação
Agora que nossos arquivos binários e a ABI foram gerados, só precisamos implantar na cadeia qan live. Para isso, utilizaremos a última versão da biblioteca ethers. Isso é importante porque versões mais antigas podem não funcionar.
Mas primeiro, devemos inserir a chave privada que geramos na etapa 1 em um arquivo .env. Portanto, crie um arquivo .env na raiz da pasta e insira a chave privada que você gerou com o X-link.
PRIVATE_KEY=XXXXXXXXXXXXXXXXXXXXXXXX
Já temos este script de implantação pronto na pasta git. Basta substituir a ABI e o caminho binário pelos nomes de arquivo apropriados gerados pelo solc para o seu contrato e colar seu endereço de implantação real como um argumento na função getTransactionCount().
wallet = await wallet.connect(provider);
const abi = fs.readFileSync("./bin/<SET YOUR FILE NAME HERE>.abi", "utf8");
const binary = fs.readFileSync("./bin/<SET YOUR FILE NAME HERE>.bin", "utf8");
const contractFactory = new ethers.ContractFactory(abi, binary, wallet);
console.log("Start deployment!");
const nonce = await provider.getTransactionCount("PASTE YOUR ADDRESS HERE");
console.log(nonce)
// Define configurações de otimização
const overrides = {
gasPrice: '90000000000', // Ajusta o preço do gás adequadamente
gasLimit: '10000000', // Ajusta o limite do gás adequadamente
// Ativa o otimizador Solidity
nonce: nonce,
optimizer: {
enabled: true,
runs: 200, // Numero de execuções para o otimizador (ajustar conforme necessário)
},
};
Observe as configurações gasPrice e gasLimit, bem como a contagem de nonce. No momento em que este artigo foi escrito, esses valores estavam corretos e eram necessários, mas poderão estar sujeitos a alterações num futuro próximo. Forneça argumentos adicionais para o construtor do contrato na função de implantação, antes de passar as substituições.
Depois que tudo isso estiver feito, só precisamos de alguns qan para rede de testes:
E então estamos prontos para ir:
node deploy.js
Se você não receber uma mensagem de erro, deverá receber esta mensagem impressa no terminal:
Start deployment!
0
O número é o nonce (o número de transações emitidas pelo seu endereço). Aguarde alguns segundos e sua transação deverá aparecer no qanlive explorer.
https://qanx.live/?source=post_page-----aa41c448ca64--------------------------------
E voilà! Pronto!
Este artigo foi escrito por YN, e traduzido por Isabela Curado Nehme. Seu original pode ser lido aqui.
Latest comments (0)