编码和签名
在交易的每个字段都准备好后,需要按照以下步骤,才能将其发送到网络 (别担心, 这些步骤已经由钱包或SDK实现):
- 准备签名哈希: 按照
[nonce, gasPrice, gas, to, value, storageLimit, epochHeight, chainId, data]
的顺序进行RLP编码 ,然后将keccak256
操作应用到编码结果上,以获取哈希。 - 签名:使用发送账户的私钥对上一步获得的哈希进行签名,并执行ecdsaSign签名操作,得到 r、s、v 的值。
- 交易编码: 按照
[[nonce, gasPrice, gas, to, value, storageLimit, epochHeight, chainId, data], v, r, s]
的顺序进行RLP编码,并将其转换为十六进制字符串。
广播到网络
完成上述步骤后,你将获得一个十六进制编码的原始交易 (rawTx)。 你可以使用 cfx_sendRawTransaction
方法将其发送到网络。 成功调用此方法后,将返回一个交易哈希,可用来查询交易状态。