Akıllı Sözleşmeleri Doğrulama
Akıllı sözleşmelerinizi dağıttıktan sonra kodunuzu bir blok gezgininde doğrulamanız önemlidir. Bu, geliştirici araçlarını veya web kullanıcı arayüzlerini kullanarak otomatik bir şekilde yapılabilir.
Geliştirici Araçlarını Kullanma
Çoğu akıllı sözleşme aracı, sözleşmelerinizi Etherscan’de kolayca doğrulamak için eklentilere sahiptir. Blockscout, Etherscan’in sözleşme doğrulama API’lerini destekler; dolayısıyla bu araçları, bu blok kaşiflerinden herhangi birinin API’lerini kullanarak kullanmak kolaydır.
Ağ | Scroll | Scroll Sepolia |
---|---|---|
Scrollscan | https://api.scrollscan.com/api | https://api-sepolia.scrollscan.com/api |
Blockscout | https://blockscout.scroll.io/api | https://sepolia-blockscout.scroll.io/api |
Hardhat
’hardhat.config.ts’yi Scroll’un RPC’sine ve blok gezgini API’sine işaret edecek şekilde değiştirin. Blockscout için sahte bir “apiKey” değeri gereklidir, ancak bu değer için herhangi bir değer işe yarar. Scrollscan için kendi API anahtarınızı kullanın.
Örneğin Blockscout’ta Scroll Sepolia kullanıyorsanız yapılandırmanız şu şekilde görünecektir:
...
const config: HardhatUserConfig = { ... networks: { scrollSepolia: { url: 'https://sepolia-rpc.scroll.io' || '', accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], }, }, etherscan: { apiKey: { scrollSepolia: 'abc', }, customChains: [ { network: 'scrollSepolia', chainId: 534351, urls: { apiURL: 'https://sepolia-blockscout.scroll.io/api', browserURL: 'https://sepolia-blockscout.scroll.io/', }, }, ], },}
...
Artık aşağıdaki komutu çalıştırarak akıllı sözleşmeyi doğrulayabilirsiniz.
npx hardhat verify --network scrollSepolia <contract address> <space separated constructor parameters>
Örneğin, yapıcıda iki uint parametresi alan bir akıllı sözleşme şu şekilde görünmelidir:
npx hardhat verify --network scrollSepolia 0xD9880690bd717189cC3Fbe7B9020F27fae7Ac76F 123 456
Foundry
Foundry’yi kullanırken “verify-contract” komutu sözleşmelerin doğrulanması sürecinin otomatikleştirilmesine yardımcı olur. Sözleşmenizde yapıcı argümanlar varsa, bunları ABI kodlu biçimde --constructor-args
seçeneğiyle belirtebilirsiniz. Örneğin, kurucunuz iki “uint256” değişkeni alıyorsa:
--constructor-args $(cast abi-encode "constructor(uint256,uint256)" 0 7)
Belirleyebileceğiniz diğer seçenekler için Foundry belgelerine bakın.
Scrollscan
forge verify-contract <contract address> <contract name> \ --verifier-url https://api-sepolia.scrollscan.com/api \ --etherscan-api-key <your Scrollscan API key> \ --constructor-args <your constructor arguments>
Blockscout
Doğrulama sağlayıcısını “blockscout” olarak belirtin.
Scroll
forge verify-contract <contract address> <contract name> \ --verifier-url https://blockscout.scroll.io/api\? \ --verifier blockscout \ --constructor-args <your constructor arguments>
Scroll Sepolia
forge verify-contract <contract address> <contract name> \ --verifier-url https://sepolia-blockscout.scroll.io/api\? \ --verifier blockscout \ --constructor-args <your constructor arguments>