在 JS SDK 中,有很多数据结构与合约平台的数据结构保持统一,比如账户、合约、区块、交易、收据等。
账户模型
下面是账号的基本参数及说明:
参数 | 类型 | 说明 |
---|---|---|
identity | string | 账户的标识 ID,16 进制表示的字符串 |
balance | BigNumber,特别类型,参考 详情 | 余额 |
auth_map | string | 账户或者合约的公钥和权重值 |
recover_key | string | 恢复公钥,用于帐户私钥丢失的情况,16 进制表示的字符串 |
recover_time | number | 上次成功恢复的时间 |
status | number | 状态,0:NORMAL;1:FREEZE;2:RECOVERING |
encryption_key | string | 加密公钥,用来加密智能合约中的交易金额,16 进制表示的字符串 |
示例
{ identity:
'0xc60a9d48105950a0cca07a4c6320b98c303ad42d694a634529e8e1a0a16fcdb5',
balance: 1000000000000000000,
recover_key:
'0x61df14a4625bd997eeae2ebcffe58aa95ab3fcd1d7660f83b5fe34a6e08915beae36d84f960f6baca008b67c919feae0f29c262b43e985b477f92626ed2b6f6a',
recover_time: 0,
status: 0,
code: '',
storage_root:
'0x76be8b528d0075f7aae98d6fa57a6d3c83ae480a8469e668d7b0af968995ac71',
code_hash:
'0x0000000000000000000000000000000000000000000000000000000000000000',
encryption_key: '',
version: '2',
auth_map:
[ { auth_key:
'0x61df14a4625bd997eeae2ebcffe58aa95ab3fcd1d7660f83b5fe34a6e08915beae36d84f960f6baca008b67c919feae0f29c262b43e985b477f92626ed2b6f6a',
auth_weight: 100 } ] }
合约模型
下面是合约的基本参数及说明:
参数 | 类型 | 说明 |
---|---|---|
identity | string | 合约的标识 ID,16 进制表示的字符串 |
balance | BigNumber,特别类型,参考 详情 | 余额 |
auth_map | string | 账户或者合约的公钥和权重值 |
recover_key | string | 恢复公钥,用于帐户私钥丢失的情况,16 进制表示的字符串 |
recover_time | number | 上次成功恢复的时间 |
status | number | 状态,0:NORMAL;1:FREEZE;2:RECOVERING |
encryption_key | string | 加密公钥,用来加密智能合约中的交易金额,16 进制表示的字符串 |
storage_root | string | 世界状态的默克尔哈希根,16 进制表示的字符串 |
code_hash | string | 合约代码哈希,16 进制表示的字符串 |
code | string | 合约代码,16 进制表示的字符串 |
示例
{ identity:
'0xe784481df592b4f72360db588d04fc55c4fa800c867a1ca7bb9f470ddf805b6d',
balance: 0,
recover_key:
'0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
recover_time: 0,
status: 0,
code:
'0x016080604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630d15fd7781146100875780632f265cf7146100ae578063392e6678146100dc5780637021939f14610108578063a9a981a314610120578063b13c744b14610135578063cc9ab2671461014d575b600080fd5b34801561009357600080fd5b5061009c610167565b60408051918252519081900360200190f35b3480156100ba57600080fd5b506100c660043561016d565b6040805160ff9092168252519081900360200190f35b3480156100e857600080fd5b506100f4600435610199565b604080519115158252519081900360200190f35b34801561011457600080fd5b506100c660043561024e565b34801561012c57600080fd5b5061009c610263565b34801561014157600080fd5b5061009c600435610269565b34801561015957600080fd5b50610165600435610288565b005b60035481565b600061017882610199565b151561018357600080fd5b5060009081526001602052604090205460ff1690565b6000805b60005481101561020f5760008054849190839081106101b857fe5b600091825260209091200154141561020757604080516001815290517f2b766bfa48dbb99822ac647fffc163dc74b7857beedb5ec6782ed9826453db049181900360200190a160019150610248565b60010161019d565b604080516000815290517f2b766bfa48dbb99822ac647fffc163dc74b7857beedb5ec6782ed9826453db049181900360200190a1600091505b50919050565b60016020526000908152604090205460ff1681565b60025481565b600080548290811061027757fe5b600091825260209091200154905081565b61029181610199565b151561029c57600080fd5b600081815260016020818152604092839020805460ff80821685011660ff19909116179055600380549092019091558151838152339181019190915281517f690156027e055e69a001816111c1abd4287fa897e929662c9ad6108a84fe2523929181900390910190a1505600a165627a7a72305820f4f856c692cb5ff1f3f493855d83e03251ad0399970bdf9119597e2593fd68d00029',
storage_root:
'0xd76c14b0f7f99cd297110d1d711a56a70d0ee758174e957874d3354dfb6fc5f4',
code_hash:
'0xf2798023afd1207ca4ac57ad2ecb84b032b0279d27294a6e2c57dfffb3eadeb5',
encryption_key: '',
acc_version: 2,
auth_map:
[ { auth_key:
'0x61df14a4625bd997eeae2ebcffe58aa95ab3fcd1d7660f83b5fe34a6e08915beae36d84f960f6baca008b67c919feae0f29c262b43e985b477f92626ed2b6f6a',
auth_weight: 100 } ] }
交易模型
下面是交易的基本参数及说明:
参数 | 类型 | 说明 |
---|---|---|
hash | string | 交易的哈希,由排除 signature 字段的所有字段构成 |
type | number | 交易的类型 |
timestamp | number | 交易的时间戳 |
nonce | number | 防止重放攻击 |
period | number | 单位为毫秒,事务开始或结束的时间,为未来扩展使用。 |
from | string | 交易的发送者 |
to | string | 交易的接受者 |
value | number | 转账金额 |
gas | number | 交易执行的消耗费用 |
data | string | 见交易对象 data 编码方式 |
group_id | string | 交易在一个群组中执行 |
signature | string | 签名,使用一个或者多个私钥对 hash 加签 |
extensions | string | 交易扩展字段,目前 JS SDK 尚不支持 |
收据模型
下面是收据的基本参数及说明。
参数 | 类型 | 说明 |
---|---|---|
result | number | 交易结果 |
gas_used | number | 交易执行的消耗费用 |
logs | Array | 交易执行的日志集合 |
output | BigNumber | 合约的 ouptut |
offset | number | 解析合约 output 的偏移量 |
日志模型
下面是收据的基本参数及说明:
参数 | 类型 | 说明 |
---|---|---|
from | string | 交易的发送者 |
to | string | 交易的接受者 |
topics | Array | 订阅的主题 |
log_data | Array | 交易产生的日志 |
区块模型
区块模型分为三个部分,分别是区块、区块头、区块体。
- 区块的基本参数及说明:
参数 | 类型 | 说明 |
---|---|---|
block_header | object | 区块头 |
block_body | object | 区块体 |
- 区块头
block_header
的基本参数及说明:
参数 | 类型 | 说明 |
---|---|---|
hash | string | 区块头的哈希 |
version | number | 版本,兼容性区分 |
number | number | 区块号 |
parent_hash | string | 上一区块哈希 |
transaction_root | string | 区块体中的交易构成的默克尔哈希根 |
receipt_root | string | 区块体中的收据构成的默克尔哈希根 |
state_root | string | 世界状态的默克尔哈希根 |
gas_used | number | 交易执行的总消耗量 |
timestamp | number | 时间戳 |
log_bloom | string | 日志布隆过滤器 |
- 区块体
block_body
的基本参数及说明:
参数 | 类型 | 说明 |
---|---|---|
transaction_list | Array | 交易列表 |
receipt_list | Array | 收据列表 |
consensus_proof | string | 共识证明 |
示例
block:
{ block_header:
{ hash:
'0xf3f53c5ec6ede0bd24a2e36914cd5fbc3c2a7de80d677efdd704459a7f5f9879',
version: 2,
block_number: 86117,
parent_hash:
'0xe252fe8333dce2bacc9ec1764d03b41dea30cc0f02d3064dc2537f0db63110b8',
transaction_root:
'0x0000000000000000000000000000000000000000000000000000000000000000',
receipt_root:
'0x0000000000000000000000000000000000000000000000000000000000000000',
state_root:
'0xb849f08a17fd0cdd97b14c3531f18d9c82b9411ad9e97bc8812f05349496aa30',
gas_used: 0,
timestamp: 1547388041992,
log_bloom:
'0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' },
block_body:
{ transaction_list: [],
receipt_list: [],
consensus_proof:
'0xf8f2f8c9b84154f46c7c6a4bd7b4da1350de36d6b7cd24e595d82b6cbc93c8b161a653e9a9db25e9aad5ed219873a44ba86dd812df0ff0813840af198703eedd2446517d761f01b841563d53272fa6627a32192f28747e1cffd541a3da206fa7f788311e30fcc0272d2c65982f341be4e9a9d8a0139e1b346b8ca835a3f710a58a00bb1f52ae7cba5b01b841db26385c9d5e8f2759c5ac72dc90befd3e2a0b6ad0ac25bd7ea0737025c07a776d34fb84625dce19d8c82450205034737414ed14999fbfa28653ee62547bd77201e61e83015065a048c1edc05bc2f69c32e61b6a79b39880474bf23fdb2466a0de3a88cdae42c649' }
}
文档内容是否对您有帮助?