For the complete documentation index, see llms.txt. This page is also available as Markdown.

Проверка контрактов

Проверяйте исходный код контрактов Solidity в Rome через размещённый сервис Sourcify — стандартные потоки forge verify-contract и hardhat-verify, значки в обозревателе Via.

В Rome работает размещённый Sourcify сервис верификации. После проверки контракта его исходный код и ABI становятся общедоступно воспроизводимыми и отображаются с ✓ Исходный код подтверждён значком в обозревателе блоков Rome (Via).

Верификация работает со стандартными forge verify-contract и hardhat-verify процессами — вам нужно лишь указать в качестве цели верификатор Rome.

Конечная точка верификатора

Окружение
URL верификатора

Тестнет и 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 автоматически подключаются к верификатору; если вы развернули контракт в новой сети, а верификация пока не находит его, подождите немного или свяжитесь с нами.

Последнее обновление

Это было полезно?