TokenString 接入指南

返回
  • 配置工程
    • 第1步:添加jar包
    • 第2步:使用maven引入
  • 方法调用
    • 生成TOK钱包
    • 发送TOK交易
    • 发送代币交易(合约)
    • 查询区块
    • 查询钱包地址TOK数量
    • 查询钱包地址代币数量
    • 保存钱包到本地
    • 查询钱包地址TOK交易记录
    • 查询钱包地址Token交易记录
    • 查询代币Token价格
    • 查询代币列表
    • 创建代币(合约)
    • 根据哈希值TradeNo查询交易记录
    • 读取加密后的钱包
    • 读取钱包文本keystore
  • 接口调用
    • 查询当前最高区块高度
  • Go语言方式调用
    • 配置tok包
    • 生成TOK钱包
    • 发送TOK交易
    • 发送代币交易(合约)
    • 获取TOK余额
    • 获取Token余额
    • 获取TOK交易记录
    • 获取Token交易记录
    • 查询区块
  • 交易所钱包接入
    • 部署
    • 钱包配置
    • Token钱包地址接口
    • 交易所平台用户地址接口
    • 转账交易接口
  • 第三方系统对接
    • 部署
    • 钱包配置
    • 转账交易接口
    • 钱包地址接口
  • NFT对接
    • 配置
    • 创建NFT
    • 查询NFT分类
    • 根据类别查询NFT
    • 根据钱包地址查询创建所有的NFT
    • 查询钱包创建的数据类型NFT
    • 查询钱包创建的货币类型NFT
    • NFT转账(交易)
    • 查询指定NFT信息
    • 查询所有数据类型NFT
  • 本地节点接入
    • 部署
    • 生成TOK钱包
    • 发送TOK交易
    • 发送代币交易(合约)
    • 查询区块
    • 查询钱包地址TOK数量
    • 查询钱包地址代币数量
    • 保存钱包到本地
    • 查询钱包地址TOK交易记录
    • 查询钱包地址Token交易记录
    • 查询代币列表
    • 根据哈希值TradeNo查询交易记录
    • 读取加密后的钱包
    • 读取钱包文本keystore
  • 相关下载
    • TOK接入jar包
    • TOK接入go语言包
    • 交易所钱包接入包
    • 第三方系统接口包
    • NFT接入jar包
    • 本地节点接入jar包
    • 本地节点部署启动脚本
    • PHP调用本地节点代码用例

TokenString 接入指南

配置工程

第1步:添加jar包

基本信息

在创建的工程中新建 libs 文件夹,将解压后的 jar 文件拷贝到 libs 的根目录下。 请去相关下载中下载相对应的jar包。

见lib目录,如图所示:

第2步:使用maven引入

基本信息

1、首先将其安装到本地。

安装方法如下:

mvn install:install-file -DgroupId=com.tok -DartifactId=tok-official-exchange-api -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar -Dfile=tok-official-exchange-api-0.0.1-SNAPSHOT.jar

如图所示:

2、安装完后需引入相关配置

相关配置如下:

<dependency>

    <groupId>com.tok </groupId>

    <artifactId>tok-official-exchange-api </artifactId>

    <version>0.0.1-SNAPSHOT </version>

</dependency>

方法调用

生成TOK钱包

基本信息

方法名:TokExchangeHelper.createWalletAddress()

方法描述:

生成TOK钱包地址,包含钱包地址、私钥、公钥等。

返回数据

名称 类型 是否必须 默认值 备注
WalletAddress object 必须 返回结果
├─ Address string 必须 钱包地址
├─ PublicKey string 必须 钱包公钥
├─ PrivateKey string 必须 钱包私钥

代码示例

WalletAddress wa = TokExchangeHelper.createWalletAddress();

    System.out.println(wa.getAddress());//地址

    System.out.println(wa.getPublicKey());//公钥

    System.out.println(wa.getPrivateKey());//私钥

发送TOK交易

基本信息

方法名:TokExchangeHelper.sendTrade(walletAddress, amount, gas, toAddress)

方法描述:

用于发送交易,将数量由一个钱包地址转移到另一个钱包地址。

请求参数

名称 类型 是否必须 默认值 备注
WalletAddress object 必须 钱包
├─ Address string 必须 钱包地址
├─ PublicKey string 必须 钱包公钥
├─ PrivateKey string 必须 钱包私钥
amount number 必须 交易金额
gas number 必须 交易燃油费
toAddress string 必须 转账到达地址
提示:gas的区间在0.008~0.01之间,否则交易会失败的。

返回数据

名称 类型 是否必须 默认值 备注
TradeBody object 必须 返回结果

通过返回值TradeBody 的getTradeNo()可获得交易编号-交易哈希值

交易哈希值: tb.getTradeNo();

代码示例

从地址0x798c395ba1ed5ed113d79c6b6bf86c9e发送0.000012个TOK到0xbc7293e0a226ea7b1fe74d8d9260b78a地址上。

发送钱包地址:String address = "0x798c395ba1ed5ed113d79c6b6bf86c9e";

发送钱包地址公钥:String publicKey = "MIGf..中间省略(查看完整找文档末尾)..AQAB";

发送钱包地址私钥:String privateKey = "MIIC..中间省略(查看完整找文档末尾)..REU=";

WalletAddress walletAddress = new WalletAddress();

    walletAddress.setAddress(address);

    walletAddress.setPrivateKey(privateKey);

    walletAddress.setPublicKey(publicKey);

    BigDecimal amount = new BigDecimal(0.000012);

    BigDecimal gas = new BigDecimal(0.0006);

    String toAddress = "0xbc7293e0a226ea7b1fe74d8d9260b78a";

    TradeBody tb = TokExchangeHelper.sendTrade(walletAddress, amount, gas, toAddress);

    tb.getTradeNo();//获得交易哈希值

发送代币交易(合约)

基本信息

方法名:TokExchangeHelper.sendTrade(walletAddress, amount, gas, contractAddress, contractName, toAddress)

方法描述:

用于合约进行交易,将数量由一个钱包地址转移到另一个钱包地址。

请求参数

名称 类型 是否必须 默认值 备注
WalletAddress object 必须 钱包
├─ Address string 必须 钱包地址
├─ PublicKey string 必须 钱包公钥
├─ PrivateKey string 必须 钱包私钥
amount number 必须 交易金额
contractAddress string 必须 合约地址
contractName string 必须 合约名称
toAddress string 必须 转账到达地址
gas number 必须 交易燃油费
提示:gas的区间在0.008~0.01之间,否则交易会失败的。

返回数据

名称 类型 是否必须 默认值 备注
ContractToContractTradeBody object 必须 返回结果

通过返回值ContractToContractTradeBody 的getTradeNo()可获得交易编号-交易哈希值

如下:

ContractToContractTradeBody ctctb =TokExchangeHelper.sendTrade(walletAddress, amount, gas, contractAddress, contractName, toAddress);

交易哈希值:ctctb.getTradeNo()

代码示例

