如何解锁ganache / truffle / web3中的合同地址,以便我可以使用它来调用函数?

问题描述 投票:0回答:2

我正在使用zeppelin库构建一个altcoin合约,以便使用代理进行升级。我还使用了Ownable cotract,它允许我分两个阶段将所有权转移到另一个地址。转让所有权,地址为参数和索赔所有权,必须使用以前的地址调用。我在ubuntu上使用Ganache应用程序,有10个未锁定的帐户。问题在于此代码:

Coin.deployed().then(coin => {
    TokenProxy.deployed().then(function(proxy) {
      coin.transferOwnership(proxy.address, {from:owner}).then(function(res) {
            proxy.claimOwnership({from: proxy.address}).then(function (res) {
              console.log("Done!");
            }).catch(function (e) {console.log(e);});
          }).catch(function (e) {console.log(e);});
        })
      })

问题是代理地址不会是列表中的10个之一,所以我最终得到了

错误:无法识别发件人帐户

基本上我不确定它是否是ganache节点的一部分(但如果它是,确定它被锁定)。我尝试使用web3和一些不同的东西解锁它。什么都没有帮助。 TY。

blockchain ethereum solidity web3 truffle
2个回答
0
投票

我认为错误在于您使用的是smartcontract地址而不是有效的以太坊钱包帐户。


0
投票

解锁合同账户不仅不能在Ganache上,也不能在其他网络上解锁。您不能使用合同地址作为发件人地址发送交易,因为您没有该地址的私钥。如果您可以解锁合同的地址,那么有什么可以阻止某人解锁您的地址。

如果您希望从合同地址调用函数,则必须在合同本身内调用您希望调用的函数。

© www.soinside.com 2019 - 2024. All rights reserved.