首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么两个Uni V3池有不同的字节码?

为什么两个Uni V3池有不同的字节码?
EN

Stack Overflow用户
提问于 2021-09-20 17:16:31
回答 1查看 62关注 0票数 4

我试图评估两个智能合同(address_1和address_2)是否都是使用web3的Uni V3池。

我的想法是按以下方式请求每个契约的运行时字节码:

代码语言:javascript
复制
sc_i_bytecode = w3.eth.getCode(w3.toChecksumAddress(address_i))

然后将它们与另一个智能协议的字节码进行比较,我知道它代表了一个Uni V3池。I do 知道address_1和address_2的两个联系人都是Uni V3池,但是当我得到上面的字节码时,它们并不匹配(即sc_1_bytecode != sc_2_bytecode,尽管它们都是由同一个Uni V3工厂实现的?)它们似乎与我的Uni V3引用字节码的字节码不匹配。我只是想知道我是不是遗漏了什么东西,而这些东西是否确实有不同的字节码?

EN

回答 1

Stack Overflow用户

发布于 2021-09-28 01:15:11

您可以在智能契约上调用factory()方法

https://etherscan.io/address/0xcbcdf9626bc03e24f779434178a73a0b4bad62ed#readContract

并验证它是否匹配v3工厂合同的地址:https://etherscan.io/address/0x1f98431c8ad98523631ae4a59f267346ea31f984

在两个示例池中,工厂()方法返回相同的v3工厂合同地址:0x6c6Bc977E13Df9b0de53b2522280B72383700 0xccdf9626bc03e24f7774178a73a0b4bad62

方法来自以太扫描上的合同代码:

代码语言:javascript
复制
interface IUniswapV3PoolImmutables {
    /// @notice The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface
    /// @return The contract address
    function factory() external view returns (address);

至于你的问题,为什么他们有不同的字节码-我不是百分之百肯定。可能与设置有关吗?(也从以太扫描中提取)

代码语言:javascript
复制
{
  "optimizer": {
    "enabled": true,
    "runs": 800
  },
  "metadata": {
    "bytecodeHash": "none"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69258462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档