添加功能完整链

背景

TokenPocket钱包现已支持通过配置即可完成添加支持EVM,Polkadot,EOSIO技术系链。本文档针对需要TokenPocket钱包集成其链的项目方。首先项目方的链必须是EVM,Polkadot,EOSIO技术系, 然后按照本文档描述提供节点、浏览器、Token信息和交易记录服务等信息,最后由TokenPocket官方人员审核完成后, 即可在TokenPocket钱包快速集成项目方的链。

功能完整链效果

​ TokenPocket钱包功能完整链给用户提供丰富功能和体验,以下列入一些常用功能,比如:在已支持链列表显示、原生币和非原生币、Token价格、热门Token选择列表、交易记录和交易详情等信息。如下图1所示, 展示TokenPocket钱包已支持链列表。用户使用TokenPocket钱包可以快速选择列表中链添加或者导入钱包进行资产管理。
​ 如下图2所示,用户钱包可以查看交易记录和交易详细,可以利用热门Token列表快速进行Token添加。
​ 以上,展示了TokenPocket钱包功能完整链部分常用功能,更多功能请 下载TokenPocket 进行使用体验。功能完整的链给用户提供非常好的使用体验,下一章中开始讲解链项目方如何提交功能完整链到TokenPocket钱包。

添加功能完整链

​ 本节描述链项目方将链添加到TokenPocket钱包需要提供数据元素和接口。功能完整链具备在已支持链列表显示、原生币和非原生币、Token价格、热门Token选择列表、交易记录和交易详情等功能。为了项目方链集成到TokenPocket钱包具有这些功能,项目方需要提供对应功能的 API和RPC等服务。目前TokenPocket钱包已经支持项目方提供对应服务如下:
  • 获取交易记录列表和交易记录详情
  • RPC节点
  • 区块链浏览器
下面分别展开描述提供这些服务需要提交的接口服务。

获取交易记录列表和交易记录详情

​ 目前TokenPocket钱包已支持链交易记录和交易记录详情显示效果,如下图所示:
​ 如上图所示,为了提供上面交易记录和交易记录详情数据,项目方需要提供获取交易记录列表和交易记录详情接口,接口标准在下文中进行描述。

获取交易记录接口文档

​ 由上面可知,为了用户能够查询链交易记录,提供更好的用户体验,项目方需要提交查询交易记录服务,服务接口描述如下:
EVM技术系获取交易记录列表
  • ​ 功能:交易记录列表查询
  • ​ 方法:get
  • ​ url: /v1/transaction_action/universal_list
​ 请求参数列表:
参数
说明
类型
备注
ns
命名空间
字符串
Namespace,通过ns查询数据才存在
chain_id
链ID
整数
通过ns查询数据才存在,和ns一起数据
blockchain_id
整数
整数
ns + chian_id或者 blockchain_id其中一个查询添加即可
search
查询
字符串
查询地址
address
账户地址
字符串
contract_address
合约地址
字符串
token_id
token id
整数
erc721 tokenid
page
页数
整数
0
count
总数
整数
20
sort
排序
字符串
desc
fork
链是否分叉
整数
UnFork = 0 Fork = 1
type
类型
整数
0: 所有, 1:发起人f, 2: 接受人
​ 响应数据列表:
参数
说明
类型
备注
Title
交易的title
string(可缺省)
交易的title, 不存在区块链上
Decimal
代币位数
int64
Fee
费用
string
Symbol
代币名字
string
Comment
备注信息
string(可缺省)
备注信息, 不存在区块链上
Timestamp
交易时间
int64(可缺省)
BlockNumber
区块号
int64(可缺省)
TokenValue
代币数量
string(可缺省)
Gas
Gas费用
string(可缺省)
GasPrice
Gas价格
string(可缺省)
UsedGas
Gas已使用量
string(可缺省)
Value
交易数量
string(可缺省)
Hash
交易Hash
string
Nonce
Nonce值
string
BlockHash
区块Hash
string(可缺省)
TransactionIndex
交易序号
int64(可缺省)
LogIndex
Log序号
int64(可缺省)
InternalIndex
内部交易序号
string(可缺省)
From
发起者
string
To
接受者
string
​ 示例
请求:
https://testtxserver.xxx.com/v1/transaction_action/universal_list?new_way=tp&search=&address=0x0Dd3758c88316723eC434C54BF3e56e733785DFE&blockchain_id=26&count=20&page=0&sort=&contract_address=&type=0
响应:
"data": [{
"decimal": 18,
"fee": "0.000254",
"symbol": "ETH",
"timestamp": 1644481313,
"block_number": 3393917,
"gas": "21000",
"gas_price": "1000000",
"used_gas": "21000",
"value": "100000000000000",
"hash": "0x1305d359d3796a5b9c1f0b3e8e204933a16fdbc9677667cbb6ea8db3f9a83611",
"nonce": "0x4",
"block_hash": "0x576634593fabbd92af5af5671f64886cb412b557e2aa465ccd12b340360568a4",
"log_index": -1,
"from": "0x0dd3758c88316723ec434c54bf3e56e733785dfe",
"to": "0x0657659db21230061aae817ae26e5d15de66cf2e",
"addr_token": "",
"type": 0,
"gas_price_bid": "",
"gas_price_paid": "",
"result_type": 0,
"tx_type": 0,
"input": "0x",
"input_status": 0,
"status": 1
}]
EVM技术系获取交易记录详情
  • ​ 功能:交易记录详情查询
  • ​ 方法:get
  • ​ url: /v1/transaction_action/universal
