web3基础  by yudan.pdf

上传人:max1024 文档编号:100758080 上传时间:2023-07-23 格式:PDF 页数:5 大小:621.52KB
下载 相关 举报
web3基础  by yudan.pdf_第1页
第1页 / 共5页
web3基础  by yudan.pdf_第2页
第2页 / 共5页
web3基础  by yudan.pdf_第3页
第3页 / 共5页
web3基础  by yudan.pdf_第4页
第4页 / 共5页
web3基础  by yudan.pdf_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述
web3基础 by yudan0 x01 总览web3js 1.0 接法(中册)0 x02 环境配置npm install install的是最新的版本,现在是1.0.0,在找教程的时候应该注意web3的版本,不然就是瞎搞,在进测试之前需要在你喜欢的地新建个件夹,然后运以下命令进环境初始化和下载web3紧接着在项引即可0 x03 开始搞事情以下全部是在命令下的操作1、键 node 进命令提符2、var Web3=require(web3)3、设置Provider(本例使本地的巧克酱(ganache)作为rpc,也是最好的法):4、部署合约:1:获取合约字节码(使solc命令),并将字节码保存到当前录2:获取合约的abinpm initnpm install web3var web3=new Web3(new Web3.provider.HttpProvider(http:/127.0.0.1:7545)solc-bin.sol abi.txt12113:创建合约实例运截图:4:部署合约(将合约的bytecode填data部分)5:设置实例地址,如果不设置的话法调合约法,与合约交互不设置地址的警告设置地址solc-abi.sol bin.txtvar MyContract=new web3.eth.Contract(constant:false,inputs:name:_to,type:address,name:_value,type:uint256,name:transferTo,outputs:name:,type:uint8,payable:false,stateMutability:nonpayable,type:function,inputs:,payable:false,stateMutability:nonpayable,type:constructor)MyContract.deploy(data:).send(from:巧克力酱(ganache)上随便一个地址,gasPrice:按照下图设置即可,gas:按照下图设置即可).then(function(newContractInstance)console.log(newContractInstance.options.address)1115:调合约法,与合约交互运截图功告成,可以在巧克酱(ganache)上查询到相关的记录了例合约:0 x04 相关问题:1:为什么连接了infura节点作为rpc节点法成功对合约进调?答:因为infura节点上没有你的帐号,需要使web3.eth.sendSignTransaction()法,相当于发送离线签名的交易运截图:MyContract.options.address=0 x1234567788.(上面返回的地址)MyContract.methods.transferTo(0 x3AD86bE1aBbe61d1ab24E390Fc1E0A67F323c785,123).send(from:0 x784F66f448791d79baF9E37C3BD7CeF61aFA1bbb).then(function(transactionHash)console.log(transactionHash)pragma solidity 0.4.23;contract Test uint totalSupply=1e18;mapping(address=uint)balance;constructor()public balancemsg.sender=totalSupply;function transferTo(address _to,uint _value)public returns(uint8)balancemsg.sender-=_value;balance_to+=_value;11123456789101112当前Provider:账户:返回为空,可见账户列表是个空列表,这就是不能成功的原因解决办法:使web3.eth.sendSigTransaction()法1:下载ethereumjs-tx2:设置交易原始数据(parameter),data部分为调合约的法的ABI获取式:3:设置的签名私钥4依次:执以下命令,对交易数据进签名和些处理npm install ethereumjs-txparameter=data:0 x2ccb1b3000000000000000000000000071e9a2cf63ae147d3a4a2623ee54ec10864ccf67000000000000000000000000000000000000000000000000000000000000007b,nonce:159,/设置为你发起交易的地址的上一笔交易的nonce+1 gasLimit:0 x7a1200,gasPrice:0 x2540be400,value:0 x0,to:0 x70C748596E025b1eCDa02eBd55fE56aF383A9aF5 privateKey=Buffer(你的账户私钥,hex)var Tx=require(ethereumjs-tx)var transaction=new Tx(parameter)11234561125:发送交易:成功截图:0 x04相关参考https:/ serializedTx=transaction.serialize()web3.eth.sendSignedTransaction(0 x+serializedTx.toString(hex)341
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 国家标准GB

版权所有:www.WDFXW.net 

鲁ICP备09066343号-25 

QQ: 200681278 或 335718200