Kontrak Multisig Lambda merupakan lompatan signifikan dalam pemrograman kontrak pintar karena penggunaan tipe sp.lambda
. Hal ini memperkenalkan kemungkinan untuk menjalankan fungsi sewenang-wenang yang tidak ditentukan sebelumnya pada saat penerapan kontrak. Berikut gambaran rinci tentang komponen utamanya:
Parameter Awal: Kontrak diinisialisasi (__init__
) dengan daftar anggota yang diperbolehkan untuk mengusulkan dan menandatangani proposal, dan jumlah minimum tanda tangan yang diperlukan untuk melaksanakan proposal. Ini disimpan dalam penyimpanan kontrak (self.data
), membuat catatan referensi agar kontrak dapat beroperasi.
Fungsi Usulan: Fungsi propose
berfungsi untuk membuat proposal baru. Anggota dapat mengirimkan fungsi lambda (terdiri dari operasi arbitrer) yang mereka ingin kontrak dijalankan. Proposal ini disimpan dalam struktur data big_map
, dan setiap proposal diberi pengenal unik.
Fungsi Tanda: Fungsi sign
memfasilitasi pengesahan proposal. Anggota dapat menandatangani untuk mendukung proposal. Tanda tangan ini, yang dilampirkan dengan pengidentifikasi proposal unik, dikumpulkan dan dikelola dalam big_map
terpisah.
Fungsi Eksekusi: Fungsi execute
mewakili inti operasi kontrak. Jika proposal telah mengumpulkan jumlah tanda tangan yang diperlukan, anggota dapat menjalankan fungsi ini untuk menjalankan fungsi lambda yang diusulkan, menerapkannya pada penyimpanan kontrak.
Kontrak Multisig Lambda menawarkan keserbagunaan yang luas, cocok untuk skenario yang memerlukan struktur kontrol yang kompleks, fleksibel, dan berpotensi dinamis, seperti DAO (Organisasi Otonomi Terdesentralisasi), layanan dompet dengan banyak pemilik, dan protokol DeFi yang kompleks.
Kontrak ini memerlukan eksekusi fungsi lambda arbitrer dengan banyak tanda tangan. Ini memperkenalkan konsep pengiriman dan penandatanganan fungsi lambda. Mari kita membedah fungsinya:
submit_lambda: Fungsi ini memungkinkan anggota untuk mengirimkan fungsi lambda ke kontrak. Ini pada dasarnya mengusulkan operasi kontrak yang memerlukan persetujuan multi-tanda tangan. Di panel kanan IDE SmartPy, setelah penyerahan fungsi lambda berhasil, Anda akan melihat transaksi baru yang dimulai oleh alamat pengirim ke alamat kontrak.
vote_lambda: Fungsi ini memungkinkan anggota untuk memberikan suara mereka (tanda tangan) untuk mendukung fungsi lambda yang dikirimkan. Setelah melakukan voting, di panel IDE, Anda akan melihat transaksi baru dari alamat anggota ke alamat kontrak.
Kontrak MultisigAction mengantarkan mekanisme pemungutan suara yang demokratis ke dalam bidang kontrak pintar. Dalam model ini, anggota mengusulkan tindakan tertentu, memberikan suara pada tindakan tersebut, dan melaksanakannya setelah mencapai kuorum. Kontrak ini menghadirkan perpaduan unik antara konsensus manusia dan pelaksanaan kontrak otomatis, yang menegakkan kontrol demokratis atas perilaku kontrak.
Komponen inti dari kontrak ini adalah:
Parameter Awal: Sama seperti dalam kontrak Lambda, Kontrak MultisigAction mengambil daftar anggota dan jumlah suara yang diperlukan selama inisialisasi.
Fungsi Propose Action: Fungsi ini berfungsi untuk menambahkan proposal baru. Anggota dapat mengirimkan tindakan yang telah ditentukan sebelumnya dalam kontrak, mengaitkannya dengan pengidentifikasi unik. Tindakan yang diusulkan ini disimpan dalam big_map
.
Fungsi Tindakan Pemungutan Suara: Fungsi ini dirancang untuk memberikan suara yang mendukung tindakan yang diusulkan. Suara dikaitkan dengan pengidentifikasi unik proposal dan disimpan dalam big_map
berbeda.
Fungsi Jalankan Tindakan: Fungsi ini mulai berlaku ketika proposal telah mengumpulkan cukup suara. Anggota dapat memanggil fungsi ini untuk menjalankan tindakan yang diusulkan.
Kontrak MultisigAction ideal untuk situasi di mana sekelompok individu perlu mencapai konsensus mengenai tindakan kontrak tertentu, seperti di DAO di mana anggota memberikan suara pada alokasi sumber daya atau perubahan protokol.
submit_proposal: Ini adalah proses mengusulkan tindakan baru. Dalam konteks contoh kita, seorang anggota mengusulkan untuk menambahkan penandatangan baru ke dalam kontrak.
Saat operasi ini dilakukan pada SmartPy IDE, Anda akan melihat transaksi baru dibuat di panel kanan IDE. Ringkasan transaksi akan menunjukkan pengirim (alamat anggota pengusul) dan penerima (alamat kontrak). Mungkin terlihat seperti ini:
Di sini, status 'OK' menunjukkan bahwa proposal berhasil diajukan.
vote_proposal: Langkah selanjutnya adalah melakukan voting untuk proposal. Fungsi ini memungkinkan penandatangan yang ada untuk memberikan suara pada proposal yang diajukan pada langkah sebelumnya.
Saat penandatangan 1 memberikan suara untuk proposal, Anda akan melihat transaksi baru, dengan penandatangan 1 sebagai pengirim dan kontrak sebagai penerima. Transaksi serupa akan dicatat ketika penandatangan memberikan 2 suara untuk proposal:
Transaksi ini menunjukkan bahwa penandatangan 1 dan penandatangan 2 telah berhasil memberikan suaranya untuk proposal tersebut.
Kontrak MultisigView mengedepankan konsep konsensus demokratis tetapi menerapkannya pada byte sewenang-wenang, bukan tindakan kontrak yang telah ditentukan sebelumnya. Kontrak ini membuka jalan di mana konsensus dapat dicapai pada data yang direpresentasikan sebagai byte, tanpa langsung mengarah pada eksekusi tindakan.
Komponen utama dari kontrak ini adalah:
Parameter Awal: Seperti kontrak sebelumnya, Kontrak MultisigView diinisialisasi dengan daftar anggota dan nomor yang menunjukkan suara yang diperlukan.
Fungsi Kirim Proposal: Fungsi ini memungkinkan anggota untuk memperkenalkan proposal baru dalam bentuk byte arbitrer. Byte disimpan dalam big_map
, diindeks oleh byte itu sendiri, yang mewakili pengidentifikasi proposal unik.
Fungsi Pemungutan Suara Proposal: Fungsi ini memungkinkan anggota untuk menyetujui proposal. Pemungutan suara dilacak dalam big_map
terpisah, yang ditautkan ke pengidentifikasi byte unik proposal.
Fungsi Dipilih: Fungsi ini, tampilan on-chain, memeriksa apakah proposal telah memperoleh suara yang diperlukan. Ini mengembalikan nilai boolean yang menunjukkan status pemungutan suara proposal.
Kontrak MultisigView sangat berguna dalam kasus di mana kontrak pintar perlu menyimpan catatan proposal yang disetujui, seperti dalam aplikasi kriptografi di mana byte dapat mewakili perjanjian hash, bukti, atau bentuk data lain apa pun yang memerlukan persetujuan kolektif.
Kontrak Multisig Lambda merupakan lompatan signifikan dalam pemrograman kontrak pintar karena penggunaan tipe sp.lambda
. Hal ini memperkenalkan kemungkinan untuk menjalankan fungsi sewenang-wenang yang tidak ditentukan sebelumnya pada saat penerapan kontrak. Berikut gambaran rinci tentang komponen utamanya:
Parameter Awal: Kontrak diinisialisasi (__init__
) dengan daftar anggota yang diperbolehkan untuk mengusulkan dan menandatangani proposal, dan jumlah minimum tanda tangan yang diperlukan untuk melaksanakan proposal. Ini disimpan dalam penyimpanan kontrak (self.data
), membuat catatan referensi agar kontrak dapat beroperasi.
Fungsi Usulan: Fungsi propose
berfungsi untuk membuat proposal baru. Anggota dapat mengirimkan fungsi lambda (terdiri dari operasi arbitrer) yang mereka ingin kontrak dijalankan. Proposal ini disimpan dalam struktur data big_map
, dan setiap proposal diberi pengenal unik.
Fungsi Tanda: Fungsi sign
memfasilitasi pengesahan proposal. Anggota dapat menandatangani untuk mendukung proposal. Tanda tangan ini, yang dilampirkan dengan pengidentifikasi proposal unik, dikumpulkan dan dikelola dalam big_map
terpisah.
Fungsi Eksekusi: Fungsi execute
mewakili inti operasi kontrak. Jika proposal telah mengumpulkan jumlah tanda tangan yang diperlukan, anggota dapat menjalankan fungsi ini untuk menjalankan fungsi lambda yang diusulkan, menerapkannya pada penyimpanan kontrak.
Kontrak Multisig Lambda menawarkan keserbagunaan yang luas, cocok untuk skenario yang memerlukan struktur kontrol yang kompleks, fleksibel, dan berpotensi dinamis, seperti DAO (Organisasi Otonomi Terdesentralisasi), layanan dompet dengan banyak pemilik, dan protokol DeFi yang kompleks.
Kontrak ini memerlukan eksekusi fungsi lambda arbitrer dengan banyak tanda tangan. Ini memperkenalkan konsep pengiriman dan penandatanganan fungsi lambda. Mari kita membedah fungsinya:
submit_lambda: Fungsi ini memungkinkan anggota untuk mengirimkan fungsi lambda ke kontrak. Ini pada dasarnya mengusulkan operasi kontrak yang memerlukan persetujuan multi-tanda tangan. Di panel kanan IDE SmartPy, setelah penyerahan fungsi lambda berhasil, Anda akan melihat transaksi baru yang dimulai oleh alamat pengirim ke alamat kontrak.
vote_lambda: Fungsi ini memungkinkan anggota untuk memberikan suara mereka (tanda tangan) untuk mendukung fungsi lambda yang dikirimkan. Setelah melakukan voting, di panel IDE, Anda akan melihat transaksi baru dari alamat anggota ke alamat kontrak.
Kontrak MultisigAction mengantarkan mekanisme pemungutan suara yang demokratis ke dalam bidang kontrak pintar. Dalam model ini, anggota mengusulkan tindakan tertentu, memberikan suara pada tindakan tersebut, dan melaksanakannya setelah mencapai kuorum. Kontrak ini menghadirkan perpaduan unik antara konsensus manusia dan pelaksanaan kontrak otomatis, yang menegakkan kontrol demokratis atas perilaku kontrak.
Komponen inti dari kontrak ini adalah:
Parameter Awal: Sama seperti dalam kontrak Lambda, Kontrak MultisigAction mengambil daftar anggota dan jumlah suara yang diperlukan selama inisialisasi.
Fungsi Propose Action: Fungsi ini berfungsi untuk menambahkan proposal baru. Anggota dapat mengirimkan tindakan yang telah ditentukan sebelumnya dalam kontrak, mengaitkannya dengan pengidentifikasi unik. Tindakan yang diusulkan ini disimpan dalam big_map
.
Fungsi Tindakan Pemungutan Suara: Fungsi ini dirancang untuk memberikan suara yang mendukung tindakan yang diusulkan. Suara dikaitkan dengan pengidentifikasi unik proposal dan disimpan dalam big_map
berbeda.
Fungsi Jalankan Tindakan: Fungsi ini mulai berlaku ketika proposal telah mengumpulkan cukup suara. Anggota dapat memanggil fungsi ini untuk menjalankan tindakan yang diusulkan.
Kontrak MultisigAction ideal untuk situasi di mana sekelompok individu perlu mencapai konsensus mengenai tindakan kontrak tertentu, seperti di DAO di mana anggota memberikan suara pada alokasi sumber daya atau perubahan protokol.
submit_proposal: Ini adalah proses mengusulkan tindakan baru. Dalam konteks contoh kita, seorang anggota mengusulkan untuk menambahkan penandatangan baru ke dalam kontrak.
Saat operasi ini dilakukan pada SmartPy IDE, Anda akan melihat transaksi baru dibuat di panel kanan IDE. Ringkasan transaksi akan menunjukkan pengirim (alamat anggota pengusul) dan penerima (alamat kontrak). Mungkin terlihat seperti ini:
Di sini, status 'OK' menunjukkan bahwa proposal berhasil diajukan.
vote_proposal: Langkah selanjutnya adalah melakukan voting untuk proposal. Fungsi ini memungkinkan penandatangan yang ada untuk memberikan suara pada proposal yang diajukan pada langkah sebelumnya.
Saat penandatangan 1 memberikan suara untuk proposal, Anda akan melihat transaksi baru, dengan penandatangan 1 sebagai pengirim dan kontrak sebagai penerima. Transaksi serupa akan dicatat ketika penandatangan memberikan 2 suara untuk proposal:
Transaksi ini menunjukkan bahwa penandatangan 1 dan penandatangan 2 telah berhasil memberikan suaranya untuk proposal tersebut.
Kontrak MultisigView mengedepankan konsep konsensus demokratis tetapi menerapkannya pada byte sewenang-wenang, bukan tindakan kontrak yang telah ditentukan sebelumnya. Kontrak ini membuka jalan di mana konsensus dapat dicapai pada data yang direpresentasikan sebagai byte, tanpa langsung mengarah pada eksekusi tindakan.
Komponen utama dari kontrak ini adalah:
Parameter Awal: Seperti kontrak sebelumnya, Kontrak MultisigView diinisialisasi dengan daftar anggota dan nomor yang menunjukkan suara yang diperlukan.
Fungsi Kirim Proposal: Fungsi ini memungkinkan anggota untuk memperkenalkan proposal baru dalam bentuk byte arbitrer. Byte disimpan dalam big_map
, diindeks oleh byte itu sendiri, yang mewakili pengidentifikasi proposal unik.
Fungsi Pemungutan Suara Proposal: Fungsi ini memungkinkan anggota untuk menyetujui proposal. Pemungutan suara dilacak dalam big_map
terpisah, yang ditautkan ke pengidentifikasi byte unik proposal.
Fungsi Dipilih: Fungsi ini, tampilan on-chain, memeriksa apakah proposal telah memperoleh suara yang diperlukan. Ini mengembalikan nilai boolean yang menunjukkan status pemungutan suara proposal.
Kontrak MultisigView sangat berguna dalam kasus di mana kontrak pintar perlu menyimpan catatan proposal yang disetujui, seperti dalam aplikasi kriptografi di mana byte dapat mewakili perjanjian hash, bukti, atau bentuk data lain apa pun yang memerlukan persetujuan kolektif.