在创建的工程中新建 libs 文件夹,将解压后的 jar 文件拷贝到 libs 的根目录下。 请去相关下载中下载相对应的jar包。
见lib目录,如图所示:
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>
方法名: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());//私钥
方法名:TokExchangeHelper.sendTrade(walletAddress, amount, gas, toAddress)
方法描述:
用于发送交易,将数量由一个钱包地址转移到另一个钱包地址。
名称 | 类型 | 是否必须 | 默认值 | 备注 |
---|---|---|---|---|
WalletAddress | object | 必须 | 钱包 | |
├─ Address | string | 必须 | 钱包地址 | |
├─ PublicKey | string | 必须 | 钱包公钥 | |
├─ PrivateKey | string | 必须 | 钱包私钥 | |
amount | number | 必须 | 交易金额 | |
gas | number | 必须 | 交易燃油费 | |
toAddress | string | 必须 | 转账到达地址 |
名称 | 类型 | 是否必须 | 默认值 | 备注 |
---|---|---|---|---|
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 | 必须 | 交易燃油费 |
名称 | 类型 | 是否必须 | 默认值 | 备注 |
---|---|---|---|---|
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));
方法名: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 上的余额。查询错误则返回空字符串””
方法名: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);
方法名: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);
方法名: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());
}
方法名: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);//读取加密后的钱包
方法名: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 | 必须 | 最高最新区块号 |
将目录中的tok目录复制到你的gopath目录的src目录下,执行install命令安装 D:\Go>go install tok
参考目录下的test.go引入tok包
import (
"encoding/json"
"fmt"
"tok"
)
方法名:tok.CreateWalletAddress ()
方法描述:
生成TOK钱包地址,包含钱包地址、私钥、公钥等。
名称 | 类型 | 是否必须 | 默认值 | 备注 |
---|---|---|---|---|
WalletAddress | object | 必须 | 返回结果 | |
├─ Address | string | 必须 | 钱包地址 | |
├─ PublicKey | string | 必须 | 钱包公钥 | |
├─ PrivateKey | string | 必须 | 钱包私钥 |
方法名: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.QueryAmount(address string)
方法描述:
用于查询TOK钱包地址数量余额。
名称 | 类型 | 是否必须 | 默认值 | 备注 |
---|---|---|---|---|
address | string | 必须 | 查询钱包地址 |
名称 | 类型 | 是否必须 | 默认值 | 备注 |
---|---|---|---|---|
amount | string | 必须 | tok余额。查询错误则返回空字符串”” |
var tokAmount float64 = tok.QueryAmount(address string)
方法名:tok.QueryTokenAmount(address string, contractName string)
方法描述:
用于查询钱包地址代币数量。
名称 | 类型 | 是否必须 | 默认值 | 备注 |
---|---|---|---|---|
address | string | 必须 | 查询钱包地址 | |
tokenName | string | 必须 | 合约名 |
名称 | 类型 | 是否必须 | 默认值 | 备注 |
---|---|---|---|---|
amount | string | 必须 | 为该地址在合约上的余额。查询错误则返回空字符串”” |
var tokenAmount float64 = tok.QueryTokenAmount(address string, contractName string)
方法名: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)
方法名: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
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
请求报文:
请请求报文说明:
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:下载后的钱包的备份加密密码(不同于报文的加密密码)。钱包导入时需要输入该备份密码。
在创建的工程中新建 libs 文件夹,将解压后的 jar 文件拷贝到 libs 的根目录下。 请去相关下载中下载相对应的jar包。
见lib目录,如图所示:
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>
请求参数:
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);
URL: http://nft.hitebaas.cn:8000/baas-platform/queryClassify
请求方式: POST
请求参数:无
返回报文:
{
"code": "0",
"msg": "success",
"content": [
{
"type": "1",
"typename": "游戏"
},
{
"type": "2",
"typename": "艺术"
}
]
}
返回报文说明:
type: 分类标识(创建接口的DataType填此值)
Typename:类型说明
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
URL:http://nft.hitebaas.cn:8000/baas-platform/queryAllNftAddress
请求方式: POST
请求参数:
address : 钱包实体
返回值:
redisNft :货币类型NFT
dataNft : 数据类型NFT
URL:http://nft.hitebaas.cn:8000/baas-platform/queryNftDataAddress
请求方式: POST
请求参数:
address : 钱包实体
返回值:
String addr: 钱包地址
String tradeType: NFT类型
List< NftTrade>nftTrade:NFT列表
URL:http://nft.hitebaas.cn:8000/baas-platform/queryNftAddress
请求方式: POST
请求参数:
address : 钱包实体
返回值:
String addr: 钱包地址
String tradeType: NFT类型
List< NftTrade>nftTrade: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所有者的标识,在创建接口返回后保存在本地 ,交易请求时带过来
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类型(货币或者数据)
}
}
URL:http://nft.hitebaas.cn:8000/baas-platform/queryNftDataEnterprises
请求方式: POST
请求参数:
PaperBean 实体 里面由index和size组成
返回参数:
List <NftTrade> nftTrade : NFT列表
把启动脚本放在jar文件同一目录
执行sh start.sh就可以
开放8002端口
URL:http://ip:8002/tok-api/api/createWalletAddress
请求方式:POST
方法描述:
生成TOK钱包地址,包含钱包地址、私钥、公钥等。
名称 | 类型 | 是否必须 | 默认值 | 备注 |
---|---|---|---|---|
walletAddress | object | 必须 | 返回结果 | |
├─ address | string | 必须 | 钱包地址 | |
├─ publicKey | string | 必须 | 钱包公钥 | |
├─ privateKey | string | 必须 | 钱包私钥 |
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"
}
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"
}
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"
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 | 必须 | 创建时间 |
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"
}
URL:http://ip:8002/tok-api/api/decryptWalletFromTxt
请求方式:POST
方法描述:
读取钱包文本keystore,可读取DBK导出的keystore
名称 | 类型 | 是否必须 | 默认值 | 备注 |
---|---|---|---|---|
text | string | 必须 | keystore文本 | |
password | string | 必须 | 导出密码 |
{
"text":"1231231231asdasdasdq2eqwe...",
"password":"1234567"
}