Solidity-Verträge bereitstellen

Dieser Leitfaden behandelt die Bereitstellung von Solidity-Smart-Contracts auf Rome EVM mit Hardhat und Foundry.

Voraussetzungen

  • Node.js v18+ (Hardhat) oder Foundry installiert

  • Eine finanzierte Rome-EVM-Adresse (siehe Quickstart)

  • Dein privater Schlüssel, als Umgebungsvariable exportiert

export PRIVATE_KEY="0xYOUR_PRIVATE_KEY"

Netzwerkkonfiguration

Netzwerk
RPC-URL
Chain-ID

Lokal

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

Einrichtung

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

Bereitstellen

Auf dem Block-Explorer verifizieren

Foundry

Einrichtung

Bereitstellen

Bereitgestellten Contract aufrufen

Verwendung des Rome Solidity SDK

Für Contracts, die mit Solana-Programmen interagieren, installiere das Rome Solidity SDK:

Bereitstellungsbeschränkungen

Beschränkung
Limit
Hinweise

Maximale Contract-Größe

480 KB

Erhöht von Ethereums 24 KB für den OP-Geth-Modus

Limit der Transaktionsgröße

80 KB pro Holder

Große Bereitstellungen werden transparent über Holder-Konten aufgeteilt

Compute-Budget

~1,4 Mio. CU (atomar)

Verwende den iterativen Modus für aufwendige Contracts

Solidity-Version

0.8.28 empfohlen

Frühere Versionen funktionieren, aber 0.8.28 passt zum SDK

Häufige Fehler

Fehler
Ursache
Behebung

nicht genügend Guthaben für Gas

Die EVM-Adresse hat kein Guthaben

Zahle SOL über die Einzahlungs-UI ein

Nonce zu niedrig

Veraltete Nonce in der Wallet

Setze das MetaMask-Konto zurück oder gib die Nonce manuell an

Ausführung rückgängig gemacht

Contract-Logik fehlgeschlagen

Debuggen mit eth_call oder forge test --fork-url

Transaktion zu niedrig bepreist

Gaspreis unter dem Minimum

Erhöhe den Gaspreis in der Transaktion

Was kommt als Nächstes

Zuletzt aktualisiert

War das hilfreich?