Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 20270218 | 99 days ago | IN | 0 ETH | 0.01437855 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
LiquidityManager
Compiler Version
v0.8.25+commit.b61c2a91
Optimization Enabled:
Yes with 999999 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: -- BCOM -- pragma solidity =0.8.25; import "./IERC20.sol"; import "./ISwapsPair.sol"; import "./ISwapsRouter.sol"; contract LiquidityManager { address public owner; address public worker; ISwapsPair public pair; ISwapsRouter public router; address public token0; address public token1; modifier onlyOwner() { require( msg.sender == owner, "Caller is not the owner" ); _; } modifier onlyWorker() { require( msg.sender == worker, "Caller is not the worker" ); _; } event LogQuote( uint256 requiredWethForSwap, uint256 minAmountVerseToBuy, uint256 reserve0, uint256 reserve1 ); event LogOut( uint256 amountWeth, uint256 amountVerse ); event LogAdded( uint256 addedVerse, uint256 addedWeth, uint256 liquidity ); constructor() { owner = msg.sender; worker = msg.sender; router = ISwapsRouter( 0xB4B0ea46Fe0E9e8EAB4aFb765b527739F2718671 ); token0 = 0x249cA82617eC3DfB2589c4c17ab7EC9765350a18; token1 = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; IERC20(token0).approve( address(router), type(uint256).max ); IERC20(token1).approve( address(router), type(uint256).max ); pair = ISwapsPair( router.pairFor( router.FACTORY(), token0, token1 ) ); pair.approve( address(router), type(uint256).max ); } function buyBackVerseToken( uint256 _liquidityAmountToUse, uint256 _expectMinVerseRemoved, uint256 _expectMinWethRemoved, uint256 _minAmountVerseToBuy, uint256 _maxAmountWethForSwap, uint256 _desiredVerseToAddBack, uint256 _desiredWethToAddBack, uint256 _expectMinVerseToAddBack, uint256 _expectMinWethToAddBack ) external onlyWorker { pair.approve( address(router), _liquidityAmountToUse ); ( uint256 _amountVerse, uint256 _amountWeth ) = router.removeLiquidity( token0, token1, _liquidityAmountToUse, _expectMinVerseRemoved, _expectMinWethRemoved, address(this), block.timestamp ); emit LogOut( _amountWeth, _amountVerse ); ( uint256 reserve0, uint256 reserve1, ) = pair.getReserves(); uint256 requiredWethForSwap = router.quote( _minAmountVerseToBuy, reserve0, reserve1 ); emit LogQuote( requiredWethForSwap, _minAmountVerseToBuy, reserve0, reserve1 ); if (requiredWethForSwap > _maxAmountWethForSwap) { revert("LiquidityManager: TOO_EXPENSIVE"); } router.swapExactTokensForTokens( _maxAmountWethForSwap, _minAmountVerseToBuy, _getSwapPathFromWethToVerse(), address(this), block.timestamp ); IERC20(token0).approve( address(router), _desiredVerseToAddBack ); IERC20(token1).approve( address(router), _desiredWethToAddBack ); ( uint256 addedVerse, uint256 addedWeth, uint256 liquidity ) = router.addLiquidity( token0, token1, _desiredVerseToAddBack, _desiredWethToAddBack, _expectMinVerseToAddBack, _expectMinWethToAddBack, address(this), block.timestamp ); emit LogAdded( addedVerse, addedWeth, liquidity ); } function buyBackVerseTokenSimple( uint256 _liquidityAmountToUse, uint256 _expectMinVerseRemoved, uint256 _expectMinWethRemoved, uint256 _minAmountVerseToBuy, uint256 _maxAmountWethForSwap, uint256 _expectMinVerseToAddBack, uint256 _expectMinWethToAddBack ) external onlyWorker { ( uint256 _amountVerse, uint256 _amountWeth ) = router.removeLiquidity( token0, token1, _liquidityAmountToUse, _expectMinVerseRemoved, _expectMinWethRemoved, address(this), block.timestamp ); emit LogOut( _amountWeth, _amountVerse ); ( uint256 reserve0, uint256 reserve1, ) = pair.getReserves(); uint256 requiredWethForSwap = router.quote( _minAmountVerseToBuy, reserve0, reserve1 ); emit LogQuote( requiredWethForSwap, _minAmountVerseToBuy, reserve0, reserve1 ); if (requiredWethForSwap > _maxAmountWethForSwap) { revert("LiquidityManager: TOO_EXPENSIVE"); } router.swapExactTokensForTokens( _maxAmountWethForSwap, _minAmountVerseToBuy, _getSwapPathFromWethToVerse(), address(this), block.timestamp ); ( uint256 addedVerse, uint256 addedWeth, uint256 liquidity ) = router.addLiquidity( token0, token1, IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), _expectMinVerseToAddBack, _expectMinWethToAddBack, address(this), block.timestamp ); emit LogAdded( addedVerse, addedWeth, liquidity ); } function withdrawTokens( address _token, address _to, uint256 _amount ) external onlyOwner { IERC20(_token).transfer( _to, _amount ); } function withdrawETH( address _to, uint256 _amount ) external onlyOwner { payable(_to).transfer( _amount ); } function setWorker( address _worker ) external onlyOwner { worker = _worker; } function setOwner( address _owner ) external onlyOwner { owner = _owner; } function getVerseBalanceSelf() public view returns (uint256) { return IERC20(token0).balanceOf( address(this) ); } function getWethBalanceSelf() public view returns (uint256) { return IERC20(token1).balanceOf( address(this) ); } function getOptimalParameters( uint256 _liquidityAmountToUse, uint256 _maxAmountWethForSwap ) external view returns ( uint256 _expectMinVerseRemoved, uint256 _expectMinWethRemoved, uint256 _minAmountVerseToBuy, uint256 _expectMinVerseToAddBack, uint256 _expectMinWethToAddBack ) { ( uint256 reserve0, uint256 reserve1, ) = pair.getReserves(); uint256 totalSupply = pair.totalSupply(); // Calculate the amounts of Verse and WETH that will be removed _expectMinVerseRemoved = _liquidityAmountToUse * reserve0 / totalSupply; _expectMinWethRemoved = _liquidityAmountToUse * reserve1 / totalSupply; // New reserves after liquidity removal uint256 newReserve0 = reserve0 - _expectMinVerseRemoved; uint256 newReserve1 = reserve1 - _expectMinWethRemoved; // Calculate the maximum amount of Verse that can be bought with _maxAmountWethForSwap _minAmountVerseToBuy = router.getAmountOut( _maxAmountWethForSwap, newReserve1, newReserve0 ); uint256 verseAfterSwap = _expectMinVerseRemoved - _minAmountVerseToBuy; _expectMinVerseToAddBack = verseAfterSwap * _expectMinWethRemoved / newReserve1; // _expectMinWethToAddBack should be the same as the amount of WETH removed _expectMinWethToAddBack = _expectMinWethRemoved; return ( _expectMinVerseRemoved, _expectMinWethRemoved, _minAmountVerseToBuy, _expectMinVerseToAddBack, _expectMinWethToAddBack ); } function _getSwapPathFromWethToVerse() private view returns (address[] memory path) { path = new address[](2); path[0] = token1; // WETH path[1] = token0; // VERSE } }
// SPDX-License-Identifier: -- BCOM -- pragma solidity =0.8.25; interface IERC20 { function balanceOf( address _owner ) external view returns (uint256); function transfer( address _to, uint256 _value ) external returns (bool); function transferFrom( address _from, address _to, uint256 _value ) external returns (bool); function approve( address _spender, uint256 _value ) external returns (bool); }
// SPDX-License-Identifier: -- BCOM -- pragma solidity =0.8.25; import "./ISwapsERC20.sol"; interface ISwapsPair is ISwapsERC20 { function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint( address _to ) external returns (uint256 liquidity); function burn( address _to ) external returns ( uint256 amount0, uint256 amount1 ); function swap( uint256 _amount0Out, uint256 _amount1Out, address _to, bytes calldata _data ) external; function skim() external; function initialize( address, address ) external; }
// SPDX-License-Identifier: -- BCOM -- pragma solidity =0.8.25; interface ISwapsRouter { function WETH() external returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns ( uint[] memory amounts ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB ); function getReserves( address factory, address tokenA, address tokenB ) external view returns ( uint112 reserveA, uint112 reserveB, uint32 blockTimestampLast ); function FACTORY() external view returns (address); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function pairFor( address factory, address tokenA, address tokenB ) external pure returns (address); function getAmountOut( uint256 _amountIn, uint256 _reserveIn, uint256 _reserveOut ) external pure returns (uint256 amountOut); }
// SPDX-License-Identifier: BCOM pragma solidity =0.8.25; interface ISwapsERC20 { 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 (uint256); function balanceOf( address _owner ) external view returns (uint256); function allowance( address _owner, address _spender ) external view returns (uint256); function approve( address _spender, uint256 _value ) external returns (bool); function transfer( address _to, uint256 _value ) external returns (bool); function transferFrom( address _from, address _to, uint256 _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 (uint256); function permit( address _owner, address _spender, uint256 _value, uint256 _deadline, uint8 _v, bytes32 _r, bytes32 _s ) external; }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/" ], "optimizer": { "enabled": true, "runs": 999999 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "cancun", "viaIR": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"addedVerse","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"addedWeth","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"LogAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountWeth","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountVerse","type":"uint256"}],"name":"LogOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requiredWethForSwap","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minAmountVerseToBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reserve0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reserve1","type":"uint256"}],"name":"LogQuote","type":"event"},{"inputs":[{"internalType":"uint256","name":"_liquidityAmountToUse","type":"uint256"},{"internalType":"uint256","name":"_expectMinVerseRemoved","type":"uint256"},{"internalType":"uint256","name":"_expectMinWethRemoved","type":"uint256"},{"internalType":"uint256","name":"_minAmountVerseToBuy","type":"uint256"},{"internalType":"uint256","name":"_maxAmountWethForSwap","type":"uint256"},{"internalType":"uint256","name":"_desiredVerseToAddBack","type":"uint256"},{"internalType":"uint256","name":"_desiredWethToAddBack","type":"uint256"},{"internalType":"uint256","name":"_expectMinVerseToAddBack","type":"uint256"},{"internalType":"uint256","name":"_expectMinWethToAddBack","type":"uint256"}],"name":"buyBackVerseToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityAmountToUse","type":"uint256"},{"internalType":"uint256","name":"_expectMinVerseRemoved","type":"uint256"},{"internalType":"uint256","name":"_expectMinWethRemoved","type":"uint256"},{"internalType":"uint256","name":"_minAmountVerseToBuy","type":"uint256"},{"internalType":"uint256","name":"_maxAmountWethForSwap","type":"uint256"},{"internalType":"uint256","name":"_expectMinVerseToAddBack","type":"uint256"},{"internalType":"uint256","name":"_expectMinWethToAddBack","type":"uint256"}],"name":"buyBackVerseTokenSimple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityAmountToUse","type":"uint256"},{"internalType":"uint256","name":"_maxAmountWethForSwap","type":"uint256"}],"name":"getOptimalParameters","outputs":[{"internalType":"uint256","name":"_expectMinVerseRemoved","type":"uint256"},{"internalType":"uint256","name":"_expectMinWethRemoved","type":"uint256"},{"internalType":"uint256","name":"_minAmountVerseToBuy","type":"uint256"},{"internalType":"uint256","name":"_expectMinVerseToAddBack","type":"uint256"},{"internalType":"uint256","name":"_expectMinWethToAddBack","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVerseBalanceSelf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWethBalanceSelf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract ISwapsPair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract ISwapsRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_worker","type":"address"}],"name":"setWorker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"worker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561000f575f80fd5b505f80546001600160a01b03199081163390811790925560018054821690921790915560038054821673b4b0ea46fe0e9e8eab4afb765b527739f271867190811790915560048054831673249ca82617ec3dfb2589c4c17ab7ec9765350a1890811782556005805490941673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790935560405163095ea7b360e01b8152908101919091525f19602482015263095ea7b3906044016020604051808303815f875af11580156100d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f791906102ef565b5060055460035460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af115801561014a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016e91906102ef565b50600354604080516202dd3160ec1b815290516001600160a01b0390921691636d91c0e2918391632dd31000916004808201926020929091908290030181865afa1580156101be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e29190610315565b6004805460055460405160e086901b6001600160e01b03191681526001600160a01b03948516938101939093529083166024830152919091166044820152606401602060405180830381865afa15801561023e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102629190610315565b600280546001600160a01b0319166001600160a01b0392831690811790915560035460405163095ea7b360e01b8152921660048301525f1960248301529063095ea7b3906044016020604051808303815f875af11580156102c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e991906102ef565b5061033b565b5f602082840312156102ff575f80fd5b8151801515811461030e575f80fd5b9392505050565b5f60208284031215610325575f80fd5b81516001600160a01b038116811461030e575f80fd5b611cdc806103485f395ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c8063a8aa1b3111610093578063dde2382311610063578063dde2382314610234578063f4852f051461023c578063f887ea4014610277578063fbccc48114610297575f80fd5b8063a8aa1b31146101cb578063c26f6d44146101eb578063c72ae0d1146101fe578063d21220a714610214575f80fd5b806347980445116100ce57806347980445146101665780634d547ada146101795780635e35359e146101995780638da5cb5b146101ac575f80fd5b80630dfe1681146100f457806313af40351461013e5780634782f77914610153575b5f80fd5b6004546101149073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61015161014c366004611828565b6102aa565b005b610151610161366004611848565b610375565b610151610174366004611870565b61043a565b6001546101149073ffffffffffffffffffffffffffffffffffffffff1681565b6101516101a73660046118b7565b610ac0565b5f546101149073ffffffffffffffffffffffffffffffffffffffff1681565b6002546101149073ffffffffffffffffffffffffffffffffffffffff1681565b6101516101f9366004611828565b610bdc565b610206610ca3565b604051908152602001610135565b6005546101149073ffffffffffffffffffffffffffffffffffffffff1681565b610206610d3e565b61024f61024a3660046118f0565b610d94565b604080519586526020860194909452928401919091526060830152608082015260a001610135565b6003546101149073ffffffffffffffffffffffffffffffffffffffff1681565b6101516102a5366004611910565b610ffe565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461032f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064015b60405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146103f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610326565b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083905f818181858888f19350505050158015610435573d5f803e3d5ffd5b505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146104bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43616c6c6572206973206e6f742074686520776f726b657200000000000000006044820152606401610326565b600354600480546005546040517fbaa2abde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169381019390935281166024830152604482018a905260648201899052608482018890523060a48301524260c48301525f92839291169063baa2abde9060e40160408051808303815f875af115801561055d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105819190611969565b60408051828152602081018490529294509092507fb6321cff1f06132ebdcaaf6b6d84a8946273d4642a579e05840f4d57f6bc59eb910160405180910390a15f8060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561062c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065091906119a8565b506003546040517fad615dec000000000000000000000000000000000000000000000000000000008152600481018c90526dffffffffffffffffffffffffffff9384166024820181905292909316604484018190529194509092505f9173ffffffffffffffffffffffffffffffffffffffff9091169063ad615dec90606401602060405180830381865afa1580156106ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070e91906119f4565b60408051828152602081018c9052908101859052606081018490529091507ff346f258c310091fbda28bd0b8cc88bb8fa9c6892eb7871b22670da71f7c8d4f9060800160405180910390a1878111156107c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4c69717569646974794d616e616765723a20544f4f5f455850454e53495645006044820152606401610326565b60035473ffffffffffffffffffffffffffffffffffffffff166338ed1739898b6107eb611739565b30426040518663ffffffff1660e01b815260040161080d959493929190611a0b565b5f604051808303815f875af1158015610828573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261086d9190810190611ac3565b50600354600480546005546040517f70a0823100000000000000000000000000000000000000000000000000000000815230938101939093525f938493849373ffffffffffffffffffffffffffffffffffffffff9283169363e8e33700939182169291169082906370a0823190602401602060405180830381865afa1580156108f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091c91906119f4565b6005546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610988573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ac91906119f4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815273ffffffffffffffffffffffffffffffffffffffff948516600482015293909216602484015260448301526064820152608481018d905260a481018c90523060c48201524260e4820152610104016060604051808303815f875af1158015610a42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a669190611b9a565b604080518481526020810184905290810182905292955090935091507f833445e6ca565a1c522ac801db9a7fff218da94381ec636c3b9c1a4cf1487ee69060600160405180910390a1505050505050505050505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610326565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610bb2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd69190611bc5565b50505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610c5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610326565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600480546040517f70a0823100000000000000000000000000000000000000000000000000000000815230928101929092525f9173ffffffffffffffffffffffffffffffffffffffff909116906370a08231906024015b602060405180830381865afa158015610d15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3991906119f4565b905090565b6005546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401610cfa565b5f805f805f805f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610e05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2991906119a8565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691505f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edd91906119f4565b905080610eea848c611c11565b610ef49190611c2e565b975080610f01838c611c11565b610f0b9190611c2e565b96505f610f188985611c66565b90505f610f258985611c66565b6003546040517f054d50d4000000000000000000000000000000000000000000000000000000008152600481018e9052602481018390526044810185905291925073ffffffffffffffffffffffffffffffffffffffff169063054d50d490606401602060405180830381865afa158015610fa1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc591906119f4565b97505f610fd2898c611c66565b905081610fdf8b83611c11565b610fe99190611c2e565b97508996505050505050509295509295909350565b60015473ffffffffffffffffffffffffffffffffffffffff16331461107f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43616c6c6572206973206e6f742074686520776f726b657200000000000000006044820152606401610326565b6002546003546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018c905291169063095ea7b3906044016020604051808303815f875af11580156110f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061111b9190611bc5565b50600354600480546005546040517fbaa2abde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169381019390935281166024830152604482018c9052606482018b9052608482018a90523060a48301524260c48301525f92839291169063baa2abde9060e40160408051808303815f875af11580156111be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e29190611969565b60408051828152602081018490529294509092507fb6321cff1f06132ebdcaaf6b6d84a8946273d4642a579e05840f4d57f6bc59eb910160405180910390a15f8060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561128d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b191906119a8565b506003546040517fad615dec000000000000000000000000000000000000000000000000000000008152600481018e90526dffffffffffffffffffffffffffff9384166024820181905292909316604484018190529194509092505f9173ffffffffffffffffffffffffffffffffffffffff9091169063ad615dec90606401602060405180830381865afa15801561134b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136f91906119f4565b60408051828152602081018e9052908101859052606081018490529091507ff346f258c310091fbda28bd0b8cc88bb8fa9c6892eb7871b22670da71f7c8d4f9060800160405180910390a189811115611424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4c69717569646974794d616e616765723a20544f4f5f455850454e53495645006044820152606401610326565b60035473ffffffffffffffffffffffffffffffffffffffff166338ed17398b8d61144c611739565b30426040518663ffffffff1660e01b815260040161146e959493929190611a0b565b5f604051808303815f875af1158015611489573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526114ce9190810190611ac3565b50600480546003546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821693810193909352602483018c9052169063095ea7b3906044016020604051808303815f875af1158015611549573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061156d9190611bc5565b506005546003546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018b905291169063095ea7b3906044016020604051808303815f875af11580156115e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061160a9190611bc5565b50600354600480546005546040517fe8e3370000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169381019390935281166024830152604482018c9052606482018b9052608482018a905260a482018990523060c48301524260e48301525f92839283929091169063e8e3370090610104016060604051808303815f875af11580156116b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116dd9190611b9a565b604080518481526020810184905290810182905292955090935091507f833445e6ca565a1c522ac801db9a7fff218da94381ec636c3b9c1a4cf1487ee69060600160405180910390a15050505050505050505050505050505050565b60408051600280825260608083018452926020830190803683375050600554825192935073ffffffffffffffffffffffffffffffffffffffff16918391505f9061178557611785611c79565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526004548251911690829060019081106117c3576117c3611c79565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505090565b803573ffffffffffffffffffffffffffffffffffffffff81168114611823575f80fd5b919050565b5f60208284031215611838575f80fd5b61184182611800565b9392505050565b5f8060408385031215611859575f80fd5b61186283611800565b946020939093013593505050565b5f805f805f805f60e0888a031215611886575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f805f606084860312156118c9575f80fd5b6118d284611800565b92506118e060208501611800565b9150604084013590509250925092565b5f8060408385031215611901575f80fd5b50508035926020909101359150565b5f805f805f805f805f6101208a8c031215611929575f80fd5b505087359960208901359950604089013598606081013598506080810135975060a0810135965060c0810135955060e08101359450610100013592509050565b5f806040838503121561197a575f80fd5b505080516020909101519092909150565b80516dffffffffffffffffffffffffffff81168114611823575f80fd5b5f805f606084860312156119ba575f80fd5b6119c38461198b565b92506119d16020850161198b565b9150604084015163ffffffff811681146119e9575f80fd5b809150509250925092565b5f60208284031215611a04575f80fd5b5051919050565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a6857845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101611a36565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020808385031215611ad4575f80fd5b825167ffffffffffffffff80821115611aeb575f80fd5b818501915085601f830112611afe575f80fd5b815181811115611b1057611b10611a96565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715611b5357611b53611a96565b604052918252848201925083810185019188831115611b70575f80fd5b938501935b82851015611b8e57845184529385019392850192611b75565b98975050505050505050565b5f805f60608486031215611bac575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611bd5575f80fd5b81518015158114611841575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417611c2857611c28611be4565b92915050565b5f82611c61577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115611c2857611c28611be4565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea26469706673582212200944a707b5ebc765600bc1892f743c6b32e5d115e1c1f5b704868cc2d54e8d2a64736f6c63430008190033
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100f0575f3560e01c8063a8aa1b3111610093578063dde2382311610063578063dde2382314610234578063f4852f051461023c578063f887ea4014610277578063fbccc48114610297575f80fd5b8063a8aa1b31146101cb578063c26f6d44146101eb578063c72ae0d1146101fe578063d21220a714610214575f80fd5b806347980445116100ce57806347980445146101665780634d547ada146101795780635e35359e146101995780638da5cb5b146101ac575f80fd5b80630dfe1681146100f457806313af40351461013e5780634782f77914610153575b5f80fd5b6004546101149073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61015161014c366004611828565b6102aa565b005b610151610161366004611848565b610375565b610151610174366004611870565b61043a565b6001546101149073ffffffffffffffffffffffffffffffffffffffff1681565b6101516101a73660046118b7565b610ac0565b5f546101149073ffffffffffffffffffffffffffffffffffffffff1681565b6002546101149073ffffffffffffffffffffffffffffffffffffffff1681565b6101516101f9366004611828565b610bdc565b610206610ca3565b604051908152602001610135565b6005546101149073ffffffffffffffffffffffffffffffffffffffff1681565b610206610d3e565b61024f61024a3660046118f0565b610d94565b604080519586526020860194909452928401919091526060830152608082015260a001610135565b6003546101149073ffffffffffffffffffffffffffffffffffffffff1681565b6101516102a5366004611910565b610ffe565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461032f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064015b60405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146103f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610326565b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083905f818181858888f19350505050158015610435573d5f803e3d5ffd5b505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146104bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43616c6c6572206973206e6f742074686520776f726b657200000000000000006044820152606401610326565b600354600480546005546040517fbaa2abde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169381019390935281166024830152604482018a905260648201899052608482018890523060a48301524260c48301525f92839291169063baa2abde9060e40160408051808303815f875af115801561055d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105819190611969565b60408051828152602081018490529294509092507fb6321cff1f06132ebdcaaf6b6d84a8946273d4642a579e05840f4d57f6bc59eb910160405180910390a15f8060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561062c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065091906119a8565b506003546040517fad615dec000000000000000000000000000000000000000000000000000000008152600481018c90526dffffffffffffffffffffffffffff9384166024820181905292909316604484018190529194509092505f9173ffffffffffffffffffffffffffffffffffffffff9091169063ad615dec90606401602060405180830381865afa1580156106ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070e91906119f4565b60408051828152602081018c9052908101859052606081018490529091507ff346f258c310091fbda28bd0b8cc88bb8fa9c6892eb7871b22670da71f7c8d4f9060800160405180910390a1878111156107c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4c69717569646974794d616e616765723a20544f4f5f455850454e53495645006044820152606401610326565b60035473ffffffffffffffffffffffffffffffffffffffff166338ed1739898b6107eb611739565b30426040518663ffffffff1660e01b815260040161080d959493929190611a0b565b5f604051808303815f875af1158015610828573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261086d9190810190611ac3565b50600354600480546005546040517f70a0823100000000000000000000000000000000000000000000000000000000815230938101939093525f938493849373ffffffffffffffffffffffffffffffffffffffff9283169363e8e33700939182169291169082906370a0823190602401602060405180830381865afa1580156108f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091c91906119f4565b6005546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610988573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ac91906119f4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815273ffffffffffffffffffffffffffffffffffffffff948516600482015293909216602484015260448301526064820152608481018d905260a481018c90523060c48201524260e4820152610104016060604051808303815f875af1158015610a42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a669190611b9a565b604080518481526020810184905290810182905292955090935091507f833445e6ca565a1c522ac801db9a7fff218da94381ec636c3b9c1a4cf1487ee69060600160405180910390a1505050505050505050505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610326565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610bb2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd69190611bc5565b50505050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610c5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610326565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600480546040517f70a0823100000000000000000000000000000000000000000000000000000000815230928101929092525f9173ffffffffffffffffffffffffffffffffffffffff909116906370a08231906024015b602060405180830381865afa158015610d15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3991906119f4565b905090565b6005546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401610cfa565b5f805f805f805f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610e05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2991906119a8565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691505f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edd91906119f4565b905080610eea848c611c11565b610ef49190611c2e565b975080610f01838c611c11565b610f0b9190611c2e565b96505f610f188985611c66565b90505f610f258985611c66565b6003546040517f054d50d4000000000000000000000000000000000000000000000000000000008152600481018e9052602481018390526044810185905291925073ffffffffffffffffffffffffffffffffffffffff169063054d50d490606401602060405180830381865afa158015610fa1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc591906119f4565b97505f610fd2898c611c66565b905081610fdf8b83611c11565b610fe99190611c2e565b97508996505050505050509295509295909350565b60015473ffffffffffffffffffffffffffffffffffffffff16331461107f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43616c6c6572206973206e6f742074686520776f726b657200000000000000006044820152606401610326565b6002546003546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018c905291169063095ea7b3906044016020604051808303815f875af11580156110f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061111b9190611bc5565b50600354600480546005546040517fbaa2abde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169381019390935281166024830152604482018c9052606482018b9052608482018a90523060a48301524260c48301525f92839291169063baa2abde9060e40160408051808303815f875af11580156111be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e29190611969565b60408051828152602081018490529294509092507fb6321cff1f06132ebdcaaf6b6d84a8946273d4642a579e05840f4d57f6bc59eb910160405180910390a15f8060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561128d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b191906119a8565b506003546040517fad615dec000000000000000000000000000000000000000000000000000000008152600481018e90526dffffffffffffffffffffffffffff9384166024820181905292909316604484018190529194509092505f9173ffffffffffffffffffffffffffffffffffffffff9091169063ad615dec90606401602060405180830381865afa15801561134b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136f91906119f4565b60408051828152602081018e9052908101859052606081018490529091507ff346f258c310091fbda28bd0b8cc88bb8fa9c6892eb7871b22670da71f7c8d4f9060800160405180910390a189811115611424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4c69717569646974794d616e616765723a20544f4f5f455850454e53495645006044820152606401610326565b60035473ffffffffffffffffffffffffffffffffffffffff166338ed17398b8d61144c611739565b30426040518663ffffffff1660e01b815260040161146e959493929190611a0b565b5f604051808303815f875af1158015611489573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526114ce9190810190611ac3565b50600480546003546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821693810193909352602483018c9052169063095ea7b3906044016020604051808303815f875af1158015611549573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061156d9190611bc5565b506005546003546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018b905291169063095ea7b3906044016020604051808303815f875af11580156115e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061160a9190611bc5565b50600354600480546005546040517fe8e3370000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169381019390935281166024830152604482018c9052606482018b9052608482018a905260a482018990523060c48301524260e48301525f92839283929091169063e8e3370090610104016060604051808303815f875af11580156116b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116dd9190611b9a565b604080518481526020810184905290810182905292955090935091507f833445e6ca565a1c522ac801db9a7fff218da94381ec636c3b9c1a4cf1487ee69060600160405180910390a15050505050505050505050505050505050565b60408051600280825260608083018452926020830190803683375050600554825192935073ffffffffffffffffffffffffffffffffffffffff16918391505f9061178557611785611c79565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526004548251911690829060019081106117c3576117c3611c79565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505090565b803573ffffffffffffffffffffffffffffffffffffffff81168114611823575f80fd5b919050565b5f60208284031215611838575f80fd5b61184182611800565b9392505050565b5f8060408385031215611859575f80fd5b61186283611800565b946020939093013593505050565b5f805f805f805f60e0888a031215611886575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f805f606084860312156118c9575f80fd5b6118d284611800565b92506118e060208501611800565b9150604084013590509250925092565b5f8060408385031215611901575f80fd5b50508035926020909101359150565b5f805f805f805f805f6101208a8c031215611929575f80fd5b505087359960208901359950604089013598606081013598506080810135975060a0810135965060c0810135955060e08101359450610100013592509050565b5f806040838503121561197a575f80fd5b505080516020909101519092909150565b80516dffffffffffffffffffffffffffff81168114611823575f80fd5b5f805f606084860312156119ba575f80fd5b6119c38461198b565b92506119d16020850161198b565b9150604084015163ffffffff811681146119e9575f80fd5b809150509250925092565b5f60208284031215611a04575f80fd5b5051919050565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a6857845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101611a36565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020808385031215611ad4575f80fd5b825167ffffffffffffffff80821115611aeb575f80fd5b818501915085601f830112611afe575f80fd5b815181811115611b1057611b10611a96565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715611b5357611b53611a96565b604052918252848201925083810185019188831115611b70575f80fd5b938501935b82851015611b8e57845184529385019392850192611b75565b98975050505050505050565b5f805f60608486031215611bac575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611bd5575f80fd5b81518015158114611841575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417611c2857611c28611be4565b92915050565b5f82611c61577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b81810381811115611c2857611c28611be4565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea26469706673582212200944a707b5ebc765600bc1892f743c6b32e5d115e1c1f5b704868cc2d54e8d2a64736f6c63430008190033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.