繁体   English   中英

如何在ganache / truffle / web3中解锁合同地址,以便我可以使用from作为调用函数?

[英]How to unlock a contract address in ganache/truffle/web3 so that I can use it as from to call a function?

我正在使用zeppelin库构建altcoin合同,以使其可以使用代理进行升级。 我还使用了一个Ownable合同,该合同允许我分两个阶段将所有权转移到另一个地址。 使用参数地址和所有权声明转移所有权,必须使用先前的地址进行调用。 我正在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。

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

不仅在Ganache上,而且在其他网络上,都无法解锁合同帐户。 您不能使用合同地址作为发件人地址发送交易,因为您没有该地址的私钥。 如果您可以解锁合同的地址,那将阻止他人解锁您的地址。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM