基础接口

1.获得Bfchain版本号

  • 接口全称:getBfchainVersion
  • 接口简写:v
  • 可调用方式:Http,Websocket,命令行
  • 调用方法:get
  • 接口url地址:/api/basic/getBfchainVersion
  • 请求参数:无
  • 返回参数:
    interface GetBfchainVersion {
    /**是否成功 */
    success: boolean;
    result: {
        /**当前节点的版本号 */
        version: string;
    };
    }

    2.获取本地节点当前最新区块

  • 接口全称:getLastBlock
  • 接口简写:glb
  • 可调用方式:Http,Websocket,命令行,Grpc
  • 调用方法:get
  • 接口url地址:/api/basic/getLastBlock
  • 请求参数:无
  • 返回参数:
    interface GetLastBlock {
    /**是否成功 */
    success: boolean;
    result: {
        /**区块高度 */
        height: number;
        /**区块时间戳 */
        timestamp: number;
        /**区块大小 */
        blockSize: number;
        /**锻造者公钥 */
        generatorPublicKey: string;
        /**锻造者的安全公钥 */
        generatorSecondPublicKey?: string;
        /**锻造者权益 */
        generatorEquity: string;
        /**区块事件数量 */
        numberOfTransactions: number;
        /**区块事件摘要 */
        payloadHash: string;
        /**区块事件摘要长度 */
        payloadLength: number;
        /**前块签名 */
        previousBlockSignature: string;
        /**总发生资产量 */
        totalAmount: string;
        /**总发生手续费 */
        totalFee: string;
        /**区块奖励值 */
        reward: string;
        /**区块的链标识符 */
        magic: string;
        /**区块参与度 */
        blockParticipation: string;
        /**区块签名 */
        signature: string;
        /**区块安全签名 */
        signSignature?: string;
        /**区块备注信息 */
        remark: {
        };
        /**区块附加信息 */
        asset: any;
    };
    }

    3.获取指定区块

  • 接口全称:getBlock
  • 接口简写:gb
  • 可调用方式:Http,Websocket,命令行,Grpc
  • 调用方法:post
  • 接口url地址:/api/basic/getBlock
  • 请求参数:
    interface GetBlock {
    /**区块签名 */
    signature?: string;
    /**区块高度 */
    height?: number;
    /**查看第几页(一页20条记录) */
    page?: number;
    }
  • 返回参数:
    interface GetBlock {
    /**是否成功 */
    success: boolean;
    result: {
        blocks: {
            /**区块版本号 */
            version: number;
            /**区块高度 */
            height: number;
            /**区块大小 */
            blockSize: number;
            /**区块时间戳 */
            timestamp: number;
            /**区块签名 */
            signature: string;
            /**区块安全签名 */
            signSignature?: string;
            /**锻造者gong'yao */
            generatorPublicKey: string;
            /**锻造者的安全公钥 */
            generatorSecondPublicKey?: string;
            /**锻造者权益 */
            generatorEquity: string;
            /**区块事件数量 */
            numberOfTransactions: number;
            /**区块事件摘要 */
            payloadHash: string;
            /**区块事件摘要长度 */
            payloadLength: number;
            /**前块签名 */
            previousBlockSignature: string;
            /**总发生资产量 */
            totalAmount: string;
            /**总发生手续费 */
            totalFee: string;
            /**区块奖励值 */
            reward: string;
            /**区块的链标识符 */
            magic: string;
            /**区块参与度 */
            blockParticipation: string;
            /**区块备注信息 */
            remark: {
            };
            /**区块附加信息 */
            asset: object;
            /**区块统计信息 */
            statisticInfo: {
                /**区块打包的事件的总手续费 */
                totalFee: string;
                /**区块打包的事件的总权益值(不区分权益类型) */
                totalAsset: string;
                /**区块打包的事件的总主权益值 */
                totalChainAsset: string;
                /**区块打包的事件涉及的总账户数 */
                totalAccount: number;
                /**区块打包的事件权益类型统计明细,JSON 对象 */
                assetStatisticHashMap: {
                        /**权益所属的链网络标识,大写字母或数字组成,5 个字符,最后一位是校验位 */
                        magic: string;
                        /**权益名,大写字母组成,3-5 个字符 */
                        assetType: string;
                        /**权益在块内的索引 */
                        index: number;
                        /**区块打包的事件类型统计明细,JSON 对象 */
                        typeStatisticHashMap: {
                                /**变动总值,某个账户的增加或者减少都会有影响 */
                                changeAmount: string;
                                /**变动总次数,某个账户的增加或者减少都会有影响 */
                                changeCount: number;
                                /**资产迁移总量 */
                                moveAmount: string;
                                /**交易次数统一 */
                                transactionCount: number;
                            };
                        };
                        /**区块打包的事件权益类型统计,JSON 对象 */
                        total: {
                            /**变动总值,某个账户的增加或者减少都会有影响 */
                            changeAmount: string;
                            /**变动总次数,某个账户的增加或者减少都会有影响 */
                            changeCount: number;
                            /**资产迁移总量 */
                            moveAmount: string;
                            /**交易次数统一 */
                            transactionCount: number;
                        };
                    };
                };
            };
            /**锻造者掉线列表 */
            roundOfflineGeneratersHashMap: {
                /**
                 * 使用逗号分隔的地址
                 * address,address */
            };
            /**事件 */
            transactions: {
                transaction: TransactionJSON;
                /**事件在区块内的索引 */
                index: number;
                /**区块高度 */
                height: number;
                /**事件发起账户的事件量 */
                numberOfSenderTransactions: number;
                /**事件涉及的账户权益变动信息 */
                transactionAssetChanges: {
                    /**账户类型 */
                    accountType: number;
                    /**权益在块内的索引 */
                    assetTypes: number;
                    /**账户最新的权益持有量 */
                    assetBalance: string;
                }[];
                /**权益销毁前权益的最新信息 */
                assetPrealnum?: {
                    /**剩余的权益数量 */
                    remainAssetPrealnum: string;
                    /**冻结的主权益数量 */
                    frozenMainAssetPrealnum: string;
                };
                /**区块锻造者的签名 */
                signature: string;
                /**区块锻造者的安全签名 */
                signSignature?: string;
            }[];
        }[];
        /**符合查询条件的总数 */
        count: number;
        /**分页查询最大值 */
        cmdLimitPerQuery: number;
    };
    }

    4.获取指定事件

  • 接口全称:getTransactions
  • 接口简写:gt
  • 可调用方式:Http,Websocket,命令行,Grpc
  • 调用方法:post
  • 接口url地址:/api/basic/getTransactions
  • 请求参数:
    interface GetTransactions {
    /**事件id */
    signature?: string;
    /**事件所属区块高度 */
    height?: number;
    /**事件所属区块最低高度,可与maxHeight配合查询一段区间的事件 */
    minHeight?: number;
    /**事件所属区块最高高度,可与minHeight配合查询一段区间的事件 */
    maxHeight?: number;
    /**事件发起方 */
    senderId?: string;
    /**事件接收方 */
    recipientId?: string;
    /**事件类型,如果不传入则不筛选事件类型,事件类型请参考 */
    type?: string[];
    /**事件的索引值,可以根据事件的索引值查询事件。索引值可能为assetType或signature或username等值,建议与其他条件并行使用以精确查找。 */
    storageValue?: string;
    /**查看第几页(一页20条记录) */
    page?: number;
    }
  • 返回参数:
    interface GetTransactions {
    /**是否成功 */
    success: boolean;
    result: {
        trs: {
            /**事件在区块内的索引 */
            index: number;
            /**事件所在区块签名 */
            blockSignature: string;
            /**事件所在区块高度 */
            height: number;
            /**发起者的第N笔事件 */
            numberOfSenderTransactions: number;
            /**事件涉及的账户权益变动信息 */
            transactionAssetChanges: {
                /**账户类型 */
                accountType: number;
                /**权益在块内的索引 */
                assetTypes: number;
                /**账户最新的权益持有量 */
                assetBalance: string;
            }[];
            /**权益销毁前权益的最新信息 */
            assetPrealnum?: {
                /**剩余的权益数量 */
                remainAssetPrealnum: string;
                /**冻结的主权益数量 */
                frozenMainAssetPrealnum: string;
            };
            /**区块锻造者的签名 */
            signature: string;
            /**区块锻造者的安全签名 */
            signSignature: string;
            /**事件体 */
            transaction: BFChainCore.TransactionJSON;
            /**存储时间戳 */
            dateCreated: number;
        }[];
        /**符合查询条件的总数 */
        count: number;
        /**分页查询最大值 */
        cmdLimitPerQuery: number;
    };
    }

    5.获取账户的最后一笔交易

  • 接口全称:getAccountLastTransaction
  • 接口简写:
  • 可调用方式:Http,Websocket
  • 调用方法:post
  • 接口url地址:/api/basic/getAccountLastTransaction
  • 说明: 该接口用于获取指定地址的大概余额。根据返回参数 transactionAssetChanges的accountType取到assetBalance作为余额。
  • 请求参数:
    interface GetAccountInfoAndAssets {
    /**账户地址 */
    address: string;
    /**资产类型 */
    assetType: string;
    }
  • 返回参数:
    interface GetAccountLastTransaction {
    /**是否成功 */
    success: boolean;
    result: {
        transactionInBlock?: BFChainCore.TransactionInBlockJSON;
        /**资产在tib中对应的索引 */
        assetIndex?: { [assetType:string]: number };
        /**该交易所在的区块 */
        block?: BFChainCore.BlockJSON;
    }
    }

    6.创建账户

  • 接口全称:createAccount
  • 接口简写:ca
  • 可调用方式:Http,Websocket,命令行,Grpc
  • 调用方法:post
  • 接口url地址:/api/basic/createAccount
  • 请求参数:
    interface CreateAccount {
    /**账户密钥 */
    secret: string;
    }
  • 返回参数:
    interface CreateAccount {
    /**是否成功 */
    success: boolean;
    result: {
        /**地址 */
        address: string;
        /**公钥 */
        publicKey: string;
        /**私钥 */
        secretKey: string;
    };
    }

    7.获取节点状态

  • 接口全称:getBlockChainStatus
  • 接口简写:gbc
  • 可调用方式:Http,Websocket,命令行,Grpc
  • 调用方法:get
  • 接口url地址:/api/basic/getBlockChainStatus
  • 请求参数:无
  • 返回参数:
    interface GetBlockChainStatus {
    /**是否成功 */
    success: boolean;
    result: {
        /**节点运行状态:0 离线,不可用 1 自由状态,有空闲资源可用 2 重建区块链 3 节点共识 4 重放区块 5 锻造区块 6 回滚区块 */
        status: any;
        /**当前的节点连接数 */
        peers: number;
        /**当前节点是否完成初始化数据 */
        isReady: boolean;
        /**节点的当前时间戳 */
        serverTimestamp: number;
    };
    }

