【问题标题】:How to change account in truffle(ganache)?如何更改松露(ganache)的帐户?
【发布时间】:2021-07-18 13:47:04
【问题描述】:

我使用 ganache-cli 构建本地区块链并使用 truffle 部署合约。为了与已部署的合约交互,我使用 truffle 控制台。例如,我将代币从我的当前帐户(即web3.eth.personal.getAccounts()[0])转移到web3.eth.personal.getAccounts()[1],之后我想将我的当前帐户更改为web3.eth.personal.getAccounts()[1] 地址。

怎么做?

【问题讨论】:

  • 您能举出代码示例,您是如何进行转账的吗?“当前账户”是什么意思? (如果您不指定发件人,web3 会使用一个“默认帐户”,但如果没有代码示例,我不确定这是否是您的意思)。
  • @PetrHejda yes current = default 并且 transfer 只是 erc20 传输方法的实现。例如,我的默认地址是“0x123”,我将令牌转移到“0x456”,之后我想将此令牌从“0x456”转移到“0x789”,但我不能,因为我当前的地址是“0x123”而不是“0x456” .如果您使用过 remix,您可能知道在部署合约时可以更改帐户。所以我想我可以通过控制台在松露中做同样的事情,但不知道怎么做。

标签: blockchain solidity truffle web3js ganache


【解决方案1】:

您可以将default account设置为

web3.eth.defaultAccount = web3.eth.personal.getAccounts()[1];

或者只是作为一个地址

web3.eth.defaultAccount = '0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe';

请注意,Ganache 默认情况下只有 10 个预定义帐户,它知道其私钥。所以你需要传递一个 Ganache 知道私钥的地址。如果您传递未知的帐户地址,web3(和 Ganache)将无法使用此(未知)地址提交交易。

【讨论】:

    【解决方案2】:

    更改 web3.eth.defaultAccount 的值对我不起作用。 但是在 truffle.js 中配置 from 是可行的。

    module.exports = {
      networks: {
        development: {
          host: "127.0.0.1",
          port: 7545,
          network_id: "*", 
          from: "0x12345678"
        }
      }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 2020-02-07
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多