部署智能合约后的合约地址与运行npx Hardhat节点后的地址不匹配

问题描述 投票:0回答:1

当我运行 npx Hardhat 节点时......有 20 个不同的帐户

但是当我运行时: npx hardhat run scripts/deploy.js --network localhost 部署的地址与这 20 个帐户中的任何一个都不匹配...... 我现在该怎么办??

我希望部署的合约应该与这 20 个帐户中的任何一个匹配

部署后:合约地址:0x9fE467........................

npx 安全帽节点之后:

账户 #0: 0xf39Fd6......... 账户#1:0x7099797........ 账户#2:0x3C44Cd........

。 。 。 。 。 。 。 。 。 。 。 直到 20 个账户,但没有一个与部署的合约地址匹配

ethereum solidity hardhat
1个回答
0
投票

这 20 个预定义地址是 EOA - 外部拥有地址。这意味着它们中的每一个都源自私钥。就 Hardhat 而言,这 20 个私钥源自测试助记符种子。

智能合约地址不是 EOA。它不是从私钥派生的。相反,合约地址源自其部署交易。 (有关如何根据 CREATE/

CREATE2
操作码计算合约地址的更多信息,请参阅
此答案
)。

由于合约地址是在部署过程中生成的,因此与预先生成的EOA不同。

© www.soinside.com 2019 - 2024. All rights reserved.