Деплой смарт-контрактов в Arbitrum
Arbitrum — Optimistic Rollup L2, совместимый с EVM на уровне байткода. Подавляющее большинство Ethereum-контрактов деплоятся без изменений. Но есть нюансы, которые горят в production: различия в gas mechanics, особенности ArbOS, специфика финализации и бриджинга.
Чем Arbitrum отличается от Ethereum
Gas модель: Arbitrum использует двухкомпонентный gas. L2 execution gas — аналог Ethereum gas, стоит дёшево. L1 calldata cost — стоимость публикации данных в Ethereum, автоматически добавляется к каждой транзакции. tx.gasprice на Arbitrum — не то же самое, что на Ethereum; используйте ArbGasInfo precompile для точного расчёта.
Block numbers: block.number на Arbitrum возвращает L1 Ethereum block number (обновляется ~раз в 12 секунд), а не Arbitrum block. Для Arbitrum-native номера блока — ArbSys(0x64).arbBlockNumber(). Контракты, использующие block.number для timing (vesting, TWAP), могут работать неожиданно.
Block timestamp: block.timestamp соответствует реальному времени, обновляется с каждым Arbitrum-блоком (~250ms). Это быстрее, чем Ethereum — может влиять на TWAP-оракулы.
Precompiles: специфичные для Arbitrum адреса 0x64 (ArbSys), 0x6b (ArbGasInfo), 0x6c (ArbAggregator). Полезны для получения L1 block number, gas pricing info.
Деплой через Hardhat/Foundry
// hardhat.config.ts
networks: {
arbitrum: {
url: process.env.ARBITRUM_RPC_URL || 'https://arb1.arbitrum.io/rpc',
accounts: [process.env.PRIVATE_KEY!],
chainId: 42161,
},
arbitrumSepolia: {
url: 'https://sepolia-rollup.arbitrum.io/rpc',
accounts: [process.env.PRIVATE_KEY!],
chainId: 421614,
},
}
# Foundry
forge create --rpc-url $ARBITRUM_RPC_URL \
--private-key $PRIVATE_KEY \
--etherscan-api-key $ARBISCAN_API_KEY \
--verify \
src/MyContract.sol:MyContract \
--constructor-args arg1 arg2
Верификация на Arbiscan: тот же механизм, что Etherscan, отдельный API ключ с arbiscan.io.
Контрактный размер и оптимизации
Лимит 24KB сохраняется. На Arbitrum газ дешевле, но calldata до сих пор стоит денег (L1 cost). Оптимизация calldata актуальна для часто вызываемых функций с большими аргументами.
Мосты и токены
Canonical Arbitrum bridge для ETH и стандартных ERC-20. Для кастомных токенов — Arbitrum token bridge с регистрацией. Если контракт управляет бриджем или работает с bridged токенами: учитывать, что WETH на Arbitrum — не тот же адрес, что на Ethereum.
Ориентиры по срокам
Деплой готового контракта + верификация: несколько часов. С аудитом совместимости, настройкой multisig ownership через Safe, деплоем proxy (UUPS/Transparent) и скриптами деплоя: 1-2 дня.