8.根据交易类型获取账户的最后一笔交易

  • 接口全称:getAccountLastTypeTransaction
  • 接口简写:galtt
  • 可调用方式:Http,Websocket,命令行
  • 调用方法:post
  • 接口url地址:/api/basic/getAccountLastTypeTransaction
  • 请求参数:
    interface GetAccountLastTypeTransaction{
    /**账户地址 */
    address: string;
    /**交易事件类型 */
    transactionType: string;
    }
  • 返回参数:
    interface GetAccountLastTypeTransaction{
    /**是否成功 */
    success: boolean;
    result: {
        transactionInBlock?: BFChainCore.TransactionInBlockJSON;
    };
    }

9.获取事件类型

  • 接口全称:getTransactionType
  • 接口简写:
  • 可调用方式:Http,Websocket
  • 调用方法:post
  • 接口url地址:/api/basic/getTransactionType
  • 请求参数:
    interface GetTransactionType{
    /**事件基础类型 */
    baseType: {
        //权益转移
        TRANSFER_ASSET = "AST-01",
        //二次密码
        SIGNATURE = "BSE-01",
        //注册锻造者
        DELEGATE = "BSE-02",
        //治理投票
        VOTE = "BSE-03",
        //设置用户名
        USERNAME = "BSE-04",
        //开始收票
        ACCEPT_VOTE = "BSE-05",
        //停止收票
        REJECT_VOTE = "BSE-06",
        //创建DAPPID
        DAPP = "WOD-00",
        //DAPPID付费
        DAPP_PURCHASING = "WOD-01",
        //数据存证
        MARK = "EXT-00",
        //创建权益
        ISSUE_ASSET = "AST-00",
        //销毁权益
        DESTORY_ASSET = "AST-02",
        //发起权益赠送
        GIFT_ASSET = "AST-03",
        //接受权益赠送
        GRAB_ASSET = "AST-04"
    };
    }
  • 返回参数:
    interface GetTransactionType{
    /**是否成功 */
    success: boolean;
    result: {
        /**事件类型全称 */
        type: string;
    };
    }