合约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

NameCheap域名转入优惠再次来袭 搜罗今年到期域名续费

在上个月的时候也有记录到 NameCheap 域名注册商有发布域名转入促销活动的,那时候我也有帮助自己和公司的客户通过域名转入到NC服务商这样可以实现省钱续费的目的。上个月续费转入的时候是选择9月和10月份到期的域名,这不还有几个域名年底到期的,正好看到NameCheap商家再次发布转入优惠,所以打算把剩下的还有几个看看一并转入进来。活动截止到9月20日,如果我们需要转入域名的话可以准备起来。 N...

创梦网络-新上雅安电信200G防护值内死扛,无视CC攻击,E5 32核高配/32G内存/1TB SSD/100Mbps独享物理机,原价1299,年未上新促销6折,仅779.4/月,续费同价

创梦网络怎么样,创梦网络公司位于四川省达州市,属于四川本地企业,资质齐全,IDC/ISP均有,从创梦网络这边租的服务器均可以****,属于一手资源,高防机柜、大带宽、高防IP业务,另外创梦网络近期还会上线四川眉山联通、广东优化线路高防机柜,CN2专线相关业务。广东电信大带宽近期可以预约机柜了,成都优化线路,机柜租用、服务器云服务器租用,适合建站做游戏,不须要在套CDN,全国访问快,直连省骨干,大网...

企鹅小屋6折年付240元起,美国CN2 GIA VPS促销,独享CPU,三网回程CN2 GIA

企鹅小屋怎么样?企鹅小屋最近针对自己的美国cn2 gia套餐推出了2个优惠码:月付7折和年付6折,独享CPU,100%性能,三网回程CN2 GIA网络,100Mbps峰值带宽,用完优惠码1G内存套餐是年付240元,线路方面三网回程CN2 GIA。如果新购IP不能正常使用,请在开通时间60分钟内工单VPS技术部门更换正常IP;特价主机不支持退款。点击进入:企鹅小屋官网地址企鹅小屋优惠码:年付6折优惠...

curl扩展为你推荐
directoryto支持ipadaccessdenied升级后出现Access denied 如何解决进入查看申请支付宝账户如何申请支付宝账户重庆电信dns重庆电信的DNS是什么文档下载请问手机版wps如何把云文档下载到手机上的本地文档?购物车通过自己的体会总结购物车的作用科创板首批名单中国兰男队员名单电子商务世界美国电子商务的发展经历几个阶段网站方案设计网站文案策划怎么写
个人虚拟主机 什么是二级域名 php主机 lighttpd 150邮箱 骨干网络 七夕快乐英文 中国电信测速网 傲盾官网 gtt 台湾谷歌 新世界服务器 空间购买 外贸空间 百度云加速 华为云建站 浙江服务器 windowsserver2008 机柜尺寸 gotoassist 更多