​ 请求参数列表:
参数
说明
类型
备注
ns
命名空间
字符串
Namespace,通过ns查询数据才存在
chain_id
链ID
整数
通过ns查询数据才存在,和ns一起数据
blockchain_id
整数整数
整数
ns + chian_id或者 blockchain_id其中一个查询添加即可
block_hash
区块Hash
字符串
hash
hash
字符串
log_index
Log序号
整数
internal_index
内部交易序号
字符串
​ 响应数据列表:
参数
说明
类型
备注
Title
交易的title
string(可缺省)
交易的title, 不存在区块链上
Decimal
代币位数
int64
Fee
费用
string
Symbol
代币名字
string
Comment
备注信息
string(可缺省)
备注信息, 不存在区块链上
Timestamp
交易时间
int64(可缺省)
BlockNumber
区块号
int64(可缺省)
TokenValue
代币数量
string(可缺省)
Gas
Gas费用
string(可缺省)
GasPrice
Gas价格
string(可缺省)
UsedGas
Gas已使用量
string(可缺省)
Value
交易数量
string(可缺省)
Hash
交易Hash
string
Nonce
Nonce值
string
BlockHash
区块Hash
string(可缺省)
TransactionIndex
交易序号
int64(可缺省)
LogIndex
Log序号
int64(可缺省)
InternalIndex
内部交易序号
string(可缺省)
From
发起者
string
To
接受者
string
示例
请求:
https://xxxchaintxserver.xxx.com/v1/transaction_action/universal?blockchain_id=26&block_hash=0xf07696455e6bb138cff50390da1e47eb80745efdbcc16a609e4cec955f6a07af&hash=0x539839a5a2dc3bf4edb3dca041fce0aec0e557811cdf7518007d6712d873726a&log_index=-1&internal_index=
响应:
{
"data": {
"decimal": 0,
"fee": "0.000763",
"symbol": "",
"timestamp": 1639603935,
"block_number": 1228952,
"token_value": "0",
"gas": "113334",
"gas_price": "1000000",
"used_gas": "113334",
"value": "0",
"hash": "0x539839a5a2dc3bf4edb3dca041fce0aec0e557811cdf7518007d6712d873726a",
"nonce": "0x5",
"block_hash": "0xf07696455e6bb138cff50390da1e47eb80745efdbcc16a609e4cec955f6a07af",
"log_index": -1,
"from": "0x389264158278811653",
"to": "0x389254976595034117",
"addr_token": "389253055922569221",
"type": 1,
"gas_price_bid": "",
"gas_price_paid": "",
"result_type": 0,
"tx_type": 0,
"input": "0x1ebcfe800000000000000000000000000000000000000000000000000000000000000100",
"input_status": 0,
"status": 1
},
"message": "success",
"result": 0
}
Polkadot技术系获取交易记录列表
  • ​ 功能:交易记录列表查询
  • ​ 方法:get
  • ​ url: /v1/transaction_action/universal_list
