Interoperabilitas Token

Rome EVM menjembatani token ERC-20 dan token SPL melalui model satu status. Halaman ini menjelaskan cara kerja token di EVM dan Solana.

Model Satu Status

Tidak seperti bridge tradisional, Rome tidak mengunci token di satu chain dan mencetak salinan wrapped di chain lain. Sebaliknya, token ERC-20 di Rome EVM adalah pembungkus transparan di atas akun token SPL yang mendasarinya di Solana.

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Rome EVM                         โ”‚
โ”‚                                  โ”‚
โ”‚   ERC-20 "rUSDC"                 โ”‚
โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”‚
โ”‚   โ”‚ balanceOf(user)        โ”‚โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ–บ membaca langsung dari SPL ATA
โ”‚   โ”‚ transfer(to, amount)   โ”‚โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ–บ mengeksekusi transfer SPL via precompile
โ”‚   โ”‚ totalSupply()          โ”‚โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ–บ membaca suplai mint SPL
โ”‚   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ”‚
โ”‚                                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                 โ”‚
                 โ”‚ data dasar yang sama
                 โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Solana                           โ”‚
โ”‚                                  โ”‚
โ”‚   Akun Token SPL (ATA)           โ”‚
โ”‚   Pemilik: PDA milik pengguna    โ”‚
โ”‚   Mint: USDC (native Circle)     โ”‚
โ”‚   Jumlah: 1000000 (= 1 USDC)    โ”‚
โ”‚                                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Artinya ini berarti:

  • Tidak ada penundaan bridging โ€” saldo ERC-20 ADALAH saldo SPL

  • Tidak ada fragmentasi likuiditas โ€” DeFi di kedua sisi melihat token yang sama

  • Tidak ada risiko bridge โ€” tidak ada escrow terpisah yang bisa dieksploitasi

ERC20SPL: Kontrak Pembungkus

SPL_ERC20 adalah kontrak pembungkus standar yang menyediakan antarmuka ERC-20 penuh di atas mint token SPL:

Cara kerjanya di balik layar:

  • balanceOf() โ†’ menurunkan ATA pengguna (Associated Token Account) โ†’ membaca saldo dari Solana

  • transfer() โ†’ memanggil precompile SPL Token (0xff...05) โ†’ memindahkan token di Solana

  • approve() / allowance() โ†’ menggunakan penyimpanan EVM (pola ERC-20 standar) karena SPL tidak secara native mendukung allowance bergaya EVM

  • totalSupply() โ†’ membaca dari akun mint SPL

ERC20SPLFactory

Kontrak factory menerapkan pembungkus untuk token SPL apa pun:

Alamat factory (devnet): 0xfd21da046c282e1d36cc45e46d9599cff5742f2b

Register Token

The TokenRegistry menyediakan pendaftaran token SPL yang disetujui dengan metadata lintas-chain yang dikontrol admin:

Registry memastikan setiap aset dipetakan ke satu mint SPL kanonik โ€” mencegah beberapa representasi USDC memecah likuiditas.

Alur Deposit / Withdraw

Mendepositkan SPL โ†’ EVM

  1. Pengguna mentransfer token SPL ke vault bridge

  2. Bridge membuat ATA pengguna di Rome EVM (jika belum ada)

  3. Pembungkus ERC-20 menjadi aktif โ€” pengguna melihat saldo di MetaMask

Menarik EVM โ†’ SPL

  1. Pengguna memanggil precompile Withdraw (0x42...16) di Rome EVM

  2. Precompile mengeksekusi transfer SPL dari PDA pengguna kembali ke dompet Solana mereka

  3. Token SPL muncul di dompet Solana milik pengguna

Derivasi PDA

Setiap alamat EVM dipetakan ke PDA Solana yang memiliki akun token mereka:

Pola Utama

Membaca Saldo SPL dari Solidity

Mentransfer Token via Precompile SPL

Token Gas

Setiap chain Rome EVM memiliki token gas sendiri โ€” token SPL apa pun yang dipilih saat pendaftaran chain:

  • RSOL โ€” token gas default (SOL wrapped)

  • Token kustom โ€” token SPL apa pun, diberi harga melalui pool Meteora DAMM V1

Token gas adalah representasi ERC-20 dari token SPL. Transfer Hook TIDAK dijalankan pada pembayaran gas internal EVM.

Batasan

  • Jumlah token SPL adalah uint64 โ€” nilai maksimum 18,446,744,073,709,551,615

  • Desimal default untuk mint SPL baru: 9

  • Simbol pembungkus ERC-20 harus unik secara global per factory

  • Allowance menggunakan penyimpanan EVM (bukan delegate Solana)

Berikutnya

Terakhir diperbarui

Apakah ini membantu?