从地址0x798c395ba1ed5ed113d79c6b6bf86c9e发送0.00001个PP到0xbc7293e0a226ea7b1fe74d8d9260b78a地址上。

发送钱包地址:String address = "0x798c395ba1ed5ed113d79c6b6bf86c9e";

发送钱包地址公钥:String publicKey = "MIGf..中间省略(查看完整找文档末尾)..AQAB";

发送钱包地址私钥:String privateKey = "MIIC..中间省略(查看完整找文档末尾)..REU=";

WalletAddress walletAddress = new WalletAddress();

    walletAddress.setAddress(address);

    walletAddress.setPrivateKey(privateKey);

    walletAddress.setPublicKey(publicKey);

    BigDecimal amount = new BigDecimal(0.000012);

    BigDecimal gas = new BigDecimal(0.0006);

    String contractName = "Paper";

    String contractAddress = "contract0x72dcbef4017b494457969394b3bdd83dPaper";

    String toAddress = "0xbc7293e0a226ea7b1fe74d8d9260b78a";

ContractToContractTradeBody ctctb = TokExchangeHelper.sendTrade(walletAddress, amount, gas, contractAddress, contractName, toAddress);

    ctctb.getTradeNo();

查询区块

基本信息

方法名:TokExchangeHelper.findInBlock(contractName, blockIndex)

方法描述:

用于区块查询,查询某区块内容。

请求参数

名称 类型 是否必须 默认值 备注
contractName string 必须 合约名
blockIndex number 必须 区块号

返回数据

名称 类型 是否必须 默认值 备注
ContractToContractTradeBody List 必须 返回结果
├─ tradeType string 必须 交易编号
├─ tradeNo string 必须 交易哈希值
├─ from string 必须 转出钱包地址
├─ publicKey string 必须 钱包公钥
├─ tradeAmount string 必须 交易数量
├─ to string 必须 到达钱包地址
├─ gas string 必须 交易燃油费
├─ tradeTime string 必须 交易时间
├─ contractNumber string 必须 合约类型
├─ contractAddress string 必须 合约地址
├─ sign string 必须 签名

代码示例

String contractName = "Paper";//纸飞机合约币的合约名称

BigInteger blockIndex = new BigInteger("819228");//查询区块号819228

List<ContractToContractTradeBody> ctctbs = TokExchangeHelper.findInBlock(contractName, blockIndex);

System.out.println(new Gson().toJson(ctctbs));

查询钱包地址TOK数量

基本信息

方法名:TokExchangeHelper.queryAmount(address)

方法描述:

用于查询TOK钱包地址数量余额。

请求参数

名称 类型 是否必须 默认值 备注
address string 必须 查询钱包地址

返回数据

名称 类型 是否必须 默认值 备注
amount string 必须 tok余额。查询错误则返回空字符串””

代码示例

String amount = TokExchangeHelper.queryAmount("0x798c395ba1ed5ed113d79c6b6bf86c9e");

查询钱包地址代币数量

基本信息

方法名:TokExchangeHelper.queryAmount(address, tokenName)

方法描述:

用于查询钱包地址代币数量。

请求参数

名称 类型 是否必须 默认值 备注
address string 必须 查询钱包地址
tokenName string 必须 合约名

返回数据

名称 类型 是否必须 默认值 备注
amount string 必须 为该地址在合约上的余额。查询错误则返回空字符串””

代码示例

String amount = TokExchangeHelper.queryAmount("0x798c395ba1ed5ed113d79c6b6bf86c9e", "Futurestoken");

System.out.println(amount);

报文说明:amount:为该地址在合约Futurestoken 上的余额。查询错误则返回空字符串””

保存钱包到本地

基本信息

方法名:TokExchangeHelper. saveWallet (walletAddressList, path, password);

方法描述:

将生成的钱包保存到本地,可以通过保存的”.bak”文件导入DBK钱包中使用。

请求参数

名称 类型 是否必须 默认值 备注
walletAddressList string 必须 钱包集合
path string 必须 存储路径
password string 必须 设置密码

代码示例

//将钱包地址集合保存到“F://Temp/wa2021.bak”,wa2021.bak文件中,密码为"12345678",后续导入钱包中需要使用到此设置的密码

try {

      List < WalletAddress> was = new ArrayList < WalletAddress>();

      WalletAddress wa0 = createWallet();

      WalletAddress wa1 = createWallet();

      was.add(wa0);

      was.add(wa1);

      TokExchangeHelper.saveWallet(was, "F://Temp/wa2021.bak", "12345678");

} catch (Exception e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

}

报文说明:amount:为该地址在合约Futurestoken 上的余额。查询错误则返回空字符串””

查询钱包地址TOK交易记录

基本信息

方法名:TokExchangeHelper.queryRecords(address);

方法描述:

查询钱包地址TOK交易记录。

请求参数

名称 类型 是否必须 默认值 备注
address string 必须 钱包地址

返回数据

名称 类型 是否必须 默认值 备注
blockIndex string 必须 区块号
tradeNo string 必须 哈希值,交易编号
from string 必须 转出地址
amount string 必须 转账数量
to string 必须 转入地址
gas string 必须 燃油费
tradeTime string 必须 交易时间
confirmNumber string 必须 确认数
amountType string 必须 交易类型

代码示例

List<TradeRecords> trs = TokExchangeHelper.queryRecords(String address);

查询钱包地址Token交易记录

基本信息

方法名:TokExchangeHelper.queryRecords(address, contractName);

方法描述:

查询钱包地址Token交易记录。

请求参数

名称 类型 是否必须 默认值 备注
address string 必须 钱包地址
contractName string 必须 合约名

返回数据

名称 类型 是否必须 默认值 备注
amount string 必须 钱包余额
contractToContractRecords List 必须 返回结果
├─ blockIndex string 必须 区块号
├─ tradeNo string 必须 哈希值,交易编号
├─ from string 必须 转出钱包地址
├─ amount string 必须 转账数量
├─ to string 必须 到达钱包地址
├─ gas string 必须 交易燃油费
├─ tradeTime string 必须 交易时间
├─ confirmNumber string 必须 确认数
├─ amountType string 必须 交易类型
├─ contractName string 必须 合约名

代码示例

List<ContractToContractRecords> ctcs = TokExchangeHelper.queryRecords(String address, String contractName);

查询代币Token价格

基本信息

方法名:TokExchangeHelper.queryCurrency();

方法描述:

用于查询有上交易所代币价格。

返回数据

名称 类型 是否必须 默认值 备注
symbol string 必须 交易代币对名
cnyPrice string 必须 人民币价格

代码示例

List<Currency> cs = TokExchangeHelper.queryCurrency();

查询代币列表

基本信息

方法名:TokExchangeHelper.getContractList();

方法描述:

用于查询代币列表可获取代币的合约地址及合约名。

返回数据

名称 类型 是否必须 默认值 备注
contractName string 必须 合约名
tokenAddress string 必须 合约地址
unit string 必须 币名
createTime string 必须 创建时间

代码示例