​ 请求参数列表:
参数
说明
类型
备注
ns
命名空间
字符串
Namespace,通过ns查询数据才存在
chain_id
链ID
整数
通过ns查询数据才存在,和ns一起数据
blockchain_id
整数
整数
ns + chian_id或者 blockchain_id其中一个查询添加即可
search
查询
字符串
address
账户地址
字符串
contract_address
合约地址
字符串
page
页数
整数
count
总数
整数
sort
排序
字符串
desc
type
类型
整数
0: 所有, 1:发起人from, 2: 接受人to
​ 响应数据列表:
参数
说明
类型
备注
Title
交易的title
string(可缺省)
交易的title, 不存在区块链上
Decimal
代币位数
int64
Fee
费用
string
Tip
小费
string
Symbol
代币名字
string
Comment
备注信息
string(可缺省)
备注信息, 不存在区块链上
Timestamp
交易时间
int64(可缺省)
BlockNumber
区块号
int64(可缺省)
Value
交易数量
string(可缺省)
Hash
交易Hash
string
Nonce
Nonce值
string
CallIndex
交易事件调用序号
int64
From
发起者
string
To
接受者
string
AddrToken
代币地址
string
Input
输入
string
Status
状态
int
1 (success) or 0 (failure) or 2(pending), 99未知
​ 示例
请求:
https://testtxserver.xxx.com/v1/transaction_action/universal_list?address=3iM6wt2uixaTdMj7ZQB6LN9qanvCCxWdd56oVwRg7fmj1uFw&search=&blockchain_id=21&count=40&page=0&sort&contract_address&type=0
响应:
{
"data": [
{
"decimal": 10,
"fee": "155000015",
"tip": "0",
"symbol": "DOT",
"comment": "0",
"timestamp": 1633449756,
"block_number": 7129105,
"value": "739595473900",
"hash": "0xdb4cc8adf2b48a50699abc27ca3461b1c497292c1a7fb34cc73fcdbb2c808cc6",
"nonce": "0",
"callIndex": 0,
"from": "1119Ch5Ezu9fKdcZ9ThBFnTeEkUrhfhT59jHjGjKnvVvmsy",
"to": "16FLM85x3Q8qSthJ9riL5Xcop8GfRY8SxuaDqvtMeeyrZNNs",
"status": 1
},
{
"decimal": 10,
"fee": "156000016",
"tip": "0",
"symbol": "DOT",
"comment": "0",
"timestamp": 1621620846,
"block_number": 5163171,
"value": "28645499945",
"hash": "0xe1e9bb207610dba7a98bbec411b549d951ddb8d6c27941ee9b1d32b26367831f",
"nonce": "4",
"callIndex": 0,
"from": "14TMRRRqJUJszegEd7C3svLWxLUyMQPzXJ1wA6UYRcdKFRQZ",
"to": "1119Ch5Ezu9fKdcZ9ThBFnTeEkUrhfhT59jHjGjKnvVvmsy",
"status": 1
}
],
"message": "success",
"result": 0
}
Polkadot技术系获取交易记录详情
  • ​ 功能:交易记录详情查询
  • ​ 方法:get
  • ​ url: /v1/transaction_action/universal
​ 请求参数列表:
参数
说明
类型
备注
ns
命名空间
字符串
Namespace,通过ns查询数据才存在
chain_id
链ID
整数
通过ns查询数据才存在,和ns一起数据
blockchain_id
整数整数
整数
ns + chian_id或者 blockchain_id其中一个查询添加即可
from
发起人
字符串
nonce
nonce值
字符串
block_number
区块号
整数
call_index
交易事件调用序号
字符串
​ 响应数据列表说明:
参数
说明
类型
备注
Title
交易的title
string(可缺省)
交易的title, 不存在区块链上
Decimal
代币位数
int64
Fee
费用
string
Tip
小费
string
Symbol
代币名字
string
Comment
备注信息
string(可缺省)
备注信息, 不存在区块链上
Timestamp
交易时间
int64(可缺省)
BlockNumber
区块号
int64(可缺省)
Value
交易数量
string(可缺省)
Hash
交易Hash
string
Nonce
Nonce值
string
CallIndex
交易事件调用序号
int64
From
发起者
string
To
接受者
string
AddrToken
代币地址
string
Input
输入
string
Status
状态
int
1 (success) or 0 (failure) or 2(pending), 99未知
示例
请求:
https://xxxtxserver.xxx.com/v1/transaction_action/universal?from=14TMRRRqJUJszegEd7C3svLWxLUyMQPzXJ1wA6UYRcdKFRQZ&blockchain_id=13&block_number=5163171&nonce=4&call_index=0
响应:
{
"data": {
"decimal": 10,
"fee": "156000016",
"tip": "0",
"symbol": "DOT",
"comment": "0",
"timestamp": 1621620846,
"block_number": 5163171,
"value": "28645499945",
"hash": "0xe1e9bb207610dba7a98bbec411b549d951ddb8d6c27941ee9b1d32b26367831f",
"nonce": "4",
"callIndex": 0,
"from": "14TMRRRqJUJszegEd7C3svLWxLUyMQPzXJ1wA6UYRcdKFRQZ",
"to": "1119Ch5Ezu9fKdcZ9ThBFnTeEkUrhfhT59jHjGjKnvVvmsy",
"status": 1
},
"message": "success",
"result": 0
}
EOSIO技术系获取交易记录列表
  • 功能:交易记录列表查询
  • 方法:get
  • url: /v1/transaction_action/universal_list
