合同地址冲突

时间:2018-05-23 22:30:20

标签: ethereum solidity smartcontracts

因此,根据我的理解,在创建合同时,用于确定合同地址的两个变量是msg.sender和nonce值。因此,如果我在同一事务中创建两个合同,例如我使用此代码https://ropsten.etherscan.io/address/0xcb7d7e99e56406a675173f0ddbde7d8cc3392e5e#code

为什么它会在两个不同的地址生成两个合约,我会发生的事情是它们会在同一个地址生成,而一个人只会覆盖另一个或类似的地址。

1 个答案:

答案 0 :(得分:2)

您了解由邮件创建者的地址确定的合同地址,并且nonce是正确的。但是,在您发布的示例中,msg.senderTest合同的地址。

以下是发生的步骤:

  1. 您启动了从您的外部帐户Test部署0x98081ce968e5643c15de9c024de96b18be8e5ace的交易。根据交易信息,当时账户的现时为639。
  2. 这导致Test合同的地址为0xcb7d7e99e56406a675173f0ddbde7d8cc3392e5e
  3. 在部署Test期间,构造函数然后通过“内部事务”创建两个新合同。从Divert的合同地址0xcb7d7e99e56406a675173f0ddbde7d8cc3392e5e部署了nonce=1OverRide部署在nonce=2的同一地址。
  4. 您可以查看内部交易的详细信息here