Algorand Smart Contract - Membuat Request atau Call Algorand Smart Contract

in #algo4 years ago (edited)

Algorand Smarct Contract - Tutorial #01

Algorand Smart Contracts (ASC1) merupakan Smart Contract Layers Pertama. Kontrak ini tidak hanya berfungsi sebagai bagian dari protokol, tetapi juga dapat berinteraksi dengan semua fitur layers pertama,termasuk Atomic Transfer dan Algorand Standard Assets (ASA).

Pembahasan

Apa itu Algorand Smart Contracts?

Smart Contract Algorand adalah bahasa pemerograman yang di buat secara khusus untuk menggantikan tugas kerja tertentu contohnya seperti bahasa yang dapat digunakan sebagai pengganti Signature atau Bukti dalam transaksi. Bahasa ini dinamai Transaction Execution Approval Langauge atau TEAL.

Baiklah kita akan membahas lebih lanjut tentang spesifikasi bahasa TEAL.
Program TEAL memiliki satu fungsi utama yaitu mengembalikan true atau false dan digunakan untuk menganalisis dan menyetujui transaksi. Transaksi standar ditandatangani dengan kunci pribadi atau private key atau atau multi private key untuk multisign transaksi. Dengan diperkenalkannya ASC1, setiap transaksi sekarang dapat ditandatangani dengan program TEAL. Ini disebut logic signature

Kode TEAL memiliki dua skenario penggunaan dasar; sebagai Contract Account atau sebagai Signature . Ketika digunakan sebagai Contract Account, output dari kode TEAL yang disusun akan menghasilkan alamat Algorand. Alamat Contract Account dapat dikirim (Algos atau Aset Algorand) dari akun mana pun menggunakan transaksi standar. Anda juga dapat menggunakan TEAL untuk melakukan Signature, yang pada dasarnya berarti Anda menandatangani program TEAL dengan private key Anda, dan Anda dapat menyimpan Signature logic ini untuk diberikan kepada orang lain sebagai bukti transaksi.

Bagaimana anda bisa Request/Call Smart Contract Algorand?

Program TEAL dapat ditulis dengan editor apa pun, tetapi saat ini hanya dapat dikompilasi menggunakan Goal command-Line tool. Command-line tool dapat digunakan untuk menguji program sebelum Anda menggunakannya dengan transaksi nyata pada jaringan Algorand mainett. Program paling sederhana yang dapat Anda tulis di TEAL mungkin adalah sebagai berikut:

// simple.teal
// Do not use this in a real application
int 1

Meskipun sangat sederhana, program ini tidak boleh digunakan dalam jarigan mainet karena program ini akan selalu mengembalikan otentikasi transaksi yang sebenarnya saat digunakan. Kami menggunakannya di sini untuk tujuan ilustrasi tentang bagaimana request program TEAL. Anda akan menyusun program ini dengan tujuan menggunakan perintah berikut:

goal clerk compile simple.teal

Ini akan menghasilkan output sebagai berikut

$ goal clerk compile simple.teal
simple.teal: 6Z3C3LDVWGMX23BMSYMANACQOSINPFIRF77H7N3AWJZYV6OH6GWTJKVMXY

Perhatikan, kita telah memiliki alamat. Ini adalah alamat yang ingin Anda gunakan jika Anda berencana menggunakan ini sebagai akun kontrak. Dalam hal ini, kami ingin menggunakannya untuk membuat Signature yang didelegasikan, jadi kami benar-benar perlu menandatangani program teal dengan kunci pribadi kami. Contoh berikut menunjukkan penggunaan goal untuk menyusun dan masuk dalam satu operasi.

goal clerk compile simple.teal -o mydelegatedsig.lsig -s -a C3MKH24QL3GHSD5CDQ47ZNQZMNZRX4MUTV6LVPAXMWAXMIISYSOWPGH674 -d ~/node/data

Dalam kasus ini, kami telah memasukan signature logic dengan alamat yang ditentukan dengan parameter -a. Perhatikan bahwa jika Anda tidak memiliki dompet default yang ditetapkan, Anda juga perlu menentukan dompet dengan parameter -w.
Sekarang kita memiliki file mydelegatedsig.lsig yang berisi Signature logic yang dapat digunakan dalam transaksi oleh siapa saja yang memiliki file ini. Karena logic selalu mengembalikan true, ini pada dasarnya memberi siapa pun akses penuh ke akun Anda!
Signature logic yang dibuat dapat digunakan dalam transaksi seperti:


goal clerk send -f C3MKH24QL3GHSD5CDQ47ZNQZMNZRX4MUTV6LVPAXMWAXMIISYSOWPGH674 -a 1000000 -t STF6TH6PKINM4CDIQHNSC7QEA4DM5OJKKSACAPWGTG776NWSQOMAYVGOQE -L mydelegatedsig.lsig -d ~/node/data

Catatan dalam kasus ini -f adalah akun yang mensignature logic sign, dan opsi -t adalah penerima transaksi. Juga, perhatikan bahwa biaya transaksi dibayar oleh akun yang mensignature logic sign. Anda juga dapat menggunakan opsi -o pada contoh di atas untuk menulis transaksi yang dsignature ke file dan tidak akan dikirimkan ke network. Anda dapat menggunakan output dengan perintah dryrun untuk melihat bagaimana TEAL sebenarnya diproses.


$ goal clerk send -f C3MKH24QL3GHSD5CDQ47ZNQZMNZRX4MUTV6LVPAXMWAXMIISYSOWPGH674 -a 1000000 -t STF6TH6PKINM4CDIQHNSC7QEA4DM5OJKKSACAPWGTG776NWSQOMAYVGOQE -L mydelegatedsig.lsig -d ~/node/data -o out.stxn$


goal clerk dryrun -t out.stxn
tx[0] cost=2 trace:
1 intcblock => < stack>
4 intc_0 => 1 0x1

Di atas adalah code atau perintah yang harus anda masukan di Command-line tool ketika anda membuat request atau call Algorand Smart Contract. Untuk Tuturial Selanjutnya Kita Akan Membahas Bagaimana
Menggunakan Algorand SDK dengan Algorand Smart Contracts