
Dalam posting tutorial Python sebelumnya, saya telah memperkenalkan Kontrak Cerdas Ontology di
Bagian 1: Blockchain & Block API dan
Bagian 2: API PenyimpananBagian 3: Runtime APIBagian 4: API Asli dan menjelaskan cara menggunakan kontrak pintar untuk transfer ONT / ONG.
Hari ini kita akan berbicara tentang cara menggunakan
API Peningkatan untuk meningkatkan kontrak pintar. Ada 2 API:
Hancurkan dan
Migrasikan .
Mereka digunakan sebagai berikut:

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 melampirkan tautan ke kode sumber.
Cara Menggunakan API Peningkatan
Seperti biasa, Anda perlu mengimpor 2 fungsi sebagai berikut sebelum menggunakannya.
from ontology.interop.Ontology.Contract import Migrate from ontology.interop.System.Contract import Destroy
Hancurkan API
Hancurkan API digunakan untuk menghancurkan dan menghapus kontrak pintar pada rantai. Di bawah ini adalah contoh kode API.
from ontology.interop.System.Contract import Destroy from ontology.interop.System.Runtime import Notify def Main(operation, args): if operation == "destroy_contract": return destroy_contract() return False def destroy_contract(): Destroy() Notify(["The contract has been destoryed"]) return True
Migrasikan API
API Migrasi digunakan untuk memigrasi kontrak pintar. Kontrak yang ada akan diganti oleh kontrak yang baru dimigrasi. Data yang disimpan oleh kontrak lama juga akan dimigrasi ke kontrak baru. Kontrak lama akan dihapus setelah migrasi.
Harap perhatikan bahwa aset dalam kontrak pintar tidak akan dimigrasi secara otomatis sehingga Anda harus mentransfernya terlebih dahulu. Jika tidak, Anda tidak akan dapat mengambil aset Anda.
Daftar parameter fungsi Migrasi adalah sebagai berikut:

Lihat di bawah contoh kode fungsi Migrasi:
from ontology.interop.Ontology.Contract import Migrate from ontology.interop.System.Runtime import Notify from ontology.libont import AddressFromVmCode def Main(operation, args): if operation == "migrate_contract": if len(args) != 7: return False avm_code = args[0] need_storage = args[1] name = args[2] version = args[3] author = args[4] email = args[5] description = args[6] return migrate_contract(avm_code, need_storage, name, version, author, email, description) return False def migrate_contract(avm_code, need_storage, name, version, author, email, description): res = Migrate(avm_code, need_storage, name, version, author, email, description) if res: Notify(["Migrate successfully"]) new_contract_hash=AddressFromVmCode(avm_code) Notify(new_contract_hash) return True else: return False
Anda dapat mengikuti langkah-langkah di bawah ini untuk melihat hasil eksekusi sampel kode pada SmartX:1. Salin dan tempel kode di atas ke SmartX dan kompilasi sebelum memasukkan parameter. Perhatikan dua masalah saat memasukkan parameter:
- Pastikan avm_code tidak ada pada rantai, jika tidak kesalahan akan dikembalikan;
- Migrasi memerlukan batas gas tinggi, jadi Anda harus menyesuaikan batas gas saat menjalankan fungsi.
2. Setelah penerapan, Anda bisa mendapatkan hash kontrak baru dari dasbor. Dalam contoh ini, hash kontrak baru adalah be4606c4663081b70f745ed9fc64d4c3b0d9c183.

Ringkasan
Pada artikel ini, kami memperkenalkan API Peningkatan pada blockchain Ontology. Pengembang dapat menggunakan API ini untuk meningkatkan kontrak pintar. Hancurkan API digunakan untuk menghancurkan kontrak pintar pada rantai dan Migrasi API adalah untuk migrasi kontrak pintar. Pada artikel selanjutnya, kami akan memperkenalkan Static & Dynamic API untuk mengeksplorasi cara menerapkan panggilan statis dan dinamis dari kontrak pintar Ontology dengan Python.
Temukan tutorial tentang GitHub di
sini .
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