华为云区块链引擎服务 HBS-合约结构

时间:2025-01-26 10:34:06

合约结构

AssemblyScript语言合约主要包括index.ts和contract.ts两个文件,其中index.ts为开发智能合约文件(contract.ts)依赖的合约SDK,合约涉及的业务相关开发仅在contract.ts文件,智能合约文件contract.ts需要根据实际业务进行开发。

  • 合约SDK(index.ts)主要结构如下:
// 引入智能合约文件  import { invoke, init } from "./contract";// 合约的初始化(wasm_init)接口。包含合约文件的init()接口,合约启动时,需要首先执行且只需要执行一次的逻辑放到合约文件init()接口中。export function wasm_init(buffer_offset: i32, size: i32):void{    // 实际调用合约文件的init()接口}  // 合约被调用(wasm_invoke)接口。包含合约文件的invoke()接口,供合约使用者通过SDK的wasm_invoke接口调用。export function wasm_invoke(buffer_offset: i32, size: i32):void{    // 实际调用合约文件的invoke()接口}// 合约被调用(wasm_prepare)接口,保持为空即可。export function wasm_prepare():void{}

  • 智能合约文件(contract.ts)主要结构如下:
// 引入合约SDK方法  import { FuncName, smlog, Str2ArrayBuffer, Parameters, PutKV, ArrayBuffer2Str, GetKV, DelKV, MakeErrRes,MakeSuccessRes, Response,IteratorNew, IteValue, IteKey, IteNext, IteratorFree } from "./index"// 智能合约的初始化(init)接口的实现。export function init(txid:string):Response{}// 智能合约被调用(invoke)接口的实现。export function invoke(txid:string):Response{}
support.huaweicloud.com/devg-hbs/hbs_devg_09.html