Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 363 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deposit | 21280823 | 1 hr ago | IN | 0 ETH | 0.00398791 | ||||
Deposit | 21278142 | 10 hrs ago | IN | 0 ETH | 0.00187183 | ||||
Authorize And De... | 21271372 | 33 hrs ago | IN | 0 ETH | 0.00335285 | ||||
Authorize And De... | 21268478 | 43 hrs ago | IN | 0 ETH | 0.00255349 | ||||
Authorize And De... | 21264033 | 2 days ago | IN | 0 ETH | 0.00371781 | ||||
Deposit | 21263724 | 2 days ago | IN | 0 ETH | 0.00171235 | ||||
Authorize And De... | 21262380 | 2 days ago | IN | 0 ETH | 0.00202011 | ||||
Deposit | 21261736 | 2 days ago | IN | 0 ETH | 0.00175557 | ||||
Authorize And De... | 21261174 | 2 days ago | IN | 0 ETH | 0.00017638 | ||||
Authorize And De... | 21261174 | 2 days ago | IN | 0 ETH | 0.00017638 | ||||
Authorize And De... | 21261174 | 2 days ago | IN | 0 ETH | 0.00017638 | ||||
Deposit | 21258295 | 3 days ago | IN | 0 ETH | 0.00200182 | ||||
Authorize And De... | 21253892 | 3 days ago | IN | 0 ETH | 0.00392101 | ||||
Authorize And De... | 21251973 | 4 days ago | IN | 0 ETH | 0.00538467 | ||||
Deposit | 21250340 | 4 days ago | IN | 0 ETH | 0.00227426 | ||||
Deposit | 21248353 | 4 days ago | IN | 0 ETH | 0.00251164 | ||||
Deposit | 21244713 | 5 days ago | IN | 0 ETH | 0.00302314 | ||||
Deposit | 21244002 | 5 days ago | IN | 0 ETH | 0.00303294 | ||||
Authorize And De... | 21243472 | 5 days ago | IN | 0 ETH | 0.00406945 | ||||
Deposit | 21237439 | 6 days ago | IN | 0 ETH | 0.00442962 | ||||
Deposit | 21232935 | 6 days ago | IN | 0 ETH | 0.00198657 | ||||
Deposit | 21232744 | 6 days ago | IN | 0 ETH | 0.00216891 | ||||
Deposit | 21232077 | 6 days ago | IN | 0 ETH | 0.00241395 | ||||
Deposit | 21229447 | 7 days ago | IN | 0 ETH | 0.0038689 | ||||
Deposit | 21215209 | 9 days ago | IN | 0 ETH | 0.00350012 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
SyrupRouter
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-06 */ // SPDX-License-Identifier: BUSL-1.1 pragma solidity =0.8.7 ^0.8.0 ^0.8.7; // contracts/interfaces/ISyrupRouter.sol interface ISyrupRouter { /** * @dev Optional Deposit Data for off-chain processing. * @param owner The receiver of the shares. * @param amount The amount of assets to deposit. * @param depositData Optional deposit data. */ event DepositData(address indexed owner, uint256 amount, bytes32 depositData); /** * @dev The address of the underlying asset used by the ERC4626 Vault. * @return asset The address of the underlying asset. */ function asset() external view returns (address asset); /** * @dev Authorizes and deposits assets into the Vault. * @param bitmap_ The bitmap of the permission. * @param deadline_ The timestamp after which the `authorize` signature is no longer valid. * @param auth_v ECDSA signature v component. * @param auth_r ECDSA signature r component. * @param auth_s ECDSA signature s component. * @param amount_ The amount of assets to deposit. * @param depositData_ Optional deposit data. * @return shares_ The amount of shares minted. */ function authorizeAndDeposit( uint256 bitmap_, uint256 deadline_, uint8 auth_v, bytes32 auth_r, bytes32 auth_s, uint256 amount_, bytes32 depositData_ ) external returns (uint256 shares_); /** * @dev Authorizes and deposits assets into the Vault with a ERC-2612 `permit`. * @param bitmap_ The bitmap of the permission. * @param auth_deadline_ The timestamp after which the `authorize` signature is no longer valid. * @param auth_v ECDSA signature v component of the authorization. * @param auth_r ECDSA signature r component of the authorization. * @param auth_s ECDSA signature s component of the authorization. * @param amount_ The amount of assets to deposit. * @param depositData_ Optional deposit data. * @param permit_deadline The timestamp after which the `permit` signature is no longer valid. * @param permit_v_ ECDSA signature v component of the token permit. * @param permit_r_ ECDSA signature r component of the token permit. * @param permit_s_ ECDSA signature s component of the token permit. * @return shares_ The amount of shares minted. */ function authorizeAndDepositWithPermit( uint256 bitmap_, uint256 auth_deadline_, uint8 auth_v, bytes32 auth_r, bytes32 auth_s, uint256 amount_, bytes32 depositData_, uint256 permit_deadline, uint8 permit_v_, bytes32 permit_r_, bytes32 permit_s_ ) external returns (uint256 shares_); /** * @dev Mints `shares` to sender by depositing `assets` into the Vault. * @param assets The amount of assets to deposit. * @param depositData Optional deposit data. * @return shares The amount of shares minted. */ function deposit(uint256 assets, bytes32 depositData) external returns (uint256 shares); /** * @dev Does a ERC4626 `deposit` into a Maple Pool with a ERC-2612 `permit`. * @param amount The amount of assets to deposit. * @param deadline The timestamp after which the `permit` signature is no longer valid. * @param v ECDSA signature v component. * @param r ECDSA signature r component. * @param s ECDSA signature s component. * @param depositData Optional deposit data. * @return shares The amount of shares minted. */ function depositWithPermit(uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s, bytes32 depositData) external returns (uint256 shares); /** * @dev Returns the nonce for the given owner. * @param owner_ The address of the owner account. * @return nonce_ The nonce for the given owner. */ function nonces(address owner_) external view returns (uint256 nonce_); /** * @dev The address of the ERC4626 Vault. * @return pool The address of the ERC4626 Vault. */ function pool() external view returns (address pool); /** * @dev The address of the Pool Manager. * @return poolManager The address of the Pool Manager. */ function poolManager() external view returns (address poolManager); /** * @dev The address of the Pool Permission Manager. * @return poolPermissionManager The address of the Pool Permission Manager. */ function poolPermissionManager() external view returns (address poolPermissionManager); } // contracts/interfaces/Interfaces.sol interface IBalancerVaultLike { enum SwapKind { GIVEN_IN, GIVEN_OUT } struct FundManagement { address sender; bool fromInternalBalance; address recipient; bool toInternalBalance; } struct SingleSwap { bytes32 poolId; SwapKind kind; address assetIn; address assetOut; uint256 amount; bytes userData; } function swap( SingleSwap calldata singleSwap, FundManagement calldata funds, uint256 limit, uint256 deadline ) external returns (uint256 assetDelta); } interface IERC20Like_0 { function allowance(address owner, address spender) external view returns (uint256 allowance); function balanceOf(address account) external view returns (uint256 balance); function DOMAIN_SEPARATOR() external view returns (bytes32 domainSeparator); function PERMIT_TYPEHASH() external view returns (bytes32 permitTypehash); function approve(address spender, uint256 amount) external returns (bool success); function permit(address owner, address spender, uint amount, uint deadline, uint8 v, bytes32 r, bytes32 s) external; function transfer(address recipient, uint256 amount) external returns (bool success); function transferFrom(address owner, address recipient, uint256 amount) external returns (bool success); } interface IGlobalsLike { function governor() external view returns (address governor); function operationalAdmin() external view returns (address operationalAdmin); } interface IMigratorLike { function migrate(address receiver, uint256 mplAmount) external returns (uint256 syrupAmount); } interface IPoolLike is IERC20Like_0 { function asset() external view returns (address asset); function convertToExitAssets(uint256 shares) external view returns (uint256); function deposit(uint256 assets, address receiver) external returns (uint256 shares); function manager() external view returns (address manager); } interface IPoolManagerLike { function poolPermissionManager() external view returns (address poolPermissionManager); } interface IPoolPermissionManagerLike { function hasPermission(address poolManager, address lender, bytes32 functionId) external view returns (bool hasPermission); function permissionAdmins(address account) external view returns (bool isAdmin); function setLenderBitmaps(address[] calldata lenders, uint256[] calldata bitmaps) external; } interface IPSMLike { function buyGem(address account, uint256 daiAmount) external; function tout() external view returns (uint256 tout); // This is the fee charged for conversion } interface ISDaiLike { function redeem(uint256 shares, address receiver, address owner) external returns (uint256 assets); } interface IRDTLike { function asset() external view returns (address asset); function deposit(uint256 assets, address receiver) external returns (uint256 shares); function redeem(uint256 shares, address receiver, address owner) external returns (uint256 assets); } interface IStakedSyrupLike { function deposit(uint256 assets, address receiver) external returns (uint256 shares); } // modules/erc20-helper/src/interfaces/IERC20Like.sol /// @title Interface of the ERC20 standard as needed by ERC20Helper. interface IERC20Like_1 { function approve(address spender_, uint256 amount_) external returns (bool success_); function transfer(address recipient_, uint256 amount_) external returns (bool success_); function transferFrom(address owner_, address recipient_, uint256 amount_) external returns (bool success_); } // modules/erc20-helper/src/ERC20Helper.sol /** * @title Small Library to standardize erc20 token interactions. */ library ERC20Helper { /**************************************************************************************************************************************/ /*** Internal Functions ***/ /**************************************************************************************************************************************/ function transfer(address token_, address to_, uint256 amount_) internal returns (bool success_) { return _call(token_, abi.encodeWithSelector(IERC20Like_1.transfer.selector, to_, amount_)); } function transferFrom(address token_, address from_, address to_, uint256 amount_) internal returns (bool success_) { return _call(token_, abi.encodeWithSelector(IERC20Like_1.transferFrom.selector, from_, to_, amount_)); } function approve(address token_, address spender_, uint256 amount_) internal returns (bool success_) { // If setting approval to zero fails, return false. if (!_call(token_, abi.encodeWithSelector(IERC20Like_1.approve.selector, spender_, uint256(0)))) return false; // If `amount_` is zero, return true as the previous step already did this. if (amount_ == uint256(0)) return true; // Return the result of setting the approval to `amount_`. return _call(token_, abi.encodeWithSelector(IERC20Like_1.approve.selector, spender_, amount_)); } function _call(address token_, bytes memory data_) private returns (bool success_) { if (token_.code.length == uint256(0)) return false; bytes memory returnData; ( success_, returnData ) = token_.call(data_); return success_ && (returnData.length == uint256(0) || abi.decode(returnData, (bool))); } } // contracts/SyrupRouter.sol /* ███████╗██╗ ██╗██████╗ ██╗ ██╗██████╗ ██████╗ ██████╗ ██╗ ██╗████████╗███████╗██████╗ ██╔════╝╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗ ██╔══██╗██╔═══██╗██║ ██║╚══██╔══╝██╔════╝██╔══██╗ ███████╗ ╚████╔╝ ██████╔╝██║ ██║██████╔╝ ██████╔╝██║ ██║██║ ██║ ██║ █████╗ ██████╔╝ ╚════██║ ╚██╔╝ ██╔══██╗██║ ██║██╔═══╝ ██╔══██╗██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗ ███████║ ██║ ██║ ██║╚██████╔╝██║ ██║ ██║╚██████╔╝╚██████╔╝ ██║ ███████╗██║ ██║ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝ */ contract SyrupRouter is ISyrupRouter { address public immutable override asset; address public immutable override pool; address public immutable override poolManager; address public immutable override poolPermissionManager; mapping(address => uint256) public override nonces; constructor(address pool_) { pool = pool_; // Get the addresses of all the associated contracts. address asset_ = asset = IPoolLike(pool_).asset(); address poolManager_ = poolManager = IPoolLike(pool_).manager(); poolPermissionManager = IPoolManagerLike(poolManager_).poolPermissionManager(); // Perform an infinite approval. require(ERC20Helper.approve(asset_, pool_, type(uint256).max), "SR:C:APPROVE_FAIL"); } /**************************************************************************************************************************************/ /*** External Functions ***/ /**************************************************************************************************************************************/ function authorizeAndDeposit( uint256 bitmap_, uint256 deadline_, uint8 auth_v, bytes32 auth_r, bytes32 auth_s, uint256 amount_, bytes32 depositData_ ) external override returns (uint256 shares_) { _authorize(deadline_, bitmap_, auth_v, auth_r, auth_s); shares_ = _deposit(msg.sender, amount_, depositData_); } function authorizeAndDepositWithPermit( uint256 bitmap_, uint256 auth_deadline_, uint8 auth_v, bytes32 auth_r, bytes32 auth_s, uint256 amount_, bytes32 depositData_, uint256 permit_deadline, uint8 permit_v_, bytes32 permit_r_, bytes32 permit_s_ ) external override returns (uint256 shares_) { _authorize(auth_deadline_, bitmap_, auth_v, auth_r, auth_s); _permit(asset, permit_deadline, amount_, permit_v_, permit_r_, permit_s_); shares_ = _deposit(msg.sender, amount_, depositData_); } function deposit(uint256 amount_, bytes32 depositData_) external override returns (uint256 shares_) { shares_ = _deposit(msg.sender, amount_, depositData_); } function depositWithPermit( uint256 amount_, uint256 deadline_, uint8 v_, bytes32 r_, bytes32 s_, bytes32 depositData_ ) external override returns (uint256 shares_) { _permit(asset, deadline_, amount_, v_, r_, s_); shares_ = _deposit(msg.sender, amount_, depositData_); } /**************************************************************************************************************************************/ /*** Internal Functions ***/ /**************************************************************************************************************************************/ function _authorize(uint256 deadline_, uint256 bitmap_, uint8 v_, bytes32 r_, bytes32 s_) internal { require(deadline_ >= block.timestamp, "SR:A:EXPIRED"); // Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. require( uint256(s_) <= uint256(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) && (v_ == 27 || v_ == 28), "SR:A:MALLEABLE" ); bytes32 digest_ = keccak256(abi.encodePacked( "\x19\x01", block.chainid, // Chain id + address(this) serves as domain separator to avoid replay attacks. address(this), msg.sender, nonces[msg.sender]++, bitmap_, deadline_ )); address recoveredAddress_ = ecrecover(digest_, v_, r_, s_); IPoolPermissionManagerLike ppm_ = IPoolPermissionManagerLike(poolPermissionManager); // Any valid permission admin can authorize the deposit. require(recoveredAddress_ != address(0) && ppm_.permissionAdmins(recoveredAddress_), "SR:A:NOT_PERMISSION_ADMIN"); address[] memory lender = new address[](1); uint256[] memory bitmap = new uint256[](1); lender[0] = msg.sender; bitmap[0] = bitmap_; ppm_.setLenderBitmaps(lender, bitmap); } function _deposit(address owner_, uint256 amount_, bytes32 depositData_) internal returns (uint256 shares_) { // Check the owner has permission to deposit into the pool. require( IPoolPermissionManagerLike(poolPermissionManager).hasPermission(poolManager, owner_, "P:deposit"), "SR:D:NOT_AUTHORIZED" ); // Pull assets from the owner to the router. require(ERC20Helper.transferFrom(asset, owner_, address(this), amount_), "SR:D:TRANSFER_FROM_FAIL"); // Deposit assets into the pool and receive the shares personally. address pool_ = pool; shares_ = IPoolLike(pool_).deposit(amount_, address(this)); // Route shares back to the caller. require(ERC20Helper.transfer(pool_, owner_, shares_), "SR:D:TRANSFER_FAIL"); emit DepositData(owner_, amount_, depositData_); } function _permit(address asset_, uint256 deadline_, uint256 amount_, uint8 v_, bytes32 r_, bytes32 s_) internal { uint256 allowance_ = IERC20Like_0(asset_).allowance(msg.sender, address(this)); if (allowance_ < amount_) { IERC20Like_0(asset_).permit(msg.sender, address(this), amount_, deadline_, v_, r_, s_); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"pool_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"depositData","type":"bytes32"}],"name":"DepositData","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bitmap_","type":"uint256"},{"internalType":"uint256","name":"deadline_","type":"uint256"},{"internalType":"uint8","name":"auth_v","type":"uint8"},{"internalType":"bytes32","name":"auth_r","type":"bytes32"},{"internalType":"bytes32","name":"auth_s","type":"bytes32"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"bytes32","name":"depositData_","type":"bytes32"}],"name":"authorizeAndDeposit","outputs":[{"internalType":"uint256","name":"shares_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bitmap_","type":"uint256"},{"internalType":"uint256","name":"auth_deadline_","type":"uint256"},{"internalType":"uint8","name":"auth_v","type":"uint8"},{"internalType":"bytes32","name":"auth_r","type":"bytes32"},{"internalType":"bytes32","name":"auth_s","type":"bytes32"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"bytes32","name":"depositData_","type":"bytes32"},{"internalType":"uint256","name":"permit_deadline","type":"uint256"},{"internalType":"uint8","name":"permit_v_","type":"uint8"},{"internalType":"bytes32","name":"permit_r_","type":"bytes32"},{"internalType":"bytes32","name":"permit_s_","type":"bytes32"}],"name":"authorizeAndDepositWithPermit","outputs":[{"internalType":"uint256","name":"shares_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"bytes32","name":"depositData_","type":"bytes32"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"shares_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"uint256","name":"deadline_","type":"uint256"},{"internalType":"uint8","name":"v_","type":"uint8"},{"internalType":"bytes32","name":"r_","type":"bytes32"},{"internalType":"bytes32","name":"s_","type":"bytes32"},{"internalType":"bytes32","name":"depositData_","type":"bytes32"}],"name":"depositWithPermit","outputs":[{"internalType":"uint256","name":"shares_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolPermissionManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6101006040523480156200001257600080fd5b5060405162001400380380620014008339810160408190526200003591620003e9565b806001600160a01b031660a0816001600160a01b031660601b815250506000816001600160a01b03166338d52e0f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200008e57600080fd5b505afa158015620000a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000c99190620003e9565b6001600160a01b03166080816001600160a01b031660601b81525090506000826001600160a01b031663481c6a756040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012257600080fd5b505afa15801562000137573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015d9190620003e9565b6001600160a01b031660c0816001600160a01b031660601b8152509050806001600160a01b031663e15e990a6040518163ffffffff1660e01b815260040160206040518083038186803b158015620001b457600080fd5b505afa158015620001c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ef9190620003e9565b6001600160a01b031660e0816001600160a01b031660601b815250506200022582846000196200027360201b620002a31760201c565b6200026a5760405162461bcd60e51b815260206004820152601160248201527014d48e90ce9054141493d59157d1905253607a1b604482015260640160405180910390fd5b50505062000476565b6040516001600160a01b038316602482015260006044820181905290620002dc90859063095ea7b360e01b906064015b60408051808303601f190181529190526020810180516001600160e01b0319939093166001600160e01b03938416179052906200033516565b620002ea575060006200032e565b81620002f9575060016200032e565b6040516001600160a01b0384166024820152604481018390526200032b90859063095ea7b360e01b90606401620002a3565b90505b9392505050565b60006001600160a01b0383163b6200035057506000620003e3565b6060836001600160a01b0316836040516200036c919062000438565b6000604051808303816000865af19150503d8060008114620003ab576040519150601f19603f3d011682016040523d82523d6000602084013e620003b0565b606091505b509092509050818015620003df575080511580620003df575080806020019051810190620003df919062000414565b9150505b92915050565b600060208284031215620003fc57600080fd5b81516001600160a01b03811681146200032e57600080fd5b6000602082840312156200042757600080fd5b815180151581146200032e57600080fd5b6000825160005b818110156200045b57602081860181015185830152016200043f565b818111156200046b576000828501525b509190910192915050565b60805160601c60a05160601c60c05160601c60e05160601c610f15620004eb600039600081816101a9015281816104ce01526108ef0152600081816101820152610489015260008181609d015261062501526000818160e1015281816101d20152818161022501526105960152610f156000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063a6d061fb11610066578063a6d061fb14610144578063c9630cb014610157578063d5db8c671461016a578063dc4c90d31461017d578063e15e990a146101a457600080fd5b806316f0115b1461009857806338d52e0f146100dc5780636807c8dc146101035780637ecebe0014610124575b600080fd5b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b610116610111366004610ca9565b6101cb565b6040519081526020016100d3565b610116610132366004610c23565b60006020819052908152604090205481565b610116610152366004610d54565b610211565b610116610165366004610c87565b610269565b610116610178366004610cfa565b61027d565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b6100bf7f000000000000000000000000000000000000000000000000000000000000000081565b60006101fb7f0000000000000000000000000000000000000000000000000000000000000000878988888861035a565b610206338884610472565b979650505050505050565b60006102208b8d8c8c8c610745565b61024e7f0000000000000000000000000000000000000000000000000000000000000000868987878761035a565b610259338888610472565b9c9b505050505050505050505050565b6000610276338484610472565b9392505050565b600061028c8789888888610745565b610297338484610472565b98975050505050505050565b6040516001600160a01b03831660248201526000604482018190529061030990859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610aec565b61031557506000610276565b8161032257506001610276565b6040516001600160a01b03841660248201526044810183905261035290859063095ea7b360e01b906064016102d2565b949350505050565b604051636eb1769f60e11b81523360048201523060248201526000906001600160a01b0388169063dd62ed3e9060440160206040518083038186803b1580156103a257600080fd5b505afa1580156103b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103da9190610c6e565b9050848110156104695760405163d505accf60e01b8152336004820152306024820152604481018690526064810187905260ff8516608482015260a4810184905260c481018390526001600160a01b0388169063d505accf9060e401600060405180830381600087803b15801561045057600080fd5b505af1158015610464573d6000803e3d6000fd5b505050505b50505050505050565b604051630dace25b60e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152848116602483015268140e99195c1bdcda5d60ba1b60448301526000917f000000000000000000000000000000000000000000000000000000000000000090911690636d6712d89060640160206040518083038186803b15801561051257600080fd5b505afa158015610526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054a9190610c4c565b6105915760405162461bcd60e51b815260206004820152601360248201527214d48e910e9393d517d055551213d492569151606a1b60448201526064015b60405180910390fd5b6105bd7f0000000000000000000000000000000000000000000000000000000000000000853086610b96565b6106095760405162461bcd60e51b815260206004820152601760248201527f53523a443a5452414e534645525f46524f4d5f4641494c0000000000000000006044820152606401610588565b604051636e553f6560e01b8152600481018490523060248201527f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b03821690636e553f6590604401602060405180830381600087803b15801561067357600080fd5b505af1158015610687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ab9190610c6e565b91506106b8818684610bda565b6106f95760405162461bcd60e51b815260206004820152601260248201527114d48e910e9514905394d1915497d190525360721b6044820152606401610588565b60408051858152602081018590526001600160a01b038716917fec286cce32dfa9d8e469ef4d4bb77854e3225bc050e97e66bb30fe1e4c2819cb910160405180910390a2509392505050565b428510156107845760405162461bcd60e51b815260206004820152600c60248201526b14d48e904e9156141254915160a21b6044820152606401610588565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a081118015906107c457508260ff16601b14806107c457508260ff16601c145b6108015760405162461bcd60e51b815260206004820152600e60248201526d53523a413a4d414c4c4541424c4560901b6044820152606401610588565b33600081815260208190526040812080549192469230928561082283610ea0565b9091555060405161190160f01b602082015260228101949094526bffffffffffffffffffffffff19606093841b811660428601529190921b166056830152606a820152608a810186905260aa810187905260ca0160408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156108e1573d6000803e3d6000fd5b5050604051601f19015191507f000000000000000000000000000000000000000000000000000000000000000090506001600160a01b0382161580159061099c57506040516329206d6f60e01b81526001600160a01b0383811660048301528216906329206d6f9060240160206040518083038186803b15801561096457600080fd5b505afa158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c9190610c4c565b6109e85760405162461bcd60e51b815260206004820152601960248201527f53523a413a4e4f545f5045524d495353494f4e5f41444d494e000000000000006044820152606401610588565b6040805160018082528183019092526000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090503382600081518110610a4157610a41610ec9565b60200260200101906001600160a01b031690816001600160a01b0316815250508881600081518110610a7557610a75610ec9565b6020908102919091010152604051638551366360e01b81526001600160a01b03841690638551366390610aae9085908590600401610e1c565b600060405180830381600087803b158015610ac857600080fd5b505af1158015610adc573d6000803e3d6000fd5b5050505050505050505050505050565b60006001600160a01b0383163b610b0557506000610b90565b6060836001600160a01b031683604051610b1f9190610de1565b6000604051808303816000865af19150503d8060008114610b5c576040519150601f19603f3d011682016040523d82523d6000602084013e610b61565b606091505b509092509050818015610b8c575080511580610b8c575080806020019051810190610b8c9190610c4c565b9150505b92915050565b6040516001600160a01b0380851660248301528316604482015260648101829052600090610bd19086906323b872dd60e01b906084016102d2565b95945050505050565b6040516001600160a01b03831660248201526044810182905260009061035290859063a9059cbb60e01b906064016102d2565b803560ff81168114610c1e57600080fd5b919050565b600060208284031215610c3557600080fd5b81356001600160a01b038116811461027657600080fd5b600060208284031215610c5e57600080fd5b8151801515811461027657600080fd5b600060208284031215610c8057600080fd5b5051919050565b60008060408385031215610c9a57600080fd5b50508035926020909101359150565b60008060008060008060c08789031215610cc257600080fd5b8635955060208701359450610cd960408801610c0d565b9350606087013592506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215610d1557600080fd5b8735965060208801359550610d2c60408901610c0d565b969995985095966060810135965060808101359560a0820135955060c0909101359350915050565b60008060008060008060008060008060006101608c8e031215610d7657600080fd5b8b359a5060208c01359950610d8d60408d01610c0d565b985060608c0135975060808c0135965060a08c0135955060c08c0135945060e08c01359350610dbf6101008d01610c0d565b92506101208c013591506101408c013590509295989b509295989b9093969950565b6000825160005b81811015610e025760208186018101518583015201610de8565b81811115610e11576000828501525b509190910192915050565b604080825283519082018190526000906020906060840190828701845b82811015610e5e5781516001600160a01b031684529284019290840190600101610e39565b5050508381038285015284518082528583019183019060005b81811015610e9357835183529284019291840191600101610e77565b5090979650505050505050565b6000600019821415610ec257634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220129827db56dc4d2689fc074a9f29fa1fd10e29a4c516fd1f001f876e1d78312a64736f6c63430008070033000000000000000000000000356b8d89c1e1239cbbb9de4815c39a1474d5ba7d
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063a6d061fb11610066578063a6d061fb14610144578063c9630cb014610157578063d5db8c671461016a578063dc4c90d31461017d578063e15e990a146101a457600080fd5b806316f0115b1461009857806338d52e0f146100dc5780636807c8dc146101035780637ecebe0014610124575b600080fd5b6100bf7f000000000000000000000000356b8d89c1e1239cbbb9de4815c39a1474d5ba7d81565b6040516001600160a01b0390911681526020015b60405180910390f35b6100bf7f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec781565b610116610111366004610ca9565b6101cb565b6040519081526020016100d3565b610116610132366004610c23565b60006020819052908152604090205481565b610116610152366004610d54565b610211565b610116610165366004610c87565b610269565b610116610178366004610cfa565b61027d565b6100bf7f0000000000000000000000000cda32e08b48bfddbc7ee96b44b09cf286f9e21a81565b6100bf7f000000000000000000000000be10adce8b6e3e02db384e7fada5395dd113d8b381565b60006101fb7f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7878988888861035a565b610206338884610472565b979650505050505050565b60006102208b8d8c8c8c610745565b61024e7f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7868987878761035a565b610259338888610472565b9c9b505050505050505050505050565b6000610276338484610472565b9392505050565b600061028c8789888888610745565b610297338484610472565b98975050505050505050565b6040516001600160a01b03831660248201526000604482018190529061030990859063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610aec565b61031557506000610276565b8161032257506001610276565b6040516001600160a01b03841660248201526044810183905261035290859063095ea7b360e01b906064016102d2565b949350505050565b604051636eb1769f60e11b81523360048201523060248201526000906001600160a01b0388169063dd62ed3e9060440160206040518083038186803b1580156103a257600080fd5b505afa1580156103b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103da9190610c6e565b9050848110156104695760405163d505accf60e01b8152336004820152306024820152604481018690526064810187905260ff8516608482015260a4810184905260c481018390526001600160a01b0388169063d505accf9060e401600060405180830381600087803b15801561045057600080fd5b505af1158015610464573d6000803e3d6000fd5b505050505b50505050505050565b604051630dace25b60e31b81526001600160a01b037f0000000000000000000000000cda32e08b48bfddbc7ee96b44b09cf286f9e21a81166004830152848116602483015268140e99195c1bdcda5d60ba1b60448301526000917f000000000000000000000000be10adce8b6e3e02db384e7fada5395dd113d8b390911690636d6712d89060640160206040518083038186803b15801561051257600080fd5b505afa158015610526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054a9190610c4c565b6105915760405162461bcd60e51b815260206004820152601360248201527214d48e910e9393d517d055551213d492569151606a1b60448201526064015b60405180910390fd5b6105bd7f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7853086610b96565b6106095760405162461bcd60e51b815260206004820152601760248201527f53523a443a5452414e534645525f46524f4d5f4641494c0000000000000000006044820152606401610588565b604051636e553f6560e01b8152600481018490523060248201527f000000000000000000000000356b8d89c1e1239cbbb9de4815c39a1474d5ba7d906001600160a01b03821690636e553f6590604401602060405180830381600087803b15801561067357600080fd5b505af1158015610687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ab9190610c6e565b91506106b8818684610bda565b6106f95760405162461bcd60e51b815260206004820152601260248201527114d48e910e9514905394d1915497d190525360721b6044820152606401610588565b60408051858152602081018590526001600160a01b038716917fec286cce32dfa9d8e469ef4d4bb77854e3225bc050e97e66bb30fe1e4c2819cb910160405180910390a2509392505050565b428510156107845760405162461bcd60e51b815260206004820152600c60248201526b14d48e904e9156141254915160a21b6044820152606401610588565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a081118015906107c457508260ff16601b14806107c457508260ff16601c145b6108015760405162461bcd60e51b815260206004820152600e60248201526d53523a413a4d414c4c4541424c4560901b6044820152606401610588565b33600081815260208190526040812080549192469230928561082283610ea0565b9091555060405161190160f01b602082015260228101949094526bffffffffffffffffffffffff19606093841b811660428601529190921b166056830152606a820152608a810186905260aa810187905260ca0160408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa1580156108e1573d6000803e3d6000fd5b5050604051601f19015191507f000000000000000000000000be10adce8b6e3e02db384e7fada5395dd113d8b390506001600160a01b0382161580159061099c57506040516329206d6f60e01b81526001600160a01b0383811660048301528216906329206d6f9060240160206040518083038186803b15801561096457600080fd5b505afa158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c9190610c4c565b6109e85760405162461bcd60e51b815260206004820152601960248201527f53523a413a4e4f545f5045524d495353494f4e5f41444d494e000000000000006044820152606401610588565b6040805160018082528183019092526000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090503382600081518110610a4157610a41610ec9565b60200260200101906001600160a01b031690816001600160a01b0316815250508881600081518110610a7557610a75610ec9565b6020908102919091010152604051638551366360e01b81526001600160a01b03841690638551366390610aae9085908590600401610e1c565b600060405180830381600087803b158015610ac857600080fd5b505af1158015610adc573d6000803e3d6000fd5b5050505050505050505050505050565b60006001600160a01b0383163b610b0557506000610b90565b6060836001600160a01b031683604051610b1f9190610de1565b6000604051808303816000865af19150503d8060008114610b5c576040519150601f19603f3d011682016040523d82523d6000602084013e610b61565b606091505b509092509050818015610b8c575080511580610b8c575080806020019051810190610b8c9190610c4c565b9150505b92915050565b6040516001600160a01b0380851660248301528316604482015260648101829052600090610bd19086906323b872dd60e01b906084016102d2565b95945050505050565b6040516001600160a01b03831660248201526044810182905260009061035290859063a9059cbb60e01b906064016102d2565b803560ff81168114610c1e57600080fd5b919050565b600060208284031215610c3557600080fd5b81356001600160a01b038116811461027657600080fd5b600060208284031215610c5e57600080fd5b8151801515811461027657600080fd5b600060208284031215610c8057600080fd5b5051919050565b60008060408385031215610c9a57600080fd5b50508035926020909101359150565b60008060008060008060c08789031215610cc257600080fd5b8635955060208701359450610cd960408801610c0d565b9350606087013592506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215610d1557600080fd5b8735965060208801359550610d2c60408901610c0d565b969995985095966060810135965060808101359560a0820135955060c0909101359350915050565b60008060008060008060008060008060006101608c8e031215610d7657600080fd5b8b359a5060208c01359950610d8d60408d01610c0d565b985060608c0135975060808c0135965060a08c0135955060c08c0135945060e08c01359350610dbf6101008d01610c0d565b92506101208c013591506101408c013590509295989b509295989b9093969950565b6000825160005b81811015610e025760208186018101518583015201610de8565b81811115610e11576000828501525b509190910192915050565b604080825283519082018190526000906020906060840190828701845b82811015610e5e5781516001600160a01b031684529284019290840190600101610e39565b5050508381038285015284518082528583019183019060005b81811015610e9357835183529284019291840191600101610e77565b5090979650505050505050565b6000600019821415610ec257634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220129827db56dc4d2689fc074a9f29fa1fd10e29a4c516fd1f001f876e1d78312a64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000356b8d89c1e1239cbbb9de4815c39a1474d5ba7d
-----Decoded View---------------
Arg [0] : pool_ (address): 0x356B8d89c1e1239Cbbb9dE4815c39A1474d5BA7D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000356b8d89c1e1239cbbb9de4815c39a1474d5ba7d
Deployed Bytecode Sourcemap
12413:6096:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12505:38;;;;;;;;-1:-1:-1;;;;;4539:32:1;;;4521:51;;4509:2;4494:18;12505:38:0;;;;;;;;12459:39;;;;;14903:371;;;;;;:::i;:::-;;:::i;:::-;;;10491:25:1;;;10479:2;10464:18;14903:371:0;10345:177:1;12666:50:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;14074:641;;;;;;:::i;:::-;;:::i;14723:172::-;;;;;;:::i;:::-;;:::i;13647:419::-;;;;;;:::i;:::-;;:::i;12550:45::-;;;;;12602:55;;;;;14903:371;15121:15;15154:46;15162:5;15169:9;15180:7;15189:2;15193;15197;15154:7;:46::i;:::-;15223:43;15232:10;15244:7;15253:12;15223:8;:43::i;:::-;15213:53;14903:371;-1:-1:-1;;;;;;;14903:371:0:o;14074:641::-;14465:15;14498:59;14509:14;14525:7;14534:6;14542;14550;14498:10;:59::i;:::-;14568:73;14576:5;14583:15;14600:7;14609:9;14620;14631;14568:7;:73::i;:::-;14664:43;14673:10;14685:7;14694:12;14664:8;:43::i;:::-;14654:53;14074:641;-1:-1:-1;;;;;;;;;;;;14074:641:0:o;14723:172::-;14806:15;14844:43;14853:10;14865:7;14874:12;14844:8;:43::i;:::-;14834:53;14723:172;-1:-1:-1;;;14723:172:0:o;13647:419::-;13905:15;13938:54;13949:9;13960:7;13969:6;13977;13985;13938:10;:54::i;:::-;14015:43;14024:10;14036:7;14045:12;14015:8;:43::i;:::-;14005:53;13647:419;-1:-1:-1;;;;;;;;13647:419:0:o;9927:601::-;10119:75;;-1:-1:-1;;;;;6587:32:1;;10119:75:0;;;6569:51:1;10013:13:0;6636:18:1;;;6629:34;;;10013:13:0;10105:90;;10111:6;;-1:-1:-1;;;10142:29:0;6542:18:1;;10119:75:0;;;;-1:-1:-1;;10119:75:0;;;;;;;;;;;;;;-1:-1:-1;;;;;10119:75:0;-1:-1:-1;;;;;;10119:75:0;;;;;;;;;;10105:5;:90::i;:::-;10100:109;;-1:-1:-1;10204:5:0;10197:12;;10100:109;10311:21;10307:38;;-1:-1:-1;10341:4:0;10334:11;;10307:38;10447:72;;-1:-1:-1;;;;;6587:32:1;;10447:72:0;;;6569:51:1;6636:18;;;6629:34;;;10433:87:0;;10439:6;;-1:-1:-1;;;10470:29:0;6542:18:1;;10447:72:0;6395:274:1;10433:87:0;10426:94;9927:601;-1:-1:-1;;;;9927:601:0:o;18144:360::-;18288:57;;-1:-1:-1;;;18288:57:0;;18319:10;18288:57;;;4795:34:1;18339:4:0;4845:18:1;;;4838:43;18267:18:0;;-1:-1:-1;;;;;18288:30:0;;;;;4730:18:1;;18288:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18267:78;;18375:7;18362:10;:20;18358:139;;;18399:86;;-1:-1:-1;;;18399:86:0;;18427:10;18399:86;;;6069:34:1;18447:4:0;6119:18:1;;;6112:43;6171:18;;;6164:34;;;6214:18;;;6207:34;;;6290:4;6278:17;;6257:19;;;6250:46;6312:19;;;6305:35;;;6356:19;;;6349:35;;;-1:-1:-1;;;;;18399:27:0;;;;;6003:19:1;;18399:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18358:139;18256:248;18144:360;;;;;;:::o;17235:901::-;17445:97;;-1:-1:-1;;;17445:97:0;;-1:-1:-1;;;;;17509:11:0;5213:15:1;;17445:97:0;;;5195:34:1;5265:15;;;5245:18;;;5238:43;-1:-1:-1;;;5297:18:1;;;5290:39;-1:-1:-1;;17472:21:0;17445:63;;;;;;5130:18:1;;17445:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17423:166;;;;-1:-1:-1;;;17423:166:0;;10199:2:1;17423:166:0;;;10181:21:1;10238:2;10218:18;;;10211:30;-1:-1:-1;;;10257:18:1;;;10250:49;10316:18;;17423:166:0;;;;;;;;;17664:63;17689:5;17696:6;17712:4;17719:7;17664:24;:63::i;:::-;17656:99;;;;-1:-1:-1;;;17656:99:0;;8462:2:1;17656:99:0;;;8444:21:1;8501:2;8481:18;;;8474:30;8540:25;8520:18;;;8513:53;8583:18;;17656:99:0;8260:347:1;17656:99:0;17887:48;;-1:-1:-1;;;17887:48:0;;;;;10701:25:1;;;17929:4:0;10742:18:1;;;10735:60;17860:4:0;;-1:-1:-1;;;;;17887:24:0;;;;;10674:18:1;;17887:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17877:58;;18001:44;18022:5;18029:6;18037:7;18001:20;:44::i;:::-;17993:75;;;;-1:-1:-1;;;17993:75:0;;9852:2:1;17993:75:0;;;9834:21:1;9891:2;9871:18;;;9864:30;-1:-1:-1;;;9910:18:1;;;9903:48;9968:18;;17993:75:0;9650:342:1;17993:75:0;18086:42;;;10980:25:1;;;11036:2;11021:18;;11014:34;;;-1:-1:-1;;;;;18086:42:0;;;;;10953:18:1;18086:42:0;;;;;;;17343:793;17235:901;;;;;:::o;15710:1517::-;15841:15;15828:9;:28;;15820:53;;;;-1:-1:-1;;;15820:53:0;;8814:2:1;15820:53:0;;;8796:21:1;8853:2;8833:18;;;8826:30;-1:-1:-1;;;8872:18:1;;;8865:42;8924:18;;15820:53:0;8612:336:1;15820:53:0;16152:66;16129:90;;;;;:129;;;16237:2;:8;;16243:2;16237:8;:20;;;;16249:2;:8;;16255:2;16249:8;16237:20;16107:193;;;;-1:-1:-1;;;16107:193:0;;9509:2:1;16107:193:0;;;9491:21:1;9548:2;9528:18;;;9521:30;-1:-1:-1;;;9567:18:1;;;9560:44;9621:18;;16107:193:0;9307:338:1;16107:193:0;16534:10;16313:15;16559:18;;;;;;;;;;:20;;16313:15;;16397:13;;16514:4;;16313:15;16559:20;;;:::i;:::-;;;;-1:-1:-1;16341:295:0;;-1:-1:-1;;;16341:295:0;;;3999:27:1;4042:11;;;4035:27;;;;-1:-1:-1;;4150:2:1;4146:15;;;4142:24;;4128:12;;;4121:46;4201:15;;;;4197:24;4183:12;;;4176:46;4238:12;;;4231:28;4275:13;;;4268:29;;;4313:13;;;4306:29;;;4351:13;;16341:295:0;;;-1:-1:-1;;16341:295:0;;;;;;;;;16331:306;;16341:295;16331:306;;;;16650:25;16678:30;;;;;;;;;8084:25:1;;;8157:4;8145:17;;8125:18;;;8118:45;;;;8179:18;;;8172:34;;;8222:18;;;8215:34;;;16331:306:0;;-1:-1:-1;16650:25:0;16678:30;;8056:19:1;;16678:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16678:30:0;;-1:-1:-1;;16678:30:0;;;-1:-1:-1;16782:21:0;;-1:-1:-1;;;;;;16891:31:0;;;;;;:75;;-1:-1:-1;16926:40:0;;-1:-1:-1;;;16926:40:0;;-1:-1:-1;;;;;4539:32:1;;;16926:40:0;;;4521:51:1;16926:21:0;;;;;4494:18:1;;16926:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16883:113;;;;-1:-1:-1;;;16883:113:0;;9155:2:1;16883:113:0;;;9137:21:1;9194:2;9174:18;;;9167:30;9233:27;9213:18;;;9206:55;9278:18;;16883:113:0;8953:349:1;16883:113:0;17035:16;;;17049:1;17035:16;;;;;;;;;17009:23;;17035:16;;;;;;;;;-1:-1:-1;;17088:16:0;;;17102:1;17088:16;;;;;;;;;17009:42;;-1:-1:-1;17062:23:0;;17088:16;-1:-1:-1;17088:16:0;;;;;;;;;;;-1:-1:-1;17088:16:0;17062:42;;17129:10;17117:6;17124:1;17117:9;;;;;;;;:::i;:::-;;;;;;:22;-1:-1:-1;;;;;17117:22:0;;;-1:-1:-1;;;;;17117:22:0;;;;;17162:7;17150:6;17157:1;17150:9;;;;;;;;:::i;:::-;;;;;;;;;;:19;17182:37;;-1:-1:-1;;;17182:37:0;;-1:-1:-1;;;;;17182:21:0;;;;;:37;;17204:6;;17212;;17182:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15809:1418;;;;;15710:1517;;;;;:::o;10536:343::-;10604:13;-1:-1:-1;;;;;10634:18:0;;;10630:50;;-1:-1:-1;10675:5:0;10668:12;;10630:50;10693:23;10754:6;-1:-1:-1;;;;;10754:11:0;10766:5;10754:18;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10727:45:0;;-1:-1:-1;10727:45:0;-1:-1:-1;10727:45:0;10792:79;;;;-1:-1:-1;10805:17:0;;:31;;:65;;;10851:10;10840:30;;;;;;;;;;;;:::i;:::-;10785:86;;;10536:343;;;;;:::o;9683:236::-;9831:79;;-1:-1:-1;;;;;5598:15:1;;;9831:79:0;;;5580:34:1;5650:15;;5630:18;;;5623:43;5682:18;;;5675:34;;;9784:13:0;;9817:94;;9823:6;;-1:-1:-1;;;9854:34:0;5515:18:1;;9831:79:0;5340:375:1;9817:94:0;9810:101;9683:236;-1:-1:-1;;;;;9683:236:0:o;9469:206::-;9598:68;;-1:-1:-1;;;;;6587:32:1;;9598:68:0;;;6569:51:1;6636:18;;;6629:34;;;9551:13:0;;9584:83;;9590:6;;-1:-1:-1;;;9621:30:0;6542:18:1;;9598:68:0;6395:274:1;14:156;80:20;;140:4;129:16;;119:27;;109:55;;160:1;157;150:12;109:55;14:156;;;:::o;175:286::-;234:6;287:2;275:9;266:7;262:23;258:32;255:52;;;303:1;300;293:12;255:52;329:23;;-1:-1:-1;;;;;381:31:1;;371:42;;361:70;;427:1;424;417:12;466:277;533:6;586:2;574:9;565:7;561:23;557:32;554:52;;;602:1;599;592:12;554:52;634:9;628:16;687:5;680:13;673:21;666:5;663:32;653:60;;709:1;706;699:12;748:184;818:6;871:2;859:9;850:7;846:23;842:32;839:52;;;887:1;884;877:12;839:52;-1:-1:-1;910:16:1;;748:184;-1:-1:-1;748:184:1:o;937:248::-;1005:6;1013;1066:2;1054:9;1045:7;1041:23;1037:32;1034:52;;;1082:1;1079;1072:12;1034:52;-1:-1:-1;;1105:23:1;;;1175:2;1160:18;;;1147:32;;-1:-1:-1;937:248:1:o;1190:525::-;1292:6;1300;1308;1316;1324;1332;1385:3;1373:9;1364:7;1360:23;1356:33;1353:53;;;1402:1;1399;1392:12;1353:53;1438:9;1425:23;1415:33;;1495:2;1484:9;1480:18;1467:32;1457:42;;1518:36;1550:2;1539:9;1535:18;1518:36;:::i;:::-;1508:46;;1601:2;1590:9;1586:18;1573:32;1563:42;;1652:3;1641:9;1637:19;1624:33;1614:43;;1704:3;1693:9;1689:19;1676:33;1666:43;;1190:525;;;;;;;;:::o;1720:594::-;1831:6;1839;1847;1855;1863;1871;1879;1932:3;1920:9;1911:7;1907:23;1903:33;1900:53;;;1949:1;1946;1939:12;1900:53;1985:9;1972:23;1962:33;;2042:2;2031:9;2027:18;2014:32;2004:42;;2065:36;2097:2;2086:9;2082:18;2065:36;:::i;:::-;1720:594;;;;-1:-1:-1;2055:46:1;;2148:2;2133:18;;2120:32;;-1:-1:-1;2199:3:1;2184:19;;2171:33;;2251:3;2236:19;;2223:33;;-1:-1:-1;2303:3:1;2288:19;;;2275:33;;-1:-1:-1;1720:594:1;-1:-1:-1;;1720:594:1:o;2319:874::-;2464:6;2472;2480;2488;2496;2504;2512;2520;2528;2536;2544:7;2598:3;2586:9;2577:7;2573:23;2569:33;2566:53;;;2615:1;2612;2605:12;2566:53;2651:9;2638:23;2628:33;;2708:2;2697:9;2693:18;2680:32;2670:42;;2731:36;2763:2;2752:9;2748:18;2731:36;:::i;:::-;2721:46;;2814:2;2803:9;2799:18;2786:32;2776:42;;2865:3;2854:9;2850:19;2837:33;2827:43;;2917:3;2906:9;2902:19;2889:33;2879:43;;2969:3;2958:9;2954:19;2941:33;2931:43;;3021:3;3010:9;3006:19;2993:33;2983:43;;3045:37;3077:3;3066:9;3062:19;3045:37;:::i;:::-;3035:47;;3129:3;3118:9;3114:19;3101:33;3091:43;;3182:3;3171:9;3167:19;3154:33;3143:44;;2319:874;;;;;;;;;;;;;;:::o;3198:426::-;3327:3;3365:6;3359:13;3390:1;3400:129;3414:6;3411:1;3408:13;3400:129;;;3512:4;3496:14;;;3492:25;;3486:32;3473:11;;;3466:53;3429:12;3400:129;;;3547:6;3544:1;3541:13;3538:48;;;3582:1;3573:6;3568:3;3564:16;3557:27;3538:48;-1:-1:-1;3602:16:1;;;;;3198:426;-1:-1:-1;;3198:426:1:o;6674:1178::-;6942:2;6954:21;;;7024:13;;6927:18;;;7046:22;;;6894:4;;7121;;7099:2;7084:18;;;7148:15;;;6894:4;7191:195;7205:6;7202:1;7199:13;7191:195;;;7270:13;;-1:-1:-1;;;;;7266:39:1;7254:52;;7326:12;;;;7361:15;;;;7302:1;7220:9;7191:195;;;-1:-1:-1;;;7422:19:1;;;7402:18;;;7395:47;7492:13;;7514:21;;;7590:15;;;;7553:12;;;7625:1;7635:189;7651:8;7646:3;7643:17;7635:189;;;7720:15;;7706:30;;7797:17;;;;7758:14;;;;7679:1;7670:11;7635:189;;;-1:-1:-1;7841:5:1;;6674:1178;-1:-1:-1;;;;;;;6674:1178:1:o;11059:232::-;11098:3;-1:-1:-1;;11119:17:1;;11116:140;;;11178:10;11173:3;11169:20;11166:1;11159:31;11213:4;11210:1;11203:15;11241:4;11238:1;11231:15;11116:140;-1:-1:-1;11283:1:1;11272:13;;11059:232::o;11296:127::-;11357:10;11352:3;11348:20;11345:1;11338:31;11388:4;11385:1;11378:15;11412:4;11409:1;11402:15
Swarm Source
ipfs://129827db56dc4d2689fc074a9f29fa1fd10e29a4c516fd1f001f876e1d78312a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.