Foundry veya Hardhat ile bir sözleşme dağıtın
Foundry veya Hardhat 2 ile bir EVM ağında Hello.sol dağıtın, zincir kimliğini doğrulayın, işlem makbuzunu ve sözleşme yanıtını kontrol edin.
Ağı seçin
Hedef zincirin entegrasyon rehberini takip ederek (Desteklenen Zincirler üzerinden erişilir) network.mjs dosyasını oluşturun ve RPC_URL ile CHAIN_ID değişkenlerini dışa aktarın. Zincir rehberleri zincir kimliğini ve yöntem politikasını GET /v1/chains üzerinden okur ve gas token'ını, ayrı bir yayınlama RPC'sinin gerekip gerekmediğini ve zincire özel dağıtım ayarlarını açıklar.
Aşağıdaki araçlardan birini seçin. Her ikisi de constructor argümanı olmadan aynı küçük sözleşmeyi dağıtır.
Dağıtıcıyı seçilen ağın yerel gas token'ı ile fonlayın. DEPLOYER_PRIVATE_KEY değerini yerel ortamınızda güvenli bir şekilde ayarlayın; asla commit etmeyin. Aşağıdaki komutlar bir işlemi yayınlar ve gas harcar.
Constructor argümanı olmayan Hello.sol dosyasını oluşturun:
// 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
Başlatılmış bir Foundry projesinde, sözleşmeyi src/Hello.sol konumuna yerleştirin ve şu foundry.toml dosyasını kullanın:
[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İşlem karmasını ve dağıtılan adresi saklayın. Dahil edilme ve durumu incelemek için cast receipt "$TX_HASH" --rpc-url "$RPC_URL" kullanın, ardından sözleşmeyi okumak için cast call "$CONTRACT_ADDRESS" "hello()(string)" --rpc-url "$RPC_URL" çalıştırın. Bu iki değişkeni dağıtım çıktısından ayarlayın.
Hardhat 2 ile ethers 6
Ayrı bir CommonJS projesinde (npm init -y), npm install --save-dev hardhat@2 @nomicfoundation/hardhat-ethers@3 ethers@6 komutunu çalıştırın. Aynı sözleşmeyi contracts/Hello.sol konumuna yerleştirin. Bunu hardhat.config.cjs olarak kaydedin:
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 dizinini oluşturun ve scripts/deploy.cjs olarak kaydedin:
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 targetAğın chainId değeri RPC'ye karşı kontrol edilir. Hardhat 2 ağ ayarlarına ve Foundry ayarlarına bakın (erişim tarihi: 2026-10-07).
Olayları okuyun
LOG_ADDRESS değişkenini dağıtılan adrese ayarlayın. ping() çağrısından sonra Ping olaylarını okumak için hedef zincirin rehberindeki olay okuma yöntemini takip edin (/v1/chains içindeki zincirin ws alanına bağlı olarak WebSocket aboneliği veya HTTP parçalı yoklama).
Son güncelleme:
Bir RPC sağlayıcısı seçin
İş yükü kendi kendine testleriyle RPC yöntem maliyetlerini, log aralıklarını, ücretsiz kredileri, hız limitlerini, zincir kapsamını, push ve veri API'lerini, kimlik doğrulamayı ve Agent erişimini değerlendirin.
DEX günlük fiyatları
Data API'den günlük DEX OHLC fiyatlarını ve VWAP değerini sorgulayın, TypeScript ve Python'da kesin rasyonel kesirleri işleyin ve geçmiş verileri verimli şekilde geriye dönük doldurun.