Развертывание контрактов Solidity

Это руководство описывает развертывание смарт-контрактов Solidity в Rome EVM с использованием Hardhat и Foundry.

Требования

  • Установлены Node.js v18+ (Hardhat) или Foundry

  • Пополненный адрес Rome EVM (см. Quickstart)

  • Ваш закрытый ключ, экспортированный как переменная окружения

export PRIVATE_KEY="0xYOUR_PRIVATE_KEY"

Конфигурация сети

Сеть
RPC URL
ID сети

Локальная

http://localhost:9090

1001

Devnet (montispl)

https://montispl.devnet.romeprotocol.xyz

200002

Testnet (Martius)

https://martius-i.testnet.romeprotocol.xyz

121214

Testnet (Caelian)

https://caelian-i.testnet.romeprotocol.xyz

121215

Hardhat

Настройка

mkdir my-rome-project && cd my-rome-project
npm init -y
npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox
npx hardhat init

hardhat.config.js

Развернуть

Проверить в обозревателе блоков

Foundry

Настройка

Развернуть

Вызов развернутого контракта

Использование Rome Solidity SDK

Для контрактов, взаимодействующих с программами Solana, установите Rome Solidity SDK:

Ограничения развертывания

Ограничение
Лимит
Примечания

Максимальный размер контракта

480 КБ

Увеличен с 24 КБ в Ethereum для режима OP-Geth

Ограничение размера транзакции

80 КБ на держателя

Крупные развертывания прозрачно распределяются по учетным записям держателей

Бюджет вычислений

~1,4 млн CU (атомарно)

Используйте итеративный режим для ресурсоемких контрактов

Версия Solidity

Рекомендуется 0.8.28

Более ранние версии работают, но 0.8.28 соответствует SDK

Распространённые ошибки

Ошибка
Причина
Исправление

недостаточно средств для газа

У EVM-адреса нет баланса

Внесите SOL через интерфейс пополнения

nonce too low

Устаревший nonce в кошельке

Сбросьте учетную запись MetaMask или укажите nonce вручную

execution reverted

Логика контракта завершилась сбоем

Отладка с помощью eth_call или forge test --fork-url

transaction underpriced

Цена газа ниже минимальной

Увеличьте цену газа в транзакции

Что дальше

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

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