验证结构化数据的签名,即根据TIP-712规范对某作用域上的某类型的结构化数据的签名进行验证。
用法
tronWeb.trx.verifyTypedData(domain, types, value, signature, address);
参数
Parameter | Description | Data Type |
---|---|---|
domain | 域分隔标识。该字段为了防止和网络上的其它交易或者相同结构的消息产生碰撞。 | JSON |
types | 结构化数据类型的定义 | JSON |
value | 结构化数据类型的值 | JSON |
signature | 待验证的签名 | String |
address | 签名的账户地址 (Base58格式或者Hex格式) | String |
返回值
bool - 验证通过返回true
,验证不通过返回错误信息Signature does not match
。
示例
// All properties on a domain are optional
const domain = {
name: 'TRON Mail',
version: '1',
chainId: '0x2b6653dc',
verifyingContract: 'TUe6BwpA7sVTDKaJQoia7FWZpC9sK8WM2t'
};
// The named list of all type definitions
const types = {
Person: [
{ name: 'name', type: 'string' },
{ name: 'wallet', type: 'address' }
],
Mail: [
{ name: 'from', type: 'Person' },
{ name: 'to', type: 'Person' },
{ name: 'contents', type: 'string' }
]
};
// The data to sign
const value = {
from: {
name: 'Cow',
wallet: 'TUg28KYvCXWW81EqMUeZvCZmZw2BChk1HQ'
},
to: {
name: 'Bob',
wallet: 'TT5rFsXYCrnzdE2q1WdR9F2SuVY59A4hoM'
},
contents: 'Hello, Bob!'
};
const signature = await tronWeb.trx._signTypedData(domain, types, value);
const result = await tronWeb.trx.verifyTypedData(domain, types, value, signature);
// verification result: true