Overview
S Balance
0 S
S Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 5 internal transactions
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
6013322 | 4 days ago | Contract Creation | 0 S | |||
5931309 | 5 days ago | Contract Creation | 0 S | |||
5888564 | 5 days ago | Contract Creation | 0 S | |||
5785716 | 6 days ago | Contract Creation | 0 S | |||
5553721 | 8 days ago | Contract Creation | 0 S |
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:
ProLaunchpad
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-01-27 */ // File: contracts/interfaces/IMemeUniV2Pair.sol pragma solidity >=0.5.0; interface IMemeUniV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } // File: contracts/interfaces/IMemeUniV2Factory.sol pragma solidity >=0.5.0; interface IMemeUniV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } // File: contracts/interfaces/IMemeUniV2Router01.sol pragma solidity >=0.6.2; interface IMemeUniV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } // File: contracts/interfaces/IMemeUniV2Router02.sol pragma solidity >=0.6.2; interface IMemeUniV2Router02 is IMemeUniV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } // File: contracts/interfaces/IMinter.sol pragma solidity >=0.5.0; interface IMinter { function mint(address to, uint value) external; function approve(address to, uint value) external; } // File: @openzeppelin/contracts/utils/Errors.sol // OpenZeppelin Contracts (last updated v5.1.0) (utils/Errors.sol) pragma solidity ^0.8.20; /** * @dev Collection of common custom errors used in multiple contracts * * IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library. * It is recommended to avoid relying on the error API for critical functionality. * * _Available since v5.1._ */ library Errors { /** * @dev The ETH balance of the account is not enough to perform the operation. */ error InsufficientBalance(uint256 balance, uint256 needed); /** * @dev A call to an address target failed. The target may have reverted. */ error FailedCall(); /** * @dev The deployment failed. */ error FailedDeployment(); /** * @dev A necessary precompile is missing. */ error MissingPrecompile(address); } // File: @openzeppelin/contracts/utils/Create2.sol // OpenZeppelin Contracts (last updated v5.1.0) (utils/Create2.sol) pragma solidity ^0.8.20; /** * @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer. * `CREATE2` can be used to compute in advance the address where a smart * contract will be deployed, which allows for interesting new mechanisms known * as 'counterfactual interactions'. * * See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more * information. */ library Create2 { /** * @dev There's no code to deploy. */ error Create2EmptyBytecode(); /** * @dev Deploys a contract using `CREATE2`. The address where the contract * will be deployed can be known in advance via {computeAddress}. * * The bytecode for a contract can be obtained from Solidity with * `type(contractName).creationCode`. * * Requirements: * * - `bytecode` must not be empty. * - `salt` must have not been used for `bytecode` already. * - the factory must have a balance of at least `amount`. * - if `amount` is non-zero, `bytecode` must have a `payable` constructor. */ function deploy(uint256 amount, bytes32 salt, bytes memory bytecode) internal returns (address addr) { if (address(this).balance < amount) { revert Errors.InsufficientBalance(address(this).balance, amount); } if (bytecode.length == 0) { revert Create2EmptyBytecode(); } assembly ("memory-safe") { addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt) // if no address was created, and returndata is not empty, bubble revert if and(iszero(addr), not(iszero(returndatasize()))) { let p := mload(0x40) returndatacopy(p, 0, returndatasize()) revert(p, returndatasize()) } } if (addr == address(0)) { revert Errors.FailedDeployment(); } } /** * @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the * `bytecodeHash` or `salt` will result in a new destination address. */ function computeAddress(bytes32 salt, bytes32 bytecodeHash) internal view returns (address) { return computeAddress(salt, bytecodeHash, address(this)); } /** * @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at * `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}. */ function computeAddress(bytes32 salt, bytes32 bytecodeHash, address deployer) internal pure returns (address addr) { assembly ("memory-safe") { let ptr := mload(0x40) // Get free memory pointer // | | ↓ ptr ... ↓ ptr + 0x0B (start) ... ↓ ptr + 0x20 ... ↓ ptr + 0x40 ... | // |-------------------|---------------------------------------------------------------------------| // | bytecodeHash | CCCCCCCCCCCCC...CC | // | salt | BBBBBBBBBBBBB...BB | // | deployer | 000000...0000AAAAAAAAAAAAAAAAAAA...AA | // | 0xFF | FF | // |-------------------|---------------------------------------------------------------------------| // | memory | 000000...00FFAAAAAAAAAAAAAAAAAAA...AABBBBBBBBBBBBB...BBCCCCCCCCCCCCC...CC | // | keccak(start, 85) | ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ | mstore(add(ptr, 0x40), bytecodeHash) mstore(add(ptr, 0x20), salt) mstore(ptr, deployer) // Right-aligned with 12 preceding garbage bytes let start := add(ptr, 0x0b) // The hashed data starts at the final garbage byte which we will set to 0xff mstore8(start, 0xff) addr := and(keccak256(start, 85), 0xffffffffffffffffffffffffffffffffffffffff) } } } // File: @openzeppelin/contracts/proxy/Clones.sol // OpenZeppelin Contracts (last updated v5.2.0) (proxy/Clones.sol) pragma solidity ^0.8.20; /** * @dev https://eips.ethereum.org/EIPS/eip-1167[ERC-1167] is a standard for * deploying minimal proxy contracts, also known as "clones". * * > To simply and cheaply clone contract functionality in an immutable way, this standard specifies * > a minimal bytecode implementation that delegates all calls to a known, fixed address. * * The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2` * (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the * deterministic method. */ library Clones { error CloneArgumentsTooLong(); /** * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`. * * This function uses the create opcode, which should never revert. */ function clone(address implementation) internal returns (address instance) { return clone(implementation, 0); } /** * @dev Same as {xref-Clones-clone-address-}[clone], but with a `value` parameter to send native currency * to the new contract. * * NOTE: Using a non-zero value at creation will require the contract using this function (e.g. a factory) * to always have enough balance for new deployments. Consider exposing this function under a payable method. */ function clone(address implementation, uint256 value) internal returns (address instance) { if (address(this).balance < value) { revert Errors.InsufficientBalance(address(this).balance, value); } assembly ("memory-safe") { // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes // of the `implementation` address with the bytecode before the address. mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000)) // Packs the remaining 17 bytes of `implementation` with the bytecode after the address. mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3)) instance := create(value, 0x09, 0x37) } if (instance == address(0)) { revert Errors.FailedDeployment(); } } /** * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`. * * This function uses the create2 opcode and a `salt` to deterministically deploy * the clone. Using the same `implementation` and `salt` multiple times will revert, since * the clones cannot be deployed twice at the same address. */ function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) { return cloneDeterministic(implementation, salt, 0); } /** * @dev Same as {xref-Clones-cloneDeterministic-address-bytes32-}[cloneDeterministic], but with * a `value` parameter to send native currency to the new contract. * * NOTE: Using a non-zero value at creation will require the contract using this function (e.g. a factory) * to always have enough balance for new deployments. Consider exposing this function under a payable method. */ function cloneDeterministic( address implementation, bytes32 salt, uint256 value ) internal returns (address instance) { if (address(this).balance < value) { revert Errors.InsufficientBalance(address(this).balance, value); } assembly ("memory-safe") { // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes // of the `implementation` address with the bytecode before the address. mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000)) // Packs the remaining 17 bytes of `implementation` with the bytecode after the address. mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3)) instance := create2(value, 0x09, 0x37, salt) } if (instance == address(0)) { revert Errors.FailedDeployment(); } } /** * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}. */ function predictDeterministicAddress( address implementation, bytes32 salt, address deployer ) internal pure returns (address predicted) { assembly ("memory-safe") { let ptr := mload(0x40) mstore(add(ptr, 0x38), deployer) mstore(add(ptr, 0x24), 0x5af43d82803e903d91602b57fd5bf3ff) mstore(add(ptr, 0x14), implementation) mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73) mstore(add(ptr, 0x58), salt) mstore(add(ptr, 0x78), keccak256(add(ptr, 0x0c), 0x37)) predicted := and(keccak256(add(ptr, 0x43), 0x55), 0xffffffffffffffffffffffffffffffffffffffff) } } /** * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}. */ function predictDeterministicAddress( address implementation, bytes32 salt ) internal view returns (address predicted) { return predictDeterministicAddress(implementation, salt, address(this)); } /** * @dev Deploys and returns the address of a clone that mimics the behavior of `implementation` with custom * immutable arguments. These are provided through `args` and cannot be changed after deployment. To * access the arguments within the implementation, use {fetchCloneArgs}. * * This function uses the create opcode, which should never revert. */ function cloneWithImmutableArgs(address implementation, bytes memory args) internal returns (address instance) { return cloneWithImmutableArgs(implementation, args, 0); } /** * @dev Same as {xref-Clones-cloneWithImmutableArgs-address-bytes-}[cloneWithImmutableArgs], but with a `value` * parameter to send native currency to the new contract. * * NOTE: Using a non-zero value at creation will require the contract using this function (e.g. a factory) * to always have enough balance for new deployments. Consider exposing this function under a payable method. */ function cloneWithImmutableArgs( address implementation, bytes memory args, uint256 value ) internal returns (address instance) { if (address(this).balance < value) { revert Errors.InsufficientBalance(address(this).balance, value); } bytes memory bytecode = _cloneCodeWithImmutableArgs(implementation, args); assembly ("memory-safe") { instance := create(value, add(bytecode, 0x20), mload(bytecode)) } if (instance == address(0)) { revert Errors.FailedDeployment(); } } /** * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation` with custom * immutable arguments. These are provided through `args` and cannot be changed after deployment. To * access the arguments within the implementation, use {fetchCloneArgs}. * * This function uses the create2 opcode and a `salt` to deterministically deploy the clone. Using the same * `implementation`, `args` and `salt` multiple times will revert, since the clones cannot be deployed twice * at the same address. */ function cloneDeterministicWithImmutableArgs( address implementation, bytes memory args, bytes32 salt ) internal returns (address instance) { return cloneDeterministicWithImmutableArgs(implementation, args, salt, 0); } /** * @dev Same as {xref-Clones-cloneDeterministicWithImmutableArgs-address-bytes-bytes32-}[cloneDeterministicWithImmutableArgs], * but with a `value` parameter to send native currency to the new contract. * * NOTE: Using a non-zero value at creation will require the contract using this function (e.g. a factory) * to always have enough balance for new deployments. Consider exposing this function under a payable method. */ function cloneDeterministicWithImmutableArgs( address implementation, bytes memory args, bytes32 salt, uint256 value ) internal returns (address instance) { bytes memory bytecode = _cloneCodeWithImmutableArgs(implementation, args); return Create2.deploy(value, salt, bytecode); } /** * @dev Computes the address of a clone deployed using {Clones-cloneDeterministicWithImmutableArgs}. */ function predictDeterministicAddressWithImmutableArgs( address implementation, bytes memory args, bytes32 salt, address deployer ) internal pure returns (address predicted) { bytes memory bytecode = _cloneCodeWithImmutableArgs(implementation, args); return Create2.computeAddress(salt, keccak256(bytecode), deployer); } /** * @dev Computes the address of a clone deployed using {Clones-cloneDeterministicWithImmutableArgs}. */ function predictDeterministicAddressWithImmutableArgs( address implementation, bytes memory args, bytes32 salt ) internal view returns (address predicted) { return predictDeterministicAddressWithImmutableArgs(implementation, args, salt, address(this)); } /** * @dev Get the immutable args attached to a clone. * * - If `instance` is a clone that was deployed using `clone` or `cloneDeterministic`, this * function will return an empty array. * - If `instance` is a clone that was deployed using `cloneWithImmutableArgs` or * `cloneDeterministicWithImmutableArgs`, this function will return the args array used at * creation. * - If `instance` is NOT a clone deployed using this library, the behavior is undefined. This * function should only be used to check addresses that are known to be clones. */ function fetchCloneArgs(address instance) internal view returns (bytes memory) { bytes memory result = new bytes(instance.code.length - 45); // revert if length is too short assembly ("memory-safe") { extcodecopy(instance, add(result, 32), 45, mload(result)) } return result; } /** * @dev Helper that prepares the initcode of the proxy with immutable args. * * An assembly variant of this function requires copying the `args` array, which can be efficiently done using * `mcopy`. Unfortunately, that opcode is not available before cancun. A pure solidity implementation using * abi.encodePacked is more expensive but also more portable and easier to review. * * NOTE: https://eips.ethereum.org/EIPS/eip-170[EIP-170] limits the length of the contract code to 24576 bytes. * With the proxy code taking 45 bytes, that limits the length of the immutable args to 24531 bytes. */ function _cloneCodeWithImmutableArgs( address implementation, bytes memory args ) private pure returns (bytes memory) { if (args.length > 24531) revert CloneArgumentsTooLong(); return abi.encodePacked( hex"61", uint16(args.length + 45), hex"3d81600a3d39f3363d3d373d3d3d363d73", implementation, hex"5af43d82803e903d91602b57fd5bf3", args ); } } // File: @uniswap/v2-periphery/contracts/interfaces/IWETH.sol pragma solidity >=0.5.0; interface IWETH { function deposit() external payable; function transfer(address to, uint value) external returns (bool); function withdraw(uint) external; } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC-20 standard as defined in the ERC. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets a `value` amount of tokens as the allowance of `spender` over the * caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); } // File: contracts/interfaces/ITournamentToken.sol pragma solidity ^0.8.0; interface ITournamentToken is IERC20 { function burn(uint256 amount) external; function setPauseStatus(bool status) external; function transferOwner(address newOwner) external; function setWhitelistStatus(address from, address to, bool status) external; function initialize( string memory name_, string memory symbol_, string memory siteUrl_, string memory imageUrl_, string memory description_, string memory chatUrl_, string memory socialUrl_, uint256 initialSupply_, address mintTo_ ) external; function name() external view returns (string memory); function symbol() external view returns (string memory); function siteUrl() external view returns (string memory); function imageUrl() external view returns (string memory); function description() external view returns (string memory); function chatUrl() external view returns (string memory); function socialUrl() external view returns (string memory); function donation() external view returns (uint); } // File: contracts/ProLaunchpad.sol pragma solidity ^0.8.0; contract ProLaunchpad { uint constant public LIQUIDITY_BONUS = 100_000 ether; IWETH public WETH; address public tokenImplementation; address public owner; address public router; address public baks; event Listing( address indexed tokenOwner, address token ); constructor(address _weth, address _tokenImplementation, address _router, address _baks) { WETH = IWETH(_weth); tokenImplementation = _tokenImplementation; router = _router; baks = _baks; } modifier onlyOwner() { require(msg.sender == owner, 'OWNER_ERR'); _; } function changeTokenImplementation(address _newImplementation) external onlyOwner { tokenImplementation = _newImplementation; } function changeRouter(address _newRouter) external onlyOwner { router = _newRouter; } function transferOwner(address _newOwner) external onlyOwner { owner = _newOwner; } function changeBaks(address _baks) external onlyOwner { baks = _baks; } function pro_listing( string memory name, string memory symbol, string memory siteUrl, string memory imageUrl, string memory description, string memory chatUrl, string memory socialUrl, uint supply ) external returns(address, address){ require(bytes(name).length > 0 && bytes(name).length <= 128, 'INV_NAME'); require(bytes(symbol).length > 0 && bytes(symbol).length <= 128, 'INV_SYMBOL'); require(bytes(imageUrl).length > 0 && bytes(imageUrl).length <= 150, 'INV_IMAGE'); require(bytes(siteUrl).length <= 128, 'INV_SITE'); require(bytes(description).length <= 128, 'INV_DESC'); require(bytes(chatUrl).length <= 128, 'INV_CHAT'); require(bytes(socialUrl).length <= 128, 'INV_SOC'); require(supply > 1, 'INV_SUPPLY'); address newToken = _deploy_token( name, symbol, siteUrl, imageUrl, description, chatUrl, socialUrl, supply, address(this) ); IMinter(baks).mint(address(this), LIQUIDITY_BONUS); _addLiquidity(newToken, supply); emit Listing(msg.sender, newToken); return (msg.sender, newToken); } function _deploy_token( string memory name, string memory symbol, string memory siteUrl, string memory imageUrl, string memory description, string memory chatUrl, string memory socialUrl, uint supply, address mintTo ) internal returns (address newToken){ require(bytes(name).length > 0 && bytes(name).length <= 64, 'INV_NAME'); require(bytes(symbol).length > 0 && bytes(symbol).length <= 64, 'INV_SYMBOL'); require(bytes(imageUrl).length > 0 && bytes(imageUrl).length <= 150, 'INV_IMAGE'); require(bytes(siteUrl).length <= 64, 'INV_SITE'); require(bytes(description).length <= 64, 'INV_DESC'); require(bytes(chatUrl).length <= 64, 'INV_CHAT'); require(bytes(socialUrl).length <= 64, 'INV_SOC'); newToken = Clones.clone(tokenImplementation); ITournamentToken(newToken).initialize( name, symbol, siteUrl, imageUrl, description, chatUrl, socialUrl, supply, mintTo ); return newToken; } function _addLiquidity(address _newToken, uint _supply) internal { IMinter(_newToken).approve(router, type(uint256).max); IMinter(baks).approve(router, LIQUIDITY_BONUS); IMemeUniV2Router02(router).addLiquidity( baks, // tokenA _newToken, // tokenB LIQUIDITY_BONUS, // amountADesired _supply, // amountBDesired 1, // uint amountAMin 1, // uint amountBMin address(0), block.timestamp // uint deadline ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_weth","type":"address"},{"internalType":"address","name":"_tokenImplementation","type":"address"},{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_baks","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"FailedDeployment","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"}],"name":"Listing","type":"event"},{"inputs":[],"name":"LIQUIDITY_BONUS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baks","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_baks","type":"address"}],"name":"changeBaks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newRouter","type":"address"}],"name":"changeRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"}],"name":"changeTokenImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"siteUrl","type":"string"},{"internalType":"string","name":"imageUrl","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"chatUrl","type":"string"},{"internalType":"string","name":"socialUrl","type":"string"},{"internalType":"uint256","name":"supply","type":"uint256"}],"name":"pro_listing","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561000f575f80fd5b50604051611c30380380611c3083398181016040528101906100319190610197565b835f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506101fb565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101668261013d565b9050919050565b6101768161015c565b8114610180575f80fd5b50565b5f815190506101918161016d565b92915050565b5f805f80608085870312156101af576101ae610139565b5b5f6101bc87828801610183565b94505060206101cd87828801610183565b93505060406101de87828801610183565b92505060606101ef87828801610183565b91505092959194509250565b611a28806102085f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c80638da5cb5b1161006f5780638da5cb5b1461013b578063ad5c464814610159578063cdd5790c14610177578063e4fb06c9146101a8578063f887ea40146101c6578063fb340554146101e4576100a7565b80632f3a3d5d146100ab578063340ac20f146100c95780634c4e61e9146100e55780634fb2e45d146101035780637fdc147e1461011f575b5f80fd5b6100b3610200565b6040516100c09190610fa1565b60405180910390f35b6100e360048036038101906100de9190610ff5565b610225565b005b6100ed6102f7565b6040516100fa9190610fa1565b60405180910390f35b61011d60048036038101906101189190610ff5565b61031c565b005b61013960048036038101906101349190610ff5565b6103ee565b005b6101436104c0565b6040516101509190610fa1565b60405180910390f35b6101616104e5565b60405161016e919061107b565b60405180910390f35b610191600480360381019061018c9190611203565b610508565b60405161019f929190611378565b60405180910390f35b6101b0610867565b6040516101bd91906113ae565b60405180910390f35b6101ce610875565b6040516101db9190610fa1565b60405180910390f35b6101fe60048036038101906101f99190610ff5565b61089a565b005b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ab90611421565b60405180910390fd5b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a290611421565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461047d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047490611421565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8a5111801561051c575060808a5111155b61055b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055290611489565b60405180910390fd5b5f895111801561056d57506080895111155b6105ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a3906114f1565b60405180910390fd5b5f87511180156105be57506096875111155b6105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490611559565b60405180910390fd5b608088511115610642576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610639906115c1565b60405180910390fd5b608086511115610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90611629565b60405180910390fd5b6080855111156106cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c390611691565b60405180910390fd5b608084511115610711576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610708906116f9565b60405180910390fd5b60018311610754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074b90611761565b60405180910390fd5b5f6107668b8b8b8b8b8b8b8b3061096c565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f193069152d02c7e14af68000006040518363ffffffff1660e01b81526004016107ce92919061177f565b5f604051808303815f87803b1580156107e5575f80fd5b505af11580156107f7573d5f803e3d5ffd5b505050506108058185610c23565b3373ffffffffffffffffffffffffffffffffffffffff167fd6e4df0ff985bcd066e06c24c7e6895ddf3aa06d871f29faab160d7a53d3021d8260405161084b9190610fa1565b60405180910390a2338192509250509850989650505050505050565b69152d02c7e14af680000081565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092090611421565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f808a5111801561097f575060408a5111155b6109be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b590611489565b60405180910390fd5b5f89511180156109d057506040895111155b610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a06906114f1565b60405180910390fd5b5f8751118015610a2157506096875111155b610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5790611559565b60405180910390fd5b604088511115610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c906115c1565b60405180910390fd5b604086511115610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190611629565b60405180910390fd5b604085511115610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690611691565b60405180910390fd5b604084511115610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6b906116f9565b60405180910390fd5b610b9e60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e5b565b90508073ffffffffffffffffffffffffffffffffffffffff1663b47c5e6b8b8b8b8b8b8b8b8b8b6040518a63ffffffff1660e01b8152600401610be9999897969594939291906117f6565b5f604051808303815f87803b158015610c00575f80fd5b505af1158015610c12573d5f803e3d5ffd5b505050509998505050505050505050565b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c9f92919061177f565b5f604051808303815f87803b158015610cb6575f80fd5b505af1158015610cc8573d5f803e3d5ffd5b5050505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669152d02c7e14af68000006040518363ffffffff1660e01b8152600401610d5392919061177f565b5f604051808303815f87803b158015610d6a575f80fd5b505af1158015610d7c573d5f803e3d5ffd5b5050505060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e3370060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168469152d02c7e14af6800000856001805f426040518963ffffffff1660e01b8152600401610e149897969594939291906118eb565b6060604051808303815f875af1158015610e30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e54919061197b565b5050505050565b5f610e66825f610e6d565b9050919050565b5f81471015610eb55747826040517fcf479181000000000000000000000000000000000000000000000000000000008152600401610eac9291906119cb565b60405180910390fd5b763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c175f526e5af43d82803e903d91602b57fd5bf38360781b176020526037600983f090505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f5c576040517fb06ebf3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f8b82610f62565b9050919050565b610f9b81610f81565b82525050565b5f602082019050610fb45f830184610f92565b92915050565b5f604051905090565b5f80fd5b5f80fd5b610fd481610f81565b8114610fde575f80fd5b50565b5f81359050610fef81610fcb565b92915050565b5f6020828403121561100a57611009610fc3565b5b5f61101784828501610fe1565b91505092915050565b5f819050919050565b5f61104361103e61103984610f62565b611020565b610f62565b9050919050565b5f61105482611029565b9050919050565b5f6110658261104a565b9050919050565b6110758161105b565b82525050565b5f60208201905061108e5f83018461106c565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6110e28261109c565b810181811067ffffffffffffffff82111715611101576111006110ac565b5b80604052505050565b5f611113610fba565b905061111f82826110d9565b919050565b5f67ffffffffffffffff82111561113e5761113d6110ac565b5b6111478261109c565b9050602081019050919050565b828183375f83830152505050565b5f61117461116f84611124565b61110a565b9050828152602081018484840111156111905761118f611098565b5b61119b848285611154565b509392505050565b5f82601f8301126111b7576111b6611094565b5b81356111c7848260208601611162565b91505092915050565b5f819050919050565b6111e2816111d0565b81146111ec575f80fd5b50565b5f813590506111fd816111d9565b92915050565b5f805f805f805f80610100898b0312156112205761121f610fc3565b5b5f89013567ffffffffffffffff81111561123d5761123c610fc7565b5b6112498b828c016111a3565b985050602089013567ffffffffffffffff81111561126a57611269610fc7565b5b6112768b828c016111a3565b975050604089013567ffffffffffffffff81111561129757611296610fc7565b5b6112a38b828c016111a3565b965050606089013567ffffffffffffffff8111156112c4576112c3610fc7565b5b6112d08b828c016111a3565b955050608089013567ffffffffffffffff8111156112f1576112f0610fc7565b5b6112fd8b828c016111a3565b94505060a089013567ffffffffffffffff81111561131e5761131d610fc7565b5b61132a8b828c016111a3565b93505060c089013567ffffffffffffffff81111561134b5761134a610fc7565b5b6113578b828c016111a3565b92505060e06113688b828c016111ef565b9150509295985092959890939650565b5f60408201905061138b5f830185610f92565b6113986020830184610f92565b9392505050565b6113a8816111d0565b82525050565b5f6020820190506113c15f83018461139f565b92915050565b5f82825260208201905092915050565b7f4f574e45525f45525200000000000000000000000000000000000000000000005f82015250565b5f61140b6009836113c7565b9150611416826113d7565b602082019050919050565b5f6020820190508181035f830152611438816113ff565b9050919050565b7f494e565f4e414d450000000000000000000000000000000000000000000000005f82015250565b5f6114736008836113c7565b915061147e8261143f565b602082019050919050565b5f6020820190508181035f8301526114a081611467565b9050919050565b7f494e565f53594d424f4c000000000000000000000000000000000000000000005f82015250565b5f6114db600a836113c7565b91506114e6826114a7565b602082019050919050565b5f6020820190508181035f830152611508816114cf565b9050919050565b7f494e565f494d41474500000000000000000000000000000000000000000000005f82015250565b5f6115436009836113c7565b915061154e8261150f565b602082019050919050565b5f6020820190508181035f83015261157081611537565b9050919050565b7f494e565f534954450000000000000000000000000000000000000000000000005f82015250565b5f6115ab6008836113c7565b91506115b682611577565b602082019050919050565b5f6020820190508181035f8301526115d88161159f565b9050919050565b7f494e565f444553430000000000000000000000000000000000000000000000005f82015250565b5f6116136008836113c7565b915061161e826115df565b602082019050919050565b5f6020820190508181035f83015261164081611607565b9050919050565b7f494e565f434841540000000000000000000000000000000000000000000000005f82015250565b5f61167b6008836113c7565b915061168682611647565b602082019050919050565b5f6020820190508181035f8301526116a88161166f565b9050919050565b7f494e565f534f43000000000000000000000000000000000000000000000000005f82015250565b5f6116e36007836113c7565b91506116ee826116af565b602082019050919050565b5f6020820190508181035f830152611710816116d7565b9050919050565b7f494e565f535550504c59000000000000000000000000000000000000000000005f82015250565b5f61174b600a836113c7565b915061175682611717565b602082019050919050565b5f6020820190508181035f8301526117788161173f565b9050919050565b5f6040820190506117925f830185610f92565b61179f602083018461139f565b9392505050565b5f81519050919050565b8281835e5f83830152505050565b5f6117c8826117a6565b6117d281856113c7565b93506117e28185602086016117b0565b6117eb8161109c565b840191505092915050565b5f610120820190508181035f83015261180f818c6117be565b90508181036020830152611823818b6117be565b90508181036040830152611837818a6117be565b9050818103606083015261184b81896117be565b9050818103608083015261185f81886117be565b905081810360a083015261187381876117be565b905081810360c083015261188781866117be565b905061189660e083018561139f565b6118a4610100830184610f92565b9a9950505050505050505050565b5f819050919050565b5f6118d56118d06118cb846118b2565b611020565b6111d0565b9050919050565b6118e5816118bb565b82525050565b5f610100820190506118ff5f83018b610f92565b61190c602083018a610f92565b611919604083018961139f565b611926606083018861139f565b61193360808301876118dc565b61194060a08301866118dc565b61194d60c0830185610f92565b61195a60e083018461139f565b9998505050505050505050565b5f81519050611975816111d9565b92915050565b5f805f6060848603121561199257611991610fc3565b5b5f61199f86828701611967565b93505060206119b086828701611967565b92505060406119c186828701611967565b9150509250925092565b5f6040820190506119de5f83018561139f565b6119eb602083018461139f565b939250505056fea2646970667358221220dc740d91cc0f27010f22e4888c57f08a8a129522f79187149a74d0321d2c0b2564736f6c634300081a0033000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad380000000000000000000000001f5f59cb9f7dde7b3450582fe7ab9762c670f47f000000000000000000000000a6ad18c2ac47803e193f75c3677b14bf19b94883000000000000000000000000ff338949f61271789ee28b7ff0268c2a3759f435
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100a7575f3560e01c80638da5cb5b1161006f5780638da5cb5b1461013b578063ad5c464814610159578063cdd5790c14610177578063e4fb06c9146101a8578063f887ea40146101c6578063fb340554146101e4576100a7565b80632f3a3d5d146100ab578063340ac20f146100c95780634c4e61e9146100e55780634fb2e45d146101035780637fdc147e1461011f575b5f80fd5b6100b3610200565b6040516100c09190610fa1565b60405180910390f35b6100e360048036038101906100de9190610ff5565b610225565b005b6100ed6102f7565b6040516100fa9190610fa1565b60405180910390f35b61011d60048036038101906101189190610ff5565b61031c565b005b61013960048036038101906101349190610ff5565b6103ee565b005b6101436104c0565b6040516101509190610fa1565b60405180910390f35b6101616104e5565b60405161016e919061107b565b60405180910390f35b610191600480360381019061018c9190611203565b610508565b60405161019f929190611378565b60405180910390f35b6101b0610867565b6040516101bd91906113ae565b60405180910390f35b6101ce610875565b6040516101db9190610fa1565b60405180910390f35b6101fe60048036038101906101f99190610ff5565b61089a565b005b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ab90611421565b60405180910390fd5b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a290611421565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461047d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047490611421565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8a5111801561051c575060808a5111155b61055b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055290611489565b60405180910390fd5b5f895111801561056d57506080895111155b6105ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a3906114f1565b60405180910390fd5b5f87511180156105be57506096875111155b6105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490611559565b60405180910390fd5b608088511115610642576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610639906115c1565b60405180910390fd5b608086511115610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90611629565b60405180910390fd5b6080855111156106cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c390611691565b60405180910390fd5b608084511115610711576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610708906116f9565b60405180910390fd5b60018311610754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074b90611761565b60405180910390fd5b5f6107668b8b8b8b8b8b8b8b3061096c565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f193069152d02c7e14af68000006040518363ffffffff1660e01b81526004016107ce92919061177f565b5f604051808303815f87803b1580156107e5575f80fd5b505af11580156107f7573d5f803e3d5ffd5b505050506108058185610c23565b3373ffffffffffffffffffffffffffffffffffffffff167fd6e4df0ff985bcd066e06c24c7e6895ddf3aa06d871f29faab160d7a53d3021d8260405161084b9190610fa1565b60405180910390a2338192509250509850989650505050505050565b69152d02c7e14af680000081565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092090611421565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f808a5111801561097f575060408a5111155b6109be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b590611489565b60405180910390fd5b5f89511180156109d057506040895111155b610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a06906114f1565b60405180910390fd5b5f8751118015610a2157506096875111155b610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5790611559565b60405180910390fd5b604088511115610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c906115c1565b60405180910390fd5b604086511115610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190611629565b60405180910390fd5b604085511115610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690611691565b60405180910390fd5b604084511115610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6b906116f9565b60405180910390fd5b610b9e60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e5b565b90508073ffffffffffffffffffffffffffffffffffffffff1663b47c5e6b8b8b8b8b8b8b8b8b8b6040518a63ffffffff1660e01b8152600401610be9999897969594939291906117f6565b5f604051808303815f87803b158015610c00575f80fd5b505af1158015610c12573d5f803e3d5ffd5b505050509998505050505050505050565b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c9f92919061177f565b5f604051808303815f87803b158015610cb6575f80fd5b505af1158015610cc8573d5f803e3d5ffd5b5050505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669152d02c7e14af68000006040518363ffffffff1660e01b8152600401610d5392919061177f565b5f604051808303815f87803b158015610d6a575f80fd5b505af1158015610d7c573d5f803e3d5ffd5b5050505060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e3370060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168469152d02c7e14af6800000856001805f426040518963ffffffff1660e01b8152600401610e149897969594939291906118eb565b6060604051808303815f875af1158015610e30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e54919061197b565b5050505050565b5f610e66825f610e6d565b9050919050565b5f81471015610eb55747826040517fcf479181000000000000000000000000000000000000000000000000000000008152600401610eac9291906119cb565b60405180910390fd5b763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c175f526e5af43d82803e903d91602b57fd5bf38360781b176020526037600983f090505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f5c576040517fb06ebf3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f8b82610f62565b9050919050565b610f9b81610f81565b82525050565b5f602082019050610fb45f830184610f92565b92915050565b5f604051905090565b5f80fd5b5f80fd5b610fd481610f81565b8114610fde575f80fd5b50565b5f81359050610fef81610fcb565b92915050565b5f6020828403121561100a57611009610fc3565b5b5f61101784828501610fe1565b91505092915050565b5f819050919050565b5f61104361103e61103984610f62565b611020565b610f62565b9050919050565b5f61105482611029565b9050919050565b5f6110658261104a565b9050919050565b6110758161105b565b82525050565b5f60208201905061108e5f83018461106c565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6110e28261109c565b810181811067ffffffffffffffff82111715611101576111006110ac565b5b80604052505050565b5f611113610fba565b905061111f82826110d9565b919050565b5f67ffffffffffffffff82111561113e5761113d6110ac565b5b6111478261109c565b9050602081019050919050565b828183375f83830152505050565b5f61117461116f84611124565b61110a565b9050828152602081018484840111156111905761118f611098565b5b61119b848285611154565b509392505050565b5f82601f8301126111b7576111b6611094565b5b81356111c7848260208601611162565b91505092915050565b5f819050919050565b6111e2816111d0565b81146111ec575f80fd5b50565b5f813590506111fd816111d9565b92915050565b5f805f805f805f80610100898b0312156112205761121f610fc3565b5b5f89013567ffffffffffffffff81111561123d5761123c610fc7565b5b6112498b828c016111a3565b985050602089013567ffffffffffffffff81111561126a57611269610fc7565b5b6112768b828c016111a3565b975050604089013567ffffffffffffffff81111561129757611296610fc7565b5b6112a38b828c016111a3565b965050606089013567ffffffffffffffff8111156112c4576112c3610fc7565b5b6112d08b828c016111a3565b955050608089013567ffffffffffffffff8111156112f1576112f0610fc7565b5b6112fd8b828c016111a3565b94505060a089013567ffffffffffffffff81111561131e5761131d610fc7565b5b61132a8b828c016111a3565b93505060c089013567ffffffffffffffff81111561134b5761134a610fc7565b5b6113578b828c016111a3565b92505060e06113688b828c016111ef565b9150509295985092959890939650565b5f60408201905061138b5f830185610f92565b6113986020830184610f92565b9392505050565b6113a8816111d0565b82525050565b5f6020820190506113c15f83018461139f565b92915050565b5f82825260208201905092915050565b7f4f574e45525f45525200000000000000000000000000000000000000000000005f82015250565b5f61140b6009836113c7565b9150611416826113d7565b602082019050919050565b5f6020820190508181035f830152611438816113ff565b9050919050565b7f494e565f4e414d450000000000000000000000000000000000000000000000005f82015250565b5f6114736008836113c7565b915061147e8261143f565b602082019050919050565b5f6020820190508181035f8301526114a081611467565b9050919050565b7f494e565f53594d424f4c000000000000000000000000000000000000000000005f82015250565b5f6114db600a836113c7565b91506114e6826114a7565b602082019050919050565b5f6020820190508181035f830152611508816114cf565b9050919050565b7f494e565f494d41474500000000000000000000000000000000000000000000005f82015250565b5f6115436009836113c7565b915061154e8261150f565b602082019050919050565b5f6020820190508181035f83015261157081611537565b9050919050565b7f494e565f534954450000000000000000000000000000000000000000000000005f82015250565b5f6115ab6008836113c7565b91506115b682611577565b602082019050919050565b5f6020820190508181035f8301526115d88161159f565b9050919050565b7f494e565f444553430000000000000000000000000000000000000000000000005f82015250565b5f6116136008836113c7565b915061161e826115df565b602082019050919050565b5f6020820190508181035f83015261164081611607565b9050919050565b7f494e565f434841540000000000000000000000000000000000000000000000005f82015250565b5f61167b6008836113c7565b915061168682611647565b602082019050919050565b5f6020820190508181035f8301526116a88161166f565b9050919050565b7f494e565f534f43000000000000000000000000000000000000000000000000005f82015250565b5f6116e36007836113c7565b91506116ee826116af565b602082019050919050565b5f6020820190508181035f830152611710816116d7565b9050919050565b7f494e565f535550504c59000000000000000000000000000000000000000000005f82015250565b5f61174b600a836113c7565b915061175682611717565b602082019050919050565b5f6020820190508181035f8301526117788161173f565b9050919050565b5f6040820190506117925f830185610f92565b61179f602083018461139f565b9392505050565b5f81519050919050565b8281835e5f83830152505050565b5f6117c8826117a6565b6117d281856113c7565b93506117e28185602086016117b0565b6117eb8161109c565b840191505092915050565b5f610120820190508181035f83015261180f818c6117be565b90508181036020830152611823818b6117be565b90508181036040830152611837818a6117be565b9050818103606083015261184b81896117be565b9050818103608083015261185f81886117be565b905081810360a083015261187381876117be565b905081810360c083015261188781866117be565b905061189660e083018561139f565b6118a4610100830184610f92565b9a9950505050505050505050565b5f819050919050565b5f6118d56118d06118cb846118b2565b611020565b6111d0565b9050919050565b6118e5816118bb565b82525050565b5f610100820190506118ff5f83018b610f92565b61190c602083018a610f92565b611919604083018961139f565b611926606083018861139f565b61193360808301876118dc565b61194060a08301866118dc565b61194d60c0830185610f92565b61195a60e083018461139f565b9998505050505050505050565b5f81519050611975816111d9565b92915050565b5f805f6060848603121561199257611991610fc3565b5b5f61199f86828701611967565b93505060206119b086828701611967565b92505060406119c186828701611967565b9150509250925092565b5f6040820190506119de5f83018561139f565b6119eb602083018461139f565b939250505056fea2646970667358221220dc740d91cc0f27010f22e4888c57f08a8a129522f79187149a74d0321d2c0b2564736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad380000000000000000000000001f5f59cb9f7dde7b3450582fe7ab9762c670f47f000000000000000000000000a6ad18c2ac47803e193f75c3677b14bf19b94883000000000000000000000000ff338949f61271789ee28b7ff0268c2a3759f435
-----Decoded View---------------
Arg [0] : _weth (address): 0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38
Arg [1] : _tokenImplementation (address): 0x1F5f59cb9f7dde7b3450582fE7ab9762C670f47F
Arg [2] : _router (address): 0xa6AD18C2aC47803E193F75c3677b14BF19B94883
Arg [3] : _baks (address): 0xFf338949F61271789eE28b7ff0268C2a3759F435
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad38
Arg [1] : 0000000000000000000000001f5f59cb9f7dde7b3450582fe7ab9762c670f47f
Arg [2] : 000000000000000000000000a6ad18c2ac47803e193f75c3677b14bf19b94883
Arg [3] : 000000000000000000000000ff338949f61271789ee28b7ff0268c2a3759f435
Deployed Bytecode Sourcemap
30515:4215:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30627:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31329:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30723:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31436:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;31541:85;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30668:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30603:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31634:1326;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;30544:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30695:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31180:141;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30627:34;;;;;;;;;;;;;:::o;31329:99::-;31133:5;;;;;;;;;;;31119:19;;:10;:19;;;31111:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;31410:10:::1;31401:6;;:19;;;;;;;;;;;;;;;;;;31329:99:::0;:::o;30723:19::-;;;;;;;;;;;;;:::o;31436:97::-;31133:5;;;;;;;;;;;31119:19;;:10;:19;;;31111:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;31516:9:::1;31508:5;;:17;;;;;;;;;;;;;;;;;;31436:97:::0;:::o;31541:85::-;31133:5;;;;;;;;;;;31119:19;;:10;:19;;;31111:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;31613:5:::1;31606:4;;:12;;;;;;;;;;;;;;;;;;31541:85:::0;:::o;30668:20::-;;;;;;;;;;;;;:::o;30603:17::-;;;;;;;;;;;;:::o;31634:1326::-;31928:7;31937;31985:1;31970:4;31964:18;:22;:51;;;;;32012:3;31996:4;31990:18;:25;;31964:51;31956:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;32070:1;32053:6;32047:20;:24;:55;;;;;32099:3;32081:6;32075:20;:27;;32047:55;32039:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;32161:1;32142:8;32136:22;:26;:59;;;;;32192:3;32172:8;32166:22;:29;;32136:59;32128:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;32253:3;32234:7;32228:21;:28;;32220:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;32317:3;32294:11;32288:25;:32;;32280:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;32377:3;32358:7;32352:21;:28;;32344:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;32439:3;32418:9;32412:23;:30;;32404:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;32482:1;32473:6;:10;32465:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;32511:16;32530:230;32558:4;32577:6;32598:7;32620:8;32643:11;32669:7;32691:9;32715:6;32744:4;32530:13;:230::i;:::-;32511:249;;32781:4;;;;;;;;;;;32773:18;;;32800:4;30583:13;32773:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32834:31;32848:8;32858:6;32834:13;:31::i;:::-;32891:10;32883:29;;;32903:8;32883:29;;;;;;:::i;:::-;;;;;;;;32931:10;32943:8;32923:29;;;;;31634:1326;;;;;;;;;;;:::o;30544:52::-;30583:13;30544:52;:::o;30695:21::-;;;;;;;;;;;;;:::o;31180:141::-;31133:5;;;;;;;;;;;31119:19;;:10;:19;;;31111:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;31295:18:::1;31273:19;;:40;;;;;;;;;;;;;;;;;;31180:141:::0;:::o;32968:1191::-;33290:16;33347:1;33332:4;33326:18;:22;:50;;;;;33374:2;33358:4;33352:18;:24;;33326:50;33318:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;33431:1;33414:6;33408:20;:24;:54;;;;;33460:2;33442:6;33436:20;:26;;33408:54;33400:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;33521:1;33502:8;33496:22;:26;:59;;;;;33552:3;33532:8;33526:22;:29;;33496:59;33488:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;33613:2;33594:7;33588:21;:27;;33580:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;33676:2;33653:11;33647:25;:31;;33639:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;33735:2;33716:7;33710:21;:27;;33702:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;33796:2;33775:9;33769:23;:29;;33761:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;33834:33;33847:19;;;;;;;;;;;33834:12;:33::i;:::-;33823:44;;33895:8;33878:37;;;33930:4;33949:6;33970:7;33992:8;34015:11;34041:7;34063:9;34087:6;34108;33878:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32968:1191;;;;;;;;;;;:::o;34167:560::-;34261:9;34253:26;;;34280:6;;;;;;;;;;;34288:17;34253:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34325:4;;;;;;;;;;;34317:21;;;34339:6;;;;;;;;;;;30583:13;34317:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34395:6;;;;;;;;;;;34376:39;;;34430:4;;;;;;;;;;;34459:9;30583:13;34541:7;34581:1;34616;34659;34676:15;34376:343;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;34167:560;;:::o;15039:125::-;15096:16;15132:24;15138:14;15154:1;15132:5;:24::i;:::-;15125:31;;15039:125;;;:::o;15565:925::-;15637:16;15694:5;15670:21;:29;15666:125;;;15750:21;15773:5;15723:56;;;;;;;;;;;;:::i;:::-;;;;;;;;15666:125;16081:48;16063:14;16057:4;16053:25;16047:4;16043:36;16040:90;16034:4;16027:104;16290:32;16273:14;16267:4;16263:25;16260:63;16254:4;16247:77;16370:4;16364;16357:5;16350:25;16338:37;;16420:1;16400:22;;:8;:22;;;16396:87;;16446:25;;;;;;;;;;;;;;16396:87;15565:925;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:75::-;626:6;659:2;653:9;643:19;;593:75;:::o;674:117::-;783:1;780;773:12;797:117;906:1;903;896:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1193:329;;;;:::o;1528:60::-;1556:3;1577:5;1570:12;;1528:60;;;:::o;1594:142::-;1644:9;1677:53;1695:34;1704:24;1722:5;1704:24;:::i;:::-;1695:34;:::i;:::-;1677:53;:::i;:::-;1664:66;;1594:142;;;:::o;1742:126::-;1792:9;1825:37;1856:5;1825:37;:::i;:::-;1812:50;;1742:126;;;:::o;1874:140::-;1938:9;1971:37;2002:5;1971:37;:::i;:::-;1958:50;;1874:140;;;:::o;2020:159::-;2121:51;2166:5;2121:51;:::i;:::-;2116:3;2109:64;2020:159;;:::o;2185:250::-;2292:4;2330:2;2319:9;2315:18;2307:26;;2343:85;2425:1;2414:9;2410:17;2401:6;2343:85;:::i;:::-;2185:250;;;;:::o;2441:117::-;2550:1;2547;2540:12;2564:117;2673:1;2670;2663:12;2687:102;2728:6;2779:2;2775:7;2770:2;2763:5;2759:14;2755:28;2745:38;;2687:102;;;:::o;2795:180::-;2843:77;2840:1;2833:88;2940:4;2937:1;2930:15;2964:4;2961:1;2954:15;2981:281;3064:27;3086:4;3064:27;:::i;:::-;3056:6;3052:40;3194:6;3182:10;3179:22;3158:18;3146:10;3143:34;3140:62;3137:88;;;3205:18;;:::i;:::-;3137:88;3245:10;3241:2;3234:22;3024:238;2981:281;;:::o;3268:129::-;3302:6;3329:20;;:::i;:::-;3319:30;;3358:33;3386:4;3378:6;3358:33;:::i;:::-;3268:129;;;:::o;3403:308::-;3465:4;3555:18;3547:6;3544:30;3541:56;;;3577:18;;:::i;:::-;3541:56;3615:29;3637:6;3615:29;:::i;:::-;3607:37;;3699:4;3693;3689:15;3681:23;;3403:308;;;:::o;3717:148::-;3815:6;3810:3;3805;3792:30;3856:1;3847:6;3842:3;3838:16;3831:27;3717:148;;;:::o;3871:425::-;3949:5;3974:66;3990:49;4032:6;3990:49;:::i;:::-;3974:66;:::i;:::-;3965:75;;4063:6;4056:5;4049:21;4101:4;4094:5;4090:16;4139:3;4130:6;4125:3;4121:16;4118:25;4115:112;;;4146:79;;:::i;:::-;4115:112;4236:54;4283:6;4278:3;4273;4236:54;:::i;:::-;3955:341;3871:425;;;;;:::o;4316:340::-;4372:5;4421:3;4414:4;4406:6;4402:17;4398:27;4388:122;;4429:79;;:::i;:::-;4388:122;4546:6;4533:20;4571:79;4646:3;4638:6;4631:4;4623:6;4619:17;4571:79;:::i;:::-;4562:88;;4378:278;4316:340;;;;:::o;4662:77::-;4699:7;4728:5;4717:16;;4662:77;;;:::o;4745:122::-;4818:24;4836:5;4818:24;:::i;:::-;4811:5;4808:35;4798:63;;4857:1;4854;4847:12;4798:63;4745:122;:::o;4873:139::-;4919:5;4957:6;4944:20;4935:29;;4973:33;5000:5;4973:33;:::i;:::-;4873:139;;;;:::o;5018:2609::-;5210:6;5218;5226;5234;5242;5250;5258;5266;5315:3;5303:9;5294:7;5290:23;5286:33;5283:120;;;5322:79;;:::i;:::-;5283:120;5470:1;5459:9;5455:17;5442:31;5500:18;5492:6;5489:30;5486:117;;;5522:79;;:::i;:::-;5486:117;5627:63;5682:7;5673:6;5662:9;5658:22;5627:63;:::i;:::-;5617:73;;5413:287;5767:2;5756:9;5752:18;5739:32;5798:18;5790:6;5787:30;5784:117;;;5820:79;;:::i;:::-;5784:117;5925:63;5980:7;5971:6;5960:9;5956:22;5925:63;:::i;:::-;5915:73;;5710:288;6065:2;6054:9;6050:18;6037:32;6096:18;6088:6;6085:30;6082:117;;;6118:79;;:::i;:::-;6082:117;6223:63;6278:7;6269:6;6258:9;6254:22;6223:63;:::i;:::-;6213:73;;6008:288;6363:2;6352:9;6348:18;6335:32;6394:18;6386:6;6383:30;6380:117;;;6416:79;;:::i;:::-;6380:117;6521:63;6576:7;6567:6;6556:9;6552:22;6521:63;:::i;:::-;6511:73;;6306:288;6661:3;6650:9;6646:19;6633:33;6693:18;6685:6;6682:30;6679:117;;;6715:79;;:::i;:::-;6679:117;6820:63;6875:7;6866:6;6855:9;6851:22;6820:63;:::i;:::-;6810:73;;6604:289;6960:3;6949:9;6945:19;6932:33;6992:18;6984:6;6981:30;6978:117;;;7014:79;;:::i;:::-;6978:117;7119:63;7174:7;7165:6;7154:9;7150:22;7119:63;:::i;:::-;7109:73;;6903:289;7259:3;7248:9;7244:19;7231:33;7291:18;7283:6;7280:30;7277:117;;;7313:79;;:::i;:::-;7277:117;7418:63;7473:7;7464:6;7453:9;7449:22;7418:63;:::i;:::-;7408:73;;7202:289;7530:3;7557:53;7602:7;7593:6;7582:9;7578:22;7557:53;:::i;:::-;7547:63;;7501:119;5018:2609;;;;;;;;;;;:::o;7633:332::-;7754:4;7792:2;7781:9;7777:18;7769:26;;7805:71;7873:1;7862:9;7858:17;7849:6;7805:71;:::i;:::-;7886:72;7954:2;7943:9;7939:18;7930:6;7886:72;:::i;:::-;7633:332;;;;;:::o;7971:118::-;8058:24;8076:5;8058:24;:::i;:::-;8053:3;8046:37;7971:118;;:::o;8095:222::-;8188:4;8226:2;8215:9;8211:18;8203:26;;8239:71;8307:1;8296:9;8292:17;8283:6;8239:71;:::i;:::-;8095:222;;;;:::o;8323:169::-;8407:11;8441:6;8436:3;8429:19;8481:4;8476:3;8472:14;8457:29;;8323:169;;;;:::o;8498:159::-;8638:11;8634:1;8626:6;8622:14;8615:35;8498:159;:::o;8663:365::-;8805:3;8826:66;8890:1;8885:3;8826:66;:::i;:::-;8819:73;;8901:93;8990:3;8901:93;:::i;:::-;9019:2;9014:3;9010:12;9003:19;;8663:365;;;:::o;9034:419::-;9200:4;9238:2;9227:9;9223:18;9215:26;;9287:9;9281:4;9277:20;9273:1;9262:9;9258:17;9251:47;9315:131;9441:4;9315:131;:::i;:::-;9307:139;;9034:419;;;:::o;9459:158::-;9599:10;9595:1;9587:6;9583:14;9576:34;9459:158;:::o;9623:365::-;9765:3;9786:66;9850:1;9845:3;9786:66;:::i;:::-;9779:73;;9861:93;9950:3;9861:93;:::i;:::-;9979:2;9974:3;9970:12;9963:19;;9623:365;;;:::o;9994:419::-;10160:4;10198:2;10187:9;10183:18;10175:26;;10247:9;10241:4;10237:20;10233:1;10222:9;10218:17;10211:47;10275:131;10401:4;10275:131;:::i;:::-;10267:139;;9994:419;;;:::o;10419:160::-;10559:12;10555:1;10547:6;10543:14;10536:36;10419:160;:::o;10585:366::-;10727:3;10748:67;10812:2;10807:3;10748:67;:::i;:::-;10741:74;;10824:93;10913:3;10824:93;:::i;:::-;10942:2;10937:3;10933:12;10926:19;;10585:366;;;:::o;10957:419::-;11123:4;11161:2;11150:9;11146:18;11138:26;;11210:9;11204:4;11200:20;11196:1;11185:9;11181:17;11174:47;11238:131;11364:4;11238:131;:::i;:::-;11230:139;;10957:419;;;:::o;11382:159::-;11522:11;11518:1;11510:6;11506:14;11499:35;11382:159;:::o;11547:365::-;11689:3;11710:66;11774:1;11769:3;11710:66;:::i;:::-;11703:73;;11785:93;11874:3;11785:93;:::i;:::-;11903:2;11898:3;11894:12;11887:19;;11547:365;;;:::o;11918:419::-;12084:4;12122:2;12111:9;12107:18;12099:26;;12171:9;12165:4;12161:20;12157:1;12146:9;12142:17;12135:47;12199:131;12325:4;12199:131;:::i;:::-;12191:139;;11918:419;;;:::o;12343:158::-;12483:10;12479:1;12471:6;12467:14;12460:34;12343:158;:::o;12507:365::-;12649:3;12670:66;12734:1;12729:3;12670:66;:::i;:::-;12663:73;;12745:93;12834:3;12745:93;:::i;:::-;12863:2;12858:3;12854:12;12847:19;;12507:365;;;:::o;12878:419::-;13044:4;13082:2;13071:9;13067:18;13059:26;;13131:9;13125:4;13121:20;13117:1;13106:9;13102:17;13095:47;13159:131;13285:4;13159:131;:::i;:::-;13151:139;;12878:419;;;:::o;13303:158::-;13443:10;13439:1;13431:6;13427:14;13420:34;13303:158;:::o;13467:365::-;13609:3;13630:66;13694:1;13689:3;13630:66;:::i;:::-;13623:73;;13705:93;13794:3;13705:93;:::i;:::-;13823:2;13818:3;13814:12;13807:19;;13467:365;;;:::o;13838:419::-;14004:4;14042:2;14031:9;14027:18;14019:26;;14091:9;14085:4;14081:20;14077:1;14066:9;14062:17;14055:47;14119:131;14245:4;14119:131;:::i;:::-;14111:139;;13838:419;;;:::o;14263:158::-;14403:10;14399:1;14391:6;14387:14;14380:34;14263:158;:::o;14427:365::-;14569:3;14590:66;14654:1;14649:3;14590:66;:::i;:::-;14583:73;;14665:93;14754:3;14665:93;:::i;:::-;14783:2;14778:3;14774:12;14767:19;;14427:365;;;:::o;14798:419::-;14964:4;15002:2;14991:9;14987:18;14979:26;;15051:9;15045:4;15041:20;15037:1;15026:9;15022:17;15015:47;15079:131;15205:4;15079:131;:::i;:::-;15071:139;;14798:419;;;:::o;15223:157::-;15363:9;15359:1;15351:6;15347:14;15340:33;15223:157;:::o;15386:365::-;15528:3;15549:66;15613:1;15608:3;15549:66;:::i;:::-;15542:73;;15624:93;15713:3;15624:93;:::i;:::-;15742:2;15737:3;15733:12;15726:19;;15386:365;;;:::o;15757:419::-;15923:4;15961:2;15950:9;15946:18;15938:26;;16010:9;16004:4;16000:20;15996:1;15985:9;15981:17;15974:47;16038:131;16164:4;16038:131;:::i;:::-;16030:139;;15757:419;;;:::o;16182:160::-;16322:12;16318:1;16310:6;16306:14;16299:36;16182:160;:::o;16348:366::-;16490:3;16511:67;16575:2;16570:3;16511:67;:::i;:::-;16504:74;;16587:93;16676:3;16587:93;:::i;:::-;16705:2;16700:3;16696:12;16689:19;;16348:366;;;:::o;16720:419::-;16886:4;16924:2;16913:9;16909:18;16901:26;;16973:9;16967:4;16963:20;16959:1;16948:9;16944:17;16937:47;17001:131;17127:4;17001:131;:::i;:::-;16993:139;;16720:419;;;:::o;17145:332::-;17266:4;17304:2;17293:9;17289:18;17281:26;;17317:71;17385:1;17374:9;17370:17;17361:6;17317:71;:::i;:::-;17398:72;17466:2;17455:9;17451:18;17442:6;17398:72;:::i;:::-;17145:332;;;;;:::o;17483:99::-;17535:6;17569:5;17563:12;17553:22;;17483:99;;;:::o;17588:139::-;17677:6;17672:3;17667;17661:23;17718:1;17709:6;17704:3;17700:16;17693:27;17588:139;;;:::o;17733:377::-;17821:3;17849:39;17882:5;17849:39;:::i;:::-;17904:71;17968:6;17963:3;17904:71;:::i;:::-;17897:78;;17984:65;18042:6;18037:3;18030:4;18023:5;18019:16;17984:65;:::i;:::-;18074:29;18096:6;18074:29;:::i;:::-;18069:3;18065:39;18058:46;;17825:285;17733:377;;;;:::o;18116:1745::-;18573:4;18611:3;18600:9;18596:19;18588:27;;18661:9;18655:4;18651:20;18647:1;18636:9;18632:17;18625:47;18689:78;18762:4;18753:6;18689:78;:::i;:::-;18681:86;;18814:9;18808:4;18804:20;18799:2;18788:9;18784:18;18777:48;18842:78;18915:4;18906:6;18842:78;:::i;:::-;18834:86;;18967:9;18961:4;18957:20;18952:2;18941:9;18937:18;18930:48;18995:78;19068:4;19059:6;18995:78;:::i;:::-;18987:86;;19120:9;19114:4;19110:20;19105:2;19094:9;19090:18;19083:48;19148:78;19221:4;19212:6;19148:78;:::i;:::-;19140:86;;19274:9;19268:4;19264:20;19258:3;19247:9;19243:19;19236:49;19302:78;19375:4;19366:6;19302:78;:::i;:::-;19294:86;;19428:9;19422:4;19418:20;19412:3;19401:9;19397:19;19390:49;19456:78;19529:4;19520:6;19456:78;:::i;:::-;19448:86;;19582:9;19576:4;19572:20;19566:3;19555:9;19551:19;19544:49;19610:78;19683:4;19674:6;19610:78;:::i;:::-;19602:86;;19698:73;19766:3;19755:9;19751:19;19742:6;19698:73;:::i;:::-;19781;19849:3;19838:9;19834:19;19825:6;19781:73;:::i;:::-;18116:1745;;;;;;;;;;;;:::o;19867:85::-;19912:7;19941:5;19930:16;;19867:85;;;:::o;19958:158::-;20016:9;20049:61;20067:42;20076:32;20102:5;20076:32;:::i;:::-;20067:42;:::i;:::-;20049:61;:::i;:::-;20036:74;;19958:158;;;:::o;20122:147::-;20217:45;20256:5;20217:45;:::i;:::-;20212:3;20205:58;20122:147;;:::o;20275:1029::-;20580:4;20618:3;20607:9;20603:19;20595:27;;20632:71;20700:1;20689:9;20685:17;20676:6;20632:71;:::i;:::-;20713:72;20781:2;20770:9;20766:18;20757:6;20713:72;:::i;:::-;20795;20863:2;20852:9;20848:18;20839:6;20795:72;:::i;:::-;20877;20945:2;20934:9;20930:18;20921:6;20877:72;:::i;:::-;20959:81;21035:3;21024:9;21020:19;21011:6;20959:81;:::i;:::-;21050;21126:3;21115:9;21111:19;21102:6;21050:81;:::i;:::-;21141:73;21209:3;21198:9;21194:19;21185:6;21141:73;:::i;:::-;21224;21292:3;21281:9;21277:19;21268:6;21224:73;:::i;:::-;20275:1029;;;;;;;;;;;:::o;21310:143::-;21367:5;21398:6;21392:13;21383:22;;21414:33;21441:5;21414:33;:::i;:::-;21310:143;;;;:::o;21459:663::-;21547:6;21555;21563;21612:2;21600:9;21591:7;21587:23;21583:32;21580:119;;;21618:79;;:::i;:::-;21580:119;21738:1;21763:64;21819:7;21810:6;21799:9;21795:22;21763:64;:::i;:::-;21753:74;;21709:128;21876:2;21902:64;21958:7;21949:6;21938:9;21934:22;21902:64;:::i;:::-;21892:74;;21847:129;22015:2;22041:64;22097:7;22088:6;22077:9;22073:22;22041:64;:::i;:::-;22031:74;;21986:129;21459:663;;;;;:::o;22128:332::-;22249:4;22287:2;22276:9;22272:18;22264:26;;22300:71;22368:1;22357:9;22353:17;22344:6;22300:71;:::i;:::-;22381:72;22449:2;22438:9;22434:18;22425:6;22381:72;:::i;:::-;22128:332;;;;;:::o
Swarm Source
ipfs://dc740d91cc0f27010f22e4888c57f08a8a129522f79187149a74d0321d2c0b25
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
[ 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.