Overview
SOPH Balance
SOPH Value
-More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
7641764 | 8 days ago | Contract Creation | 0 SOPH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
TokenMakerHelper
Compiler Version
v0.8.24+commit.e11b9ed9
ZkSolc Version
v1.5.11
Optimization Enabled:
Yes with Mode 3
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.23; import {ITokenMaker} from "contracts/interfaces/ITokenMaker.sol"; contract TokenMakerHelper { bytes32 constant MAKE_ERC20_BYTECODE_HASH = 0x0100018fe6f8527f967fe1b54a9ae0dcb5aac13dcebfeced7b67a2b41c303aaf; //zkout -> MakeErc20.json -> .hash bytes32 constant ZKSYNC_CREATE2_PREFIX = 0x2020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494; // or keccak256("zksyncCreate2") int24 internal constant MIN_TICK = -887272; int24 internal constant MAX_TICK = -MIN_TICK; uint160 internal constant MIN_SQRT_RATIO = 4295128739; uint160 internal constant MAX_SQRT_RATIO = 1461446703485210103287273052203988822378723970342; address public tokenMaker; constructor(address _tokenMaker) { tokenMaker = _tokenMaker; } function helpMakeToken( bytes32 salt, uint256 virtualNewTokenAmount, uint256 virtualCounterAssetAmount ) public view returns (address newToken, int24 startingTick, uint160 roundedPrice) { newToken = predictTokenAddress(salt); uint256 reserve1; uint256 reserve0; if (ITokenMaker(tokenMaker).counterAsset() < newToken) { reserve1 = virtualNewTokenAmount; reserve0 = virtualCounterAssetAmount; } else { reserve1 = virtualCounterAssetAmount; reserve0 = virtualNewTokenAmount; } uint160 sqrtPriceX96 = encodePriceSqrt(reserve1, reserve0); int24 rawTick = getTickAtSqrtRatio(sqrtPriceX96); startingTick = rawTick / 2000 * 2000; //round down to nearest CL2000 tick if (rawTick >= 0) { if (rawTick % 2000 >= 1000) { startingTick += 2000; // round up if more than halfway between ticks } } else { if (rawTick % 2000 < -1000) { startingTick -= 2000; // round down if more than halfway between ticks } } roundedPrice = getSqrtRatioAtTick(startingTick); } function predictTokenAddress(bytes32 salt) public view returns (address) { bytes32 senderBytes = bytes32(uint256(uint160(tokenMaker))); // Use zkSync's precomputed CREATE2_PREFIX bytes32 data = keccak256( bytes.concat( ZKSYNC_CREATE2_PREFIX, // Correct prefix senderBytes, salt, MAKE_ERC20_BYTECODE_HASH, keccak256(abi.encode()) // Constructor args hash ) ); return address(uint160(uint256(data))); } function sqrt(uint256 y) internal pure returns (uint256 z) { if (y > 3) { z = y; uint256 x = y / 2 + 1; while (x < z) { z = x; x = (y / x + x) / 2; } } else if (y != 0) { z = 1; } } function encodePriceSqrt(uint256 reserve1, uint256 reserve0) public pure returns (uint160) { reserve1 = reserve1 * 2 ** 192; uint256 division = reserve1 / reserve0; uint256 sqrtX96 = sqrt(division); return uint160(sqrtX96); // DOES NOT REVERT ON OVERFLOW, PLEASE ensure reserve1 and reserve0 are reduced to minimums } function getTickAtSqrtRatio(uint160 sqrtPriceX96) internal pure returns (int24 tick) { // second inequality must be < because the price can never reach the price at the max tick require(sqrtPriceX96 >= MIN_SQRT_RATIO && sqrtPriceX96 < MAX_SQRT_RATIO, "R"); uint256 ratio = uint256(sqrtPriceX96) << 32; uint256 r = ratio; uint256 msb = 0; assembly { let f := shl(7, gt(r, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)) msb := or(msb, f) r := shr(f, r) } assembly { let f := shl(6, gt(r, 0xFFFFFFFFFFFFFFFF)) msb := or(msb, f) r := shr(f, r) } assembly { let f := shl(5, gt(r, 0xFFFFFFFF)) msb := or(msb, f) r := shr(f, r) } assembly { let f := shl(4, gt(r, 0xFFFF)) msb := or(msb, f) r := shr(f, r) } assembly { let f := shl(3, gt(r, 0xFF)) msb := or(msb, f) r := shr(f, r) } assembly { let f := shl(2, gt(r, 0xF)) msb := or(msb, f) r := shr(f, r) } assembly { let f := shl(1, gt(r, 0x3)) msb := or(msb, f) r := shr(f, r) } assembly { let f := gt(r, 0x1) msb := or(msb, f) } if (msb >= 128) r = ratio >> (msb - 127); else r = ratio << (127 - msb); int256 log_2 = (int256(msb) - 128) << 64; assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(63, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(62, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(61, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(60, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(59, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(58, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(57, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(56, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(55, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(54, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(53, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(52, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(51, f)) r := shr(f, r) } assembly { r := shr(127, mul(r, r)) let f := shr(128, r) log_2 := or(log_2, shl(50, f)) } int256 log_sqrt10001 = log_2 * 255738958999603826347141; // 128.128 number int24 tickLow = int24((log_sqrt10001 - 3402992956809132418596140100660247210) >> 128); int24 tickHi = int24((log_sqrt10001 + 291339464771989622907027621153398088495) >> 128); tick = tickLow == tickHi ? tickLow : getSqrtRatioAtTick(tickHi) <= sqrtPriceX96 ? tickHi : tickLow; } function getSqrtRatioAtTick(int24 tick) internal pure returns (uint160 sqrtPriceX96) { uint256 absTick = tick < 0 ? uint256(-int256(tick)) : uint256(int256(tick)); require(absTick <= uint256(int256(MAX_TICK)), "T"); uint256 ratio = absTick & 0x1 != 0 ? 0xfffcb933bd6fad37aa2d162d1a594001 : 0x100000000000000000000000000000000; if (absTick & 0x2 != 0) ratio = (ratio * 0xfff97272373d413259a46990580e213a) >> 128; if (absTick & 0x4 != 0) ratio = (ratio * 0xfff2e50f5f656932ef12357cf3c7fdcc) >> 128; if (absTick & 0x8 != 0) ratio = (ratio * 0xffe5caca7e10e4e61c3624eaa0941cd0) >> 128; if (absTick & 0x10 != 0) ratio = (ratio * 0xffcb9843d60f6159c9db58835c926644) >> 128; if (absTick & 0x20 != 0) ratio = (ratio * 0xff973b41fa98c081472e6896dfb254c0) >> 128; if (absTick & 0x40 != 0) ratio = (ratio * 0xff2ea16466c96a3843ec78b326b52861) >> 128; if (absTick & 0x80 != 0) ratio = (ratio * 0xfe5dee046a99a2a811c461f1969c3053) >> 128; if (absTick & 0x100 != 0) ratio = (ratio * 0xfcbe86c7900a88aedcffc83b479aa3a4) >> 128; if (absTick & 0x200 != 0) ratio = (ratio * 0xf987a7253ac413176f2b074cf7815e54) >> 128; if (absTick & 0x400 != 0) ratio = (ratio * 0xf3392b0822b70005940c7a398e4b70f3) >> 128; if (absTick & 0x800 != 0) ratio = (ratio * 0xe7159475a2c29b7443b29c7fa6e889d9) >> 128; if (absTick & 0x1000 != 0) ratio = (ratio * 0xd097f3bdfd2022b8845ad8f792aa5825) >> 128; if (absTick & 0x2000 != 0) ratio = (ratio * 0xa9f746462d870fdf8a65dc1f90e061e5) >> 128; if (absTick & 0x4000 != 0) ratio = (ratio * 0x70d869a156d2a1b890bb3df62baf32f7) >> 128; if (absTick & 0x8000 != 0) ratio = (ratio * 0x31be135f97d08fd981231505542fcfa6) >> 128; if (absTick & 0x10000 != 0) ratio = (ratio * 0x9aa508b5b7a84e1c677de54f3e99bc9) >> 128; if (absTick & 0x20000 != 0) ratio = (ratio * 0x5d6af8dedb81196699c329225ee604) >> 128; if (absTick & 0x40000 != 0) ratio = (ratio * 0x2216e584f5fa1ea926041bedfe98) >> 128; if (absTick & 0x80000 != 0) ratio = (ratio * 0x48a170391f7dc42444e8fa2) >> 128; if (tick > 0) ratio = type(uint256).max / ratio; // this divides by 1<<32 rounding up to go from a Q128.128 to a Q128.96. // we then downcast because we know the result always fits within 160 bits due to our tick input constraint // we round up in the division so getTickAtSqrtRatio of the output price is always consistent sqrtPriceX96 = uint160((ratio >> 32) + (ratio % (1 << 32) == 0 ? 0 : 1)); } }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.23; interface ITokenMaker { // ======================= Struct ======================= /** * @dev Parameters for creating a new token in the TokenMaker contract. * @param salt Unique identifier used to generate the token address deterministically. * @param totalSupply Total supply of the token being created. * @param startingTick Initial tick corresponding to initial price of the liquidity pool. * @param feeRecipients Array of addresses that will receive fees from token transactions. * @param feeBPS Array of fee basis points (BPS) corresponding to each fee recipient. */ struct MakeParams { bytes32 salt; uint256 totalSupply; int24 startingTick; address[] feeRecipients; uint256[] feeBPS; } /** * @dev Initialization parameters for deploying the TokenMaker contract. * @param escrowImpl Address of the escrow implementation contract. * @param tokenImpl Address of the token implementation contract. * @param CLFactory Address of the factory contract for creating liquidity pools. * @param counterAsset Address of the counterAsset token. * @param positionManager Address of the position manager contract. * @param protocolFeeBPS Protocol fee rate in basis points (BPS). * @param protocolFeeRecipient Address that receives the protocol fees. * @param owner Address that has admin access to the TokenMaker contract. * @param pausers Array of addresses that can pause the TokenMaker contract. */ struct InitParams { address CLFactory; address counterAsset; address positionManager; uint256 protocolFeeBPS; address protocolFeeRecipient; address owner; address[] pausers; address feeManager; } // ======================= Error ======================= error TokenMaker__InvalidTokenParams(); error TokenMaker__InvalidSet(); error TokenMaker__Paused(); // ======================= Event ======================= /** * @dev Emitted when a new token is created. * @param token Address of the newly created token. * @param LP Address of the liquidity pool. * @param tokenId Token ID associated with the liquidity position. * @param escrow Address of the escrow contract. */ event TokenCreated(address indexed token, address indexed LP, uint256 tokenId, address escrow); // ======================= Function ======================= function makeToken(string memory name, string memory symbol, MakeParams memory params) external returns (address token, address LP, uint256 tokenId, address escrow); function protocolFeeBPS() external view returns (uint256); function protocolFeeRecipient() external view returns (address); function counterAsset() external view returns (address); }
{ "viaIR": false, "codegen": "yul", "remappings": [ "forge-std/=lib/forge-std/src/", "zksync-oz/=lib/zksync-era/contracts/l1-contracts/lib/murky/lib/openzeppelin-contracts/", "@matterlabs/=lib/zksync-era/contracts/", "ds-test/=lib/zksync-era/contracts/l1-contracts/lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/zksync-era/contracts/lib/openzeppelin-contracts-upgradeable-v4/lib/erc4626-tests/", "forge-zksync-std/=lib/forge-zksync-std/src/", "murky/=lib/zksync-era/contracts/lib/murky/", "openzeppelin-contracts-upgradeable-v4/=lib/zksync-era/contracts/lib/openzeppelin-contracts-upgradeable-v4/", "openzeppelin-contracts-v4/=lib/zksync-era/contracts/lib/openzeppelin-contracts-v4/", "openzeppelin-contracts/=lib/zksync-era/contracts/lib/murky/lib/openzeppelin-contracts/", "solady/=lib/solady/src/", "zksync-era/=lib/zksync-era/" ], "evmVersion": "paris", "outputSelection": { "*": { "*": [ "abi" ] } }, "optimizer": { "enabled": true, "mode": "3", "fallback_to_optimizing_for_size": false, "disable_system_request_memoization": true }, "metadata": {}, "libraries": {}, "enableEraVMExtensions": false, "forceEVMLA": false }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_tokenMaker","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"reserve1","type":"uint256"},{"internalType":"uint256","name":"reserve0","type":"uint256"}],"name":"encodePriceSqrt","outputs":[{"internalType":"uint160","name":"","type":"uint160"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"virtualNewTokenAmount","type":"uint256"},{"internalType":"uint256","name":"virtualCounterAssetAmount","type":"uint256"}],"name":"helpMakeToken","outputs":[{"internalType":"address","name":"newToken","type":"address"},{"internalType":"int24","name":"startingTick","type":"int24"},{"internalType":"uint160","name":"roundedPrice","type":"uint160"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"predictTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenMaker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
9c4d535b00000000000000000000000000000000000000000000000000000000000000000100013d92d13e4128e0b1f0c20462f9df96951cc6c0272412e1c75e3606d8000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000029efba0504ff2829937cff407b7d6cb61f0018be
Deployed Bytecode
0x00040000000000020000006003100270000000de033001970000000100200190000000190000c13d0000008002000039000000400020043f000000040030008c000001010000413d000000000201043b000000e002200270000000e40020009c000000450000213d000000e70020009c000000520000613d000000e80020009c000001010000c13d0000000001000416000000000001004b000001010000c13d000000000100041a000000e101100197000000800010043f000000eb01000041000003730001042e0000000002000416000000000002004b000001010000c13d0000001f02300039000000df022001970000008002200039000000400020043f0000001f0430018f000000e00530019800000080025000390000002a0000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b000000260000c13d000000000004004b000000370000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000200030008c000001010000413d000000800100043d000000e10010009c000001010000213d000000000200041a000000e202200197000000000112019f000000000010041b000000200100003900000100001004430000012000000443000000e301000041000003730001042e000000e50020009c000000ea0000613d000000e60020009c000001010000c13d000000240030008c000001010000413d0000000002000416000000000002004b000001010000c13d0000000401100370000000000101043b0372027a0000040f000001060000013d000000640030008c000001010000413d0000000002000416000000000002004b000001010000c13d0000000402100370000000000202043b000400000002001d0000004402100370000000000202043b000100000002001d0000002401100370000000000101043b000200000001001d000000000100041a000300000001001d000000800000043f000000a001000039000000400010043f0000000001000414000000de0010009c000000de01008041000000c001100210000000ec011001c700008010020000390372036d0000040f0000000100200190000001010000613d000000000101043b000000ed02000041000000c00020043f0000000302000029000000e102200197000000e00020043f0000000402000029000001000020043f000000ee02000041000001200020043f000001400010043f000000a001000039000000a00010043f0000016001000039000000400010043f0000000001000414000000de0010009c000000de01008041000000c001100210000000ef011001c700008010020000390372036d0000040f0000000100200190000001010000613d000000000101043b000300000001001d000000000200041a000000400300043d000400000003001d000000f0010000410000000000130435000000de0030009c000000de01000041000000000103401900000040011002100000000003000414000000de0030009c000000de03008041000000c003300210000000000113019f000000f1011001c7000000e1022001970372036d0000040f000000040b0000290000006003100270000000de03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000000a90000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000000a50000c13d000000000006004b000000b60000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f000000000065043500000001002001900000010d0000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000000f20010009c0000012b0000213d00000001002001900000012b0000c13d000000400010043f000000200030008c000001010000413d00000000020b0433000000f30020009c000001010000813d0000000303000029000000e10a3001970000000000a2004b00000001030000290000000202000029000000000203401900000000040300190000000204004029000000c003400210000000000004004b000000d60000613d00000000044300d9000000ea0040009c000002340000c13d000000000002004b000000fb0000613d00000000022300d9000000040020008c000001370000413d00000001032002700000000104300039000000000024004b000001310000813d000000000004004b000000fb0000613d000000000304001900000000044200d9000000000034001a000002340000413d00000000043400190000000104400270000000000034004b000000df0000413d000001320000013d000000440030008c000001010000413d0000000002000416000000000002004b000001010000c13d0000002402100370000000000202043b0000000401100370000000000301043b000000c001300210000000000003004b000000f90000613d00000000033100d9000000ea0030009c000002340000c13d000000000002004b000001030000c13d0000011701000041000000000010043f0000001201000039000000040010043f000001180100004100000374000104300000000001000019000003740001043000000000012100d9037203480000040f000000e101100197000000400200043d0000000000120435000000de0020009c000000de020080410000004001200210000000e9011001c7000003730001042e0000001f0530018f000000e006300198000000400200043d0000000004620019000001180000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000001140000c13d000000000005004b000001250000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000000de0020009c000000de020080410000004002200210000000000112019f00000374000104300000011701000041000000000010043f0000004101000039000000040010043f000001180100004100000374000104300000000003020019000000e102300197000400000002001d000000f40220009a000000f50020009c000001470000813d0000004402100039000001190300004100000000003204350000002402100039000000010300003900000000003204350000011a020000410000000000210435000000040210003900000020030000390000000000320435000000de0010009c000000de0100804100000040011002100000011b011001c700000374000104300000002001300210000000f601100197000000f70010009c00000000020000390000008002002039000000000321022f000000f20030009c00000000040000390000004004002039000000000343022f000000de0030009c00000000050000390000002005002039000000000353022f0000ffff0030008c00000000060000390000001006002039000000000363022f000000ff0030008c00000000070000390000000807002039000000000373022f0000000f0030008c00000000080000390000000408002039000000000383022f000000030030008c00000000090000390000000209002039000000000393022f000000010030008c00000001022021bf000000000242019f000000000252019f000000000262019f000000000272019f000000000282019f000000000292019f0000007f0320008c000000000331022f0000007f0420008900000000014101cf000000000103201900000000011100a9000000ff031002700000007f04100270000000000334022f00000000033300a9000000ff043002700000007f05300270000000000445022f00000000044400a9000000ff054002700000007f06400270000000000556022f000000c001100270000000f8011001970000004002200210000000000112019f00000000025500a9000000ff052002700000007f06200270000000000556022f000000c103300270000000f903300197000000000131019f00000000035500a9000000ff053002700000007f06300270000000000556022f000000c204400270000000fa04400197000000000141019f00000000045500a9000000ff054002700000007f06400270000000000556022f000000c302200270000000fb02200197000000000121019f00000000025500a9000000ff052002700000007f06200270000000000556022f000000c403300270000000fc03300197000000000131019f00000000035500a9000000ff053002700000007f06300270000000000556022f000000c504400270000000fd04400197000000fe0110009a000000000114019f00000000045500a9000000ff054002700000007f06400270000000000556022f000000c602200270000000ff02200197000000000121019f00000000025500a9000000ff052002700000007f06200270000000000556022f000000c7033002700000010003300197000000000131019f00000000035500a9000000ff053002700000007f06300270000000000556022f000000c8044002700000010104400197000000000141019f00000000045500a9000000ff054002700000007f06400270000000000556022f000000c9022002700000010202200197000000000121019f00000000025500a9000000ff052002700000007f06200270000000000556022f000000ca033002700000010303300197000000000131019f000000cb034002700000010403300197000000000131019f000000cc022002700000010502200197000000000121019f00000000025500a9000000cd02200270000001060220019700000000022101a000000107012000d1000002300000c13d0000010a0210009a0000010c002001980000010d0300004100000000030060190000010e0010009c000001dd0000213d0000010f0010009c000002340000213d00020000000a001d00000080022002700000010b0220019700030000002301a3000001100110009a00000080021002700000010b022001970000010c001001980000010d010000410000000001006019000000000221019f000000030020006b000001f20000613d0000000001020019000100000002001d037202cc0000040f000000040010006c000000010200002900000000010200190000000301002029000300000001001d00000003020000290000010b0120019700000111002001980000010d020000410000000002006019000000000112019f000001083210012c000001080330c0990000010804000041000007d05440011b000000000442013f000001080550c09900000000235300d9000000ff044002120000000005340049000000000445019f000000000403601900000108001001980000000005020019000000000550c089000000000002004b000000000205c019000000000003004b000000000304c0190000010b0430019700000111003001980000010d030000410000000003006019000000000343019f000007d0073000c9000401110070019c0000010d0400004100000000040060190000011203700197000000000534019f000000000075004b000002340000c13d00000000060700190000010b0520019700000111002001980000010d020000410000000002006019000000000252019f0000010e0010009c000002550000a13d0000011c0020009c0000000001000019000001080100204100000108022001970000010803200167000001080020009c00000000020000190000010802004041000001080030009c000000000201c019000000000002004b000002650000c13d000001150160009a000001140010009c000002340000413d000007d00100008a000002620000013d0000011d0020009c0000023a0000c13d000001080010009c0000023a0000c13d0000011701000041000000000010043f0000001101000039000000040010043f00000118010000410000037400010430000001083220012c000001080330c099000001085410012c000000000424013f000001080550c099000001090010009c0000000002000019000001080200404100000108061001970000010807600167000001080060009c00000000060000190000010806002041000001080070009c000000000602c01900000000023500d9000000ff034002120000000004230049000000000334019f0000000003026019000000000002004b000000000203c019000000000006004b000002340000c13d000001070020009c000001d50000613d000002340000013d0000010e0020009c000002650000213d000003e80020008c000002650000413d00000111004001980000010d010000410000000001006019000000000131019f0000000006010019000001130110009a000001140010009c000002340000413d000007d00100003900000000021600190000000006020019000401110020019b0000000001060019000300000006001d037202cc0000040f00000003020000290000010b02200197000000040000006b0000010d030000410000000003006019000000000223019f000000400300043d000000200430003900000000002404350000004002300039000000000012043500000002010000290000000000130435000000de0030009c000000de03008041000000400130021000000116011001c7000003730001042e0004000000000002000300000001001d000000000100041a000400000001001d000000400200043d00000000010204360000011e0020009c000002c40000813d000000400010043f000000de0010009c000200000001001d000000de010080410000004001100210000100000002001d0000000002020433000000de0020009c000000de020080410000006002200210000000000112019f0000000002000414000000de0020009c000000de02008041000000c002200210000000000112019f0000011f011001c700008010020000390372036d0000040f0000000100200190000002ca0000613d000000000101043b0000000104000029000000c0024000390000000000120435000000a001400039000000ee0200004100000000002104350000008001400039000000030200002900000000002104350000000401000029000000e101100197000000600240003900000000001204350000004001400039000000ed020000410000000000210435000000a00200003900000002030000290000000000230435000001200040009c000002c40000213d000000e002400039000000400020043f000000de0010009c000000de0100804100000040011002100000000002030433000000de0020009c000000de020080410000006002200210000000000112019f0000000002000414000000de0020009c000000de02008041000000c002200210000000000112019f0000011f011001c700008010020000390372036d0000040f0000000100200190000002ca0000613d000000000101043b000000e101100197000000000001042d0000011701000041000000000010043f0000004101000039000000040010043f00000118010000410000037400010430000000000100001900000374000104300000010b0210019700000111001001980000010d010000410000000001006019000000000121019f0000010e0010009c0000000003010019000002d70000a13d000001080010009c000003420000613d0000000003100089000001210030009c000003310000213d00000001003001900000012302000041000001220200604100000124042000d100000080044002700000000200300190000000000204c01900000125042000d100000080044002700000000400300190000000000204c01900000126042000d100000080044002700000000800300190000000000204c01900000127042000d100000080044002700000001000300190000000000204c01900000128042000d100000080044002700000002000300190000000000204c01900000129042000d100000080044002700000004000300190000000000204c0190000012a042000d100000080044002700000008000300190000000000204c0190000012b042000d100000080044002700000010000300190000000000204c0190000012c042000d100000080044002700000020000300190000000000204c0190000012d042000d100000080044002700000040000300190000000000204c0190000012e042000d100000080044002700000080000300190000000000204c0190000012f042000d100000080044002700000100000300190000000000204c01900000130042000d100000080044002700000200000300190000000000204c01900000131042000d100000080044002700000400000300190000000000204c01900000132042000d100000080044002700000800000300190000000000204c01900000133042000d100000080044002700000013400300198000000000204c01900000135042000d100000080044002700000013600300198000000000204c01900000137042000d100000080044002700000013800300198000000000204c01900000139003001980000013a032000d1000000800230c2700000010e0010009c0000032c0000213d000000000001004b000000010100c08a000000000221c0d90000002001200270000000de00200198000000010110c039000000e101100197000000000001042d000000400100043d00000044021000390000013b0300004100000000003204350000002402100039000000010300003900000000003204350000011a020000410000000000210435000000040210003900000020030000390000000000320435000000de0010009c000000de0100804100000040011002100000011b011001c700000374000104300000011701000041000000000010043f0000001101000039000000040010043f00000118010000410000037400010430000000040010008c0000034e0000813d000000000001004b0000035f0000613d0000000101000039000000000001042d00000001021002700000000103200039000000000013004b000003600000813d000000000003004b000003610000613d00000000023100d9000000000032001a000003670000413d00000000023200190000000104200270000000000034004b00000000020300190000000003040019000003520000413d0000000001020019000000000001042d0000000001000019000000000001042d0000011701000041000000000010043f0000001201000039000000040010043f000001180100004100000374000104300000011701000041000000000010043f0000001101000039000000040010043f0000011801000041000003740001043000000370002104230000000102000039000000000001042d0000000002000019000000000001042d0000037200000432000003730001042e000003740001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000cd309ec800000000000000000000000000000000000000000000000000000000cd309ec900000000000000000000000000000000000000000000000000000000ffb623df0000000000000000000000000000000000000000000000000000000024aea3700000000000000000000000000000000000000000000000000000000059956d460000000000000000000000000000000000000020000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000008000000000000000000200000000000000000000000000000000000000000000a000000000000000002020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca4940100018fe6f8527f967fe1b54a9ae0dcb5aac13dcebfeced7b67a2b41c303aaf02000000000000000000000000000000000000a0000000c00000000000000000eba08b2a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000010000000000000000000000000000000000000000000000000000000000000000fffd8963efd1fc6a506488495d951d5263988d26ffffffffffffffffffffffff0002769c102e0395af9b77b6a26ae2ae9c69e97d0000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000003627a301d71055774c85800000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000028f6481ab7f045a5af012a19d003aaa00000000000000000000000000000000028f6481ab7f045a5af012a19d003aaa00000000000000000000000000000000000000000000000000000000007fffff0000000000000000000000000080000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffff24d20f617e6a657ebaa1d9f8665f9cd0ffffffffffffffffffffffffffffffff24d20f617e6a657ebaa1d9f8665f9cd1000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000007ffff000000000000000000000000000000000000000000000000000000000007ff830ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000008007d000000000000000000000000000000000000000600000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000520000000000000000000000000000000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc17ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffe00200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff1f00000000000000000000000000000000000000000000000000000000000d89e8000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000fffcb933bd6fad37aa2d162d1a59400100000000000000000000000000000000fff97272373d413259a46990580e213a00000000000000000000000000000000fff2e50f5f656932ef12357cf3c7fdcc00000000000000000000000000000000ffe5caca7e10e4e61c3624eaa0941cd000000000000000000000000000000000ffcb9843d60f6159c9db58835c92664400000000000000000000000000000000ff973b41fa98c081472e6896dfb254c000000000000000000000000000000000ff2ea16466c96a3843ec78b326b5286100000000000000000000000000000000fe5dee046a99a2a811c461f1969c305300000000000000000000000000000000fcbe86c7900a88aedcffc83b479aa3a400000000000000000000000000000000f987a7253ac413176f2b074cf7815e5400000000000000000000000000000000f3392b0822b70005940c7a398e4b70f300000000000000000000000000000000e7159475a2c29b7443b29c7fa6e889d900000000000000000000000000000000d097f3bdfd2022b8845ad8f792aa582500000000000000000000000000000000a9f746462d870fdf8a65dc1f90e061e50000000000000000000000000000000070d869a156d2a1b890bb3df62baf32f70000000000000000000000000000000031be135f97d08fd981231505542fcfa60000000000000000000000000000000009aa508b5b7a84e1c677de54f3e99bc9000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000005d6af8dedb81196699c329225ee60400000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000002216e584f5fa1ea926041bedfe98000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000048a170391f7dc42444e8fa254000000000000000000000000000000000000000000000000000000000000008fca6e91996ae5a8bc2130a024676942c15f6cfc05a4e965dbb690cad1f26bf4
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000029efba0504ff2829937cff407b7d6cb61f0018be
-----Decoded View---------------
Arg [0] : _tokenMaker (address): 0x29efbA0504Ff2829937Cff407B7D6Cb61f0018bE
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000029efba0504ff2829937cff407b7d6cb61f0018be
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.