List<Contract> cs = TokExchangeHelper.getContractList();

创建代币(合约)

基本信息

方法名:TokExchangeHelper.sendCreateContract(walletAddress, content);

方法描述:

用于创建代币方法

请求参数

名称 类型 是否必须 默认值 备注
WalletAddress object 必须 钱包
├─ Address string 必须 钱包地址
├─ PublicKey string 必须 钱包公钥
├─ PrivateKey string 必须 钱包私钥
content number 必须 合约内容

Content合约内容描述:

String content = "Contract create TokToken extends TokBaseContract(){n" +

      "tokString contractName = Dior;n" +

      "tokInt initializeAmount =500000000;n" +

      "tokString contractUnit =dior;n" +

      "}";

Contract create TokToken extends TokBaseContract(){n" +

      "tokString contractName = Dior;n" +

      "tokInt initializeAmount =500000000;n" +

      "tokString contractUnit =dior;n" +

      "}";

contractName :表示合约名(全称)、initializeAmount :表示数量、contractUnit :表示合约单位,变动的话这3个参数,其余数值都是固定

返回数据

名称 类型 是否必须 默认值 备注
CreateContractTradeBody object 必须
TradeNo string 必须 订单号

代码示例

String address = “0x74c37ca829f7695336b92b6445ad0376”;

String publickKey = “xxxxxxx”;

String privateKey = “xxxxxxx”;

WalletAddress walletAddress = new WalletAddress();//需要的参数

walletAddress.setAddress(address);

walletAddress.setPrivateKey(privateKey);

WalletAddress.setPublicKey(publicKey);

String content = "Contract create TokToken extends TokBaseContract(){n" +

      "tokString contractName = Dior;n" +

      "tokInt initializeAmount =500000000;n" +

      "tokString contractUnit =dior;n" +

      "}";

CreateContractTradeBody result = TokExchangeHelper.sendCreateContract(walletAddress, content);

if(result != null){

      System.out.println(result);

      System.out.println(result.getTradeNo());

}

根据哈希值TradeNo查询交易记录

基本信息

方法名:TokExchangeHelper.queryBlockEntityByHash(TradeNo);

方法描述:

用于哈希值TradeNo查询交易记录(切记不要过于频繁请求,交易有打包区块至少1块的时候才能查询到交易记录,查询调用哈希值查询,请在交易15分钟后请求,过于频繁请求接口将会导致查询被禁用)

请求参数

名称 类型 是否必须 默认值 备注
TradeNo String 必须 哈希值

代码示例

Map<String, Object> map = TokExchangeHelper.queryBlockEntityByHash("tokMsg57ddcbaf43a013144d064fd10d69f3eb10a1e0de");

 System.out.println(new Gson().toJson(map));

读取加密后的钱包

基本信息

方法名:TokExchangeHelper.decryptWallet(path, password);

方法描述:

读取加密后的.bak文件,可读取DBK导出加密钱包

请求参数

名称 类型 是否必须 默认值 备注
path String 必须 钱包存储路径
Password String 必须 导出密码

代码示例

List<OutLineWalletAddress> owas =TokExchangeHelper.decryptWallet(String path, String password);//读取加密后的钱包

读取钱包文本keystore

基本信息

方法名:TokExchangeHelper.decryptWalletFromTxt(text, password);

方法描述:

读取钱包文本keystore,可读取DBK导出的keystore

请求参数

名称 类型 是否必须 默认值 备注
text String 必须 keystore文本
Password String 必须 导出密码

代码示例

TokExchangeHelper.decryptWalletFromTxt(text, password);//读取文本keystore

接口调用

查询当前最高区块高度

基本信息

接口名:http://api.nebulaworld.cc/block/data/queryMaxBlockIndex

method:POST

返回数据

名称 类型 是否必须 默认值 备注
blockIndex string 必须 最高最新区块号

Go语言方式调用

配置tok包

基本信息

将目录中的tok目录复制到你的gopath目录的src目录下,执行install命令安装 D:\Go>go install tok

参考目录下的test.go引入tok包

import (

      "encoding/json"

      "fmt"

      "tok"

)

生成TOK钱包

基本信息

方法名:tok.CreateWalletAddress ()

方法描述:

生成TOK钱包地址,包含钱包地址、私钥、公钥等。

返回数据

名称 类型 是否必须 默认值 备注
WalletAddress object 必须 返回结果
├─ Address string 必须 钱包地址
├─ PublicKey string 必须 钱包公钥
├─ PrivateKey string 必须 钱包私钥

发送TOK交易

基本信息

方法名:tok.SendTrade (wallet,amount,gas,contractAddress,contractNumber, toAddress)

方法描述:

用于发送交易,将此钱包某合约币数量转移到另一个钱包地址。

请求参数

名称 类型 是否必须 默认值 备注
wallet object 必须 钱包
amount number 必须 交易金额
gas number 必须 交易燃油费
toAddress string 必须 转账到达地址
contractAddress string 必须 合约地址
contractNumber string 必须 合约名

代码示例

从地址0x798c395ba1ed5ed113d79c6b6bf86c9e发送0.00001个PP到0xbc7293e0a226ea7b1fe74d8d9260b78a地址上。

wa.Address = "0x798c395ba1ed5ed113d79c6b6bf86c9e"

wa.PrivateKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAIqFGCMEeDHgx"

wa.PublicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCKhRgjBHgx4McXWgosrPfU1f"

tok.SendTrade(wa, 0.00001, 0.0006, "contract0x72dcbef4017b494457969394b3bdd83dPaper", "Paper", "0xbc7293e0a226ea7b1fe74d8d9260b78a")

发送代币交易

基本信息

方法名:tok.SendTokenTrade(wa WalletAddress, amount float64, gas float64, contractAddress string, contractName string, toAddress string)

方法描述:

用于代币交易,将数量由一个钱包地址转移到另一个钱包地址。

请求参数

名称 类型 是否必须 默认值 备注
WalletAddress object 必须 钱包
├─ Address string 必须 钱包地址
├─ PublicKey string 必须 钱包公钥
├─ PrivateKey string 必须 钱包私钥
amount number 必须 交易金额
contractAddress string 必须 合约地址
contractName string 必须 合约名称
toAddress string 必须 转账到达地址

返回数据

名称 类型 是否必须 默认值 备注
ContractToContractTradeBody object 必须 返回结果

代码示例

var ctctb tok.ContractToContractTradeBody = tok.SendTokenTrade(wa WalletAddress, amount float64, gas float64, contractAddress string, contractName string, toAddress string)

获取TOK余额

基本信息

方法名:tok.QueryAmount(address string)

方法描述:

用于查询TOK钱包地址数量余额。

请求参数

名称 类型 是否必须 默认值 备注
address string 必须 查询钱包地址

返回数据

名称 类型 是否必须 默认值 备注
amount string 必须 tok余额。查询错误则返回空字符串””

代码示例

var tokAmount float64 = tok.QueryAmount(address string)

获取Token余额

基本信息

方法名:tok.QueryTokenAmount(address string, contractName string)

方法描述:

用于查询钱包地址代币数量。

请求参数

名称 类型 是否必须 默认值 备注
address string 必须 查询钱包地址
tokenName string 必须 合约名

返回数据

名称 类型 是否必须 默认值 备注
amount string 必须 为该地址在合约上的余额。查询错误则返回空字符串””

代码示例

var tokenAmount float64 = tok.QueryTokenAmount(address string, contractName string)

获取TOK交易记录

基本信息

方法名:tok.QueryRecords(address string)

方法描述:

查询钱包地址TOK交易记录。

请求参数

名称 类型 是否必须 默认值 备注
address string 必须 钱包地址

返回数据

名称 类型 是否必须 默认值 备注
blockIndex string 必须 区块号
tradeNo string 必须 哈希值,交易编号
from string 必须 转出地址
amount string 必须 转账数量
to string 必须 转入地址
gas string 必须 燃油费
tradeTime string 必须 交易时间
confirmNumber string 必须 确认数
amountType string 必须 交易类型

代码示例

var trs []tok.TradeRecords = tok.QueryRecords(address string)

获取Token交易记录

基本信息

方法名:tok.QueryTokenRecords(address string, contractName string)

方法描述:

查询钱包地址Token交易记录。

请求参数

名称 类型 是否必须 默认值 备注
address string 必须 钱包地址
contractName string 必须 合约名

返回数据

名称 类型 是否必须 默认值 备注
amount string 必须 钱包余额
contractToContractRecords List 必须 返回结果
├─ blockIndex string 必须 区块号
├─ tradeNo string 必须 哈希值,交易编号
├─ from string 必须 转出钱包地址
├─ amount string 必须 转账数量
├─ to string 必须 到达钱包地址
├─ gas string 必须 交易燃油费
├─ tradeTime string 必须 交易时间
├─ confirmNumber string 必须 确认数
├─ amountType string 必须 交易类型
├─ contractName string 必须 合约名

代码示例

var trs []tok.ContractToContractRecords = tok.QueryTokenRecords(address string, contractName string)

查询区块

基本信息

方法名:tok.FindInBlock (contractNumber,blockNumber)

方法描述:

从区块链上获取指定区块上特定代币的所有交易。

请求参数

名称 类型 是否必须 默认值 备注
blockNumber string 必须 区块号
contractNumber string 必须 合约名

返回数据

名称 类型 是否必须 默认值 备注
result object 必须 返回结果
├─ tradeType string 必须 交易类型
├─ tradeNo string 必须 订单号
├─ from string 必须 转出地址
├─ publicKey string 必须 公钥
├─ tradeAmount string 必须 交易数量
├─ gas string 必须 燃油费
├─ contractNumber string 必须 合约名
├─ contractAddress string 必须 合约地址
├─ sign string 必须 签名

代码示例

tok.FindInBlock("Paper", "900699") // Paper:纸飞机合约币的合约名称; 900699:从900699高度的区块里面筛选

fmt.Println(ctctbs) //返回该代币的所有交易的数组

交易所钱包接入

部署

基本信息

在平台钱包部署的同台服务器上,安装MySQL5.7

用户名: root

设置密码:[email protected]#QWEasdzxc

并创建数据库tokenbourse。

执行初始化建表语句initDB.sql。

tok-bourse2-api.jar提供ParamsHelper类用于交易所平台参数封装。

钱包配置

基本信息

压缩包解压后。配置文件:bourse.config

1、配置平台接收交易成功提示的URL

URL: tok.bourse.noticeUrl

当交易所在的区块被成功打包,并达到6个确认,表示这笔交易订单正式完成,这是平台钱包,将通过配置的URL通知平台(钱包只负责通知,并会多次通知保证不会因为网络问题导致某一次通知失败而没有通知到位,平台若收到多次通知只需处理一次即可)。

平台需提供该接收的接口:

URL: 钱包使用者配置。

请求方式: POST

请求报文:

{

      "trades": [

            “订单号1”,”订单号2”,….,”订单号N”

      ],

      "recharges": [{

            "bourseUserId": "交易所的用户唯一标识",

            "userAddress": "用户在交易所的真实地址",

            "amount": "6000.00", //该地址收到6000个币

            "contractName": "合约名称"

      }]

}

返回报文:无

2、报文传输加密密钥tok.bourse.secretkey

使用AES加密。

3、ip地址绑定tok.bourse.ip(暂时不用)

绑定只有配置的ip,才能访问该系统(可配置多个,也可以不配置)。

tok.bourse.ip=localhost0,localhsot1,…,localhostN

Token钱包地址接口

钱包地址新增接口

URL: http://ip:8081/bourse2-wallet/bourse/addwallet

请求方式: POST

请求报文:无

返回报文:

{

      "code": "0",

      "content": "Success",

      "address": "0x4315b54dcf39b87ca62da1b68717f1cd"

}

返回报文说明:

code: 0为交易正常,非0交易不正常

content:交易说明

address:新增的钱包地址

钱包地址查询接口

URL: http://ip:8081/bourse2-wallet/bourse/query

请求方式: POST

请求报文:无

返回报文:

{

      "code": "0",

      "content": "Success",

      "adds": ["0x4315b54dcf39b87ca62da1b68717f1cd"]

}

返回报文说明:

code: 0为交易正常,非0交易不正常

content:交易说明

adds:新增的钱包地址

钱包地址备份接口

URL: http://localhost:8081/bourse2-wallet/bourse/download

请求方式: GET

请求报文(例子):

{"password":"12345678"}

String p = ParamsHelper.genDownloadParams(password, secretkey);

请求报文说明:

password:下载后的钱包的备份加密密码(不同于报文的加密密码)。钱包导入时需要输入该备份密码。

secretkey:配置的密钥

返回报文:无

交易所平台用户地址接口

在钱包中添加交易所用户编号

URL:http://localhost:8081/bourse2-wallet/bourse/addBourseAddress?p=XXXXX

请求方式: POST

请求报文(例子):

p=ParamsHelper. genBourseAddressAddParams (bourseUserId, secretkey);

请求报文说明:

bourseUserId:平台用户唯一标识,长度在0<x<=32之间

secretkey:配置的密钥

返回报文:

{

      "code": "0",

      "content": "Success",

      "address": "0xdb793349a0c5cac83b0e07965ad41b81user00000000000000000003"

}

返回报文说明:

code: 0为交易正常,非0交易不正常

content:交易说明

address:新增的交易所平台的钱包地址,(用户可以通过转账来充值的地址)

查询具体用户的交易所钱包地址

URL:http://localhost:8081/bourse2-wallet/bourse/queryBaByUserId?p=xxx

请求方式: POST

请求报文(例子):

p=ParamsHelper.genBourseAddressQueryParams("user00000000000000000003", secretkey);

请求报文说明:

bourseUserId:平台用户唯一标识,长度在0<x<=32之间

secretkey:配置的密钥

返回报文:

{

      "code": "0",

      "content": "Success",

      "bourseAddress": {

            "id": 5,

            "bourseUserId": "user00000000000000000003",

            "bourseAddress": "0xdb793349a0c5cac83b0e07965ad41b81user00000000000000000003",

            "createTime": "2018-09-16 15:24:21.0"

      }

}

返回报文说明:

code: 0为交易正常,非0交易不正常

content:交易说明

bourseAddress:交易所平台的钱包地址,(用户可以通过转账来充值的地址)

查询所有用户的交易所钱包地址

URL:http://localhost:8081/bourse2-wallet/bourse/queryBourseAddress

请求方式: POST

请求报文:无

返回报文:

{

      "code": "0",

      "content": "Success",

      "bourseAddress": [

      {

            "id": 2,

            "bourseUserId": "user00000000000000000001",

            "bourseAddress": "0xf43264b68ef7bba6ab8e1bd0e412ca4e3e23c336",

            "createTime": "2018-09-16 14:46:00.0"

      },

      {

            "id": 4,

            "bourseUserId": "user00000000000000000002",

            "bourseAddress": "0xdb793349a0c5cac83b0e07965ad41b81user00000000000000000002",

            "createTime": "2018-09-16 15:19:11.0",

      },

      {

            "id": 5,

            "bourseUserId": "user00000000000000000003",

            "bourseAddress": "0xdb793349a0c5cac83b0e07965ad41b81user00000000000000000003",

            ""createTime": "2018-09-16 15:24:21.0"

      }]

}

返回报文说明:

code: 0为交易正常,非0交易不正常

content:交易说明

bourseAddress:交易所平台的钱包地址,(用户可以通过转账来充值的地址)

转账交易接口

基本信息

用户提现,交易所平台是用这个接口。把钱从交易所总账户打到用户账户。

转账接口

URL:http://localhost:8081/bourse2-wallet/bourse/transfer

请求方式: POST

请求报文:

String p = ParamsHelper.genTradeParams(amount, gas, toUserAddress, bourseUserId, contractAddress, contractName, secretkey);

请请求报文说明:

amount:币值

gas:燃油费

toUserAddress:用户提现的地址

bourseUserId:交易所平台地址

contractAddress:高级合约地址

contractName:高级合约名称

secretkey:配置的密钥

返回报文:

{

      "code": "0",

      "content": "已接收交易,并发送至区块链。",

      "tradeNo": "tokMsgab66d73880c1710cb793a5cae97cc4484a655a25"

}

返回报文说明:

code: 0为交易正常,非0交易不正常

content:交易说明

tradeNo:交易哈希值。

第三方系统对接

部署

基本信息

在平台钱包部署的同台服务器上,安装MySQL5.7

用户名: root

设置密码:[email protected]#QWEasdzxc

并创建数据库tokenbourse。

执行初始化建表语句initDB.sql(在安装后的config目录下)。

钱包配置

基本信息

压缩包解压后。配置文件:bourse.config

1、配置平台接收交易成功提示的URL

URL: tok.bourse.noticeUrl

当交易所在的区块被成功打包,并达到6个确认,表示这笔交易订单正式完成,这是平台钱包,将通过配置的URL通知平台(钱包只负责通知,并会多次通知保证不会因为网络问题导致某一次通知失败而没有通知到位,平台若收到多次通知只需处理一次即可)。

平台需提供该接收的接口:

URL: 钱包使用者配置。

请求方式: POST

请求报文:

{

      "trades": [

            “订单号1”,”订单号2”,….,”订单号N”

      ],

      "recharges": [{

            "userAddress":"用户地址1",

            "amount":"6000.000000",

            "contractName" : "代币名称"

      },

      {

            "userAddress":"用户地址N",

            "amount":"6001.000000",

            "contractName" : "代币名称"

      }]

}

报文说明:

trade:订单号列表(由平台自己发起的交易)

recharge:外部充值,地址金额列表

userAddress:用户地址

amount:该地址收到的币值

返回报文:无

2、配置平台地址收到代币成功提示的URL

3、报文传输加密密钥tok.bourse.secretkey

使用AES加密。

转账交易接口

基本信息

接口说明:钱包内任意两个地址之间的转账(例子:a:主地址->用户,可实现提现操作。b:用户->主地址,可实现归集操作)

URL: http://ip:8081/bourse-wallet/bourse/transfer

请求方式: POST

请求报文(例子):

content={

      "from":"0x1c9ae94a3a61566785646e619de506b1",

      "to":"0xbfdd75ca9ae6c100e1c3104a228ac827",

      "contractAddress":"contract0x7873271d36117ce76c6888dca7fc85d6TAAa",

      "contractName":"TAAa",

      "amount":"10.00",

      "gas":"0.000600"

}

password=tok.bourse.secretkey。//这里的加密密码和配置的密码一致

String p = EncryptUtil.encryptAES(content, password);//使用AES加密,把报文加密成字符串。

p=29528821bf4a10c053baa341edac859baa062030943448d252a82764a0d878ee5b356ba5bd17435c18c33b1aaa838b075b3fa276a907644ef854efc20ed215b8871b4ea6151bb0d421b1e89662cae79871bf3c232e9949e840f24f41c440a9812b019c29961ac3233ce3efa2d74055b57d711305eb6e3f1b00aa8c19cbd5b918f006febb5d1490c9f7505354cfee7151777fb882ac766078936e7891c98e7a0d4ef012ce89982baf2de76f9729e4b7b7d93933dd853691d71b6d87dd49ddf66833f66b4845cc528897809a0c508ec40009a6739111f9931105bd5346a1f8e68f

报文说明:

from:转出地址

to:转入地址

amount: 转账币值

gas:燃油费>=0.0006

contractName: 合约名字

contractAddress: 合约地址

java测试类例子:

String contractAddress = "contract0x7873271d36117ce76c6888dca7fc85d6TAAa";

BourseTradeReqVobtr = newBourseTradeReqVo();

btr.setAmount("10.00");

btr.setContractName("TAAa");

btr.setFrom("0x1c9ae94a3a61566785646e619de506b1");

btr.setGas("0.000600");

btr.setTo("0xbfdd75ca9ae6c100e1c3104a228ac827");

String password = "1234567898848949";

String content = new Gson().toJson(btr);

System.out.println(content);

String json = EncryptUtil.encryptAES(content, password);

System.out.println(json);

String url = "http://localhost:8081/bourse-wallet/bourse/transfer?p=" + json;

System.out.println(url);

钱包地址接口

钱包地址(用户地址)新增接口

URL: URL: http://ip:8081/bourse-wallet/bourse/addwallett

请求方式: POST

请求报文:无

返回报文:

{

      "code": "0",

      "content": "Success",

      "address": "0x4315b54dcf39b87ca62da1b68717f1cd"

}

返回报文说明:

code: 0为交易正常,非0交易不正常

address:新增的钱包地址

钱包主地址(总账户地址)新增接口

URL: http://ip:8081/bourse-wallet/bourse/addMainWallet

请求方式: POST

请求报文:无

返回报文:

{

      "code": "0",

      "content": "Success",

      "address": "0x4315b54dcf39b87ca62da1b68717f1cd"

}

返回报文说明:

code: 0为交易正常,非0交易不正常

address:新增的钱包地址

钱包主地址(总账户地址)新增接口

URL: http://ip:8081/bourse-wallet/bourse/query

请求方式: POST

请求报文:无

返回报文:

{

      "code": "0",

      "content": "Success",

      "adds":[

            "0x1c9ae94a3a61566785646e619de506b1",

            "0x4315b54dcf39b87ca62da1b68717f1cd"

      ]

}

返回报文说明:

code: 0为交易正常,非0交易不正常

adds:所有的地址列表

钱包地址备份接口

URL: http://ip:8081/bourse-wallet/bourse/download

请求方式: GET

请求报文(例子):

{"password":"12345678"}

http://localhost:8081/bourse-wallet/bourse/download?p=1ef6dd51637762e3a2d7020c415b3549cbc79e421eb7c74963c2282a8cb88cc1

请求报文说明:

password:下载后的钱包的备份加密密码(不同于报文的加密密码)。钱包导入时需要输入该备份密码。

NFT对接

配置

在创建的工程中新建 libs 文件夹,将解压后的 jar 文件拷贝到 libs 的根目录下。 请去相关下载中下载相对应的jar包。

见lib目录,如图所示:

直接引入jar包

使用maven引入

1、首先将其安装到本地。

安装方法如下:

mvn install:install-file -DgroupId=com.tok -DartifactId=tok-official-exchange-api -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar -Dfile=tok-official-exchange-api-0.0.1-SNAPSHOT.jar

如图所示:

2、安装完后需引入相关配置

相关配置如下:

<dependency>

    <groupId>com.tok </groupId>

    <artifactId>tok-official-exchange-api </artifactId>

    <version>0.0.1-SNAPSHOT </version>

</dependency>

创建NFT

基本信息

请求参数:

String content: 内容描述

String contractName: NFT名称

String unit: NFT名称缩写

String tradeType: type类型 分为7和8,分别为数据类型和货币类型

int count: NFT数量(类型为8货币类型时,需填写NFT数量)

String dataType: NFT分类(具体分类类型由接口返回)填数字

String suffix: NFT文件后缀

TradeBody tradeBody:tok交易实体,生成方式可参考方法调用中的“生成TOK钱包”与“发送TOK交易”如:TradeBody tb = TokExchangeHelper.sendTrade(walletAddress, amount, gas, toAddress);

返回报文:

{

      "code": "200",

      "msg": "发送成功",

      "content": {

            ""enterpriseName": "testNft",

            "dataType": "1",

            "appId": "yyaxkgbvfx1536743",

            "appId": "yyaxkgbvfx1536743",

            "secretKey": "*2iRR6$Hb8Oo95GAJ$9yHLIm9q3EKS7S",

            "appKey": "z0kIp7dWvN",

      }

}

返回报文说明:

需保存返回的 appId,appkey,secretKey 这三个值在后续接口请求中需要用到

代码示例

OtherNftVo o = new OtherNftVo();

      o.setContent("测试NFT");

      o.setContractName("testNft");

      o.setCount(1);

      File file = new File("E://123123.jpg");

      int len = file.getName().split("\\.").length;

      String s = file.getName().split("\\.")[len - 1];

      o.setSuffix(s);

      TradeBody tb = new TradeBody();

      tb.setFrom(MINING_ADDRESS);

      tb.setTradeAmount(DataUtils.getAmountString(new BigDecimal("0.02")));

      tb.setGas(DataUtils.getAmountString(new BigDecimal("0.006")));

      tb.setTradeTime(DataUtils.getCurrentTime());

      tb.setTo(INCOME_ADDRESS);

      tb.setFromLeft(DataUtils.getAmountString(BigDecimal.ZERO));

      tb.setContractNumber(HiteBassConstant.TOK_CONTRACT_NUMBER);

      tb.setPublicKey(PUB);

      tb.setTradeLimit("");

      String pri=PRI;

      String sign;

      try {

            sign=RSAUtils.sign(tb.genString().getBytes(), pri);

            tb.setSign(sign);

      } catch (Exception e) {

            System.out.println("失败");

      }

      String tradeNo = genTradeNo(tb);

      tb.setTradeNo(tradeNo);

      String json = new Gson().toJson(tb, TradeBody.class);

      o.setTradeBody(json);

      o.setDataType("1");

      o.setTradeType("7");

      o.setUnit("测试NFT");

      DataHelper< OtherNftVo> da = new DataHelper< OtherNftVo>(); da.send2(o, file);

查询NFT分类

基本信息

URL: http://nft.hitebaas.cn:8000/baas-platform/queryClassify

请求方式: POST

请求参数:无

返回报文:

{

      "code": "0",

      "msg": "success",

      "content": [

            {

            "type": "1",

            "typename": "游戏"

            },

            {

             "type": "2",

             "typename": "艺术"

             }

      ]

}

返回报文说明:

type: 分类标识(创建接口的DataType填此值)

Typename:类型说明

根据类别查询NFT

基本信息

URL:http://nft.hitebaas.cn:8000/baas-platform/queryEnterpriseByType

请求方式: POST

请求参数:

{

      "type":"1",

      "pb":{

            "index":0,

            "size":10

      }

}

String type : 分类标识

PaperBean pb:分页实体:

      页码0 开始 int index

      每页几条 int size

根据钱包地址查询创建所有的NFT

基本信息

URL:http://nft.hitebaas.cn:8000/baas-platform/queryAllNftAddress

请求方式: POST

请求参数:

address : 钱包实体

返回值:

redisNft :货币类型NFT

dataNft : 数据类型NFT

根据钱包地址查询创建所有的NFT

基本信息

URL:http://nft.hitebaas.cn:8000/baas-platform/queryNftDataAddress

请求方式: POST

请求参数:

address : 钱包实体

返回值:

String addr: 钱包地址

String tradeType: NFT类型

List< NftTrade>nftTrade:NFT列表

查询钱包创建的货币类型NFT

基本信息

URL:http://nft.hitebaas.cn:8000/baas-platform/queryNftAddress

请求方式: POST

请求参数:

address : 钱包实体

返回值:

String addr: 钱包地址

String tradeType: NFT类型

List< NftTrade>nftTrade:NFT列表

NFT转账(交易)

基本信息

请求参数:

String content:放TradeJson实体的json字符串

String tradeType: 交易类型 转账交易为13

TradeBody tradeBody ;tok交易实体,生成方式可参考方法调用中的“生成TOK钱包”与“发送TOK交易”如: TradeBody tb = TokExchangeHelper.sendTrade(walletAddress, amount, gas, toAddress);

返回报文:

{

      "code": "200",

      "msg": "发送成功",

}

返回报文说明:

需保存返回的 appId,appkey,secretKey 这三个值在后续接口请求中需要用到

代码示例

TradeBody tb = new TradeBody();

      tb.setFrom(MINING_ADDRESS);

      tb.setTradeAmount(DataUtils.getAmountString(new BigDecimal("0.02")));

      tb.setGas(DataUtils.getAmountString(new BigDecimal("0.006")));

      tb.setTradeTime(DataUtils.getCurrentTime());

      tb.setTo(INCOME_ADDRESS);

      tb.setFromLeft(DataUtils.getAmountString(BigDecimal.ZERO));

      tb.setContractNumber(HiteBassConstant.TOK_CONTRACT_NUMBER);

      tb.setPublicKey(PUB);

      tb.setTradeLimit("");

      String pri=PRI;

      String sign;

      try {

            sign=RSAUtils.sign(tb.genString().getBytes(), pri);

            tb.setSign(sign);

      } catch (Exception e) {

            System.out.println("失败");

      }

//生产交易编号

      String tradeNo = genTradeNo(tb);

      tb.setTradeNo(tradeNo);

      String json = new Gson().toJson(tb, TradeBody.class);

      NftTradeBody nft = new NftTradeBody();

      nft.setFrom(COMMON_ADDRESS);

      nft.setTo(INCOME_ADDRESS);

      nft.setContractName("testNft");

      nft.setIdentifier("12313123123");

      nft.setGas("0.001");

      nft.setType("1");

      nft.setImgUrl("123123.jpg");

      String nftjson=new Gson().toJson(nft);

      TradeJson tj = new TradeJson();

      tj.setContent(nftjson);

      tj.setTradeBody(tb);

      tj.setTradeType("7"); //7代表数据类型,8是货币类型

      tj.setTradeName(nft.getContractName());

      String no = "tokMsg" + EncryptUtil.encryptSHA1(tj.toString());

      tj.setOrderNo(no);

      DataHelper<TradeJson> da = new DataHelper<TradeJson>();

      da.send(tj,"yyaxkgbvfx1536743","z0kIp7dWvN", "*2iRR6$Hb8Oo95GAJ$9yHLIm9q3EKS7S", null);

其中请求方法参数为send(交易实体,appid,appkey,secretKey ,null) Appid,appkey,secretKey 三个值是创建时返回的这个NFT所有者的标识,在创建接口返回后保存在本地 ,交易请求时带过来

查询指定NFT信息

基本信息

URL:http://nft.hitebaas.cn:8000/baas-platform/queryEnterprise

请求方式: POST

请求参数:

appId : 创建NFT时返回的NFT标识

返回报文:

{

      "code": "200",

       "msg": "success",

      "content": {

             "enterpriseName": "testNft", //NFT名称

            "dataType": "1", //NFT分类标识

            "appId": "yyaxkgbvfx1536743",

            "secretKey": "*2iRR6$Hb8Oo95GAJ$9yHLIm9q3EKS7S",

            "appKey": "z0kIp7dWvN",

            "logo": "NFT_0xa6babdc504d042446f63380a77cf9a26_1641451536149.jpg",

            "create_time": "2022-01-06 14:45:36.0",

            "tradeType": "7" //NFT类型(货币或者数据)

      }

}

查询所有数据类型NFT

基本信息

URL:http://nft.hitebaas.cn:8000/baas-platform/queryNftDataEnterprises

请求方式: POST

请求参数:

PaperBean 实体 里面由index和size组成

返回参数:

List <NftTrade> nftTrade : NFT列表

本地节点接入

部署

基本信息

把启动脚本放在jar文件同一目录

执行sh start.sh就可以

开放8002端口

生成TOK钱包

基本信息

URL:http://ip:8002/tok-api/api/createWalletAddress

请求方式:POST

方法描述:

生成TOK钱包地址,包含钱包地址、私钥、公钥等。

返回数据

名称 类型 是否必须 默认值 备注
walletAddress object 必须 返回结果
├─ address string 必须 钱包地址
├─ publicKey string 必须 钱包公钥
├─ privateKey string 必须 钱包私钥

发送TOK交易

基本信息

URL:http://ip:8002/tok-api/api/sendTokTrade

请求方式:POST

方法描述:

用于发送交易,将数量由一个钱包地址转移到另一个钱包地址。

请求参数

名称 类型 是否必须 默认值 备注
walletAddress object 必须 钱包
├─ address string 必须 钱包地址
├─ publicKey string 必须 钱包公钥
├─ privateKey string 必须 钱包私钥
amount number 必须 交易金额
gas number 必须 交易燃油费
toAddress string 必须 转账到达地址

提示:gas的区间在0.008~0.01之间,否则交易会失败的。

注:请求对象为json字符串发送

返回数据

名称 类型 是否必须 默认值 备注
TradeBody object 必须 返回结果

代码示例

{

      "walletAddress": {

            "address": "0x798c395ba1ed5ed113d79c6b6bf86c9e",

            "privateKey": "MIICASDASD123123ASDAREUu003d...",

            "publicKey": "MIGfASDASDASDSDAD1231.AQAB..."

      },

      "amount": "0.00012",

      "gas": "0.0006",

      "toAddress": "0xbc7293e0a226ea7b1fe74d8d9260b78a"

}

发送代币交易(合约)

基本信息

URL:http://ip:8002/tok-api/api/sendContractTrade

方法描述:

用于合约进行交易,将数量由一个钱包地址转移到另一个钱包地址。

请求参数

名称 类型 是否必须 默认值 备注
walletAddress object 必须 钱包
├─ address string 必须 钱包地址
├─ publicKey string 必须 钱包公钥
├─ privateKey string 必须 钱包私钥
amount number 必须 交易金额
gas number 必须 交易燃油费
toAddress string 必须 转账到达地址
contractAddress string 必须 合约地址
contractNumber string 必须 合约名

提示:gas的区间在0.008~0.01之间,否则交易会失败的。

注:请求对象为json字符串发送

返回数据

名称 类型 是否必须 默认值 备注
contractToContractTradeBody object 必须 返回结果

代码示例

{

      "walletAddress": {

            "address": "0x798c395ba1ed5ed113d79c6b6bf86c9e",

            "privateKey": "MIICASDASD123123ASDAREUu003d...",

            "publicKey": "MIGfASDASDASDSDAD1231.AQAB..."

      },

      "amount": "0.00012",

      "gas": "0.0006",

      "toAddress": "0xbc7293e0a226ea7b1fe74d8d9260b78a",

      “contractName”:”contract0x72dcbef4017b494457969394b3bdd83dPaper”,

      “contractName”:”Paper”

}

查询区块

基本信息

URL:http://ip:8002/tok-api/api/findInBlock

方法描述:

用于区块查询,查询某区块内容。

请求参数

名称 类型 是否必须 默认值 备注
contractName object 必须 合约名
blockIndex number 必须 区块号

提示:gas的区间在0.008~0.01之间,否则交易会失败的。

注:请求对象为json字符串发送

返回数据

名称 类型 是否必须 默认值 备注
contractToContractTradeBody object 必须 返回结果
├─ tradeType string 必须 交易编号
├─ tradeNo string 必须 交易哈希值
├─ from string 必须 转出钱包地址
├─ publicKey string 必须 钱包公钥
├─ tradeAmount string 必须 交易数量
├─ to string 必须 到达钱包地址
├─ gas string 必须 交易燃油费
├─ tradeTime string 必须 交易时间
├─  contractNumber string 必须 合约类型
├─ contractAddress string 必须 合约地址
├─ sign string 必须 签名

代码示例

{

      "contractName":"0xa34e699ff23b6286d9bc6010211b2da0",

      "blockIndex":"2473168"

}

查询钱包地址TOK数量

基本信息

URL:http://ip:8002/tok-api/api/queryAmount

请求方式:POST

方法描述:

用于查询TOK钱包地址数量余额

请求参数

名称 类型 是否必须 默认值 备注
address string 必须 查询钱包地址

返回数据

名称 类型 是否必须 默认值 备注
amount string 必须 tok余额。查询错误则返回空字符串””

代码示例

      "address":"0xa34e699ff23b6286d9bc6010211b2da0"

查询钱包地址代币数量

基本信息

URL:http://ip:8002/tok-api/api/queryAddrAmount

请求方式:POST

方法描述:

用于查询钱包地址代币数量。

请求参数

名称 类型 是否必须 默认值 备注
address string 必须 查询钱包地址
tokenName string 必须 合约名

返回数据

名称 类型 是否必须 默认值 备注
amount string 必须 为该地址在合约上的余额。查询错误则返回空字符串””

代码示例

{

      "address":"0xa34e699ff23b6286d9bc6010211b2da0",

      "tokenName":"CurrencyToken"

}

保存钱包到本地

基本信息

URL:http://ip:8002/tok-api/api/saveWallet

方法描述:

将生成的钱包保存到本地,可以通过保存的”.bak”文件导入DBK钱包中使用

//将钱包地址集合保存到“F://Temp/wa2021.bak”,wa2021.bak文件中,密码为"12345678",后续导入钱包中需要使用到此设置的密码

请求参数

名称 类型 是否必须 默认值 备注
walletAddressList List 必须 钱包集合
path string 必须 存储路径
password string 必须 设置密码

代码示例

{

      "walletAddressList": [{

            "address": "0x798c395ba1ed5ed113d79c6b6bf86c9e",

            "privateKey": "MIICASDASD123123ASDAREUu003d...",

            "publicKey": "MIGfASDASDASDSDAD1231.AQAB...",

      }],

      "path": "F://Temp/wa2021.bak",

      "password": "12345678"

}

查询钱包地址TOK交易记录

基本信息

URL:http://ip:8002/tok-api/api/queryTokRecords

方法描述:

用于查询钱包TOK交易记录

请求参数

名称 类型 是否必须 默认值 备注
address string 必须 钱包地址

返回数据

名称 类型 是否必须 默认值 备注
blockIndex string 必须 区块号
tradeNo string 必须 哈希值,交易编号
from string 必须 转出地址
amount string 必须 转账数量
to string 必须 转入地址
gas string 必须 燃油费
tradeTime string 必须 交易时间
confirmNumber string 必须 确认数
amountType string 必须 交易类型

代码示例

      "address":"0xa34e699ff23b6286d9bc6010211b2da0"

查询钱包地址Token交易记录

基本信息

URL:http://ip:8002/tok-api/api/queryTokoenRecords

方法描述:

查询钱包地址Token交易记录。

请求参数

名称 类型 是否必须 默认值 备注
address string 必须 钱包地址
contractName string 必须 合约名

返回数据

名称 类型 是否必须 默认值 备注
amount string 必须 钱包余额
contractToContractRecords List 必须 返回结果
├─ blockIndex string 必须 区块号
├─ tradeNo string 必须 哈希值,交易编号
├─ from string 必须 转出钱包地址
├─ amount string 必须 转账数量
├─ contractName string 必须 合约名
├─ to string 必须 到达钱包地址
├─ gas string 必须 交易燃油费
├─ tradeTime string 必须 交易时间
├─ confirmNumber string 必须 确认数
├─ amountType string 必须 交易类型

代码示例

{

      "address":"0xa34e699ff23b6286d9bc6010211b2da0",

      "contractName":"CurrencyToken"

}

查询代币列表

基本信息

URL:http://ip:8002/tok-api/api/getContractList

请求方式:POST

方法描述:

用于查询代币列表可获取代币的合约地址及合约名。

返回数据

名称 类型 是否必须 默认值 备注
contractName string 必须 合约名
tokenAddress string 必须 合约地址
unit string 必须 币名
createTime string 必须 创建时间

根据哈希值TradeNo查询交易记录

基本信息

URL:http://ip:8002/tok-api/api/queryBlockEntityByHash

请求方式:POST

方法描述:

用于哈希值TradeNo查询交易记录(切记不要过于频繁请求,交易有打包区块至少1块的时候才能查询到交易记录,查询调用哈希值查询,请在交易15分钟后请求,过于频繁请求接口将会导致查询被禁用)

请求参数

名称 类型 是否必须 默认值 备注
tradeNo string 必须 哈希值

代码示例

      "tradeNo":"tokMsg57ddcbaf43a013144d064fd10d69f3eb10a1e0de"

读取加密后的钱包

基本信息

URL:http://ip:8002/tok-api/api/decryptWallet

请求方式:POST

方法描述:

读取加密后的.bak文件,可读取DBK导出加密钱包

请求参数

名称 类型 是否必须 默认值 备注
path string 必须 钱包存储路径
password string 必须 导出密码

代码示例

{

      "path":"F://Temp/wa2021.bak",

      "password":"1234567"

}

读取钱包文本keystore

基本信息

URL:http://ip:8002/tok-api/api/decryptWalletFromTxt

请求方式:POST

方法描述:

读取钱包文本keystore,可读取DBK导出的keystore

请求参数

名称 类型 是否必须 默认值 备注
text string 必须 keystore文本
password string 必须 导出密码

代码示例

{

      "text":"1231231231asdasdasdq2eqwe...",

      "password":"1234567"

}

相关下载

TOK接入jar包(tok-official-exchange-api-0.0.1-SNAPSHOT.jar)

包括:生成TOK钱包、发送交易、查询区块、查询钱包数量等。

下载

TOK接入go语言包

包括:生成TOK钱包、发送交易、区块查询等。

下载

交易所钱包接入包

包括:SQL文件、BAK文件、JAR包、使用说明等。

下载

第三方系统接口包

包括:SQL文件、JAR文件、使用说明等。

下载

NFT接入包(hitebaas-api-0.0.1-SNAPSHOT.rar)

包括:创建NFT、查询NFT分类、NFT转账(交易)等。

下载

本地节点接入jar包

包括:生成TOK钱包、发送交易、查询区块等。

下载

本地节点部署启动脚本

包括:start.sh启动脚本

下载

PHP调用本地节点代码用例

包括:生成TOK钱包、发送交易、查询区块等

下载

Build by TokenString.