web3连接Ropsten测试网络
发布日期:2021-05-08 14:50:15 浏览次数:20 分类:精选文章

本文共 1885 字,大约阅读时间需要 6 分钟。

内容摘要

  1. remix发布智能合约到Ropsten测试网络
  2. 修改合约实例使得可以访问Ropsten

合约发布

这一阶段最重要的就是获取合约实例的ABI和合约地址地址。

图片

实例修改

部署到测试网络时编译阶段生成的ABI。复制下来创建一个json文件并保存,需要改的地方:放在对象里:

{   "abi":[	{   		"inputs": [			{   				"internalType": "string",				"name": "AuthenticationInfomation",				"type": "string"			},			{   				"internalType": "uint256",				"name": "BallotID",				"type": "uint256"			}		],		"name": "applyRight",		"outputs": [],		"stateMutability": "nonpayable",		"type": "function"	},	/**其他合约实例**/}

获取实例这里基本没有可以更改的。

$.getJSON("src/ABI/ABI.json",function(data){               //得到TruffleContract对象,并赋值给BallotInit.contracts.Simple           Contract.contracts.Ballot = TruffleContract(data);           console.log("index.contract.Ballot");            console.log(Contract.contracts.Ballot);           //设置Provider           Contract.contracts.Ballot.setProvider(Contract.web3Provider);        });

重点在这里:

原来调用合约的方法:

Contract.contracts.Ballot.deployed().then(             function(instance){                    instance.candidate(                    BallotMsgs,                    weight,                     BallotProposals,                     status,                     {   from:web3.eth.defaultAccount}                 ).then(result=>{                            alert(result.receipt.blockHash?"success":"flase");                         console.log(result)                 });             }         );

现在调用合约的方法

const ContratcAddress="
";Contract.contracts.Ballot.at(ContratcAddress).then(function(instance){ instance.candidate( BallotMsgs, weight, BallotProposals, status, { from:web3.eth.defaultAccount} ).then(result=>{ alert(result.receipt.blockHash?"success":"flase"); console.log(result) }); })

结果区别

到测试网络后,系统的响应速度就会大大降低。本地测试几乎是瞬间相应的。

上一篇:2. 阿里云上搭建ubuntu16.04并使用VNC进行远程连接
下一篇:智能合约开发实践(1)

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月02日 02时45分29秒