区块链用户在部署智能合约的时候,如果使用工具,比如《墨客区块链(MOAC BlockChain) 部署ERC-20合约》中是使用wallet.io网页版钱包部署合约,此时如果合约需要参数,钱包会在对合约的编译过程中显示出来并提供参数输入框。合约部署者输入相应的参数后就可以正常部署合约了。 那么实际上部署合约时的这个过程是怎么做的呢?本文提供一段代码示例,在部署智能合约时传入参数,并成功部署。 仍然使用一个标准的erc20 token智能合约做例子。 1.编译智能合约 首先本地的solidity编译环境。安装命令: C:>npm install -g solc//默认安装最新版本 C:>npm install -g [email protected]//安装指定版本 进入TestToken20.sol所在目录,编译合约: D:>solcjs --optimize --bin --abi -o bin TestToken20.sol 运行后,会自动生成一个bin目录,输出TestToken20.abi及TestToken20.bin到bin目录下,TestToken20.abi里边放的就是abi的内容,TestToken20.bin里边放的就是bytecode的内容。 2.部署合约 使用以下代码部署合约,直接node执行。 var Chain3 = require('chain3'); var chain3 = new Chain3(new Chain3.providers.HttpProvider('http://localhost:8545')); //deploy contract chain3.personal.unlockAccount(chain3.mc.accounts[0], 'password',0); var totalSupply = 1000000 ; var name = "erc20Token" ; var decimals = 18 ; var symbol = "token" ; var erc20TokenContract = chain3.mc.contract([{"constant":true,"inputs":[],"name":"name","outputs":......,"name":"Approval","type":"event"}]);//编译智能合约得到的abi var subchainbase = erc20TokenContract.new( totalSupply, name, decimals, symbol, { from: chain3.mc.accounts[0], data: '0x608060405234801561001057600080......00029',//编译智能合约得到的bin,前面加上0x gas : '9000000' }, function (e, contract){ console.log(e, contract); if (typeof contract.address !== 'undefined') { console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash); } }) 传入四个参数,正是智能合约所需要的参数。 执行后得到: 到浏览器查询结果: 部署成功! —- 编译者/作者:鬼才长吉 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
示例:MOAC部署智能合约时传入参数
2019-10-20 鬼才长吉 来源:区块链网络
LOADING...
相关阅读:
- BTC迅速下跌13%后,加密货币交易员谈论比特币价格方向2020-08-04
- 牛市来了吗?暴跌洗牌符合牛市运行特征;不玩合约,不玩菠菜,不折2020-08-03
- 没有暴跌,就没有牛市,暴跌过后,牛将继续?2020-08-03
- Lien: 一个比AMPL还销魂,可做杠杆投资的稳定币协议2020-08-03
- 8/3.BTC凌晨空单建议250点已到位.反手多单建议再次完美获150个点.这波操2020-08-03