请求参数列表:
参数
说明
类型
备注
ns
命名空间
字符串
Namespace,通过ns查询数据才存在
chain_id
链ID
整数
通过ns查询数据才存在,和ns一起数据
blockchain_id
整数
整数
ns + chian_id或者 blockchain_id其中一个查询添加即可
search
查询
字符串
code
账户地址
字符串
account
合约地址
字符串
symbol
代币符号
字符串
page
页数
整数
count
总数
整数
sort
排序
字符串
desc
type
类型
整数
0: 所有, 1:发起人from, 2: 接受人to
响应数据列表:
参数
说明
类型
备注
Hid
交易id
string
ProducerBlockId
出块节点ID
string
Receiver
回执
string
RecvSequence
接收序列号
int64
Timestamp
交易时间
int64
Account
账户
string
Name
方法Name
string
From
发起者
string
To
接受者
string
BlockNum
区块号
int64
Quantity
数量
string
Count
Count
string
Symbol
代币符号
string
Memo
备注
string
Status
交易状态
int64
示例
请求:
https://xxxtxserver.xxx.com/v1/transaction_action/universal_list?blockchain_id=29&search=&account=eosio.token&count=20&page=0
响应:
{
"data": [
{
"hid": "817d47c381f284b269ca372ae6b911804bb7ed50efcf2bc2784c88d2b13e7f8a",
"producerBlockId": "0a03ac4ea8e00e0898d7410b5c422898d85914bb1c6b94ebbee099b55d02b8ae",
"receiver": "eosio.token",
"recvSequence": 0,
"timestamp": 1645463197,
"account": "realmnftgame",
"name": "transfer",
"from": "whkm2.c.wam",
"to": "eosio.token",
"blockNum": 168012878,
"quantity": "974.9580 RLM",
"count": "974.9580",
"symbol": "RLM",
"memo": "",
"status": 1
},
{
"hid": "20608e08fbb38618b2021bea05dff84cf27c1cd066c2e1eb006a5ecc0d06c7ee",
"producerBlockId": "099918c3de0e307403a154f33f5123a29bfd1692df31cd4d44513ae2bcd01a6d",
"receiver": "eosio.token",
"recvSequence": 0,
"timestamp": 1641969324,
"account": "farmerstoken",
"name": "transfer",
"from": "r52zc.wam",
"to": "eosio.token",
"blockNum": 161028291,
"quantity": "10.0000 FWW",
"count": "10.0000",
"symbol": "FWW",
"memo": "e.3.e.c.wam",
"status": 1
}
],
"message": "success",
"result": 0
}
EOSIO技术系获取交易记录详情
  • 功能:交易记录详情查询
  • 方法:get
  • url: /v1/transaction_action/universal
