Transfer Hooks

Token-2022 Transfer Hooks memungkinkan sebuah program mengeksekusi logika kustom pada setiap transfer token. Rome memungkinkan smart contract Solidity bertindak sebagai transfer hook โ€” membawa pemrograman EVM ke standar token Solana.

Cara Kerja Transfer Hooks

Token-2022 (program token generasi berikutnya milik Solana) mendukung ekstensi yang disebut Transfer Hook. Saat sebuah mint dikonfigurasi dengan transfer hook:

  1. Setiap transfer_checked panggilan untuk mint tersebut memanggil program hook yang ditentukan

  2. Hook menerima detail transfer (pengirim, penerima, jumlah, mint)

  3. Hook dapat menyetujui atau menolak transfer

  4. Jika hook menolak (revert), seluruh transfer gagal

Transfer Hooks Bertenaga EVM

Di Rome, sebuah kontrak Solidity dapat berfungsi sebagai penangan transfer hook:

Pengguna menukar token di Jupiter (Solana)
    โ†“
Jupiter memanggil transfer_checked
    โ†“
Token-2022 memanggil program hook yang ditentukan
    โ†“
Program hook = Rome Meta-Hook Router
    โ†“
Router meneruskan ke kontrak Solidity melalui CPI โ†’ Rome EVM
    โ†“
Kontrak Solidity mengeksekusi logika kepatuhan
    โ†“
Lulus: transfer selesai
Gagal: seluruh transfer revert

Ini berarti setiap transfer token SPL di Solana โ€” baik di Jupiter, Raydium, Phantom, atau dompet apa pun โ€” dapat memicu logika kepatuhan EVM.

Contoh: Hook Kepatuhan KYC

Batasan Utama

transfer_checked saja. Hook hanya aktif pada transfer_checked panggilan, bukan transfer. Setiap integrasi yang menggunakan token Rome harus menggunakan transfer_checked untuk memastikan penegakan kepatuhan.

Mode state tunggal diperlukan. Transfer hook dieksekusi di dalam transaksi Solana. OP-Geth tidak dapat diakses dari konteks tersebut. Semua logika hook EVM harus berjalan dalam mode state tunggal (proxy).

Batas kedalaman CPI. Pemanggilan hook menghabiskan kedalaman CPI:

Hanya tersisa satu level CPI setelah rantai pemanggilan hook.

Anggaran komputasi. Hook EVM mengonsumsi CU yang signifikan:

  • Overhead transfer dasar: 100.000 CU

  • Per sub-hook EVM: 200.000 CU

  • Anggaran yang direkomendasikan untuk transfer EVM: 800.000 CU

Whitelisting Protokol DeFi

Vault protokol DeFi (Jupiter, Kamino, Orca, vault bridge Rome) memerlukan penanganan khusus. Vault ini menerima dan mengirim token sebagai bagian dari operasi normal โ€” memblokirnya akan merusak DeFi.

Kontrak kepatuhan mempertahankan sebuah protocolWhitelist mapping. Alamat yang di-whitelist (vault, PDA untuk protokol yang dikenal) disetujui tanpa pemeriksaan KYC. Ini memungkinkan transfer token melalui protokol DeFi sambil tetap menegakkan kepatuhan pada transfer pengguna akhir.

Model Alamat

Transfer hook melihat alamat EVM turunan Rome, bukan alamat Ethereum. Saat pengguna Solana berinteraksi dengan token yang di-hook Rome, pubkey Solana mereka dipetakan ke alamat EVM melalui derivasi PDA. Rome Solidity SDK menyediakan utilitas untuk pemetaan ini.

Halaman Terkait

Terakhir diperbarui

Apakah ini membantu?