蚂蚁区块链第15课 JS SDK概述及API接口速查

1,摘要

本文讲解蚂蚁BAAS的JavaScript SDK概述,说明JS SDK对应的API接口速查。其他语言包SDK参考官网其他章节说明即可。

2,JS SDK 说明

JavaScript SDK(简称 JS SDK)是业务端与区块链平台沟通的桥梁,提供基础的 API 功能,包括提交交易、账户操作、部署和调用合约、各类查询操作、交易模拟执行、监听事件等,同时实现了通过 TLS 和 HTTPS 协议与区块链平台交互,统一了 API 接口使用方式。因此,JS SDK 既可集成运行在 Node.js 环境,也可以运行在浏览器、Web 应用等环境,更加的灵活方便。

JS SDK 的使用方式简单,且对环境兼容友好。使用 TLS 协议时需要依赖 Node.js,使用 HTTPS 时可直接在浏览器环境集成使用。

版本说明

JS SDK 会不断的升级发布,完善功能,历史发布版本核心功能说明如下表。

版本合约链支持说明更新功能下载链接
0.2.27支持标准合约链; 支持 TEE 硬件隐私合约链; 不支持国密合约链支持 TLS/HTTPS 协议; 支持账户合约操作、查询、事件订阅等功能 ; 支持 Solidity 和 C++ 合约 ;alipay-mychain-0.2.27.tgz

说明:TEE 硬件隐私合约链C++ 合约开发功能(编译为 wasm 字节码),仅供 蚂蚁区块链创新大赛 试用,尚未正式对外发布。

JS SDK 引用说明

不同运行环境下,JS SDK 的引用方式略有不同:

  • Node 环境:

      const Chain = require("@alipay/mychain/index.node")
    
  • Web 环境:

      const Chain = require("@alipay/mychain")
    

配置项说明

在初始化与区块链连接的实例之前,可进行选项配置,各配置项的具体说明如下。

说明

  • 如无特别说明,配置项的数据类型默认为 string 类型。
  • 配置项中配置了账户相关的 Key 信息,包括账户公私钥、账户恢复公私钥。链的连接实例默认使用配置项中的账户 Key 信息进行交易签名。如果要切换账户,需要重新配置账户 Key 相关选项。详情参见 创建账户 中切换账户配置的使用示例。
配置项必填配置说明示例值
hosttrue区块链节点的 IP 或者主机名。使用 TLS 时为 IP 地址;使用 HTTPS 时为主机名。127.0.0.1, https://www.alipay.com 或 https://127.0.0.1
porttrue区块链节点开放连接的端口号,类型为 number。18130
clientsfalse可设置多个 host:port,作为主节点(首个为主节点),次节点备份,当主节点出现连接问题,SDK 会切换到列表其它节点重试连接。如果配置此参数,可不用设置 host 和 port 参数。[{host:’127.0.0.1’,port:18130},{host:’127.0.0.2’,port:18130}]
timeouttrue与区块链节点连接的超时时间配置,单位毫秒,类型为 number。30000
catrue目标合约链的根证书。在 BaaS 平台申请通过后下载 ,详情参考 申请证书
keytrue客户端生成的私钥文件,用于生成证书请求文件,进而申请证书。使用 BaaS 提供 密钥生成工具 生成 ,详情参考 申请证书
userPublicKeytrue账户公钥,字符串内容为 16 进制。0x971c77d38bf220572fe8294d7884b184adeeb9bac4d61c1b3e1e924575e526152145763eaba40c8713c82cc2961fba98f71c8b93984d4e3d10b2ff53ea039551
userPrivateKeytrue账户私钥,字符串内容为 16 进制。0x4015e39643765014b874dbd35a53f1a01418c66f7c47da35f3a84122c743d9a3
userRecoverPublicKeytrue账户恢复公钥,字符串内容为 16 进制。0xb961f6a1a43b9e7aa368be8d093ed7bec2d0ff85ff7646ec968d86bd546151efbd037cfe09933684b5c98978a1593074cdff465de3a3620089f5634911bf7b2e
userRecoverPrivateKeytrue账户恢复私钥,字符串内容为 16 进制。0x44a973e5286f1d3513561360bb0214235425b942a4649c7d371f780ca1ee0e80
passphrasetrueTLS 或 HTTPS 链接的 client.key 文件的自定义密码。123abc
checkServerIdentityfalse针对 TLS 协议的配置,类型为 boolean,含义为是否启用对服务端 hostname 的检查,即对比服务端证书的 CN 字段与 hostname 是否匹配,默认值为 false。false
tx_querycountfalse对于交易类型,提交交易后会调用 QueryTransactionReceipt查询收据,此配置可设定重试的次数,类型为 number,默认值为 3。5
tx_querytimefalse对于交易类型,提交交易后会调用 QueryTransactionReceipt查询收据,此配置可设定重试的时间间隔,类型为 number,单位为毫秒,默认值为 3000。200