请求参数列表:
参数
说明
类型
备注
ns
命名空间
字符串
Namespace,通过ns查询数据才存在
chain_id
链ID
整数
通过ns查询数据才存在,和ns一起数据
blockchain_id
整数整数
整数
ns + chian_id或者 blockchain_id其中一个查询添加即可
producer_block_Id
producer_block_Id
字符串
receiver
receiver
字符串
recv_sequence
recv_sequence
整数
响应数据列表:
参数
说明
类型
备注
Hid
交易id
string
ProducerBlockId
出块节点ID
string
Receiver
回执
string
RecvSequence
接收序列号
int64
Timestamp
交易时间
int64
Account
账户
string
Name
方法Name
string
From
发起者
string
To
接受者
string
BlockNum
区块号
int64
Quantity
数量
string
Count
Count
string
Symbol
代币符号
string
Memo
备注
string
Status
交易状态
int64
示例
请求:
https://xxxtxserver.xxx.com/v1/transaction_action/universal?blockchain_id=29&producer_block_Id=0a03ac4ea8e00e0898d7410b5c422898d85914bb1c6b94ebbee099b55d02b8ae&receiver=eosio.token&recv_sequence=0
响应:
{
"data": {
"hid": "817d47c381f284b269ca372ae6b911804bb7ed50efcf2bc2784c88d2b13e7f8a",
"producerBlockId": "0a03ac4ea8e00e0898d7410b5c422898d85914bb1c6b94ebbee099b55d02b8ae",
"receiver": "eosio.token",
"recvSequence": 0,
"timestamp": 1645463197,
"account": "realmnftgame",
"name": "transfer",
"from": "whkm2.c.wam",
"to": "eosio.token",
"blockNum": 168012878,
"quantity": "974.9580 RLM",
"count": "974.9580",
"symbol": "RLM",
"memo": "",
"status": 1
},
"message": "success",
"result": 0
}
提交信息格式
"txUrl":" https://xxxchaintxserver.xxx.xxx"

节点信息

​ 节点是钱包发起交易、查询价格信息和查询合约信息等功能的请求地址,因此项目方需要提供一个以上可用节点。节点信息在钱包中显示如下图所示:
提供信息格式:
rpc: [
"https://rpc.api.xxxx.network",
"https://rpc.api2.xxxxx.network"
]

区块链浏览器

​ 浏览器作为查询交易信息同时具备一定程度数据分析的工具,因此项目方提供提供浏览器查询交易信息至关重要。浏览器在钱包中其中一个用途如下入图所示:
提供信息格式:
浏览器需要支持如下格式查询
https://blockscout.moonbeam.network/tx/{hash}/internal-transactions
https://blockscout.moonbeam.network/address/{account}/transactions
"browserInfo": [{
"name": "Xscan",
"icon": "https://tp-upload.cdn.bcebos.com/v1/blockChain/xDAI/1.png",
"addr": "https://xxx1scan.io/"
},{
"name": "xDAIscan",
"icon": "https://tp-upload.cdn.bcebos.com/v1/blockChain/xDAI/1.png",
"addr": "https://xxx2can.io/"
}]

提交链信息模版

​ 综合上面几个章节说明,我们可以知道需要提供交易记录服务地址、节点信息和浏览器信息。需要提交信息标准模版如下,请按照此模版提交信息。
{
"name": "xDAI Chain",
"chainId": 100,
"namespace": "ethereum",
"shortName": "xdai",
"chain": "XDAI",
"network": "mainnet",
"networkId": 100,
"nativeCurrency": {
"name": "xDAI",
"symbol": "xDAI",
"decimals": 18
},
"rpc": [
"https://rpc.xdaichain.com",
"https://xdai.poanetwork.dev",
"wss://rpc.xdaichain.com/wss",
"wss://xdai.poanetwork.dev/wss",
"http://xdai.poanetwork.dev",
"https://dai.poa.network",
"ws://xdai.poanetwork.dev:8546"
],
"faucets": [],
"infoURL": "https://forum.poa.network/c/xdai-chain",
"appResource": {
"icChainSelect": "https://tp-upload.cdn.bcebos.com/v1/blockChain/xDAI/1.png",
"icChainUnselect": "https://tp-upload.cdn.bcebos.com/v1/blockChain/xDAI/0.png",
"colorChainBg": "0x58B2AF",
"txUrl":" https://xxxchaintxserver.xxx.xxx",
"browserInfo": [{
"name": "Xscan",
"icon": "https://tp-upload.cdn.bcebos.com/v1/blockChain/xDAI/1.png",
"addr": "https://xxx1scan.io/"
},{
"name": "xDAIscan",
"icon": "https://tp-upload.cdn.bcebos.com/v1/blockChain/xDAI/1.png",
"addr": "https://xxx2can.io/"
}],
"projectContactInfo": {
"officialWebsite": "https://xxx.network.com",
"phone": "02x-223xxx12",
"email": "[email protected]",
}
}
}
以上信息提交地址networklist-org