在rinkeby测试网络上部署固态智能合约的问题

时间:2018-09-13 10:39:44

标签: deployment ethereum solidity web3 truffle

我正在使用openZeppelin进行众包合同,所有(其中30个)我的测试都通过了测试;)并且我可以毫无问题地在本地ganache区块链上进行迁移。

  1. 当我尝试部署到rinkeby时,我开始遇到问题。我在truffle.js中的配置是

    rinkeby: {
      provider: rinkeybyProvider,
      network_id: 3,
      gas: 4712388,
      gasPrice: web3.utils.toWei("40", "gwei"),
      websockets: true,
      from: "0x9793371e69ed67284a1xxxx"
    }

在rinkeby上部署时,我得到:

  

“ SplitWallet”在其某处命中了require或revert语句   构造函数。尝试:*验证构造函数参数是否满足   都需要条件。 *将原因字符串添加到您的需求中   声明。

我已经遍历并将消息放入构造函数层次结构的每个还原中,但是我从未看到任何消息。我以为我的收款人和股票的长度可能不同,但不,它们是相同的(只有splitwallet的构造函数采用的参数)

注意事项:

  • 我有一个Infura api密钥
  • 我正在使用truffle-wallet-provider提供程序,仅使用私钥(没有助记符)进行部署
  • 由于上述原因,我很困惑,我的部署脚本如何知道部署时的多个(10)钱包。通常(在ganache中)这些是ganache为您生成的10个钱包,但是在这里,我提供了一个私钥,因此它应该无法知道10个钱包,而只能知道一个-正在部署的私钥的公钥。合同,不是吗? (在这里谈论):

module.exports = async (
  deployer,
  network,
  [owner, purchaser, investor, organisation, ...accounts] //how does it know these??
)

最后一点,让我感到奇怪,因为我打印出了所有者/购买者,而且它们根本不匹配我的公钥钱包,所以我不知道它们来自何处。如果它们不匹配,并且默认为所有者为accounts [0],则该钱包可能无法支付汽油费用。...也许?

谢谢

1 个答案:

答案 0 :(得分:1)

Rinkeby网络ID是4,而不是3。