Note: Dimodifikasi untuk menggunakan @radiantblockchian/radjs untuk testnet/superAssetR100.js
sCrypt Project Boilerplate
Prasyarat
Pastikan Anda telah menginstal sCrypt IDE. sCrypt IDE adalah alat bagi pengembang untuk menulis, menguji, menerapkan, memanggil, dan men-debug smart contract sCrypt.
Panduan
sCrypt adalah bahasa pemrograman tingkat tinggi untuk menulis kontrak pintar di Bitcoin SV. Proyek ini memberikan contoh untuk membantu pengembang mempelajari dan mengintegrasikan kontrak pintar sCrypt ke proyek berbasis Javascript mereka. Prosedur yang kami rekomendasikan untuk mengembangkan aplikasi berbasis kontrak cerdas adalah sebagai berikut:
-
Pengembangan dan Pengujian Kontrak
-
Integrasi Kontrak dan Peluncuran Aplikasi
Setelah mengembangkan dan menguji unit smart contract, langkah selanjutnya adalah mengintegrasikannya ke dalam aplikasi Anda yang ditulis dalam bahasa lain seperti Javascript atau Python. Uji integrasi harus dijalankan di Bitcoin SV Testnet atau Scaling Test Network(STN) sebelum meluncurkan aplikasi ke publik pada mainnet.
Mulai cepat
npm install
npm test
Tata letak direktori
Untuk setiap kontrak x
, file sumber ada di contracts/x.scrypt
, file pengujian ada di tests/js/x.scrypttest.js
, dan file penerapan ada di testnet/x.js
.
Cara menulis tes untuk kontrak sCrypt
Langkah-langkah utama untuk menulis tes sCrypt dicontohkan oleh tests/demo.scrypttest.js
.
- Instal dan impor/wajibkan
scryptlib
libary, yang merupakan SDK javascript untuk mengintegrasikan kontrak cerdas sCrypt.
npm install scryptlib
import { buildContractClass } from 'scryptlib';
- Gunakan fungsi
buildContractClass
yang diimpor untuk mendapatkan kontrak yang tercermin, yang memiliki properti dan metode yang sama seperti yang ditentukan dalam kontrak sCrypt yang ditentukan.
// build a contract class
// either by compiling the contract from scratch
const Demo = buildContractClass(compileContract('demo.scrypt'))
// or from contract desc file if it's already generated from compilation
const Demo = buildContractClass(loadDesc('demo_desc.json'))
Perhatikan bahwa demo_desc.json
adalah nama file deskripsi dari kontrak yang dikompilasi, yang akan dihasilkan secara otomatis jika Anda menjalankan npm run watch
dan namanya mengikuti aturan $contractName_desc.json
.
- Inisialisasi kontrak.
demo = new Demo(4, 7);
- Tulis pengujian untuk kontrak yang dibuat seperti yang akan Anda lakukan di Javascript.
const result = demo.add(7 + 4).verify()
expect(result.success, result.error).to.be.true
Cara menjalankan pengujian secara lokal
Jalankan menggunakan sCrypt IDE
Jalankan file tes unit dalam menu konteks editor/explorer.
Catatan: File pengujian harus diakhiri dengan .scrypttest.js
atau .scrypttest.ts
, jika tidak, opsi "Jalankan Pengujian sCrypt" tidak akan muncul di menu.
Jalankan dari konsol
Pengujian juga dapat dijalankan dari konsol dengan mengeksekusi npm test
, seperti pengujian Javascript/TypeScript biasa.
Cara menerapkan kontrak dan berinteraksi dengannya
Men-deploy dengan menulis kode javascript/typescript
- Berikan kunci pribadi dengan dana di
privateKey.js
const key = '$YOUR_PRIVATE_KEY_HERE'
- Menyebarkan kontrak dan memanggil fungsinya dengan mengeluarkan
node testnet/demo.js
Output seperti berikut ini akan muncul di console. Dan Anda telah berhasil menerapkan kontrak dan memanggil fungsinya di Bitcoin. Manis!
locking txid: 8d58ff9067f5fa893b5c695179559e108ebf850d0ce4fd1e42bc872417ffd424
unlocking txid: c60b57e93551a6c52282801130649c6a97edcca5d2b28b8b4ae2afe0ee59bf79
Succeeded on testnet
sangat disarankan untuk menguji kontrak Anda di testnet terlebih dahulu, sebelum menerapkannya di mainnet. Secara default, penerapan ada di testnet. Untuk beralih ke mainnet, cukup modifikasi API_PREFIX
di helper.js
.
const API_PREFIX = 'https://api.whatsonchain.com/v1/bsv/main'
// const API_PREFIX = 'https://api.whatsonchain.com/v1/bsv/test' for Testnet
// const API_PREFIX = 'https://api.whatsonchain.com/v1/bsv/stn' for Scaling Test Net
Sebelum men-deploy kontrak, pastikan kontrak terbaru telah dikompilasi ke file json deskripsi, yang akan di-deploy. Ini dapat dilakukan secara otomatis dengan menjalankan proses daemon dengan perintah npm run watch
. Ini akan memantau perubahan file kontrak dan mengkompilasi ulang bila diperlukan. Semua file deskripsi yang dihasilkan terletak di testnet/fixture/autoGen
. Pastikan itu sesuai dengan kontrak sebelum penerapan.
Deploy dengan menggunakan sCrypt IDE fitur deploy
IDE menyediakan antarmuka UI universal. Anda dapat menerapkan kontrak dengan satu klik hanya dengan mengisi parameter yang relevan. Anda dapat memanggil fungsi publik dari kontrak dengan mengklik tombol tanpa menulis sebaris kode pun.