
Panduan Esensial untuk Abstraksi Akun di IoTeX: Panduan Praktis untuk Tanda Tangan p256
Dengan komunitas kami memberikan suara penuh mendukung Usulan Peningkatan IoTeX 14, Abstraksi Akun akhirnya hadir di IoTeX Mainnet dan Testnet, dan fiturnya kini tersedia untuk semua pengembang ekosistem. Jadi, apa itu AA, bagaimana cara kerjanya, dan bagaimana Anda dapat menggunakannya dalam aplikasi Anda berikutnya? Pengingat Singkat Abstraksi Akun (AA) seperti yang didefinisikan oleh ERC-4337, "memungkinkan pengguna menggunakan dompet kontrak pintar yang berisi logika verifikasi arbitrer sebagai pengganti EOAs sebagai akun utama mereka." ERC-4337 memperkenalkan banyak manfaat pengalaman pengguna, terutama memungkinkan orang menggunakan Kontrak Pintar sebagai akun utama mereka.
Dengan komunitas kami memberikan suara penuh mendukung Usulan Peningkatan IoTeX 14, Abstraksi Akun akhirnya hadir di IoTeX Mainnet dan Testnet, dan fiturnya kini tersedia untuk semua pengembang ekosistem. Jadi, apa itu AA, bagaimana cara kerjanya, dan bagaimana Anda dapat menggunakannya dalam aplikasi Anda berikutnya?
Pengingat Singkat
Abstraksi Akun (AA) seperti yang didefinisikan oleh ERC-4337, "memungkinkan pengguna menggunakan dompet kontrak pintar yang berisi logika verifikasi arbitrer sebagai pengganti EOAs sebagai akun utama mereka." ERC-4337 memperkenalkan banyak manfaat pengalaman pengguna, terutama memungkinkan orang menggunakan Kontrak Pintar sebagai akun utama mereka.
ERC-4337 berjalan di atas blockchain dan tidak memerlukan perubahan pada blockchain itu sendiri. Saat ini, kode Abstraksi Akun IoTeX didasarkan pada versi rilis ERC-4337 0.6.0.
Komponen Infrastruktur AA
AA
Invalid image URL
Komponen infrastruktur AA adalah:
- Layanan Bundler: satu endpoint untuk Mainnet (https://bundler.w3bstream.com) dan satu untuk Testnet (https://bundler.testnet.w3bstream.com). Bundler adalah node offchain yang menggabungkan beberapa operasi pengguna yang diabstraksikan menjadi satu transaksi yang dapat diproses oleh blockchain dasar. Transaksi ini dikirim ke komponen tetap lainnya, yang disebut Kontrak
EntryPoint. - Kontrak
EntryPoint: Ada dua kontrakEntryPointyang diterapkan di IoTeX, satu untuk Mainnet (0xc3527348De07d591c9d567ce1998eFA2031B8675) dan satu untuk Testnet (0xc3527348De07d591c9d567ce1998eFA2031B8675). KontrakEntryPointbertanggung jawab untuk membuat/menerapkan kontrak khusus tertentu, yang disebut kontrakAccountFactory, yang pada gilirannya bertanggung jawab untuk membuat akun tertentu (kontrak dompet) yang dapat digunakan untuk tujuan spesifik.
Untuk menggunakan abstraksi akun guna membuat akun kustom baru, ada beberapa komponen yang harus dibuat oleh pengembang dApp berdasarkan kebutuhan aplikasi mereka:
- Kontrak
Account, yang mengimplementasikan logika validasi dalam metodevalidateUserOp, dan logika eksekusi apa pun yang dapat diminta oleh operasi pengguna. - Kontrak
AccountFactory, yang bertanggung jawab, seperti yang disebutkan di atas, untuk membuat/menerapkan kontrak akun kustom baru. - Beberapa kode klien yang membangun operasi pengguna yang kompatibel dengan aturan verifikasi yang diimplementasikan dalam
AccountFactory. - paymaster adalah bagian opsional dari arsitektur AA. IoTeX menyediakan layanan paymaster untuk Testnet saja di https://paymaster.testnet.w3bstream.com. Peran paymaster adalah mensponsori gas yang diperlukan untuk mengeksekusi operasi pengguna, baik mensponsori sepenuhnya atau memungkinkan pengguna membayar dengan berbagai token.
Contoh: P256AccountFactory
Sebagai contoh pertama, kami menyediakan kontrak resmi P256AccountFactory (Mainnet 0xD98d2B6cBca981c777037c5784721d8179D7030b dan Testnet 0x508Db1A73FcBA98594679aD4f5d8D0B880BbdaFB) yang memungkinkan pengembang membuat kontrak akun yang dapat memverifikasi operasi pengguna yang ditandatangani dengan kriptografi "p256", bukan dengan kurva eliptik "secp256k1" asli Ethereum dan IoTeX. Ini sangat berguna, karena memungkinkan pengembang membuat aplikasi di mana pengguna dapat, misalnya, menandatangani transaksi dengan biometrik mereka, atau beralih dari frase benih, atau bahkan memiliki keamanan superior ketika perangkat mereka mendukung chip keamanan khusus (misalnya Secure Element Android dan Secure Enclave Apple, dll.). Kode sumber P256AccountFactory dapat ditemukan di https://github.com/iotexproject/account-abstraction-contracts/blob/main/contracts/accounts/secp256r1/P256AccountFactory.sol sementara kontrak Abstraksi Akun sumber terbuka bergantung pada implementasi oleh penulis asli EIP-4337 untuk Ethereum di sini https://github.com/iotexproject/account-abstraction-contracts/tree/main.
P256AccountFactory juga mendukung pengelolaan layanan paymaster, yang terdiri dari dua komponen, kontrak VerifyingPaymaster (https://github.com/iotexproject/account-abstraction-contracts/blob/main/contracts/paymaster/VerifyingPaymaster.sol) dan endpoint layanan off-chain untuk menghasilkan bukti pembayaran untuk kontrak paymaster (https://paymaster.testnet.w3bstream.com, hanya untuk Testnet).
Kode di bawah menunjukkan cara berinteraksi dengan implementasi akun p256 dari klien javascript untuk membuat akun:
1async function main() { 2 // load deployed contracts 3 const factory = (await ethers.getContract("P256AccountFactory")) as P256AccountFactory 4 const entryPoint = (await ethers.getContract("EntryPoint")) as EntryPoint 5,[object Object],1}
Sementara kode berikut akan menunjukkan cara mentransfer IOTX menggunakan layanan bundler dan paymaster:
1async function main() { 2const factory = (await ethers.getContract("P256AccountFactory")) as P256AccountFactory 3const accountTpl = await ethers.getContractFactory("P256Account") 4const entryPoint = (await ethers.getContract("EntryPoint")) as EntryPoint 5const paymaster = await ethers.getContract("VerifyingPaymaster") 6const bundler = new JsonRpcProvider(",[object Object],"),[object Object], 7,[object Object],1}
Sisa contoh tentang cara berinteraksi dengan implementasi akun p256 dari klien javascript, dapat ditemukan di https://github.com/iotexproject/account-abstraction-contracts/tree/main/scripts/secp256r1
Berlangganan
Berlangganan untuk mendapatkan postingan terbaru dari IoTeX Blogs dikirim ke kotak masuk Anda.