合约curl扩展

curl扩展  时间:2021-04-11  阅读:()
享云链智能合约接入指南享云链智能合约接入指南智能合约部署与调用编写合约代码编译合约使用remix编译合约使用true编译合约部署合约与调用通过peer节点的Geth控制台部署通过wallet接口部署与调用链克口袋执行合约直接生成二维码二维码活码方式应用唤醒链克口袋智能合约部署与调用编写合约代码下面以一个简单的合约为例编译合约pragmasolidity^0.
5.
5;contractTest{uintpublict;stringpublics;addresspublicowner;constructor()public{owner=msg.
sender;}modifieronlyOwner{require(msg.
sender==owner,"onlyowneroperate");_;}functionsetT(uint_t)public{t=_t;}functionsetS(stringmemory_s)publiconlyOwner{s=_s;}}编译合约的过程主要是为了获取部署合约所需的bytecode和合约调用所需的通用ABI.
编译的方式有很多,既可以选择使用在线编译工具如remix编译,也可以选择使用true、wae等框架创建本地合约工程并编译.
下面简单介绍两种编译方式的使用过程:使用remix编译合约需要在remix右侧的pluginmanager里添加SolidityCompilerPlugin.
然后根据合约的需要选择合适的编译选项,比如solc的版本,EVM的版本以及优化选项等.
修改代码后点击Compile或者勾选自动编译选项,可以点击下面的CompilationDetails按钮查看编译详情,或者直接点击下面的Bytecode和ABI按钮复制对应的内容.
使用true编译合约1.
新建合约工程2.
添加合约文件Vote.
sol3.
修改编译选项true-cong.
js编译选项的修改主要是$npmi-gtruffle$mkdirvote-contract$cdvote-contract$truffleinit4.
执行编译truecompile5.
从build/Vote.
json下复制所需的bytecode和abi部署合约与调用由上一步得到的bytecode和ABI如下(编译环境不同得到的值可能不同)compilers:{solc:{version:"0.
5.
8",//Fetchexactversionfromsolc-bin(default:truffle'sversion)docker:true,Use"0.
5.
1"you'veinstalledlocallywithdocker(default:false)settings:SeethesoliditydocsforadviceaboutoptimizationandevmVersionoptimizer:{enabled:true,runs:200evmVersion:"byzantium"}}}部署合约时需要一个有余额的账户来签署并发送交易.
这里就需要用到前面启动的peer节点,以及节点内的账户来执行下面的操作.
从与peer节点的交互的方式上区分,可以从以下两种方式来执行部署合约和调用合约的流程:1.
通过peer启动的rpc端口attach到geth控制台执行2.
通过启动的wallet服务,发送请求到对应的接口来执行//bytecode0x608060405234801561001057600080fd5b50600280546001600160a01b031916331790556001600081905560408051808201909152600b8082527f68656c6c6f20776f726c64000000000000000000000000000000000000000000602090920191825261006d929190610073565b5061010e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100b457805160ff19168380011785556100e1565b828001600101855582156100e1579182015b828111156100e15782518255916020019190600101906100c6565b506100ed9291506100f1565b5090565b61010b91905b808211156100ed57600081556001016100f7565b90565b6103be8061011d6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063717020761461005c57806386b714e2146101045780638da5cb5b1461018157806392d0d153146101a5578063f5f31941146101bf575b600080fd5b6101026004803603602081101561007257600080fd5b81019060208101813564010000000081111561008d57600080fd5b82018360208201111561009f57600080fd5b803590602001918460018302840111640100000000831117156100c157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506101dc945050505050565b005b61010c610247565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014657818101518382015260200161012e565b50505050905090810190601f1680156101735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101896102d4565b604080516001600160a01b039092168252519081900360200190f35b6101ad6102e3565b60408051918252519081900360200190f35b610102600480360360208110156101d557600080fd5b50356102e9565b6002546001600160a01b03163314610230576040805162461bcd60e51b81526020600482015260126024820152716f6e6c79206f776e6572206f70657261746560701b604482015290519081900360640190fd5b80516102439060019060208401906102ee565b5050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102cc5780601f106102a1576101008083540402835291602001916102cc565b820191906000526020600020905b8154815290600101906020018083116102af57829003601f168201915b505050505081565b6002546001600160a01b031681565b60005481565b600055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061032f57805160ff191683800117855561035c565b8280016001018555821561035c579182015b8281111561035c578251825591602001919060010190610341565b5061036892915061036c565b5090565b61038691905b808211156103685760008155600101610372565b9056fea265627a7a72315820973e632ca02dad5527eb949827658d751ce7b3909648f007c641497ff12fd9e164736f6c634300050c0032//ABI[{"constant":false,"inputs":[{"internalType":"string","name":"_s","type":"string"}],"name":"setS","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_t","type":"uint256"}],"name":"setT","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"s","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"t","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]通过peer节点的Geth控制台部署这里的节点以本地测试网络节点为例.
docker环境和启动过程参考快速入门.
部署合约查询合约调用合约[root@b97bfae188b6]#/src/pack/lkchain/bin/lkchainattachhttp://127.
0.
0.
1:11000>TestContract=eth.
contract(abi)>personal.
unlockAccount(eth.
accounts()[0])//解锁要使用的发送账户>ctx=TestContract.
new({from:eth.
accounts()[0],data:bytecode})transactionHash:"0x422747be10e702cd7338d13fa2d6a4a11010c203db88489e5861766778e40c74"//通过返回的交易hash查询部署的合约地址>eth.
getTransactionReceipt('0x422747be10e702cd7338d13fa2d6a4a11010c203db88489e5861766778e40c74'){blockHash:"0x510961350615d610728749d67ee50db4e72f9d7a684446a9488295ddcf35db3b",blockNumber:151703,contractAddress:"0x132b86bbb129287ef3dce5193e88c66f7365f3c1",cumulativeGasUsed:0,from:"0xa73810e519e1075010678d706533486d8ecc8000",gasUsed:0,logs:[],logsBloom:"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",status:"0x1",to:null,tokenAddress:"0x0000000000000000000000000000000000000000",transactionHash:"0x422747be10e702cd7338d13fa2d6a4a11010c203db88489e5861766778e40c74",transactionIndex:0}//可以得到contractAddress:"0x132b86bbb129287ef3dce5193e88c66f7365f3c1">ctx=eth.
contract(abi).
at('0x132b86bbb129287ef3dce5193e88c66f7365f3c1')>ctx.
owner()"0xa73810e519e1075010678d706533486d8ecc8000">ctx.
t()1>ctx.
s()"helloworld"通过wallet接口部署与调用本地启动的peer节点和wallet服务,可以使用wallet提供的接口实现合约部署和调用.
1.
解锁账户2.
getNonce3.
预估gas4.
signTransaction参数gas使用上一步得到的值,一般在结果上加一些,这里加20000;gasPrice使用固定值>ctx.
setT(100,{from:eth.
accounts()[0]})"0xd0dab5f5148835c936b6dc771f3ddc7d67d460141726f1a89f393d2134713490">ctx.
t()100$curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","method":"personal_unlockAccount","params":["0xa73810e519e1075010678d706533486d8ecc8000","1234",3600],"id":1}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":1,"result":true}$curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_getTransactionCount","params":["0xa73810e519e1075010678d706533486d8ecc8000","latest"]}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":"0","result":"0x0"}curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_estimateGas","params":[{"from":"0xa73810e519e1075010678d706533486d8ecc8000","value":"0x0","data":bytecode}]}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":"0","result":"0x5dff3"}$curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_signTransaction","params":[{"from":"0xa73810e519e1075010678d706533486d8ecc8000","value":"0x0","data":bytecode,"nonce":"0x0","gas":"0x62e13","gasPrice":"0x174876e800"}]}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":"0","result":{"raw":"0xf905308085174876e80083062e138080b904db608060405234801561001057600080fd5b50600280546001600160a01b031916331790556001600081905560408051808201909152600b8082527f68656c6c6f20776f726c64000000000000000000000000000000000000000000602090920191825261006d929190610073565b5061010e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100b457805160ff19168380011785556100e1565b828001600101855582156100e1579182015b828111156100e15782518255916020019190600101906100c6565b506100ed9291506100f1565b5090565b61010b91905b808211156100ed57600081556001016100f7565b90565b6103be8061011d6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063717020761461005c57806386b714e2146101045780638da5cb5b1461018157806392d0d153146101a5578063f5f31941146101bf575b600080fd5b6101026004803603602081101561007257600080fd5b81019060208101813564010000000081111561008d57600080fd5b82018360208201111561009f57600080fd5b803590602001918460018302840111640100000000831117156100c157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506101dc945050505050565b005b61010c610247565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014657818101518382015260200161012e565b50505050905090810190601f1680156101735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101896102d4565b604080516001600160a01b039092168252519081900360200190f35b6101ad6102e3565b60408051918252519081900360200190f35b610102600480360360208110156101d557600080fd5b50356102e9565b6002546001600160a01b03163314610230576040805162461bcd60e51b81526020600482015260126024820152716f6e6c79206f776e6572206f70657261746560701b604482015290519081900360640190fd5b80516102439060019060208401906102ee565b5050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102cc5780601f106102a1576101008083540402835291602001916102cc565b820191906000526020600020905b8154815290600101906020018083116102af57829003601f168201915b505050505081565b6002546001600160a01b031681565b60005481565b600055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061032f57805160ff191683800117855561035c565b8280016001018555821561035c579182015b8281111561035c578251825591602001919060010190610341565b5061036892915061036c565b5090565b61038691905b808211156103685760008155600101610372565b9056fea265627a7a72315820973e632ca02dad5527eb949827658d751ce7b3909648f007c641497ff12fd9e164736f6c634300050c003282e3e6a09e94ef86ef39c0a2f73a14fa9196b0bd3015fd894c7d331e6581218e04260422a02b0c1424a908148c6aad73997af7a3d05634ec770de998565c85bb89ac529f61","tx":{"nonce":"0x0","gasPrice":"0x174876e800","gas":"0x62e13","to":null,"value":"0x0","input":"0x608060405234801561001057600080fd5b50600280546001600160a01b031916331790556001600081905560408051808201909152600b8082527f68656c6c6f20776f726c64000000000000000000000000000000000000000000602090920191825261006d929190610073565b5061010e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100b457805160ff19168380011785556100e1565b828001600101855582156100e1579182015b828111156100e15782518255916020019190600101906100c6565b506100ed9291506100f1565b5090565b61010b91905b808211156100ed57600081556001016100f7565b90565b6103be8061011d6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063717020761461005c57806386b714e2146101045780638da5cb5b1461018157806392d0d153146101a5578063f5f31941146101bf575b600080fd5b6101026004803603602081101561007257600080fd5b81019060208101813564010000000081111561008d57600080fd5b82018360208201111561009f57600080fd5b803590602001918460018302840111640100000000831117156100c157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506101dc945050505050565b005b61010c610247565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014657818101518382015260200161012e565b50505050905090810190601f1680156101735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101896102d4565b604080516001600160a01b039092168252519081900360200190f35b6101ad6102e3565b60408051918252519081900360200190f35b610102600480360360208110156101d557600080fd5b50356102e9565b6002546001600160a01b03163314610230576040805162461bcd60e51b81526020600482015260126024820152716f6e6c79206f776e6572206f70657261746560701b604482015290519081900360640190fd5b80516102439060019060208401906102ee565b5050565b60018054605.
sendRawTransaction发送部署交易params取上一步得到的raw6.
根据hash查询交易4080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102cc5780601f106102a1576101008083540402835291602001916102cc565b820191906000526020600020905b8154815290600101906020018083116102af57829003601f168201915b505050505081565b6002546001600160a01b031681565b60005481565b600055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061032f57805160ff191683800117855561035c565b8280016001018555821561035c579182015b8281111561035c578251825591602001919060010190610341565b5061036892915061036c565b5090565b61038691905b808211156103685760008155600101610372565b9056fea265627a7a72315820973e632ca02dad5527eb949827658d751ce7b3909648f007c641497ff12fd9e164736f6c634300050c0032","v":"0xe3e6","r":"0x9e94ef86ef39c0a2f73a14fa9196b0bd3015fd894c7d331e6581218e04260422","s":"0x2b0c1424a908148c6aad73997af7a3d05634ec770de998565c85bb89ac529f61","hash":"0xe8ddee932a37d73635affcbcb55aaa6a13cb7f2261491315f57a312887058eaf"}}}$curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_sendRawTransaction","params":["0xf905308085174876e80083062e138080b904db608060405234801561001057600080fd5b50600280546001600160a01b031916331790556001600081905560408051808201909152600b8082527f68656c6c6f20776f726c64000000000000000000000000000000000000000000602090920191825261006d929190610073565b5061010e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100b457805160ff19168380011785556100e1565b828001600101855582156100e1579182015b828111156100e15782518255916020019190600101906100c6565b506100ed9291506100f1565b5090565b61010b91905b808211156100ed57600081556001016100f7565b90565b6103be8061011d6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063717020761461005c57806386b714e2146101045780638da5cb5b1461018157806392d0d153146101a5578063f5f31941146101bf575b600080fd5b6101026004803603602081101561007257600080fd5b81019060208101813564010000000081111561008d57600080fd5b82018360208201111561009f57600080fd5b803590602001918460018302840111640100000000831117156100c157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506101dc945050505050565b005b61010c610247565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014657818101518382015260200161012e565b50505050905090810190601f1680156101735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101896102d4565b604080516001600160a01b039092168252519081900360200190f35b6101ad6102e3565b60408051918252519081900360200190f35b610102600480360360208110156101d557600080fd5b50356102e9565b6002546001600160a01b03163314610230576040805162461bcd60e51b81526020600482015260126024820152716f6e6c79206f776e6572206f70657261746560701b604482015290519081900360640190fd5b80516102439060019060208401906102ee565b5050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102cc5780601f106102a1576101008083540402835291602001916102cc565b820191906000526020600020905b8154815290600101906020018083116102af57829003601f168201915b505050505081565b6002546001600160a01b031681565b60005481565b600055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061032f57805160ff191683800117855561035c565b8280016001018555821561035c579182015b8281111561035c578251825591602001919060010190610341565b5061036892915061036c565b5090565b61038691905b808211156103685760008155600101610372565b9056fea265627a7a72315820973e632ca02dad5527eb949827658d751ce7b3909648f007c641497ff12fd9e164736f6c634300050c003282e3e6a09e94ef86ef39c0a2f73a14fa9196b0bd3015fd894c7d331e6581218e04260422a02b0c1424a908148c6aad73997af7a3d05634ec770de998565c85bb89ac529f61"]}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":"0","result":"0xe8ddee932a37d73635affcbcb55aaa6a13cb7f2261491315f57a312887058eaf"}status=0x1表示交易成功,contractAddress:0x25faf109d3c0514e4e021dd6baabfa1e8473e97b即部署得到的合约地址7.
执行合约合约ABI方法里constant类型为false的函数通过这种方式来执行.
执行合约需要用合约的ABI对执行的方法和参数做编码,这里选择使用ethers.
js,也可以选择使用其他编码工具;go语言的可以参考go-etherspack/unpack实现;java语言的可以参考web3j.
再次按照上面的执行交易的流程执行一遍获取nonce预估gas解锁账户,sign交易,参数from,to(合约地址),data(setTData),gas(预估gas),nonce发送raw根据hash查询交易结果$curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_getTransactionReceipt","params":["0xe8ddee932a37d73635affcbcb55aaa6a13cb7f2261491315f57a312887058eaf"]}'-H'Content-Type:application/json'{"jsonrpc":"2.
0","id":"0","result":{"blockHash":"0x4c81ca8cbc30f6440c2fd628db6b6479a086f74c131cc9842199e57ff8a5dc0a","blockNumber":"0xb","contractAddress":"0x25faf109d3c0514e4e021dd6baabfa1e8473e97b","cumulativeGasUsed":"0x5dff3","from":"0xa73810e519e1075010678d706533486d8ecc8000","gasUsed":"0x5dff3","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"tokenAddress":"0x0000000000000000000000000000000000000000","transactionHash":"0xe8ddee932a37d73635affcbcb55aaa6a13cb7f2261491315f57a312887058eaf","transactionIndex":"0x0"}}constethers=require("ethers")constabi=[{"constant":false,"inputs":[{"internalType":"string","name":"_s","type":"string"}],"name":"setS","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_t","type":"uint256"}],"name":"setT","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"s","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"t","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]letabiCoder=newethers.
utils.
Interface(abi)letsetTData=abiCoder.
functions['setT'].
encode([10])//0xf5f31941000000000000000000000000000000000000000000000000000000000000000a$curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_getTransactionCount","params":["0xa73810e519e1075010678d706533486d8ecc8000","latest"]}'-H'Content-Type:application/json'//{"jsonrpc":"2.
0","id":"0","result":"0x1"}$curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_estimateGas","params":[{"from":"0xa73810e519e1075010678d706533486d8ecc8000","to":"0x25faf109d3c0514e4e021dd6baabfa1e8473e97b","data":"0xf5f31941000000000000000000000000000000000000000000000000000000000000000a"}]}'-H'Content-Type:application/json'//{"jsonrpc":"2.
0","id":"0","result":"0x685f"}$curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_signTransaction","params":[{"from":"0xa73810e519e1075010678d706533486d8ecc8000","to":"0x25faf109d3c0514e4e021dd6baabfa1e8473e97b","data":"0xf5f31941000000000000000000000000000000000000000000000000000000000000000a","nonce":"0x5","gas":"0x685f","gasPrice":"0x174876e800"}]}'-H'Content-Type:application/json'//{"jsonrpc":"2.
0","id":"0","result":{"raw":"0xf88a0585174876e80082685f9425faf109d3c0514e4e021dd6baabfa1e8473e97b80a4f5f31941000000000000000000000000000000000000000000000000000000000000000a82e3e5a08f7e45fb92a128133502d075c815f6620d59d62d789e8420618f8eb695ef9edca031244b40d077be259538c0648fac53057f4c6b6147cb88436f7c5d4ce907b002","tx":{"nonce":"0x5","gasPrice":"0x174876e800","gas":"0x685f","to":"0x25faf109d3c0514e4e021dd6baabfa1e8473e97b","value":"0x0","input":"0xf5f31941000000000000000000000000000000000000000000000000000000000000000a","v":"0xe3e5","r":"0x8f7e45fb92a128133502d075c815f6620d59d62d789e8420618f8eb695ef9edc","s":"0x31244b40d077be259538c0648fac53057f4c6b6147cb88436f7c5d4ce907b002","hash":"0xfa83fc700f922586c0a01c16353b86923c4e6ef1657e10e1c3fe1d7e13c703cd"}}}$curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_sendRawTransaction","params":["0xf88a0585174876e80082685f9425faf109d3c0514e4e021dd6baabfa1e8473e97b80a4f5f31941000000000000000000000000000000000000000000000000000000000000000a82e3e5a08f7e45fb92a128133502d075c815f6620d59d62d789e8420618f8eb695ef9edca031244b40d077be259538c0648fac53057f4c6b6147cb88436f7c5d4ce907b002"]}'-H'Content-Type:application/json'//{"jsonrpc":"2.
0","id":"0","result":"0xfa83fc700f922586c0a01c16353b86923c4e6ef1657e10e1c3fe1d7e13c703cd"}$curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_getTransactionReceipt","params":["0xfa83fc700f922586c0a01c16353b86923c4e6ef1657e10e1c3fe1d7e13c703cd"]}'-H'Content-Type:application/json'查询合约函数合约ABI方法里constant类型为true的函数通过直接调用来执行查询.
下面查询t的值:1.
对执行方法做编码用上一步中的abiCoder2.
调用ethcall接口查询3.
对结果进行解码链克口袋执行合约链克口袋是享云链为普通用户提供的账户管理、资产管理以及快捷签发交易的客户端工具.
按照前面执行的合约方法构造交易结构://{"jsonrpc":"2.
0","id":"0","result":{"blockHash":"0x01b82619a79efa935e89e227a6feffa805ce2caef6b25f331ffd43d08924c756","blockNumber":"0x154eaa","contractAddress":null,"cumulativeGasUsed":"0x685f","from":"0xa73810e519e1075010678d706533486d8ecc8000","gasUsed":"0x685f","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x25faf109d3c0514e4e021dd6baabfa1e8473e97b","tokenAddress":"0x0000000000000000000000000000000000000000","transactionHash":"0x0d14c499347a7cf920d76b10519c58ac3f679c685e3eda8d05e36d72af796dec","transactionIndex":"0x0"}}lettData=abiCoder.
functions['t'].
encode([])//0x92d0d153$curl-s-XPOSThttp://127.
0.
0.
1:18082-d'{"jsonrpc":"2.
0","id":"0","method":"ltk_call","params":[{"to":"0x25faf109d3c0514e4e021dd6baabfa1e8473e97b","data":"0x92d0d153"},"latest"]}'-H'Content-Type:application/json'//{"jsonrpc":"2.
0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000000a"}lett=abiCoder.
functions['t'].
decode("0x000000000000000000000000000000000000000000000000000000000000000a")//[BigNumber{_hex:"0x0a"}]t.
toString()//10直接生成二维码二维码内容格式如下:base64(ptitlubancommon://contractto=tx.
to&data=tx.
data&value=tx.
value&gas=tx.
gas&desc=encodeURL(extension.
desc)&callback=encodeURL(extension.
callback)&cbData=encodeURL(extension.
cbData))内容中不需要的字段可以省略.
此种方式只适用于交易内容小于160字符的情况,当交易内容过长时,会导致生成的二维码过于密集,扫码设备识别率低;这时建议使用二维码活码方式.
根据交易内容拼接字符串得:二维码活码方式{to:"0x25faf109d3c0514e4e021dd6baabfa1e8473e97b",data:"0xf5f31941000000000000000000000000000000000000000000000000000000000000000a",gas:"0x685f",value:0}//扩展字段extension{desc:交易描述callback:客户端发送交易后回调应用方后台链接cbData:''//客户端回调应用方后台时带入参数}//base64(ptitlubancommon://contractto=0x25faf109d3c0514e4e021dd6baabfa1e8473e97b&data=0xf5f31941000000000000000000000000000000000000000000000000000000000000000a&gas=26719)//cHRpdGx1YmFuY29tbW9uOi8vY29udHJhY3Q/dG89MHhhMzZlNmQxMDljMWE5ZWVlNDllMGY2NmQzYWY2OWRlM2I2YWFmZGNmJmRhdGE9MHhmNWYzMTk0MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGEmZ2FzPTI2NzE5如果交易内容过长,直接生成二维码会导致很难识别.
这时可以通过活码方式生成二维码:https://www.
lianxiangcloud.
com/download/guider/#/guideraction=encodeURL(actionURL)通过链克口袋扫描二维码后,链克口袋会GET请求actionURL,actionURL由开发者提供可请求服务,要求对应的response结构如下:上述字段中contract里字符串拼接的就是tx交易的字段.
按照上述格式拼接合约交易如下:构造上述response的请求链接如http://xxx/orderid/3126908c00fe42129bf358756ea1aea2拼接二维码内容https://www.
lianxiangcloud.
com/download/guider/#/guideraction=http%3A%2F%2Fxxx%2Forderid%2F3126908c00fe42129bf358756ea1aea2这里由于请求是一个测试链接,所以就不展示生成的二维码,由开发者自行生成自己环境下的二维码测试.
应用唤醒链克口袋应用方拼接交易并直接通过链接的形式唤醒链克口袋,传入交易参数.
链接格式:ptitlubancommon://contractto=tx.
to&data=tx.
data&value=tx.
value&gas=tx.
gas&desc=encodeURL(extension.
desc)&callback=encodeURL(extension.
callback)&cbData=encodeURL(extension.
cbData)内容中不需要的字段可以省略.
根据交易内容拼接链接如下:ptitlubancommon://contract{"iRet":0,"sMsg":"ok","data":{"type":1,"contract":base64(key=value&key1=value1)})}//base64(to=0x25faf109d3c0514e4e021dd6baabfa1e8473e97b&data=0xf5f31941000000000000000000000000000000000000000000000000000000000000000a&gas=26719)//dG89MHhhMzZlNmQxMDljMWE5ZWVlNDllMGY2NmQzYWY2OWRlM2I2YWFmZGNmJmRhdGE9MHhmNWYzMTk0MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGEmZ2FzPTI2NzE5{"iRet":0,"sMsg":"ok","data":{"type":1,"contract":"dG89MHhhMzZlNmQxMDljMWE5ZWVlNDllMGY2NmQzYWY2OWRlM2I2YWFmZGNmJmRhdGE9MHhmNWYzMTk0MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGEmZ2FzPTI2NzE5"})}to=0x25faf109d3c0514e4e021dd6baabfa1e8473e97b&data=0xf5f31941000000000000000000000000000000000000000000000000000000000000000a&gas=26719

