Implantar um contrato com Foundry ou Hardhat
Implante o Hello.sol em uma rede EVM com Foundry ou Hardhat 2, verifique o Chain ID e confira o recibo da transação e a resposta do contrato.
Selecionar a rede
Siga o guia de integração da rede de destino (acessado via Redes suportadas) para criar network.mjs e exportar RPC_URL e CHAIN_ID. Os guias de redes leem o Chain ID e a política de métodos em GET /v1/chains e explicam o token de gas, se um RPC de transmissão separado é necessário e configurações de implantação específicas da rede.
Escolha uma ferramenta abaixo. Ambas implantam o mesmo contrato pequeno sem argumentos de construtor.
Financie o implantador com o token de gas nativo da rede selecionada. Defina DEPLOYER_PRIVATE_KEY com segurança no seu ambiente local; nunca a envie para o controle de versão. Os comandos a seguir transmitem uma transação e gastam gas.
Crie Hello.sol sem argumentos de construtor:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
contract Hello {
event Ping(address indexed sender);
function ping() external { emit Ping(msg.sender); }
function hello() external pure returns (string memory) {
return "hello";
}
}Foundry
Em um projeto Foundry inicializado, coloque o contrato em src/Hello.sol e use este foundry.toml:
[profile.default]
src = "src"
out = "out"
libs = ["lib"]
solc_version = "0.8.24"
evm_version = "paris"
[rpc_endpoints]
target = "${RPC_URL}": "${RPC_URL:?Set RPC_URL}" "${CHAIN_ID:?Set CHAIN_ID}" "${DEPLOYER_PRIVATE_KEY:?Set deployer key}"
test "$(cast chain-id --rpc-url "$RPC_URL")" = "$CHAIN_ID" || exit 1
forge build
forge create src/Hello.sol:Hello --rpc-url target \
--chain "$CHAIN_ID" --private-key "$DEPLOYER_PRIVATE_KEY" --broadcastGuarde o hash da transação e o endereço implantado. Use cast receipt "$TX_HASH" --rpc-url "$RPC_URL" para inspecionar a inclusão e o status, e cast call "$CONTRACT_ADDRESS" "hello()(string)" --rpc-url "$RPC_URL" para ler o contrato. Defina essas duas variáveis a partir da saída da implantação.
Hardhat 2 com ethers 6
Em um projeto CommonJS separado (npm init -y), instale npm install --save-dev hardhat@2 @nomicfoundation/hardhat-ethers@3 ethers@6. Coloque o mesmo contrato em contracts/Hello.sol. Salve isto como hardhat.config.cjs:
require('@nomicfoundation/hardhat-ethers');
const { RPC_URL, CHAIN_ID, DEPLOYER_PRIVATE_KEY } = process.env;
if (!RPC_URL || !/^[1-9][0-9]*$/.test(CHAIN_ID ?? '') || !DEPLOYER_PRIVATE_KEY) {
throw new Error('Set RPC_URL, CHAIN_ID and DEPLOYER_PRIVATE_KEY');
}
module.exports = {
solidity: { version: '0.8.24', settings: { evmVersion: 'paris' } },
networks: {
target: { url: RPC_URL, chainId: Number(CHAIN_ID), accounts: [DEPLOYER_PRIVATE_KEY] },
},
};Crie o diretório scripts e salve como scripts/deploy.cjs:
const { ethers } = require('hardhat');
async function main() {
const contract = await ethers.deployContract('Hello');
console.log(contract.deploymentTransaction().hash);
await contract.waitForDeployment();
console.log(await contract.getAddress());
}
main().catch(error => { console.error(error); process.exitCode = 1; });npx hardhat compile
npx hardhat run scripts/deploy.cjs --network targetO chainId da rede é verificado em relação ao RPC. Consulte as configurações de rede do Hardhat 2 e as configurações do Foundry (acessado em: 2026-10-07).
Ler eventos
Defina LOG_ADDRESS como o endereço implantado. Siga o método de leitura de eventos no guia da rede de destino (assinatura via WebSocket ou polling em partes via HTTP, dependendo do campo ws da rede em /v1/chains) para ler eventos Ping após chamar ping().
Última atualização:
Escolher um provedor RPC
Avalie custos de métodos RPC, intervalos de logs, créditos gratuitos, limites de taxa, cobertura de redes, APIs de Push e dados, autenticação e acesso de Agents com autotestes de carga de trabalho.
Preços diários de DEX
Consulte preços diários de OHLC e VWAP de DEX na Data API, manipule frações racionais exatas em TypeScript e Python e faça o backfill de dados históricos com eficiência.