首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏终有链响

    swp添加池子addLiquidity失败

    KywFactory 添加如下 bytes32 public constant INIT_CODE_PAIR_HASH = keccak256(abi.encodePacked(type(KywPair).creationCode 说明: 在智能合约中添加bytes32 public constant INIT_CODE_PAIR_HASH = keccak256(abi.encodePacked(type(KywPair).creationCode 这里详细解释一下: 创建代码的哈希值:keccak256(abi.encodePacked(type(KywPair).creationCode))这一表达式计算的是KywPair合约创建时的完整字节码的哈希值 在Solidity中,type(KywPair).creationCode直接引用了KywPair合约的创建字节码。

    45010编辑于 2024-07-29
  • 来自专栏深入浅出区块链技术

    以太坊合约地址是怎么计算出来的?(附源码实现)

    owner,uint _foo) public pure returns(bytes memory){ bytes memory bytecode= type(TestContract).creationCode

    1.9K40编辑于 2022-04-08
  • 来自专栏Keegan小钢

    剖析DeFi交易产品之Uniswap:V2上篇

    最关键的就是以下这几行代码: bytes memory bytecode = type(UniswapV2Pair).creationCode; bytes32 salt = keccak256(abi.encodePacked { pair := create2(0, add(bytecode, 32), mload(bytecode), salt) } 第一行获取 UniswapV2Pair 合约代码的创建字节码 creationCode 可以在工厂合约中添加一行代码保存这个创建字节码: bytes32 public constant INIT_CODE_PAIR_HASH = keccak256(abi.encodePacked(type(UniswapV2Pair).creationCode

    2.1K61发布于 2021-08-20
  • 来自专栏公共互联网反网络钓鱼(APCN)

    基于搜索引擎广告的DeFi钓鱼攻击机制与防御体系研究

    const creationCode = await provider.getCode(address);if (creationCode === '0x') return 0.0; // EOA账户,

    37010编辑于 2025-12-03
  • 来自专栏深入浅出区块链技术

    HACK Reply XCarnival

    abi.encodePacked( hex"ff", address(this), bytes32(i), keccak256(type(Helper).creationCode

    82220编辑于 2022-11-07
  • 来自专栏Keegan小钢

    剖析DeFi交易产品之Uniswap:V2中篇

    该值其实是 UniswapV2Pair 合约的 creationCode 的哈希值。 合约中添加以下常量获取到该值: bytes32 public constant INIT_CODE_PAIR_HASH = keccak256(abi.encodePacked(type(UniswapV2Pair).creationCode

    3K31发布于 2021-10-08
  • 来自专栏深入浅出区块链技术

    Uniswap V2部署

    添加一行代码: bytes32 public constant INIT_CODE_PAIR_HASH = keccak256(abi.encodePacked(type(UniswapV2Pair).creationCode

    2.1K30编辑于 2021-12-15
  • 来自专栏深入浅出区块链技术

    通过CREATE2获得合约地址:解决交易所充值账号问题

    uint256 salt) public { // get wallet init_code bytes memory bytecode = type(Wallet).creationCode

    3.1K10发布于 2020-07-28
  • 来自专栏深入浅出区块链技术

    UniSwap学习笔记1: 概览以及交易对地址计算

    UniswapV2: PAIR_EXISTS'); // single check is sufficient bytes memory bytecode = type(UniswapV2Pair).creationCode keccak256(abi.encodePacked(token0, token1)), 且 token0 < token1 keccak256(type(Contract_to_Deploy).creationCode function pair_code() public view returns(bytes memory){ return type(UniswapV2Pair).creationCode function pair_codehash() public view returns(bytes32 ){ return keccak256( type(UniswapV2Pair).creationCode

    2.1K21编辑于 2022-05-25
  • 来自专栏后端开发从入门到入魔

    Solidity 智能合约开发 - 基础:基础语法 基础数据类型、以及用法和示例

    ; constructor() { // 将合约代码存储在 contractCode 变量中 contractCode = type(CodeExample).creationCode

    75010编辑于 2024-03-16
  • 来自专栏深入浅出区块链技术

    Paradigm-CTF 代理合约漏洞

    Caller caller; uint i = 0; while (true) { bytes memory bytecode = type(Caller).creationCode

    1.2K40发布于 2021-07-14
  • 来自专栏深入浅出区块链技术

    在以太坊上部署一个确定性的合约

    view returns (bytes memory) { bytes memory bytecode = type(SimpleWallet).creationCode

    1.2K20编辑于 2022-11-07
  • 来自专栏网络安全攻防

    UniswapV2协议解析

    UniswapV2: PAIR_EXISTS'); // single check is sufficient bytes memory bytecode = type(UniswapV2Pair).creationCode 在创建时会首先检查TokenA是否与TokenB是同一币种,之后对两种Token地址进行一次简易排序,之后检查地址是否为空,之后检查交易对是否存在,然后用获取交易对模板合约UniswapV2Pair创建字节码creationCode UniswapV2: PAIR_EXISTS'); // single check is sufficient bytes memory bytecode = type(UniswapV2Pair).creationCode

    4K43发布于 2021-07-21
领券