Hostodo:4款便宜美国vps七折优惠低至$13/年;NVMe阵列1Gbps带宽,免费DirectAdmin授权

hostodo怎么样?快到了7月4日美国独立日,hostodo现在推出了VPS大促销活动,提供4款Hostodo美国独立日活动便宜VPS,相当于7折,低至$13/年,续费同价。Hostodo美国独立日活动结束时间不定,活动机售完即止。Hostodo商家支持加密数字货币、信用卡、PayPal、支付宝、银联等付款。Hostodo美国独立日活动VPS基于KVM虚拟,NVMe阵列,1Gbps带宽,自带一个...

数脉科技:香港服务器低至350元/月;阿里云CN2+BGP线路,带宽10M30M50M100M

数脉科技(shuhost)8月促销:香港独立服务器,自营BGP、CN2+BGP、阿里云线路,新客立减400港币/月,老用户按照优惠码减免!香港服务器带宽可选10Mbps、30Mbps、50Mbps、100Mbps带宽,支持中文本Windows、Linux等系统。数脉香港特价阿里云10MbpsCN2,e3-1230v2,16G内存,1T HDD 或 240G SSD,10Mbps带宽,IPv41个,...

10gbiz七月活动首月半价$2.36/月: 香港/洛杉矶CN2 GIA VPS

