达世币全节点


erc20

<p>[[toc]]</p> <h3>修改历史</h3> <ul> <li><code>2018-08-21</code> 增加<strong>获取gasPrice估计值</strong>接口</li> <li><code>2018-07-26</code> 自定义助记词升级,修改<strong>发送交易</strong>接口</li> <li><code>2018-07-13</code> 增加<strong>批量查询余额</strong>接口</li> <li><code>2018-07-06</code> 增加<strong>一对多转账</strong>接口</li> <li><code>2018-07-05</code> 增加<strong>估计手续费</strong>接口</li> <li><code>2018-07-04</code> <strong>发送交易</strong>增加uuid参数,保证幂等性</li> <li><code>2018-07-04</code> <strong>发送交易</strong>改为强制使用HTTPS,使用443端口(HTTPS默认端口,可以不指定),请求时需要指定<a href="https://www.tapd.cn/21308131/documents/file_list/1121308131001000093">CA根证书</a></li> </ul> <h2>1 总体说明</h2> <p>所有方法均返回JSON数据,所有调用应先检查status code,若不是<strong>200</strong>,则调用出错,返回的HTTP body中包含具体错误信息,如</p> <pre><code> { "error" : "some error message" } </code></pre> <p><code>所有的代币均以代币的合约地址作为唯一标识</code> <strong>文档中没有提及到的接口,比如</strong></p> <ul> <li>创建账户</li> <li>根据私钥生成地址</li> <li>查看交易确认次数</li> <li>查看交易打包信息</li> </ul> <p><strong>都可以调用以太坊的接口</strong></p> <h2>2 查询代币信息</h2> <p><strong>简要描述:</strong> </p> <ul> <li>查询指定指定代币的相关信息</li> </ul> <p><strong>请求URL:</strong> </p> <ul> <li><code>http://47.254.40.107:8080/[:tokenAddress]/info</code></li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>GET </li> </ul> <p><strong>参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">tokenAddress</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>代币的合约地址</td> </tr> </tbody> </table> <p><strong>调用示例</strong> <code>curl 47.254.40.107:8080/0xf230b790e05390fc8295f4d3f60332c93bed42e2/info</code></p> <p><strong>返回示例</strong></p> <pre><code>{ "name": "Tronix", "totalSupply": "100000000000000000", "decimals": "6", "symbol": "TRX" }</code></pre> <p><strong>返回参数说明</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">name</td> <td style="text-align: left;">string</td> <td>代币的名字</td> </tr> <tr> <td style="text-align: left;">totalSupply</td> <td style="text-align: left;">string</td> <td>代币的总发行量</td> </tr> <tr> <td style="text-align: left;">decimals</td> <td style="text-align: left;">string</td> <td>这个代币的小数位数</td> </tr> <tr> <td style="text-align: left;">symbol</td> <td style="text-align: left;">string</td> <td>代币的符号</td> </tr> </tbody> </table> <blockquote> <p><strong>需要注意的是:</strong> 上面的信息不一定全,因为erc20相当于一个接口,每一种代币相当于它的一种实现,但是有的实现并不严格,有的代币这些信息提供并不全。我们的程序只是强制要求代币实现decimals,如果没有实现,则会返回错误</p> </blockquote> <h2>3 查询余额</h2> <p><strong>简要描述:</strong> </p> <ul> <li>查询指定地址的指定代币的余额</li> </ul> <p><strong>请求URL:</strong> </p> <ul> <li><code>47.254.40.107:8080/[:tokenAddress]/account/[:accountAddress]/balance</code></li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>GET </li> </ul> <p><strong>参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">tokenAddress</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>代币的合约地址</td> </tr> <tr> <td style="text-align: left;">accountAddress</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>要查询的账户的地址</td> </tr> </tbody> </table> <p><strong>调用示例</strong> <code>curl 47.254.40.107:8080/0xf230b790e05390fc8295f4d3f60332c93bed42e2/account/0xa18ff761a52ce1cb71ab9a19bf4e4b707b388b83/balance</code></p> <p><strong>返回示例</strong></p> <pre><code>{ "address": "0xa18ff761a52ce1cb71ab9a19bf4e4b707b388b83", "coinName": "Tronix", "coinSymbol": "TRX", "coinDecimals": "6", "coinAddress": "0xf230b790e05390fc8295f4d3f60332c93bed42e2", "balance": "34251888354.9" }</code></pre> <p><strong>返回参数说明</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">address</td> <td style="text-align: left;">string</td> <td>地址</td> </tr> <tr> <td style="text-align: left;">coinName</td> <td style="text-align: left;">string</td> <td>代币名称</td> </tr> <tr> <td style="text-align: left;">coinSymbol</td> <td style="text-align: left;">string</td> <td>代币符号</td> </tr> <tr> <td style="text-align: left;">coinDecimals</td> <td style="text-align: left;">string</td> <td>代币精度</td> </tr> <tr> <td style="text-align: left;">coinAddress</td> <td style="text-align: left;">string</td> <td>代币合约地址</td> </tr> <tr> <td style="text-align: left;">balance</td> <td style="text-align: left;">string</td> <td>代币余额</td> </tr> </tbody> </table> <blockquote> <p><strong>需要注意的是</strong> 上面的余额是已经做了换算了的,在这里就是已经除以了1000000(decimals决定的,代币的decimals不同,除数就不同)</p> </blockquote> <h2>4 查询交易历史</h2> <p><strong>简要描述:</strong> </p> <ul> <li>查询指定地址,指定代币的历史交易记录</li> </ul> <p><strong>请求URL:</strong> </p> <ul> <li><code>47.254.40.107:8080/[:tokenAddress]/account/[:accountAddress]/history?page=1&amp;pagesize=10&amp;detail=true</code></li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>GET </li> </ul> <p><strong>参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">tokenAddress</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>代币合约地址</td> </tr> <tr> <td style="text-align: left;">accountAddress</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>账户地址</td> </tr> <tr> <td style="text-align: left;">detail</td> <td style="text-align: left;">否</td> <td style="text-align: left;">bool</td> <td>为false只返回交易hash,为true返回详细记录</td> </tr> <tr> <td style="text-align: left;">page</td> <td style="text-align: left;">否</td> <td style="text-align: left;">string</td> <td>分页,默认为1</td> </tr> <tr> <td style="text-align: left;">pagesize</td> <td style="text-align: left;">否</td> <td style="text-align: left;">string</td> <td>每页数量,默认为10</td> </tr> </tbody> </table> <p><strong>调用示例</strong> <code>curl 47.254.40.107:8080/0xf230b790e05390fc8295f4d3f60332c93bed42e2/account/0xa18ff761a52ce1cb71ab9a19bf4e4b707b388b83/history</code></p> <p><strong>返回示例</strong></p> <pre><code>{ "address": "0xa18ff761a52ce1cb71ab9a19bf4e4b707b388b83", "coinName": "Tronix", "coinSymbol": "TRX", "coinDecimals": "6", "coinAddress": "0xf230b790e05390fc8295f4d3f60332c93bed42e2", "transactions": [ "0xd430a03f07a4addd20340d827da7dd1a6a3027c2c0e72ee899edec0e9767619a", "0x6b2f38941c997a26d26791b02a8e63f65d9ceb30883f0c10239ebcc82934257a", "0xed61e9b27f5f53105ed54040fada31730da564bb3a6819d93c276bd36f572bcb", "0x5408fa1d987d110acac4738bec87c892eac19bdfe86585f192abfd4459cf47eb", "0x88b0ea1b8654d9f64723f42a2ff9ef407589b0283a3f60eb096bbab1b2adb3da" ] }</code></pre> <p><strong>调用示例</strong> <code>curl 47.254.40.107:8080/0xf230b790e05390fc8295f4d3f60332c93bed42e2/account/0xa18ff761a52ce1cb71ab9a19bf4e4b707b388b83/history?detail=true</code></p> <p><strong>返回示例</strong></p> <pre><code>{ "address": "0xa18ff761a52ce1cb71ab9a19bf4e4b707b388b83", "coinName": "Tronix", "coinSymbol": "TRX", "coinDecimals": "6", "coinAddress": "0xf230b790e05390fc8295f4d3f60332c93bed42e2", "transactions": [ { "from": "0xd551234ae421e3bcba99a0da6d736074f22192ff", "to": "0xa18ff761a52ce1cb71ab9a19bf4e4b707b388b83", "value": "80831", "hash": "0xd430a03f07a4addd20340d827da7dd1a6a3027c2c0e72ee899edec0e9767619a", "timestamp": "1516096933" }, { "from": "0xa18ff761a52ce1cb71ab9a19bf4e4b707b388b83", "to": "0x2c95d08a3d3a27d7b235ab9de0a32e8c0d8de144", "value": "1", "hash": "0x6b2f38941c997a26d26791b02a8e63f65d9ceb30883f0c10239ebcc82934257a", "timestamp": "1513677493" }, { "from": "0x9ea145606c4f694c28cf2a5a021f526a6764e1ba", "to": "0xa18ff761a52ce1cb71ab9a19bf4e4b707b388b83", "value": "34251807524", "hash": "0xed61e9b27f5f53105ed54040fada31730da564bb3a6819d93c276bd36f572bcb", "timestamp": "1513677127" }, { "from": "0xa18ff761a52ce1cb71ab9a19bf4e4b707b388b83", "to": "0x2c95d08a3d3a27d7b235ab9de0a32e8c0d8de144", "value": "0.1", "hash": "0x5408fa1d987d110acac4738bec87c892eac19bdfe86585f192abfd4459cf47eb", "timestamp": "1513676732" }, { "from": "0x2c95d08a3d3a27d7b235ab9de0a32e8c0d8de144", "to": "0xa18ff761a52ce1cb71ab9a19bf4e4b707b388b83", "value": "1", "hash": "0x88b0ea1b8654d9f64723f42a2ff9ef407589b0283a3f60eb096bbab1b2adb3da", "timestamp": "1513675988" } ] }</code></pre> <p><strong>返回参数说明</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">address</td> <td style="text-align: left;">string</td> <td>地址</td> </tr> <tr> <td style="text-align: left;">coinName</td> <td style="text-align: left;">string</td> <td>代币名称</td> </tr> <tr> <td style="text-align: left;">coinSymbol</td> <td style="text-align: left;">string</td> <td>代币符号</td> </tr> <tr> <td style="text-align: left;">coinDecimals</td> <td style="text-align: left;">string</td> <td>代币精度</td> </tr> <tr> <td style="text-align: left;">coinAddress</td> <td style="text-align: left;">string</td> <td>代币合约地址</td> </tr> <tr> <td style="text-align: left;">transactions</td> <td style="text-align: left;">array</td> <td>交易记录</td> </tr> </tbody> </table> <p><strong>详细记录里的value也是已经换算过的</strong></p> <h2>5 发起交易</h2> <p><strong>简要描述:</strong> </p> <ul> <li>发起一笔交易</li> </ul> <p><strong>请求URL:</strong> </p> <ul> <li><code>https://47.254.39.140/[:tokenAddress]/transaction</code></li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>POST </li> </ul> <p><strong>参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">ansa</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>自定义助记词a</td> </tr> <tr> <td style="text-align: left;">ansb</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>自定义助记词b</td> </tr> <tr> <td style="text-align: left;">ansc</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>自定义助记词c</td> </tr> <tr> <td style="text-align: left;">time</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>时间戳</td> </tr> <tr> <td style="text-align: left;">enc</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>因子B</td> </tr> <tr> <td style="text-align: left;">to</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>目的地址</td> </tr> <tr> <td style="text-align: left;">amount</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>转账金额,0.1个代币就传'0.1'</td> </tr> <tr> <td style="text-align: left;">gas</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>gas数量,未花费的gas会退回</td> </tr> <tr> <td style="text-align: left;">fee</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>手续费</td> </tr> <tr> <td style="text-align: left;">uuid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>唯一识别码,保证幂等性</td> </tr> </tbody> </table> <blockquote> <p><strong>需要注意的是</strong> 请一定确保tokenAddress正确并且这个代币实现了transfer(address,uint256)这个函数。因为即使代币地址错了或者代币未实现这个函数,交易还是会生成,发送并扣除手续费,但是代币转账则不会成功。 同时,这里即使from地址代币余额不足,交易还是会生成,发送并扣除手续费,但是代币转账则不会成功。 只有当from地址中的以太坊余额不足以支付手续费时,交易才会构造失败,并返回错误。</p> </blockquote> <p><strong>调用示例</strong></p> <pre><code>curl --cacert ROOT.crt -H "Content-Type:application/json" -X POST –data \ '{"privateKey": "0x965da9d169db3da5b81f4d02a76eb2b403a0e505836050e250e947c4345df89b", \ "to": "0x1dbe35dB279c0e0Ce0d0e1b92173d2216606d763", "amount":"1559.0123", "gas":"91000", \ "fee":"21001","uuid":"some universally unique identifier}' \ https://47.254.40.107/0xf230b790e05390fc8295f4d3f60332c93bed42e2/transaction </code></pre> <p><strong>返回示例</strong></p> <pre><code> { "transactionHash": "0x972b58d8331ad4bca2d6fd565ce1754bd4c35be40d29940c1b3cc5d4270be803" }</code></pre> <p><strong>返回参数说明</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">transactionHash</td> <td style="text-align: left;">string</td> <td>交易ID</td> </tr> </tbody> </table> <h2>6 估计手续费</h2> <p><strong>简要描述:</strong> </p> <ul> <li>获取手续费的估计值,这个值取决于最近几个区块中的所有交易的Gas Price的中位数</li> <li>此值仅供参考</li> </ul> <p><strong>请求URL:</strong> </p> <ul> <li><code>47.254.40.107:8080/[:tokenAddress]/transaction/fee?from=0x746eaf033c9e088642efe2e96fe321e7abebd014&amp;to=0xfd00B35A4029338AB79db21c94D1331c742C4F56&amp;amount=1.01234568</code></li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>GET </li> </ul> <p><strong>参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">from</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>from地址</td> </tr> <tr> <td style="text-align: left;">to</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>to地址</td> </tr> <tr> <td style="text-align: left;">amount</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>交易金额(0.1就是0.1,不用转换单位)</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code>curl 47.254.40.107:8080/0x7A3B079688B3808D92bDDB021F59d525371615E0/transaction/fee?from=0x746eaf033c9e088642efe2e96fe321e7abebd014&amp;to=0xfd00B35A4029338AB79db21c94D1331c742C4F56&amp;amount=1.01234568</code></pre> <p><strong>返回示例</strong></p> <pre><code>{ "gas": "37886", "fee": "95473" }</code></pre> <p><strong>返回参数说明</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">gas</td> <td style="text-align: left;">string</td> <td>gas数量</td> </tr> <tr> <td style="text-align: left;">fee</td> <td style="text-align: left;">string</td> <td>估计手续费</td> </tr> </tbody> </table> <h2>7 一对多转账</h2> <p><strong>简要描述:</strong> </p> <ul> <li>发起一对多转账,因为一对多转账并不在ERC20标准中,所以目前只支持CPS和INC</li> </ul> <p><strong>请求URL:</strong> </p> <ul> <li><code>https://47.254.40.107/[:tokenAddress]/transactions</code></li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>POST </li> </ul> <p><strong>参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">privateKey</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>私钥</td> </tr> <tr> <td style="text-align: left;">tos</td> <td style="text-align: left;">是</td> <td style="text-align: left;">Array</td> <td>to地址数组</td> </tr> <tr> <td style="text-align: left;">amounts</td> <td style="text-align: left;">是</td> <td style="text-align: left;">Array</td> <td>交易金额数组(0.1就是0.1,不用转换单位)</td> </tr> <tr> <td style="text-align: left;">uuid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>唯一识别码,保证幂等性</td> </tr> </tbody> </table> <p><strong>tos和amouts均为数组,且长度必须一致</strong></p> <p><strong>调用示例</strong></p> <pre><code>//POST body { "privateKey": "0x09245f031c604f2954b23c5429ae34b0954dc419e8da5ab7450b7f61fa439e00", "tos":["0x4c6072cA2200A63D50fCd7715A56B18b54991F38", "0x5E3CDCF0B6F67C82E7313b426AFFf5cFD9Ed74fe"], "amounts": ["0.11", "9.87"], "uuid": "01fbfee1-bc66-479e-9360-62f67c7fb295" }</code></pre> <p><strong>返回示例</strong></p> <pre><code>{ "transactionHash": "0x031799df70cbd5df3c0e3c5aa2c6ae578e744716923d0765b1c295421de500d6" }</code></pre> <p><strong>返回参数说明</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">transactionHash</td> <td style="text-align: left;">string</td> <td>交易hash</td> </tr> </tbody> </table> <h2>8 批量查询余额</h2> <p><strong>简要描述:</strong> </p> <ul> <li>查询多个地址,多个代币的余额</li> </ul> <p><strong>请求URL:</strong> </p> <ul> <li><code>http://47.254.40.107:8080/balances</code></li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>POST </li> </ul> <p><strong>参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">tokens</td> <td style="text-align: left;">是</td> <td style="text-align: left;">array</td> <td>代币地址数组</td> </tr> <tr> <td style="text-align: left;">addrs</td> <td style="text-align: left;">是</td> <td style="text-align: left;">array</td> <td>用户地址数组</td> </tr> </tbody> </table> <p><strong>调用示例</strong></p> <pre><code>//POST body { "tokens":["0x1130547436810DB920FA73681c946feA15E9b758", "0xf239fab41de78533fa974b74d7605f1e68f8772e", "0xf230b790e05390fc8295f4d3f60332c93bed42e2"], "addrs":["0x007821b9a9d1ADe9ed44Ac32A61b2DBB44337cbb", "0xa1dacb7d193259724c59a3e497e881089af2decd"] }</code></pre> <p><strong>返回示例</strong></p> <pre><code>[ { "address": "0x007821b9a9d1ADe9ed44Ac32A61b2DBB44337cbb", "balances": [ { "coinName": "bitcoin", "coinSymbol": "btc", "coinDecimals": "8", "coinAddress": "0x1130547436810DB920FA73681c946feA15E9b758", "balance": "0" }, { "coinName": "CPSCoin", "coinSymbol": "CPS", "coinDecimals": "8", "coinAddress": "0xf239fab41de78533fa974b74d7605f1e68f8772e", "balance": "0" }, { "coinName": "Tronix", "coinSymbol": "TRX", "coinDecimals": "6", "coinAddress": "0xf230b790e05390fc8295f4d3f60332c93bed42e2", "balance": "0" } ] }, { "address": "0xa1dacb7d193259724c59a3e497e881089af2decd", "balances": [ { "coinName": "bitcoin", "coinSymbol": "btc", "coinDecimals": "8", "coinAddress": "0x1130547436810DB920FA73681c946feA15E9b758", "balance": "0" }, { "coinName": "CPSCoin", "coinSymbol": "CPS", "coinDecimals": "8", "coinAddress": "0xf239fab41de78533fa974b74d7605f1e68f8772e", "balance": "0" }, { "coinName": "Tronix", "coinSymbol": "TRX", "coinDecimals": "6", "coinAddress": "0xf230b790e05390fc8295f4d3f60332c93bed42e2", "balance": "0" } ] } ]</code></pre> <p><strong>返回参数说明</strong> 结果数组</p> <h2>9 私钥发起交易</h2> <p><strong>简要描述:</strong> </p> <ul> <li>使用私钥发起一笔交易,而不是助记词</li> </ul> <p><strong>请求URL:</strong> </p> <ul> <li><code>https://47.254.40.107/[:tokenAddress]/transaction/admin</code></li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>POST </li> </ul> <p><strong>参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">privateKey</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>私钥</td> </tr> <tr> <td style="text-align: left;">to</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>目的地址</td> </tr> <tr> <td style="text-align: left;">amount</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>转账金额,0.1个代币就传'0.1'</td> </tr> <tr> <td style="text-align: left;">gas</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>gas数量,未花费的gas会退回</td> </tr> <tr> <td style="text-align: left;">fee</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>手续费</td> </tr> <tr> <td style="text-align: left;">uuid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>唯一识别码,保证幂等性</td> </tr> </tbody> </table> <blockquote> <p><strong>需要注意的是</strong> 请一定确保tokenAddress正确并且这个代币实现了transfer(address,uint256)这个函数。因为即使代币地址错了或者代币未实现这个函数,交易还是会生成,发送并扣除手续费,但是代币转账则不会成功。 同时,这里即使from地址代币余额不足,交易还是会生成,发送并扣除手续费,但是代币转账则不会成功。 只有当from地址中的以太坊余额不足以支付手续费时,交易才会构造失败,并返回错误。</p> </blockquote> <p><strong>调用示例</strong></p> <pre><code>curl --cacert ROOT.crt -H "Content-Type:application/json" -X POST –data \ '{"privateKey": "0x965da9d169db3da5b81f4d02a76eb2b403a0e505836050e250e947c4345df89b", \ "to": "0x1dbe35dB279c0e0Ce0d0e1b92173d2216606d763", "amount":"1559.0123", "gas":"91000", \ "fee":"21001","uuid":"some universally unique identifier}' \ https://47.254.40.107/0xf230b790e05390fc8295f4d3f60332c93bed42e2/transaction/admin </code></pre> <p><strong>返回示例</strong></p> <pre><code> { "transactionHash": "0x972b58d8331ad4bca2d6fd565ce1754bd4c35be40d29940c1b3cc5d4270be803" }</code></pre> <p><strong>返回参数说明</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">transactionHash</td> <td style="text-align: left;">string</td> <td>交易ID</td> </tr> </tbody> </table> <h2>10 获取gasPrice估计值</h2> <p><strong>简要描述:</strong> </p> <ul> <li>获取gasPrice估计值(前若干区块中的gasPrice的中位数)</li> </ul> <p><strong>请求URL:</strong> </p> <ul> <li><code>http://47.254.40.107:8080/gasprice</code></li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>GET </li> </ul> <p><strong>参数:</strong> -None</p> <p><strong>调用示例</strong> <code>curl http://47.254.40.107:8080/gasprice</code></p> <p><strong>返回示例</strong></p> <pre><code>{ "gasPrice": "2875000000" }</code></pre> <p><strong>返回参数说明</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">gasPrice</td> <td style="text-align: left;">string</td> <td>建议的gasPrice</td> </tr> </tbody> </table>

页面列表

ITEM_HTML