_signTypedData

签名结构化数据,即根据TIP-712规范对某作用域上的某类型的结构化数据进行签名。

🚧

实验性功能 ( 方法名称可能会变更 )

该功能目前依然处于实验阶段。您在使用时,请明确指定要使用的tronweb的版本号 (例如指定“4.3.0”,而不是“^4.3.0”),因为后续版本中,有可能将该方法名从_signTypedData改为signTypedData

用法

tronWeb.trx._signTypedData( domain, types, value, privateKey);

参数

Parameter

Description

Data Type

domain

域分隔符。该字段为了防止和网络上的其它交易或者相同结构的消息产生碰撞。

JSON

types

结构化数据类型的定义

JSON

value

结构化数据类型的值

JSON

privateKey

用于签名的私钥 ,可选,默认使用构建tronweb时传入的私钥

String

返回值

String - 对结构化数据的签名

示例

// 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);

// signing result: 0x72cc671f38be492773e2cd44c64535ab8825d8ab7b0e580ee45731d00fc0aa5a385bf816505e6c53864bc8539677f7c6a6ece907c94e02d473d392e364cfd5691c