3,API 概览

蚂蚁BAAS API 概览

汇总了合约平台支持的所有 JS API,并对接口调用的返回值予以说明。具体接口信息参见相关接口文档。

环境接口

接口描述
Chain初始化环境实例。

账户接口

接口描述
CreateAccount创建账户。
TransferBalance转账。
SetRecoverkey设置恢复公钥。
PreResetPubKey预重置公钥。
ResetPubKey重置公钥。
UpdateAuthMap更新权重。

合约接口

接口描述
contract构造合约实例。
new部署合约。
自定义合约方法名调用合约。
update升级合约。

查询接口

接口描述
QueryBlockHeader查询区块头。
QueryLastBlock查询最后一个区块。
QueryBlock查询指定的区块。
QueryTransaction查询交易。
QueryTransactionReceipt查询收据。
QueryAccount查询账户。
QueryContract查询合约账户。

本地执行接口

接口描述
LocalTransaction本地执行普通交易。
合约相关操作方法本地执行合约相关交易。

原生存证接口

接口描述
NativeDepositData在合约链上对目标数据进行存证。

事件接口

接口描述
event.account订阅账户事件。
accountEvent.close取消订阅账户事件。
event.contract订阅合约事件。
contractEvent.close取消订阅合约事件。
event.topic订阅主题事件。
topicEvent.close取消订阅主题事件。
event.block订阅区块事件。
blockEvent.close取消订阅区块事件。

辅助工具类接口

接口描述
getHash对给定字符串计算哈希。
toDecimal将十六进制转换成十进制。
toUtf8将十六进制字符串转换成 utf8 字符串。
getKeyInfo获取账户信息。
decryptAESWithPasswordTEE 解密方法
decryptTXWithAESTEE 硬件隐私合约链,解密 Transaction 方法。
generateAESKeyTEE 硬件隐私合约链,通过指定的 aesKey 和交易哈希派生目标交易的最终 AES 密钥。

返回值

JS SDK 多数接口都以相同的回调方式返回结果,对于合约相关接口,结果返回方式稍有不同。

  • 普通接口返回值
参数类型说明
errstring使用的账户名,用此账户来创建新账户。
dataobject交易回执的结果
  • 合约部署和调用接口返回值
参数类型说明
errstring错误信息,如果为 undefined,则说明无错误。
output不确定如果是合约部署,此字段为合约的 bytecode;如果是合约调用此字段,则与合约方法返回值类型相同。
dataobject交易回执的结果

以上 data 字段内容根据不同的接口返回不同内容,具体请查看接口返回值。

4,参考

(1)JS SDK 开发指南>API 参考>API 概览
https://tech.antfin.com/docs/2/107131
(2)Java SDK 开发指南>Java SDK 说明
https://tech.antfin.com/docs/2/101892
(3)C++ SDK 开发指南>C++ SDK 说明
https://tech.antfin.com/docs/2/107229

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笔名辉哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值