10gbiz怎么样?10gbiz 美国万兆带宽供应商,主打美国直连大带宽,真实硬防。除美国外还提供线路非常优质的香港、日本等数据中心可供选择,全部机房均支持增加独立硬防。洛杉矶特色线路去程三网直连(电信、联通、移动)回程CN2 GIA优化,全天低延迟。中国大陆访问质量优秀,最多可增加至600G硬防。香港七星级网络,去程回程均为电信CN2 GIA+联通+移动,大陆访问相较其他香港GIA线路平均速度更...

curl扩展为你推荐
登录snshttp404未找到HTTP 404 - 未找到文件,怎么解决啊企业ssl证书公司购买SSL证书需要提交什么资料?一般要多久才能拿到证书dell服务器bios设置dell怎样进入bios设置界面重庆杨家坪猪肉摊主杀人重庆忠县的猪肉市场应该好好整顿一下了。6月份我买到了母猪肉。今天好不容易才下定决心去买农贸市场买肉。重庆网站制作请问一下重庆网站建设哪家公司做得好,价格又便宜哦?银花珠树晓来看晚来天欲雪,能饮一杯无。相似的句子瞄准的拼音碰的拼音是什么厦门三五互联科技股份有限公司厦门三五互联做销售怎么样?即时通如何使用即时通啊
godaddy域名解析 域名交易网 亚洲大于500m photonvps 老鹰主机 windows2003iso 中国智能物流骨干网 太原联通测速平台 刀片服务器是什么 169邮箱 广州服务器 服务器干什么用的 空间技术网 电信虚拟主机 宿迁服务器 带宽测试 密钥索引 移动王卡 hosting24 alexa搜 更多