{"content":{"title":"以太坊离线签名交易接口sendRawTransaction()的用法","body":"## 以普通转账为例，在以太坊控制台下离线签名交易的实现过程分以下步骤：\r\n\r\n（1）使用接口unlockAccount()解锁本地钱包\r\n> personal.unlockAccount(\"0xe4697cBB8955526C703A4441f219cf0A04447a9B\", \"123\", 0)\r\ntrue\r\n\r\n（2）使用接口getTransactionCount()获取nonce的数值\r\n> eth.getTransactionCount(\"0xe4697cBB8955526C703A4441f219cf0A04447a9B\")\r\n0\r\n\r\n说明：\r\n为防止双花，每笔交易中都有一个随机数nonce。对于同一个账户，这个nonce是一个连续递增的整数，每发送1笔交易，nonce值加1。一个以太坊的账号，它发起的第1笔交易的nonce值是0，第2笔交易的nonce值是1，如此类推。使用接口getTransactionCount()获取指定账号发起过的交易笔数，可作为下一笔交易的nonce值\r\n\r\n\r\n(3) 使用接口signTransaction()对交易数据进行离线签名\r\n> eth.signTransaction({\r\n......   nonce: 0,\r\n......   gasPrice: '0x100000000',\r\n......   gas: '1000000',\r\n......   from:\"0xe4697cBB8955526C703A4441f219cf0A04447a9B\",\r\n......   to:\"0x815261DC4186502eC0D8CCFEf163785e1617b5A8\",\r\n......   value: '0x1'\r\n...... })\r\n{\r\n  raw: \"0xf8a980850100000000830f424094815261dc4186502ec0d8ccfef163785e1617b5a801808201dfa04ea1b2f2b4c02a2edbf1f2d483a9d2bd829fba1e88e3d615f6aa4210a2593622a05c32b412d78c5acdd97dbb7b0cac8d5e8613cc749cf236e309ad9a25a004a385a07b185c31906d2e9b2e2059d215fd4a2150feadae92ffde081566001352b94217a06fccf184dce61466f94f1c2dc244b1fa053f16a7079a0de78aa0dde35afe9aa7\",\r\n  tx: {\r\n    gas: \"0xf4240\",\r\n    gasPrice: \"0x100000000\",\r\n    hash: \"0x6c6ec0e55cc57af35ab90e4b9b7677d089e241db8b400dec87ff347d22558ace\",\r\n    input: \"0x\",\r\n    nonce: \"0x0\",\r\n    r: \"0x4ea1b2f2b4c02a2edbf1f2d483a9d2bd829fba1e88e3d615f6aa4210a2593622\",\r\n    s: \"0x5c32b412d78c5acdd97dbb7b0cac8d5e8613cc749cf236e309ad9a25a004a385\",\r\n    to: \"0x815261dc4186502ec0d8ccfef163785e1617b5a8\",\r\n    v: \"0x1df\",\r\n    value: \"0x1\"\r\n  }\r\n}\r\n\r\n\r\n说明：\r\nnonce：交易\r\ngasPrice：gas价格\r\ngas：该笔交易的gas limit\r\nfrom：转账发送账号，\r\nto：转账接收账号，\r\nvalue：转账金额，0x1表示0.000000000000000001个以太坊\r\n\r\n\r\n\r\n(4)使用接口sendRawTransaction()对发送已经签名的交易数据\r\n>eth.sendRawTransaction(\"0xf8a980850100000000830f424094815261dc4186502ec0d8ccfef163785e1617b5a801808201dfa04ea1b2f2b4c02a2edbf1f2d483a9d2bd829fba1e88e3d615f6aa4210a2593622a05c32b412d78c5acdd97dbb7b0cac8d5e8613cc749cf236e309ad9a25a004a385a07b185c31906d2e9b2e2059d215fd4a2150feadae92ffde081566001352b94217a06fccf184dce61466f94f1c2dc244b1fa053f16a7079a0de78aa0dde35afe9aa7\")\r\n\"0x6c6ec0e55cc57af35ab90e4b9b7677d089e241db8b400dec87ff347d22558ace\"\r\n\r\n说明：\r\nsendRawTransaction()的参数，就是eth.signTransaction()的返回结果中的raw字段的内容，即已经签名的交易数据。\r\nsendRawTransaction()返回交易的hash值\r\n\r\n\r\n(5)使用接口getTransaction()获取交易成功后的交易详情\r\n> eth.getTransaction(\"0x6c6ec0e55cc57af35ab90e4b9b7677d089e241db8b400dec87ff347d22558ace\")\r\n{\r\n  blockHash: \"0x668de63b825b627140c85949fbc9221fd9baaefb6ad123493020071d277297a1\",\r\n  blockNumber: 7857,\r\n  from: \"0xe4697cbb8955526c703a4441f219cf0a04447a9b\",\r\n  gas: 1000000,\r\n  gasPrice: 4294967296,\r\n  hash: \"0x6c6ec0e55cc57af35ab90e4b9b7677d089e241db8b400dec87ff347d22558ace\",\r\n  input: \"0x\",\r\n  nonce: 0,\r\n  r: \"0x4ea1b2f2b4c02a2edbf1f2d483a9d2bd829fba1e88e3d615f6aa4210a2593622\",\r\n  s: \"0x5c32b412d78c5acdd97dbb7b0cac8d5e8613cc749cf236e309ad9a25a004a385\",\r\n  to: \"0x815261dc4186502ec0d8ccfef163785e1617b5a8\",\r\n  transactionIndex: 0,\r\n  v: \"0x1df\",\r\n  value: 1,\r\n}\r\n\r\n\r\n(6)使用接口getTransactionReceipt()获取交易成功后的交易收据\r\n>eth.getTransactionReceipt(\"0x6c6ec0e55cc57af35ab90e4b9b7677d089e241db8b400dec87ff347d22558ace\")\r\n{\r\n  blockHash: \"0x668de63b825b627140c85949fbc9221fd9baaefb6ad123493020071d277297a1\",\r\n  blockNumber: 7857,\r\n  contractAddress: null,\r\n  cumulativeGasUsed: 21000,\r\n  from: \"0xe4697cbb8955526c703a4441f219cf0a04447a9b\",\r\n  gasUsed: 21000,\r\n  logs: [],\r\n  logsBloom: \"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\r\n  status: \"0x1\",\r\n  to: \"0x815261dc4186502ec0d8ccfef163785e1617b5a8\",\r\n  transactionHash: \"0x6c6ec0e55cc57af35ab90e4b9b7677d089e241db8b400dec87ff347d22558ace\",\r\n  transactionIndex: 0\r\n}\r\n\r\n\r\n------------------------------------------------------------------------------\r\n**我是powervip**\r\n\r\n**我的公众号：区块链战斗机\r\n我的网盘：https://pan.baidu.com/s/1frOZuMxdp5IVaY94ZdoN-A\r\n我的知乎：https://www.zhihu.com/people/powervip\r\n我的学习笔记：www.study.win**\r\n<br>\r\n\r\n*如果你觉得这篇文章写得还可以，请帮忙点个赞，谢谢！著作权归作者所有。如需转载，请注明原文出处并保留原文链接。*\r\n​\r\n*你的鼓励，我的动力！*"},"author":{"user":"https://learnblockchain.cn/people/5018","address":null},"history":"QmYpLtukZhEbP6K8F6Y3Zp7LV8JEHnVdxU1sWHwDrLQxMH","timestamp":1669368989,"version":1}