Быстрый старт
Разверните свой первый контракт Solidity в Rome менее чем за 5 минут.
Разверните свой первый контракт Solidity в Rome менее чем за 5 минут. Это руководство предназначено для Martius, публичной тестовой сети; те же шаги работают и на Hadrian (devnet), просто заменив значения сети.
Предварительные требования
Node.js v22.13+
MetaMask расширение браузера
Кошелек Solana (например, Phantom), настроенный на Devnet
1. Добавьте Martius в MetaMask
Добавьте его вручную (Настройки → Сети → Добавить сеть):
Имя сети
Rome Martius
URL RPC
https://martius.testnet.romeprotocol.xyz/
ID цепочки
121214
Символ валюты
USDC
Обозреватель блоков
https://via-martius.testnet.romeprotocol.xyz/
2. Пополните кошелек
Газ оплачивается токеном SPL gas token сети (USDC в Martius). Есть два способа получить его:
Из Solana — получите devnet SOL из Solana faucet (установите для кошелька Solana режим Devnet), затем откройте приложение Rome, подключите оба кошелька и оберните их в газовый токен.
Через мост — отчеканьте тестовый USDC в Ethereum Sepolia из крана Circle, затем перенесите его в Rome через Rome Bridge (CCTP). Для исходящей транзакции вам понадобится немного Sepolia ETH — см. Краны для каждого крана.
Сколько? Развертывания контрактов в Rome несут издержки на стороне аккаунтов Solana, поэтому оценки газа значительно выше, чем предполагает интуиция Ethereum — для быстрого старта контракт оценивается примерно в ~20M gas и обходится примерно в 0.2 USDC за развертывание, а кошельки заранее проверяют примерно вдвое большую оценку. Пополните как минимум 0.5 USDC на газ; 1 USDC оставит комфортный запас.
Если депозит на стороне Solana завершается с предупреждением «insufficient SOL», несмотря на пополненный кошелек, установите для своего кошелька Solana режим Testnet Mode / Devnet (см. Часто задаваемые вопросы).
3. Создайте проект Hardhat
Примите значения по умолчанию при появлении запроса — Hardhat 3, текущий каталог и шаблон TypeScript + Node Test Runner + viem — и дайте ему установить зависимости. В шаблон включен пример Counter контракта с тестами; они не мешают этому руководству.
4. Настройте Hardhat для Rome
Отредактируйте сгенерированный hardhat.config.ts и добавьте сети Rome внутри defineConfig({ ... }):
configVariable("PRIVATE_KEY") разрешается из окружения, поэтому экспортируйте свой приватный ключ MetaMask:
(Для всего, что кроме одноразового ключа, лучше использовать зашифрованное хранилище, поставляемое с toolbox: npx hardhat keystore set PRIVATE_KEY.)
5. Напишите контракт
Создайте contracts/HelloRome.sol:
6. Разверните
Создайте scripts/deploy.ts:
Развернуть в Martius:
Ожидаемый вывод (ваш адрес будет отличаться):
Откройте развернутый адрес в обозревателе чтобы увидеть инструкции Solana, лежащие за вашей транзакцией. Теперь ваш контракт Solidity работает в Solana.
Что дальше
Развертывание Solidity — подробное руководство по развертыванию через Hardhat и Foundry
Вызов Solana из EVM — вызов программ Solana из Solidity через CPI
Архитектура — как Rome выполняет EVM внутри Solana
Распространенные ошибки
недостаточно средств
Недостаточно газового токена — кошельки заранее проверяют примерно 2× оценку газа
Пополните как минимум 0.5 USDC на газ (см. шаг 2) через приложение Rome или мост
слишком маленький nonce
Несоответствие nonce транзакции
Сбросьте учетную запись (MetaMask → Настройки → Дополнительно → Очистить активность)
выполнение отменено
Выполнение контракта завершилось сбоем
Проверьте логику контракта; используйте eth_call для отладки
Тайм-аут соединения
RPC недоступен
Проверьте URL RPC
Последнее обновление
Это было полезно?