DeepLink方式拉起钱包操作

介绍

本文档描述了使用DeepLink方式拉起TokenPocket移动端进行授权,转账,签名,签名发送交易,字符串签名,打开Dapp等操作。

该种方式适应于运行在手机系统浏览器的H5应用,由于H5应用无法像原生App一样,通过集成SDK接收回调,所以,如果开发者需要拿到钱包操作结果,则需要提供callback url,钱包将结果发送到该Url。操作流程图如下:

注意:该方式仅限于在手机系统浏览器中使用拉起钱包,如果你的应用运行在钱包的Dapp浏览器,请参考文档JS-SDK

以下操作支持EVM网络,Tron网络,EOS网络,IOST网络,这里仅以ETH为例,介绍用法,每个网络的参数有所差异,字段详细文档可见:https://github.com/TP-Lab/tp-wallet-sdk

使用方式

拉起钱包授权登录

<a href='tpoutside://pull.activity?param={}'>Open TokenPocket to authorize</a><br/>

param示例内容如下:

注意param参数需要encode:encodeURIComponent(param, “utf-8”)

{
	"callbackUrl": "http:\/\/115.205.0.178:9011\/taaBizApi\/taaInitData",
	"action": "login",
	"actionId": "1648522106711",
	"blockchains": [{
		"chainId": "1",
		"network": "ethereum"
	}],
	"dappIcon": "https:\/\/eosknights.io\/img\/icon.png",
	"dappName": "zs",
	"protocol": "TokenPocket",
	"version": "2.0"
}

拉起钱包转账

<a href='tpoutside://pull.activity?param={}'>Open TokenPocket to transfer</a><br/>

param示例内容如下

{
	"amount": 0.1,
	"contract": "0x1161725d019690a3e0de50f6be67b07a86a9fae1",
	"decimal": 18,
	"desc": "",
	"from": "0x12F4900A1fB41f751b8F616832643224606B75B4",
	"memo": "0xe595a6",
	"precision": 0,
	"symbol": "SPT",
	"to": "0x34018569ee4d68a275909cc2538ff67a742f41c8",
	"action": "transfer",
	"actionId": "web-db4c5466-1a03-438c-90c9-2172e8becea5",
	"blockchains": [{
		"chainId": "1",
		"network": "ethereum"
	}],
	"dappIcon": "https:\/\/eosknights.io\/img\/icon.png",
	"dappName": "Test demo",
	"protocol": "TokenPocket",
	"callbackUrl": "http:\/\/115.205.0.178:9011\/taaBizApi\/taaInitData",
	"version": "2.0"
}

拉起钱包签名

<a href='tpoutside://pull.activity?param={}'>Open TokenPocket to pushT   ransaction</a><br/>

param示例内容如下

{
	"txData": "{\"from\":\"0x12F4900A1fB41f751b8F616832643224606B75B4\",\"gasPrice\":\"0x6c088e200\",\"gas\":\"0xea60\",\"chainId\":\"1\",\"to\":\"0x1d1e7fb353be75669c53c18ded2abcb8c4793d80\",\"data\":\"0xa9059cbb000000000000000000000000171a0b081493722a5f22ebe6f0c4adf5fde49bd8000000000000000000000000000000000000000000000000000000000012c4b0\"}",
	"action": "pushTransaction",
	"actionId": "web-db4c5466-1a03-438c-90c9-2172e8becea5",
	"blockchains": [{
		"chainId": "1",
		"network": "ethereum"
	}],
	"callbackUrl": "http:\/\/115.205.0.178:9011\/taaBizApi\/taaInitData",
	"dappIcon": "https://eosknights.io/img/icon.png",
	"dappName": "Test demo",
	"protocol": "TokenPocket",
	"version": "2.0"
}

TxData字段取值请参考示例

拉起钱包签名字符串

<a href='tpoutside://pull.activity?param={}'>Open TokenPocket to sign message</a><br/>

param示例内容如下

{
	"hash": false,
	"memo": "demo",
	"message": "0xc05dfb5d7d33ef21dacffc010ff0a45204a3dd5e0cf6f9a970f07339d7a7770e",
	"signType": "ethSign",
	"action": "sign",
	"actionId": "web-db4c5466-1a03-438c-90c9-2172e8becea5",
	"blockchains": [{
		"chainId": "1",
		"network": "ethereum"
	}],
	"callbackUrl": "http:\/\/115.205.0.178:9011\/taaBizApi\/taaInitData",
	"dappIcon": "https:\/\/eosknights.io\/img\/icon.png",
	"dappName": "Test demo",
	"protocol": "TokenPocket",
	"version": "2.0"
}

如何从TP钱包返回到H5应用

使用callbackSchema,完成操作后,TP钱包会通过callbackSchema拉起H5应用,并回传结果

 "callbackSchema": "mySchema://myHost"

拉起钱包用Dapp浏览器打开链接

<a href='tpdapp://open?params={}'>Open TokenPocket to open url</a><br/>

params示例内容如下

{
	"url": "https://dapp.mytokenpocket.vip/referendum/index.html#/",
	"chain": "EOS",
	"source": "xxx" 
}
字段说明
chain:dapp支持的网络
source: 来源,开发者自定义

注意param参数需要encode:URLEncoder.encode(param, “utf-8”)

Last updated