SDK

下列代码实现,以typescript为例,使用\@bfchain/pc-sdk,来调用接口的方式

import { BFChainPC_SDK } from "@bfchain/pc-sdk";
export class BFChainPcSdkTest {
    private __sdk: BFChainPC_SDK;
    constructor() {
        this.__sdk = new BFChainPC_SDK();
    }
    async execute() {
        this.__sdk.init({ ip: "192.168.0.1", port: 19003, timeout: 10000 });
        let promises: Promise<any>[] = [];
        let funcNames: string[] = [];
        const pushPromise = (funcName: string, promise: Promise<any>) => {
            promises.push(promise);
            funcNames.push(funcName);
        };
        // 基础接口
        pushPromise("getLastBlock", this.getLastBlock());
        pushPromise("getBlock", this.getBlock());
        pushPromise("getTransactions", this.getTransactions());
        // 交易类接口
        pushPromise("trTransferAsset", this.trTransferAsset());
        pushPromise("trVote", this.trVote());
        const resp = await Promise.all(promises);
        for (let idx = 0; idx < resp.length; idx++) {
            const value = resp[idx];
            let data = `idx: ${idx} name: ${funcNames[idx]} --- ${JSON.stringify(
                value
            )}`;
            console.log(data);
        }
    }
    async getLastBlock() {
        /**
        * 获取本地节点当前最新区块
        */
        return this.__sdk.getLastBlock();
    }
    async getBlock() {
        /**
        * 查询区块高度为11的区块
        */
        return this.__sdk.getBlock({
            height: 11
        });
    }
    async getTransactions() {
        /**
        *
        查询区块高度为11,事件发起方地址为address1,事件接收方地址为address2的所有事件
        */
        return this.__sdk.getTransactions({
            height: 11,
            senderId: address1,
            recipientId: address2
        });
    }
    async trTransferAsset(
        request?: BFChainPcSdk.ApiRequest.TRANSACTION.TrTransferAsset
    ) {
        /**
        * 私钥为secret2的账户向地址为address3的账户转账50000本 BFT,手续费为50本 BFT
        */
        return this.__sdk.trTransferAsset(
            request ?? {
                secret: secret2,
                fee: "50",
                amount: "50000",
                recipientId: address3,
                assetType: "BFT"
            }
        );
    }
    async trVote() {
        /**
        * 私钥为secret1的账户给地址为address2的账户投票,投票权益为10,手续费为50本 BFT
        */
        return this.__sdk.trVote({
            secret: secret1,
            fee: "50",
            recipientId: address2,
            equity: "10"
        });
    }
}
(async () => {
    const test = new BFChainPcSdkTest();
    await test.execute();
})().catch(err => {
    console.error(err);
});