繁体   English   中英

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

[英]issues deploying solidity smart contract to rinkeby test network

我正在使用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语句。 尝试:*验证您的构造函数参数是否满足所有要求条件。 *在您的require语句中添加原因字符串。

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

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

谢谢

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

暂无
暂无

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

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