在Remix IDE中部署合同后,Solidity函数返回管理器地址0x00000

时间:2018-08-09 15:23:54

标签: ethereum solidity remix metamask

我最近遇到了与我创建的稳定性合同有关的问题,并且正在尝试在Remix IDE内部进行部署并与之交互。我写的返回合同管理者地址的函数就是这样

 function getManager() public view returns(address){
    return manager;
}

合同经理的设置方式是如此

 function Contest() public {
    manager = msg.sender;
}

我创建了两个JavaScript编译和部署脚本,它们在终端内部运行。部署脚本是这样写的

 const HDWalletProvider = require('truffle-hdwallet-provider');
const Web3 = require('web3');

const {interface, bytecode} = require('./compile.js');

const provider = new HDWalletProvider(
    'MetaMask Mnemonic',
    'Infura endpoint key'
);



const web3 = new Web3(provider);

const deploy = async () => {
    const accounts =  await web3.eth.getAccounts();

    console.log('deploying from ', accounts[0]);

    const ABI = interface;

    const deployedContract = await new web3.eth.Contract(JSON.parse(ABI))
    .deploy({data: bytecode})
    .send({
      gas: '1000000',
      from: accounts[0]
    });
    console.log('contract deployed to', deployedContract.options.address);
}

deploy();

部署合同后,我会收到部署的地址(类似于0xbc0370FbC085FAf053b418e6ff62F26ED2C7Dee1),然后转到Remix IDE,在其中输入地址并使用Injected web3选项。但是,当我调用“ getManager”函数时,它返回的地址为0x0000000000000000000000000000000000000000000000,我似乎无法获取它来返回管理器的地址。这种方法以前只工作过一次,我似乎无法弄清楚为什么它不再起作用了。

0 个答案:

没有答案