区块链服务 BCS-合约结构

时间:2025-02-12 14:55:17

合约结构

Java语言合约由合约文件及依赖包构成,包含包声明、依赖包导入、智能合约的方法定义。

合约文件中,用户可自定义合约函数,需要实现Contract的init和invoke方法。

合约的结构如下:

package com.huawei.poissonchain;import com.huawei.huaweichain.contract.Contract;import com.huawei.huaweichain.contract.ContractException;import com.huawei.huaweichain.contract.ContractStub;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class ExampleContract implements Contract {    // 功能:合约的初始化(Init)接口,需要合约开发者在智能合约中实现此接口,供合约使用者在启动合约之后调用。注意,一般将合约启动时,首先需要执行且只需要执行一次的逻辑放到此方法中    // 入参:stub是智能合约SDK为本次合约执行交易准备的上下文对象,可以通过stub提供的API函数,获取交易请求相关信息、读写状态数据库、写日志等    // 返回值:需要返回给合约调用者( 区块链 客户端)的信息,没有信息需要返回时,返回值可以为null    // 抛出异常:初始化过程的异常信息,可由合约编写者自行设定异常逻辑    @Override    public byte[] init(ContractStub stub) throws ContractException {    }    // 功能:合约被调用(invoke)接口,需要合约开发者在智能合约中实现此接口,将主要的合约执行逻辑,放到此接口内,供合约使用者调用。    // 入参:stub是智能合约合约SDK为本次合约执行交易准备的上下文对象,可以通过stub提供的API函数,获取交易请求相关信息、读写状态数据库、写日志等    // 返回值:需要返回给合约调用者(区块链客户端)的信息,没有信息需要返回时,返回值可以为null    // 抛出异常:初始化过程的异常信息,可由合约编写者自行设定异常逻辑    @Override    public byte[] invoke(ContractStub stub) throws ContractException {    }}
support.huaweicloud.com/devg-bcs/bcs_devg_01_065.html