链眼社区:专注于区块链安全,区块链数据分析, 区块链信息整合,区块链技术服务和区块链技术咨询。

solidity infura部署
扫地僧
2021-08-07 00:07:55

infura

在之前,我们使用了本地的ganache-cli测试网络+mocha测试部署交互合约。现在,我们需要使用到infura将合约部署到真实的区块链的网络当中。
我们都知道,如果我们本身不是一个以太坊的节点,那么我们就需要将我们的交易发送给其他的节点来挖矿确认。infura就是默认的维护了许多的节点,我们通过它就能够与以太坊进行连接。

安装模块

npm install --save truffle-hdwallet-provider

利用infura部署合约

deploy.js:

const HDWalletProvider = require('truffle-hdwallet-provider');
const Web3 = require('web3');
const {interface,bytecode} = require('./compile');
//借助于infura提供provider,ropsten网络
const provider = new HDWalletProvider(
    'type give repair twenty split notable humor sweet obey pizza click absurd',
    'https://ropsten.infura.io/v3/de22b468cb7846788b4d1ae36bcc26c2'
);
const web3 = new Web3(provider);
const deploy =  async ()=>{
    console.log(interface);
    const accounts = await  web3.eth.getAccounts();
    //console.log('Attemp to deploy contract',accounts[0]);
    const result =   await new web3.eth.Contract(JSON.parse(interface)).deploy({data:'0x'+bytecode})
        .send({from:accounts[0],gas:'1000000'});
    //打印出部署到合约中的地址。
    console.log('contract deployed to ',result.options.address);
}
deploy();

部署

node deploy.js


合作伙伴