Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x94de1e8cd0bfbcd3e6ac971354ea8d9741fd62c5b6e99c40e0edf74945b38c8c | Migrate And Stak... | (pending) | 2 days ago | IN | 0 ETH | (Pending) | |||
Migrate And Stak... | 21419324 | 2 hrs ago | IN | 0 ETH | 0.00290412 | ||||
Migrate And Stak... | 21419021 | 3 hrs ago | IN | 0 ETH | 0.00197249 | ||||
Migrate And Stak... | 21418992 | 3 hrs ago | IN | 0 ETH | 0.00215401 | ||||
Migrate And Stak... | 21418857 | 3 hrs ago | IN | 0 ETH | 0.00240233 | ||||
Migrate And Stak... | 21418208 | 6 hrs ago | IN | 0 ETH | 0.0028237 | ||||
Migrate And Stak... | 21418079 | 6 hrs ago | IN | 0 ETH | 0.0026505 | ||||
Migrate And Stak... | 21418047 | 6 hrs ago | IN | 0 ETH | 0.00355047 | ||||
Migrate And Stak... | 21417288 | 9 hrs ago | IN | 0 ETH | 0.0043676 | ||||
Migrate And Stak... | 21417152 | 9 hrs ago | IN | 0 ETH | 0.00655091 | ||||
Migrate And Stak... | 21416068 | 13 hrs ago | IN | 0 ETH | 0.00377073 | ||||
Migrate And Stak... | 21415428 | 15 hrs ago | IN | 0 ETH | 0.00282571 | ||||
Migrate And Stak... | 21415327 | 15 hrs ago | IN | 0 ETH | 0.00278732 | ||||
Migrate And Stak... | 21414680 | 17 hrs ago | IN | 0 ETH | 0.00336311 | ||||
Migrate And Stak... | 21414541 | 18 hrs ago | IN | 0 ETH | 0.00267181 | ||||
Migrate And Stak... | 21414351 | 18 hrs ago | IN | 0 ETH | 0.0023379 | ||||
Migrate And Stak... | 21413569 | 21 hrs ago | IN | 0 ETH | 0.00167614 | ||||
Migrate And Stak... | 21413549 | 21 hrs ago | IN | 0 ETH | 0.00167287 | ||||
Migrate And Stak... | 21413521 | 21 hrs ago | IN | 0 ETH | 0.00182098 | ||||
Migrate And Stak... | 21413333 | 22 hrs ago | IN | 0 ETH | 0.00160281 | ||||
Migrate And Stak... | 21412553 | 25 hrs ago | IN | 0 ETH | 0.0021681 | ||||
Migrate And Stak... | 21411940 | 27 hrs ago | IN | 0 ETH | 0.00288315 | ||||
Migrate And Stak... | 21411175 | 29 hrs ago | IN | 0 ETH | 0.00286585 | ||||
Migrate And Stak... | 21410658 | 31 hrs ago | IN | 0 ETH | 0.00240383 | ||||
Migrate And Stak... | 21410656 | 31 hrs ago | IN | 0 ETH | 0.0022787 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
MplUserActions
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-12 */ // SPDX-License-Identifier: BUSL-1.1 pragma solidity =0.8.20 ^0.8.0 ^0.8.7; // contracts/interfaces/IMplUserActions.sol interface IMplUserActions { /**************************************************************************************************************************************/ /*** Events ***/ /**************************************************************************************************************************************/ event MigratedAndStaked( address indexed sender, address assetSent, uint256 amountSent, address indexed receiver, address assetReceived, uint256 amountReceived ); event RedeemedAndMigrated( address indexed sender, address assetSent, uint256 amountSent, address indexed receiver, address assetReceived, uint256 amountReceived ); event RedeemedAndMigratedAndStaked( address indexed sender, address assetSent, uint256 amountSent, address indexed receiver, address assetReceived, uint256 amountReceived ); /**************************************************************************************************************************************/ /*** State Variables ***/ /**************************************************************************************************************************************/ /** * @dev Returns the address of the MPL migrator contract. * @return migrator Address of the migrator contract. */ function migrator() external returns (address migrator); /** * @dev Returns the address of the MPL contract. * @return mpl Address of the MPL contract. */ function mpl() external returns (address mpl); /** * @dev Returns the address of the stSYRUP contract. * @return stsyrup Address of the stSYRUP contract. */ function stsyrup() external returns (address stsyrup); /** * @dev Returns the address of the SYRUP contract. * @return syrup Address of the SYRUP contract. */ function syrup() external returns (address syrup); /** * @dev Returns the address of the xMPL contract. * @return xmpl Address of the xMPL contract. */ function xmpl() external returns (address xmpl); /**************************************************************************************************************************************/ /*** User Actions ***/ /**************************************************************************************************************************************/ /** * @dev Migrates MPL to SYRUP and then stakes it. * @param receiver Address that will receive stSYRUP. * @param mplIn Amount of MPL to migrate. * @return stsyrupOut Amount of stSYRUP received. */ function migrateAndStake(address receiver, uint256 mplIn) external returns (uint256 stsyrupOut); /** * @dev Migrates MPL to SYRUP and then stakes it. * Approves the transfer of MPL with the use of a permit signature. * @param receiver Address that will receive stSYRUP. * @param mplIn Amount of MPL to migrate. * @param deadline The deadline of the permit. * @param v The v value of the permit signature. * @param r The r value of the permit signature. * @param s The s value of the permit signature. * @return stsyrupOut Amount of stSYRUP received. */ function migrateAndStakeWithPermit( address receiver, uint256 mplIn, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 stsyrupOut); /** * @dev Redeems xMPL into MPL and then migrates it to SYRUP. * @param receiver Address that will receive SYRUP. * @param xmplIn Amount of xMPL to redeem. * @return syrupOut Amount of SYRUP received. */ function redeemAndMigrate(address receiver, uint256 xmplIn) external returns (uint256 syrupOut); /** * @dev Redeems xMPL into MPL and then migrates it to SYRUP. * Approves the transfer of xMPL with the use of a permit signature. * @param receiver Address that will receive SYRUP. * @param xmplIn Amount of xMPL to redeem. * @param deadline The deadline of the permit. * @param v The v value of the permit signature. * @param r The r value of the permit signature. * @param s The s value of the permit signature. * @return syrupOut Amount of SYRUP received. */ function redeemAndMigrateWithPermit( address receiver, uint256 xmplIn, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 syrupOut); /** * @dev Redeems xMPL into MPL, migrates it to SYRUP, and then stakes it. * @param receiver Address that will receive stSYRUP. * @param xmplIn Amount of xMPL to redeem. * @return stsyrupOut Amount of stSYRUP received. */ function redeemAndMigrateAndStake(address receiver, uint256 xmplIn) external returns (uint256 stsyrupOut); /** * @dev Redeems xMPL into MPL, migrates it to SYRUP, and then stakes it. * Approves the transfer of xMPL with the use of a permit signature. * @param receiver sAddress that will receive stSYRUP. * @param xmplIn Amount of xMPL to redeem. * @param deadline The deadline of the permit. * @param v The v value of the permit signature. * @param r The r value of the permit signature. * @param s The s value of the permit signature. * @return stsyrupOut Amount of stSYRUP received. */ function redeemAndMigrateAndStakeWithPermit( address receiver, uint256 xmplIn, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 stsyrupOut); } // 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/MplUserActions.sol contract MplUserActions is IMplUserActions { /**************************************************************************************************************************************/ /*** State Variables ***/ /**************************************************************************************************************************************/ address public immutable override migrator; address public immutable override mpl; address public immutable override stsyrup; address public immutable override syrup; address public immutable override xmpl; /**************************************************************************************************************************************/ /*** Constructor ***/ /**************************************************************************************************************************************/ constructor(address migrator_, address xmpl_, address stsyrup_) { address mpl_ = IRDTLike(xmpl_).asset(); address syrup_ = IRDTLike(stsyrup_).asset(); migrator = migrator_; mpl = mpl_; syrup = syrup_; xmpl = xmpl_; stsyrup = stsyrup_; require(ERC20Helper.approve(mpl_, migrator_, type(uint256).max), "MUA:C:MPL_APPROVE"); require(ERC20Helper.approve(syrup_, stsyrup_, type(uint256).max), "MUA:C:SYRUP_APPROVE"); } /**************************************************************************************************************************************/ /*** User Actions ***/ /**************************************************************************************************************************************/ // MPL -> SYRUP -> stSYRUP function migrateAndStake(address receiver_, uint256 mplIn_) external override returns (uint256 stsyrupOut_) { stsyrupOut_ = _migrateAndStake(receiver_, mplIn_); } // MPL -> SYRUP -> stSYRUP function migrateAndStakeWithPermit( address receiver_, uint256 mplIn_, uint256 deadline_, uint8 v_, bytes32 r_, bytes32 s_ ) external override returns (uint256 stsyrupOut_) { _permit(mpl, deadline_, mplIn_, v_, r_, s_); stsyrupOut_ = _migrateAndStake(receiver_, mplIn_); } // xMPL -> MPL -> SYRUP function redeemAndMigrate(address receiver_, uint256 xmplIn_) external override returns (uint256 syrupOut_) { syrupOut_ = _redeemAndMigrate(receiver_, xmplIn_); } // xMPL -> MPL -> SYRUP function redeemAndMigrateWithPermit( address receiver_, uint256 xmplIn_, uint256 deadline_, uint8 v_, bytes32 r_, bytes32 s_ ) external override returns (uint256 syrupOut_) { _permit(xmpl, deadline_, xmplIn_, v_, r_, s_); syrupOut_ = _redeemAndMigrate(receiver_, xmplIn_); } // xMPL -> MPL -> SYRUP -> stSYRUP function redeemAndMigrateAndStake(address receiver_, uint256 xmplIn_) external override returns (uint256 stsyrupOut_) { stsyrupOut_ = _redeemAndMigrateAndStake(receiver_, xmplIn_); } // xMPL -> MPL -> SYRUP -> stSYRUP function redeemAndMigrateAndStakeWithPermit( address receiver_, uint256 xmplIn_, uint256 deadline_, uint8 v_, bytes32 r_, bytes32 s_ ) external override returns (uint256 stsyrupOut_) { _permit(xmpl, deadline_, xmplIn_, v_, r_, s_); stsyrupOut_ = _redeemAndMigrateAndStake(receiver_, xmplIn_); } /**************************************************************************************************************************************/ /*** Internal Functions ***/ /**************************************************************************************************************************************/ // MPL -> SYRUP -> stSYRUP function _migrateAndStake(address receiver_, uint256 mplIn_) internal returns (uint256 stsyrupOut_) { require(mplIn_ > 0, "MUA:MAS:ZERO_AMOUNT"); require(ERC20Helper.transferFrom(mpl, msg.sender, address(this), mplIn_), "MUA:MAS:TRANSFER_FAIL"); uint256 syrupAmount_ = _migrate(address(this), mplIn_); stsyrupOut_ = _stake(receiver_, syrupAmount_); emit MigratedAndStaked(msg.sender, mpl, mplIn_, receiver_, stsyrup, stsyrupOut_); } // MPL -> SYRUP function _migrate(address receiver_, uint256 mplIn_) internal returns (uint256 syrupOut_) { syrupOut_ = IMigratorLike(migrator).migrate(receiver_, mplIn_); } 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_); } } // xMPL -> MPL function _redeem(address receiver_, uint256 xmplIn_) internal returns (uint256 mplOut_) { mplOut_ = IRDTLike(xmpl).redeem(xmplIn_, receiver_, address(this)); } // xMPL -> MPL -> SYRUP function _redeemAndMigrate(address receiver_, uint256 xmplIn_) internal returns (uint256 syrupOut_) { require(xmplIn_ > 0, "MUA:RAM:ZERO_AMOUNT"); require(ERC20Helper.transferFrom(xmpl, msg.sender, address(this), xmplIn_), "MUA:RAM:TRANSFER_FAIL"); uint256 mplAmount_ = _redeem(address(this), xmplIn_); syrupOut_ = _migrate(receiver_, mplAmount_); emit RedeemedAndMigrated(msg.sender, xmpl, xmplIn_, receiver_, syrup, syrupOut_); } // xMPL -> MPL -> SYRUP -> stSYRUP function _redeemAndMigrateAndStake(address receiver_, uint256 xmplIn_) internal returns (uint256 stsyrupOut_) { require(xmplIn_ > 0, "MUA:RAMAS:ZERO_AMOUNT"); require(ERC20Helper.transferFrom(xmpl, msg.sender, address(this), xmplIn_), "MUA:RAMAS:TRANSFER_FAIL"); uint256 mplAmount_ = _redeem(address(this), xmplIn_); uint256 syrupAmount_ = _migrate(address(this), mplAmount_); stsyrupOut_ = _stake(receiver_, syrupAmount_); emit RedeemedAndMigratedAndStaked(msg.sender, xmpl, xmplIn_, receiver_, stsyrup, stsyrupOut_); } // SYRUP -> stSYRUP function _stake(address receiver_, uint256 syrupIn_) internal returns (uint256 stsyrupOut_) { stsyrupOut_ = IRDTLike(stsyrup).deposit(syrupIn_, receiver_); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"migrator_","type":"address"},{"internalType":"address","name":"xmpl_","type":"address"},{"internalType":"address","name":"stsyrup_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"assetSent","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountSent","type":"uint256"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"address","name":"assetReceived","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountReceived","type":"uint256"}],"name":"MigratedAndStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"assetSent","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountSent","type":"uint256"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"address","name":"assetReceived","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountReceived","type":"uint256"}],"name":"RedeemedAndMigrated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"assetSent","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountSent","type":"uint256"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"address","name":"assetReceived","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountReceived","type":"uint256"}],"name":"RedeemedAndMigratedAndStaked","type":"event"},{"inputs":[{"internalType":"address","name":"receiver_","type":"address"},{"internalType":"uint256","name":"mplIn_","type":"uint256"}],"name":"migrateAndStake","outputs":[{"internalType":"uint256","name":"stsyrupOut_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver_","type":"address"},{"internalType":"uint256","name":"mplIn_","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"}],"name":"migrateAndStakeWithPermit","outputs":[{"internalType":"uint256","name":"stsyrupOut_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"migrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mpl","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"receiver_","type":"address"},{"internalType":"uint256","name":"xmplIn_","type":"uint256"}],"name":"redeemAndMigrate","outputs":[{"internalType":"uint256","name":"syrupOut_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver_","type":"address"},{"internalType":"uint256","name":"xmplIn_","type":"uint256"}],"name":"redeemAndMigrateAndStake","outputs":[{"internalType":"uint256","name":"stsyrupOut_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver_","type":"address"},{"internalType":"uint256","name":"xmplIn_","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"}],"name":"redeemAndMigrateAndStakeWithPermit","outputs":[{"internalType":"uint256","name":"stsyrupOut_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver_","type":"address"},{"internalType":"uint256","name":"xmplIn_","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"}],"name":"redeemAndMigrateWithPermit","outputs":[{"internalType":"uint256","name":"syrupOut_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stsyrup","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"syrup","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"xmpl","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
61012060405234801562000011575f80fd5b50604051620010a4380380620010a483398101604081905262000034916200036b565b5f826001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000072573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000989190620003b2565b90505f826001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000d8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000fe9190620003b2565b6001600160a01b0380871660805283811660a05280821660e05285811661010052841660c05290506200013482865f19620001e1565b6200017a5760405162461bcd60e51b81526020600482015260116024820152704d55413a433a4d504c5f415050524f564560781b60448201526064015b60405180910390fd5b6200018881845f19620001e1565b620001d65760405162461bcd60e51b815260206004820152601360248201527f4d55413a433a53595255505f415050524f564500000000000000000000000000604482015260640162000171565b50505050506200041d565b6040516001600160a01b03831660248201525f60448201819052906200024990859063095ea7b360e01b906064015b60408051808303601f190181529190526020810180516001600160e01b0319939093166001600160e01b0393841617905290620002a116565b6200025657505f6200029a565b8162000265575060016200029a565b6040516001600160a01b0384166024820152604481018390526200029790859063095ea7b360e01b9060640162000210565b90505b9392505050565b5f6001600160a01b0383163b620002ba57505f62000349565b6060836001600160a01b031683604051620002d69190620003ce565b5f604051808303815f865af19150503d805f811462000311576040519150601f19603f3d011682016040523d82523d5f602084013e62000316565b606091505b5090925090508180156200034557508051158062000345575080806020019051810190620003459190620003fc565b9150505b92915050565b80516001600160a01b038116811462000366575f80fd5b919050565b5f805f606084860312156200037e575f80fd5b62000389846200034f565b925062000399602085016200034f565b9150620003a9604085016200034f565b90509250925092565b5f60208284031215620003c3575f80fd5b6200029a826200034f565b5f82515f5b81811015620003ef5760208186018101518583015201620003d3565b505f920191825250919050565b5f602082840312156200040d575f80fd5b815180151581146200029a575f80fd5b60805160a05160c05160e05161010051610be2620004c25f395f818160f3015281816102100152818161025401528181610439015281816104f4015281816105a20152818161067201526108bf01525f8181610175015261051601525f818160af01528181610694015281816107fc01526109ad01525f81816101af015281816102b50152818161071f01526107da01525f818161014e01526109540152610be25ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c806386a952c41161006e57806386a952c4146101705780638fcea8f714610197578063a0530946146101aa578063b2252469146101d1578063bb14c494146101e4578063fd7fc33b146101f7575f80fd5b80632807024b146100aa578063359156a0146100ee57806339e07878146101155780635194acda146101365780637cd07e4714610149575b5f80fd5b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b610128610123366004610a9d565b61020a565b6040519081526020016100e5565b610128610144366004610a9d565b61024e565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6101286101a5366004610af8565b610287565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6101286101df366004610af8565b610299565b6101286101f2366004610af8565b6102a4565b610128610205366004610a9d565b6102af565b5f6102397f000000000000000000000000000000000000000000000000000000000000000086888787876102e8565b61024387876103e9565b979650505050505050565b5f61027d7f000000000000000000000000000000000000000000000000000000000000000086888787876102e8565b6102438787610555565b5f61029283836106d4565b9392505050565b5f6102928383610555565b5f61029283836103e9565b5f6102de7f000000000000000000000000000000000000000000000000000000000000000086888787876102e8565b61024387876106d4565b604051636eb1769f60e11b81523360048201523060248201525f906001600160a01b0388169063dd62ed3e90604401602060405180830381865afa158015610332573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103569190610b20565b9050848110156103e05760405163d505accf60e01b8152336004820152306024820152604481018690526064810187905260ff8516608482015260a4810184905260c481018390526001600160a01b0388169063d505accf9060e4015f604051808303815f87803b1580156103c9575f80fd5b505af11580156103db573d5f803e3d5ffd5b505050505b50505050505050565b5f8082116104345760405162461bcd60e51b81526020600482015260136024820152721355504e9490534e96915493d7d05353d55395606a1b60448201526064015b60405180910390fd5b6104607f000000000000000000000000000000000000000000000000000000000000000033308561082c565b6104a45760405162461bcd60e51b81526020600482015260156024820152741355504e9490534e9514905394d1915497d1905253605a1b604482015260640161042b565b5f6104af3084610891565b90506104bb848261092c565b9150836001600160a01b0316336001600160a01b03167fa583658e3a14505064d423ae6cbfb469e4fa8b9a03a25fe1b8f8323f0dbb9f5a7f0000000000000000000000000000000000000000000000000000000000000000867f0000000000000000000000000000000000000000000000000000000000000000876040516105469493929190610b37565b60405180910390a35092915050565b5f80821161059d5760405162461bcd60e51b81526020600482015260156024820152741355504e9490535054ce96915493d7d05353d55395605a1b604482015260640161042b565b6105c97f000000000000000000000000000000000000000000000000000000000000000033308561082c565b6106155760405162461bcd60e51b815260206004820152601760248201527f4d55413a52414d41533a5452414e534645525f4641494c000000000000000000604482015260640161042b565b5f6106203084610891565b90505f61062d308361092c565b90506106398582610985565b9250846001600160a01b0316336001600160a01b03167f8ace6952b64b5c3dd907d02813e4c97ccc1f3e43adb13ca65d3ef5f96e2be8027f0000000000000000000000000000000000000000000000000000000000000000877f0000000000000000000000000000000000000000000000000000000000000000886040516106c49493929190610b37565b60405180910390a3505092915050565b5f80821161071a5760405162461bcd60e51b81526020600482015260136024820152721355504e935054ce96915493d7d05353d55395606a1b604482015260640161042b565b6107467f000000000000000000000000000000000000000000000000000000000000000033308561082c565b61078a5760405162461bcd60e51b81526020600482015260156024820152741355504e935054ce9514905394d1915497d1905253605a1b604482015260640161042b565b5f610795308461092c565b90506107a18482610985565b9150836001600160a01b0316336001600160a01b03167f49cf5016ce06d57f096837afcc8af05006ad93f9f02e854dae515f103a5319b97f0000000000000000000000000000000000000000000000000000000000000000867f0000000000000000000000000000000000000000000000000000000000000000876040516105469493929190610b37565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790525f906108889086906109de565b95945050505050565b604051635d043b2960e11b8152600481018290526001600160a01b0383811660248301523060448301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063ba087652906064015b6020604051808303815f875af1158015610908573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102929190610b20565b60405163ad68ebf760e01b81526001600160a01b038381166004830152602482018390525f917f00000000000000000000000000000000000000000000000000000000000000009091169063ad68ebf7906044016108ec565b604051636e553f6560e01b8152600481018290526001600160a01b0383811660248301525f917f000000000000000000000000000000000000000000000000000000000000000090911690636e553f65906044016108ec565b5f6001600160a01b0383163b6109f557505f610a7c565b6060836001600160a01b031683604051610a0f9190610b61565b5f604051808303815f865af19150503d805f8114610a48576040519150601f19603f3d011682016040523d82523d5f602084013e610a4d565b606091505b509092509050818015610a78575080511580610a78575080806020019051810190610a789190610b8d565b9150505b92915050565b80356001600160a01b0381168114610a98575f80fd5b919050565b5f805f805f8060c08789031215610ab2575f80fd5b610abb87610a82565b95506020870135945060408701359350606087013560ff81168114610ade575f80fd5b9598949750929560808101359460a0909101359350915050565b5f8060408385031215610b09575f80fd5b610b1283610a82565b946020939093013593505050565b5f60208284031215610b30575f80fd5b5051919050565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b5f82515f5b81811015610b805760208186018101518583015201610b66565b505f920191825250919050565b5f60208284031215610b9d575f80fd5b81518015158114610292575f80fdfea264697066735822122092bf9fe4a87f1e5ad4a854c7b19f116e30b44cd672dd35cb03f9066eb6d00e3364736f6c634300081400330000000000000000000000009c9499edd0cd2dcbc3c9dd5070baf54777ad8f2c0000000000000000000000004937a209d4cdbd3ecd48857277cfd4da4d82914c000000000000000000000000c7e8b36e0766d9b04c93de68a9d47dd11f260b45
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100a6575f3560e01c806386a952c41161006e57806386a952c4146101705780638fcea8f714610197578063a0530946146101aa578063b2252469146101d1578063bb14c494146101e4578063fd7fc33b146101f7575f80fd5b80632807024b146100aa578063359156a0146100ee57806339e07878146101155780635194acda146101365780637cd07e4714610149575b5f80fd5b6100d17f000000000000000000000000c7e8b36e0766d9b04c93de68a9d47dd11f260b4581565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d17f0000000000000000000000004937a209d4cdbd3ecd48857277cfd4da4d82914c81565b610128610123366004610a9d565b61020a565b6040519081526020016100e5565b610128610144366004610a9d565b61024e565b6100d17f0000000000000000000000009c9499edd0cd2dcbc3c9dd5070baf54777ad8f2c81565b6100d17f000000000000000000000000643c4e15d7d62ad0abec4a9bd4b001aa3ef52d6681565b6101286101a5366004610af8565b610287565b6100d17f00000000000000000000000033349b282065b0284d756f0577fb39c158f935e681565b6101286101df366004610af8565b610299565b6101286101f2366004610af8565b6102a4565b610128610205366004610a9d565b6102af565b5f6102397f0000000000000000000000004937a209d4cdbd3ecd48857277cfd4da4d82914c86888787876102e8565b61024387876103e9565b979650505050505050565b5f61027d7f0000000000000000000000004937a209d4cdbd3ecd48857277cfd4da4d82914c86888787876102e8565b6102438787610555565b5f61029283836106d4565b9392505050565b5f6102928383610555565b5f61029283836103e9565b5f6102de7f00000000000000000000000033349b282065b0284d756f0577fb39c158f935e686888787876102e8565b61024387876106d4565b604051636eb1769f60e11b81523360048201523060248201525f906001600160a01b0388169063dd62ed3e90604401602060405180830381865afa158015610332573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103569190610b20565b9050848110156103e05760405163d505accf60e01b8152336004820152306024820152604481018690526064810187905260ff8516608482015260a4810184905260c481018390526001600160a01b0388169063d505accf9060e4015f604051808303815f87803b1580156103c9575f80fd5b505af11580156103db573d5f803e3d5ffd5b505050505b50505050505050565b5f8082116104345760405162461bcd60e51b81526020600482015260136024820152721355504e9490534e96915493d7d05353d55395606a1b60448201526064015b60405180910390fd5b6104607f0000000000000000000000004937a209d4cdbd3ecd48857277cfd4da4d82914c33308561082c565b6104a45760405162461bcd60e51b81526020600482015260156024820152741355504e9490534e9514905394d1915497d1905253605a1b604482015260640161042b565b5f6104af3084610891565b90506104bb848261092c565b9150836001600160a01b0316336001600160a01b03167fa583658e3a14505064d423ae6cbfb469e4fa8b9a03a25fe1b8f8323f0dbb9f5a7f0000000000000000000000004937a209d4cdbd3ecd48857277cfd4da4d82914c867f000000000000000000000000643c4e15d7d62ad0abec4a9bd4b001aa3ef52d66876040516105469493929190610b37565b60405180910390a35092915050565b5f80821161059d5760405162461bcd60e51b81526020600482015260156024820152741355504e9490535054ce96915493d7d05353d55395605a1b604482015260640161042b565b6105c97f0000000000000000000000004937a209d4cdbd3ecd48857277cfd4da4d82914c33308561082c565b6106155760405162461bcd60e51b815260206004820152601760248201527f4d55413a52414d41533a5452414e534645525f4641494c000000000000000000604482015260640161042b565b5f6106203084610891565b90505f61062d308361092c565b90506106398582610985565b9250846001600160a01b0316336001600160a01b03167f8ace6952b64b5c3dd907d02813e4c97ccc1f3e43adb13ca65d3ef5f96e2be8027f0000000000000000000000004937a209d4cdbd3ecd48857277cfd4da4d82914c877f000000000000000000000000c7e8b36e0766d9b04c93de68a9d47dd11f260b45886040516106c49493929190610b37565b60405180910390a3505092915050565b5f80821161071a5760405162461bcd60e51b81526020600482015260136024820152721355504e935054ce96915493d7d05353d55395606a1b604482015260640161042b565b6107467f00000000000000000000000033349b282065b0284d756f0577fb39c158f935e633308561082c565b61078a5760405162461bcd60e51b81526020600482015260156024820152741355504e935054ce9514905394d1915497d1905253605a1b604482015260640161042b565b5f610795308461092c565b90506107a18482610985565b9150836001600160a01b0316336001600160a01b03167f49cf5016ce06d57f096837afcc8af05006ad93f9f02e854dae515f103a5319b97f00000000000000000000000033349b282065b0284d756f0577fb39c158f935e6867f000000000000000000000000c7e8b36e0766d9b04c93de68a9d47dd11f260b45876040516105469493929190610b37565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790525f906108889086906109de565b95945050505050565b604051635d043b2960e11b8152600481018290526001600160a01b0383811660248301523060448301525f917f0000000000000000000000004937a209d4cdbd3ecd48857277cfd4da4d82914c9091169063ba087652906064015b6020604051808303815f875af1158015610908573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102929190610b20565b60405163ad68ebf760e01b81526001600160a01b038381166004830152602482018390525f917f0000000000000000000000009c9499edd0cd2dcbc3c9dd5070baf54777ad8f2c9091169063ad68ebf7906044016108ec565b604051636e553f6560e01b8152600481018290526001600160a01b0383811660248301525f917f000000000000000000000000c7e8b36e0766d9b04c93de68a9d47dd11f260b4590911690636e553f65906044016108ec565b5f6001600160a01b0383163b6109f557505f610a7c565b6060836001600160a01b031683604051610a0f9190610b61565b5f604051808303815f865af19150503d805f8114610a48576040519150601f19603f3d011682016040523d82523d5f602084013e610a4d565b606091505b509092509050818015610a78575080511580610a78575080806020019051810190610a789190610b8d565b9150505b92915050565b80356001600160a01b0381168114610a98575f80fd5b919050565b5f805f805f8060c08789031215610ab2575f80fd5b610abb87610a82565b95506020870135945060408701359350606087013560ff81168114610ade575f80fd5b9598949750929560808101359460a0909101359350915050565b5f8060408385031215610b09575f80fd5b610b1283610a82565b946020939093013593505050565b5f60208284031215610b30575f80fd5b5051919050565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b5f82515f5b81811015610b805760208186018101518583015201610b66565b505f920191825250919050565b5f60208284031215610b9d575f80fd5b81518015158114610292575f80fdfea264697066735822122092bf9fe4a87f1e5ad4a854c7b19f116e30b44cd672dd35cb03f9066eb6d00e3364736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009c9499edd0cd2dcbc3c9dd5070baf54777ad8f2c0000000000000000000000004937a209d4cdbd3ecd48857277cfd4da4d82914c000000000000000000000000c7e8b36e0766d9b04c93de68a9d47dd11f260b45
-----Decoded View---------------
Arg [0] : migrator_ (address): 0x9c9499edD0cd2dCBc3C9Dd5070bAf54777AD8F2C
Arg [1] : xmpl_ (address): 0x4937A209D4cDbD3ecD48857277cfd4dA4D82914c
Arg [2] : stsyrup_ (address): 0xc7E8b36E0766D9B04c93De68A9D47dD11f260B45
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000009c9499edd0cd2dcbc3c9dd5070baf54777ad8f2c
Arg [1] : 0000000000000000000000004937a209d4cdbd3ecd48857277cfd4da4d82914c
Arg [2] : 000000000000000000000000c7e8b36e0766d9b04c93de68a9d47dd11f260b45
Deployed Bytecode Sourcemap
12569:7307:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13142:41;;;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;13142:41:0;;;;;;;;13236:38;;;;;15538:374;;;;;;:::i;:::-;;:::i;:::-;;;1169:25:1;;;1157:2;1142:18;15538:374:0;1023:177:1;16204:394:0;;;;;;:::i;:::-;;:::i;13049:42::-;;;;;13190:39;;;;;14700:176;;;;;;:::i;:::-;;:::i;13098:37::-;;;;;15960:196;;;;;;:::i;:::-;;:::i;15325:176::-;;;;;;:::i;:::-;;:::i;14916:372::-;;;;;;:::i;:::-;;:::i;15538:374::-;15762:17;15797:45;15805:4;15811:9;15822:7;15831:2;15835;15839;15797:7;:45::i;:::-;15867:37;15885:9;15896:7;15867:17;:37::i;:::-;15855:49;15538:374;-1:-1:-1;;;;;;;15538:374:0:o;16204:394::-;16436:19;16473:45;16481:4;16487:9;16498:7;16507:2;16511;16515;16473:7;:45::i;:::-;16545;16571:9;16582:7;16545:25;:45::i;14700:176::-;14787:19;14833:35;14850:9;14861:6;14833:16;:35::i;:::-;14819:49;14700:176;-1:-1:-1;;;14700:176:0:o;15960:196::-;16057:19;16103:45;16129:9;16140:7;16103:25;:45::i;15325:176::-;15414:17;15456:37;15474:9;15485:7;15456:17;:37::i;14916:372::-;15138:19;15175:43;15183:3;15188:9;15199:6;15207:2;15211;15215;15175:7;:43::i;:::-;15245:35;15262:9;15273:6;15245:16;:35::i;17823:360::-;17967:57;;-1:-1:-1;;;17967:57:0;;17998:10;17967:57;;;1676:34:1;18018:4:0;1726:18:1;;;1719:43;17946:18:0;;-1:-1:-1;;;;;17967:30:0;;;;;1611:18:1;;17967:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17946:78;;18054:7;18041:10;:20;18037:139;;;18078:86;;-1:-1:-1;;;18078:86:0;;18106:10;18078:86;;;2311:34:1;18126:4:0;2361:18:1;;;2354:43;2413:18;;;2406:34;;;2456:18;;;2449:34;;;2532:4;2520:17;;2499:19;;;2492:46;2554:19;;;2547:35;;;2598:19;;;2591:35;;;-1:-1:-1;;;;;18078:27:0;;;;;2245:19:1;;18078:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18037:139;17935:248;17823:360;;;;;;:::o;18421:549::-;18502:17;18550:1;18540:7;:11;18532:98;;;;-1:-1:-1;;;18532:98:0;;2839:2:1;18532:98:0;;;2821:21:1;2878:2;2858:18;;;2851:30;-1:-1:-1;;;2897:18:1;;;2890:49;2956:18;;18532:98:0;;;;;;;;;18649:66;18674:4;18680:10;18700:4;18707:7;18649:24;:66::i;:::-;18641:100;;;;-1:-1:-1;;;18641:100:0;;3187:2:1;18641:100:0;;;3169:21:1;3226:2;3206:18;;;3199:30;-1:-1:-1;;;3245:18:1;;;3238:51;3306:18;;18641:100:0;2985:345:1;18641:100:0;18754:18;18775:31;18791:4;18798:7;18775;:31::i;:::-;18754:52;;18838:31;18847:9;18858:10;18838:8;:31::i;:::-;18817:52;;18934:9;-1:-1:-1;;;;;18887:75:0;18907:10;-1:-1:-1;;;;;18887:75:0;;18919:4;18925:7;18945:5;18952:9;18887:75;;;;;;;;;:::i;:::-;;;;;;;;18521:449;18421:549;;;;:::o;19018:649::-;19107:19;19157:1;19147:7;:11;19139:100;;;;-1:-1:-1;;;19139:100:0;;3989:2:1;19139:100:0;;;3971:21:1;4028:2;4008:18;;;4001:30;-1:-1:-1;;;4047:18:1;;;4040:51;4108:18;;19139:100:0;3787:345:1;19139:100:0;19258:66;19283:4;19289:10;19309:4;19316:7;19258:24;:66::i;:::-;19250:102;;;;-1:-1:-1;;;19250:102:0;;4339:2:1;19250:102:0;;;4321:21:1;4378:2;4358:18;;;4351:30;4417:25;4397:18;;;4390:53;4460:18;;19250:102:0;4137:347:1;19250:102:0;19365:18;19388:31;19404:4;19411:7;19388;:31::i;:::-;19365:54;;19430:20;19453:35;19470:4;19477:10;19453:8;:35::i;:::-;19430:58;;19522:31;19529:9;19540:12;19522:6;:31::i;:::-;19499:54;;19627:9;-1:-1:-1;;;;;19571:88:0;19600:10;-1:-1:-1;;;;;19571:88:0;;19612:4;19618:7;19638;19647:11;19571:88;;;;;;;;;:::i;:::-;;;;;;;;19128:539;;19018:649;;;;:::o;17066:549::-;17145:19;17194:1;17185:6;:10;17177:96;;;;-1:-1:-1;;;17177:96:0;;4691:2:1;17177:96:0;;;4673:21:1;4730:2;4710:18;;;4703:30;-1:-1:-1;;;4749:18:1;;;4742:49;4808:18;;17177:96:0;4489:343:1;17177:96:0;17292:64;17317:3;17322:10;17342:4;17349:6;17292:24;:64::i;:::-;17284:98;;;;-1:-1:-1;;;17284:98:0;;5039:2:1;17284:98:0;;;5021:21:1;5078:2;5058:18;;;5051:30;-1:-1:-1;;;5097:18:1;;;5090:51;5158:18;;17284:98:0;4837:345:1;17284:98:0;17395:20;17418:31;17435:4;17442:6;17418:8;:31::i;:::-;17395:54;;17483:31;17490:9;17501:12;17483:6;:31::i;:::-;17460:54;;17575:9;-1:-1:-1;;;;;17532:75:0;17550:10;-1:-1:-1;;;;;17532:75:0;;17562:3;17567:6;17586:7;17595:11;17532:75;;;;;;;;;:::i;11329:236::-;11477:79;;;-1:-1:-1;;;;;5445:15:1;;;11477:79:0;;;5427:34:1;5497:15;;5477:18;;;5470:43;5529:18;;;;5522:34;;;11477:79:0;;;;;;;;;;5362:18:1;;;;11477:79:0;;;;;;;;-1:-1:-1;;;;;11477:79:0;-1:-1:-1;;;11477:79:0;;;-1:-1:-1;;11463:94:0;;11469:6;;11463:5;:94::i;:::-;11456:101;11329:236;-1:-1:-1;;;;;11329:236:0:o;18211:173::-;18320:56;;-1:-1:-1;;;18320:56:0;;;;;5769:25:1;;;-1:-1:-1;;;;;5868:15:1;;;5848:18;;;5841:43;18370:4:0;5900:18:1;;;5893:43;18282:15:0;;18329:4;18320:21;;;;;;5742:18:1;;18320:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17644:171::-;17757:50;;-1:-1:-1;;;17757:50:0;;-1:-1:-1;;;;;6139:32:1;;;17757:50:0;;;6121:51:1;6188:18;;;6181:34;;;17715:17:0;;17771:8;17757:31;;;;;;6094:18:1;;17757:50:0;5947:274:1;19700:171:0;19817:46;;-1:-1:-1;;;19817:46:0;;;;;6400:25:1;;;-1:-1:-1;;;;;6461:32:1;;;6441:18;;;6434:60;19771:19:0;;19826:7;19817:25;;;;;;6373:18:1;;19817:46:0;6226:274:1;12182:343:0;12250:13;-1:-1:-1;;;;;12280:18:0;;;12276:50;;-1:-1:-1;12321:5:0;12314:12;;12276:50;12339:23;12400:6;-1:-1:-1;;;;;12400:11:0;12412:5;12400:18;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12373:45:0;;-1:-1:-1;12373:45:0;-1:-1:-1;12373:45:0;12438:79;;;;-1:-1:-1;12451:17:0;;:31;;:65;;;12497:10;12486:30;;;;;;;;;;;;:::i;:::-;12431:86;;;12182:343;;;;;:::o;222:173:1:-;290:20;;-1:-1:-1;;;;;339:31:1;;329:42;;319:70;;385:1;382;375:12;319:70;222:173;;;:::o;400:618::-;502:6;510;518;526;534;542;595:3;583:9;574:7;570:23;566:33;563:53;;;612:1;609;602:12;563:53;635:29;654:9;635:29;:::i;:::-;625:39;;711:2;700:9;696:18;683:32;673:42;;762:2;751:9;747:18;734:32;724:42;;816:2;805:9;801:18;788:32;860:4;853:5;849:16;842:5;839:27;829:55;;880:1;877;870:12;829:55;400:618;;;;-1:-1:-1;400:618:1;;955:3;940:19;;927:33;;1007:3;992:19;;;979:33;;-1:-1:-1;400:618:1;-1:-1:-1;;400:618:1:o;1205:254::-;1273:6;1281;1334:2;1322:9;1313:7;1309:23;1305:32;1302:52;;;1350:1;1347;1340:12;1302:52;1373:29;1392:9;1373:29;:::i;:::-;1363:39;1449:2;1434:18;;;;1421:32;;-1:-1:-1;;;1205:254:1:o;1773:184::-;1843:6;1896:2;1884:9;1875:7;1871:23;1867:32;1864:52;;;1912:1;1909;1902:12;1864:52;-1:-1:-1;1935:16:1;;1773:184;-1:-1:-1;1773:184:1:o;3335:447::-;-1:-1:-1;;;;;3622:15:1;;;3604:34;;3669:2;3654:18;;3647:34;;;;3717:15;;3712:2;3697:18;;3690:43;3764:2;3749:18;;3742:34;;;;3553:3;3538:19;;3335:447::o;6505:412::-;6634:3;6672:6;6666:13;6697:1;6707:129;6721:6;6718:1;6715:13;6707:129;;;6819:4;6803:14;;;6799:25;;6793:32;6780:11;;;6773:53;6736:12;6707:129;;;-1:-1:-1;6891:1:1;6855:16;;6880:13;;;-1:-1:-1;6855:16:1;6505:412;-1:-1:-1;6505:412:1:o;6922:277::-;6989:6;7042:2;7030:9;7021:7;7017:23;7013:32;7010:52;;;7058:1;7055;7048:12;7010:52;7090:9;7084:16;7143:5;7136:13;7129:21;7122:5;7119:32;7109:60;;7165:1;7162;7155:12
Swarm Source
ipfs://92bf9fe4a87f1e5ad4a854c7b19f116e30b44cd672dd35cb03f9066eb6d00e33
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.