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

Развёртывание контрактов 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"

Настройка сети

Сеть
URL RPC
Идентификатор цепочки

Локальная

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, что и выше:

Оба получают выполнение в 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

транзакция недооценена

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

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

Что дальше

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

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