Развёртывание контрактов Solidity
Развёртывайте смарт-контракты Solidity на Solana с помощью Hardhat или Foundry — конфигурация сети Rome, пополненные аккаунты и пошаговое развёртывание.
Это руководство описывает развертывание смарт-контрактов Solidity в Rome EVM с использованием Hardhat и Foundry.
Предварительные требования
Установлен Node.js v22.13+ (Hardhat) или Foundry
Пополненный адрес Rome EVM (см. Быстрый старт)
Ваш закрытый ключ, экспортированный как переменная окружения
export PRIVATE_KEY="0xYOUR_PRIVATE_KEY"Настройка сети
Локальная
http://localhost:9090
1001
Hadrian (devnet)
https://hadrian.testnet.romeprotocol.xyz/
200010
Martius (testnet)
https://martius.testnet.romeprotocol.xyz/
121214
Hardhat
Настройка
mkdir my-rome-project && cd my-rome-project
npx hardhat --initПримите значения по умолчанию (Hardhat 3, текущий каталог, шаблон TypeScript + viem); зависимости установятся автоматически.
hardhat.config.ts
configVariable("PRIVATE_KEY") разрешается из среды (или из зашифрованного хранилища ключей — npx hardhat keystore set PRIVATE_KEY).
Развернуть
Проверить в обозревателе блокчейна
Требуется конфигурация верификатора Sourcify из Проверить контракты в вашем hardhat.config.ts.
Foundry
Настройка
Развернуть
Вызов развернутого контракта
Использование Rome Solidity SDK
Для контрактов, взаимодействующих с программами Solana, используйте интерфейсы из публичного rome-solidity репозитория (публикация в npm ожидается):
Перенесите существующий протокол
Любой контракт Solidity развертывается в Rome без изменений — контракт соблюдения, протокол DeFi или уже существующее проверенное приложение. Ниже приведены два примера из production, которые можно форкнуть и развернуть с тем же процессом Hardhat / Foundry, что и выше:
compound-on-rome-comet — канонический Compound v3 (Comet), стандартный Foundry.
rome-aave-v3 — канонический Aave v3.
Оба получают выполнение в Solana и композиционность CPI без изменений в контракте.
Ограничения развертывания
Максимальный размер контракта
24 КБ
Как в Ethereum (EIP-170, 24 576 байт)
Лимит размера транзакции
80 КБ на holder
Крупные развертывания прозрачно распределяются по учетным записям holder
Бюджет вычислений
≈1,4 млн CU (атомарно)
Используйте итеративный режим для ресурсоемких контрактов
Версия Solidity
Рекомендуется 0.8.28
Более ранние версии работают, но 0.8.28 соответствует SDK
Распространенные ошибки
недостаточно средств для газа
У EVM-адреса нет токена для газа
Оберните газ через Rome App (см. Быстрый старт)
слишком низкий nonce
Устаревший nonce в кошельке
Сбросьте учетную запись MetaMask или укажите nonce вручную
выполнение отменено
Логика контракта завершилась сбоем
Отладьте с помощью eth_call или forge test --fork-url
транзакция недооценена
Цена газа ниже минимальной
Увеличьте цену газа в транзакции
Что дальше
Вызывать Solana из EVM — используйте precompile CPI для взаимодействия с программами Solana
Проверить контракты — опубликуйте исходный код в обозревателе блокчейна
Последнее обновление
Это было полезно?