
Sebelumnya, saya telah memperkenalkan Kontrak Cerdas Ontology di
Bagian 1: Blockchain & Block API dan
Bagian 2: API PenyimpananBagian 3: Runtime APIHari ini, mari kita bicara tentang bagaimana menjalankan kontrak pintar asli Ontology melalui
API Asli . Salah satu fungsi paling umum dari memohon kontrak asli adalah transfer aset.
Pendahuluan
API Asli hanya memiliki satu API. Saat Anda menggunakan fungsi Invoke, Anda perlu menggunakan fungsi status bawaan untuk membantu Anda merangkum parameter. Lihat di bawah untuk mempelajari cara menggunakan fungsi.

Sekarang mari kita masuk ke detail lebih lanjut tentang cara menggunakan 2 API ini. Sebelum itu, Anda dapat membuat kontrak baru di alat pengembangan kontrak pintar Ontology,
SmartX, dan ikuti petunjuk di bawah ini. Seperti biasa, di akhir artikel, saya akan memberikan tautan ke kode sumber.
Cara Menggunakan API Asli
Seperti biasa, Anda perlu mengimpor 2 fungsi sebagai berikut sebelum menggunakannya.
from ontology.interop.Ontology.Native import Invoke from ontology.builtins import state
Daftar Kontrak Asli Ontologi
Saat ini ada 6 kontrak asli Ontology yang tersedia untuk pengembang. Di bawah ini adalah daftar 6 kontrak asli yang dapat diminta oleh API Asli.

Dalam kontrak, Anda hanya perlu mengubah alamat kontrak menjadi format bytearray dan memintanya.
Misalnya , ketika Anda perlu memanggil kontrak ONT Token, Anda dapat terlebih dahulu mengonversi alamat kontrak ONT Token ke dalam format bytearray, dan kemudian memanggil fungsi Invoke. Saat memanggil fungsi Invoke, parameter yang diimpor adalah nomor versi, alamat kontrak, metode kontrak yang digunakan, dan parameter terkait transfer yang dienkapsulasi oleh fungsi state.
Satu hal khusus yang perlu diperhatikan di sini adalah bahwa ketika melakukan transfer kontrak untuk ONG, jumlah yang terisi adalah 10βΉ kali jumlah aktual. Artinya, jika Anda perlu mentransfer 10 ONG, jumlah yang harus diisi adalah 10ΒΉβ°. Saat menggunakan dompet, seperti ONTO atau Cyano untuk mentransfer, jumlah yang Anda masukkan adalah jumlah transfer.
contract_address_ONT = bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01') param = state(from_acct, to_acct, ont_amount) res = Invoke(1, contract_address_ONT, 'transfer', [param])
Mentransfer kode kontrak
Di bawah ini kami memberikan contoh terperinci tentang cara menggunakan Python untuk
mentransfer ONT dan ONG . Dalam kode di bawah ini, tipe parameter dari akun pengirim dan alamat penerima yang diimpor adalah string. Selain itu, dapat juga dikirimkan dengan jenis alamat parameter akun, sehingga menghemat biaya Gas untuk menjalankan kontrak. Prosesnya adalah sebagai berikut:
- Tentukan variabel alamat kontrak contract_address_ONT dan contract_address_ONG;
- Ubah alamat pengiriman dan penerimaan dari format base58 ke format bytearray;
- Verifikasi tanda tangan dan konfirmasikan bahwa alamat pengiriman sama dengan alamat pemanggilan kontrak;
- Fungsi status merangkum parameter terkait transfer;
- Fungsi Invoke memanggil kontrak asli ONT Token dan ONG Token untuk ditransfer;
- Tentukan apakah transfer berhasil dengan mengembalikan res. Jika nilai kembali adalah b '\ x01', maka transfer berhasil dan acara "transfer berhasil" akan didorong keluar.
from ontology.interop.System.Runtime import Notify, CheckWitness from ontology.interop.Ontology.Runtime import Base58ToAddress from ontology.interop.Ontology.Native import Invoke from ontology.builtins import state
Berlatih di SmartX
Anda juga dapat mengkompilasi dan menjalankan contoh kode di atas di
SmarX dengan mengikuti langkah-langkah di bawah ini:
- Kompilasi kontrak. Pertama, buat proyek di SmartX dan kompilasi kode dalam proyek ini.

- Menyebarkan kontrak. Jika Anda memerlukan token uji untuk menggunakan kontrak, ajukan di sini . Hasil penyebaran adalah sebagai berikut:

- Jalankan fungsi transfer. Sebelum menjalankan fungsi transfer, Anda perlu mengonfigurasi parameter seperti yang diperlukan. Dalam contoh di bawah ini, Anda perlu memasukkan alamat pengiriman, alamat penerima, dan jumlah ONT dan ONG yang ditransfer:

- Transfer berhasil. Setelah Anda mengkonfigurasi parameter dengan benar, transfer akan berhasil ketika menjalankan fungsi transfer. Token yang ditransfer akan ditampilkan di alamat penerima di atas:

Ringkasan
Pada artikel ini, kami memperkenalkan
Native API dari blockchain Ontology. Pengembang dapat menggunakan API ini untuk menjalankan kontrak asli Ontology. Pada artikel berikutnya, kami akan memperkenalkan
API Peningkatan untuk mengeksplorasi cara meningkatkan kontrak dalam kontrak pintar Ontology.
Temukan tutorial tentang GitHub di
sini .
Ini adalah tutorial resmi yang diterbitkan sebelumnya di blog Ontology Medium
Apakah Anda seorang pengembang? Pastikan Anda telah bergabung dengan komunitas teknologi kami di
Discord . Juga, lihat
Pusat Pengembang di situs web kami, di sana Anda dapat menemukan alat pengembang, dokumentasi, dan banyak lagi.
Temukan ontologi di tempat lain
Situs web ontologiGithub /
perselisihanTelegram
Bahasa Inggris /
RusiaTwitter /
Reddit