Проверка контрактов
Проверяйте исходный код контрактов Solidity в Rome через размещённый сервис Sourcify — стандартные потоки forge verify-contract и hardhat-verify, значки в обозревателе Via.
В Rome работает размещённый Sourcify сервис верификации. После проверки контракта его исходный код и ABI становятся общедоступно воспроизводимыми и отображаются с ✓ Исходный код подтверждён значком в обозревателе блоков Rome (Via).
Верификация работает со стандартными forge verify-contract и hardhat-verify процессами — вам нужно лишь указать в качестве цели верификатор Rome.
Конечная точка верификатора
Тестнет и Devnet
https://verify.testnet.romeprotocol.xyz
Мейннет (Rubicon)
https://verify.mainnet.romeprotocol.xyz
Один общий экземпляр обслуживает каждую цепочку тестнета/devnet Rome — вы выбираете цепочку с помощью стандартного --chain-id флага.
Foundry
После развертывания (см. Развертывание Solidity-контрактов):
forge verify-contract <CONTRACT_ADDRESS> src/MyContract.sol:MyContract \
--verifier sourcify \
--verifier-url https://verify.testnet.romeprotocol.xyz/ \
--chain-id <YOUR_CHAIN_ID> \
--compiler-version 0.8.20Если конструктор принимал аргументы, передайте их, чтобы байткод совпал:
--constructor-args $(cast abi-encode "constructor(uint256)" 42)Вы также можете выполнить верификацию во время развертывания с помощью forge create … --verify или forge script … --verify (Foundry определяет chain id из --rpc-url).
Hardhat
hardhat-verify поставляется с набором инструментов Hardhat 3. Укажите в его провайдере Sourcify верификатор Rome в hardhat.config.ts и выполните hardhat verify:
При успехе верификатор связывает опубликованный исходный код, например https://verify.testnet.romeprotocol.xyz/repo-ui/<CHAIN_ID>/<ADDRESS>.
Проверка статуса верификации
Обозреватель читает статус верификации из API верификатора. Вы можете запросить его напрямую:
Для верифицированного контракта возвращается поле match field:
exact_match— байткод и и хэш метаданных совпадают (идеальное, «полное» совпадение).match— байткод совпадает; метаданные немного отличаются (но это по-прежнему подлинное, подтверждённое совпадение).404/null— не верифицирован.
Примечания
Для верификации нужны только развернутый байткод вашего контракта, исходный код и настройки компилятора, которые вы отправляете — те же входные данные, что и в любой EVM-сети.
Новые сети Rome автоматически подключаются к верификатору; если вы развернули контракт в новой сети, а верификация пока не находит его, подождите немного или свяжитесь с нами.
Последнее обновление
Это было полезно?