Розгортання смартконтракту за допомогою Foundry або Hardhat
Розгорніть Hello.sol у мережі EVM за допомогою Foundry або Hardhat 2, перевірте chain ID та провалідуйте квитанцію транзакції й відповідь контракту.
Вибір мережі
Дотримуйтесь посібника з інтеграції для цільової мережі (доступного через Підтримувані мережі), щоб створити network.mjs та експортувати RPC_URL і CHAIN_ID. Посібники для мереж зчитують chain ID та політику методів з GET /v1/chains і пояснюють інформацію про нативний газ-токен, необхідність окремого RPC для трансляції транзакцій та специфічні для мережі налаштування розгортання.
Оберіть один з інструментів нижче. Обидва розгортають однаковий невеликий контракт без аргументів конструктора.
Поповніть баланс адреси розгортання (deployer) нативним токеном газу обраної мережі. Безпечно збережіть DEPLOYER_PRIVATE_KEY у своєму локальному оточенні; ніколи не фіксуйте його в системі контролю версій. Наведені нижче команди транслюють транзакцію та витрачають газ.
Створіть Hello.sol без аргументів конструктора:
// 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
В ініціалізованому проєкті Foundry розмістіть контракт у src/Hello.sol та використовуйте такий 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" --broadcastЗбережіть хеш транзакції та адресу розгортання. Використовуйте cast receipt "$TX_HASH" --rpc-url "$RPC_URL", щоб перевірити включення в блок і статус, а потім cast call "$CONTRACT_ADDRESS" "hello()(string)" --rpc-url "$RPC_URL", щоб прочитати стан контракту. Встановіть значення цих двох змінних із результату розгортання.
Hardhat 2 з ethers 6
В окремому проєкті CommonJS (npm init -y) встановіть залежності npm install --save-dev hardhat@2 @nomicfoundation/hardhat-ethers@3 ethers@6. Розмістіть той самий контракт у contracts/Hello.sol. Збережіть такий вміст у 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] },
},
};Створіть директорію scripts і збережіть файл як 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 targetЗначення chainId мережі перевіряється через RPC. Дивіться налаштування мережі Hardhat 2 та налаштування Foundry (дата звернення: 2026-10-07).
Читання подій
Встановіть змінну LOG_ADDRESS на адресу розгорнутого контракту. Дотримуйтесь методу читання подій із посібника для цільової мережі (підписка через WebSocket або фрагментоване опитування через HTTP, залежно від поля ws для цієї мережі у /v1/chains), щоб зчитувати події Ping після виклику ping().
Востаннє оновлено:
Бекфіл та опитування HyperEVM
У BlockVectra автентифіковані запити eth_getLogs для HyperEVM охоплюють до 1,000 блоків, враховуючи обидві межі; розділяйте довші інтервали та зберігайте останній завершений блок для відновлення.
Один ключ, багато мереж
Один і той самий API key працює в усіх підтримуваних мережах. Дізнайтеся, як структуровані URL, як програмно знаходити мережі та як об'єднуються баланси й ліміти.