Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 32 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Migrate | 22621984 | 232 days ago | IN | 0 ETH | 0.00051205 | ||||
| Migrate | 22621597 | 232 days ago | IN | 0 ETH | 0.00077796 | ||||
| Migrate | 22621516 | 232 days ago | IN | 0 ETH | 0.00074164 | ||||
| Migrate | 22617934 | 232 days ago | IN | 0 ETH | 0.00376641 | ||||
| Migrate | 22612959 | 233 days ago | IN | 0 ETH | 0.00052401 | ||||
| Migrate | 22599769 | 235 days ago | IN | 0 ETH | 0.00091671 | ||||
| Migrate | 22593516 | 236 days ago | IN | 0 ETH | 0.00124188 | ||||
| Migrate | 22589991 | 236 days ago | IN | 0 ETH | 0.00216302 | ||||
| Migrate | 22586850 | 236 days ago | IN | 0 ETH | 0.00151623 | ||||
| Migrate | 22581435 | 237 days ago | IN | 0 ETH | 0.00637184 | ||||
| Migrate | 22573248 | 238 days ago | IN | 0 ETH | 0.00133284 | ||||
| Migrate | 22570453 | 239 days ago | IN | 0 ETH | 0.000752 | ||||
| Migrate | 22568841 | 239 days ago | IN | 0 ETH | 0.00109952 | ||||
| Migrate | 22567484 | 239 days ago | IN | 0 ETH | 0.0014063 | ||||
| Migrate | 22559243 | 240 days ago | IN | 0 ETH | 0.00043582 | ||||
| Migrate | 22544711 | 242 days ago | IN | 0 ETH | 0.00105394 | ||||
| Migrate | 22535381 | 244 days ago | IN | 0 ETH | 0.00061477 | ||||
| Migrate | 22530539 | 244 days ago | IN | 0 ETH | 0.00357945 | ||||
| Migrate | 22530529 | 244 days ago | IN | 0 ETH | 0.00414486 | ||||
| Migrate | 22530511 | 244 days ago | IN | 0 ETH | 0.00414472 | ||||
| Migrate | 22528155 | 245 days ago | IN | 0 ETH | 0.00039256 | ||||
| Migrate | 22523897 | 245 days ago | IN | 0 ETH | 0.00068806 | ||||
| Migrate | 22522064 | 246 days ago | IN | 0 ETH | 0.00068911 | ||||
| Migrate | 22521034 | 246 days ago | IN | 0 ETH | 0.00056063 | ||||
| Migrate | 22520878 | 246 days ago | IN | 0 ETH | 0.00054571 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x0C986324...f389c65a6 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
LockstakeMigrator
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-FileCopyrightText: © 2025 Dai Foundation <www.daifoundation.org>
// SPDX-License-Identifier: AGPL-3.0-or-later
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
pragma solidity ^0.8.21;
interface VatLike {
function ilks(bytes32) external view returns (uint256, uint256, uint256, uint256, uint256);
function urns(bytes32, address) external view returns (uint256, uint256);
function file(bytes32, bytes32, uint256) external;
function hope(address) external;
}
interface LockstakeEngineLike {
function vat() external view returns (VatLike);
function ilk() external view returns (bytes32);
function mkr() external view returns (TokenLike);
function sky() external view returns (TokenLike);
function usdsJoin() external view returns (UsdsJoinLike);
function ownerUrns(address, uint256) external view returns (address);
function isUrnAuth(address, uint256, address) external view returns (bool);
function lock(address, uint256, uint256, uint16) external;
function freeNoFee(address, uint256, address, uint256) external;
function draw(address, uint256, address, uint256) external;
function wipeAll(address, uint256) external;
}
interface UsdsJoinLike {
function usds() external view returns (TokenLike);
function join(address, uint256) external;
function exit(address, uint256) external;
}
interface TokenLike {
function approve(address, uint256) external;
}
interface MkrSkyLike {
function rate() external view returns (uint256);
function mkrToSky(address, uint256) external;
}
interface FlashLike {
function vatDaiFlashLoan(address, uint256, bytes calldata) external;
}
contract LockstakeMigrator {
// --- immutables ---
LockstakeEngineLike immutable public oldEngine;
LockstakeEngineLike immutable public newEngine;
MkrSkyLike immutable public mkrSky;
FlashLike immutable public flash;
VatLike immutable public vat;
UsdsJoinLike immutable public usdsJoin;
bytes32 immutable public oldIlk;
bytes32 immutable public newIlk;
uint256 immutable public mkrSkyRate;
// --- constants ---
uint256 private constant RAY = 10**27;
uint256 private constant RAD = 10**45;
// --- math ---
function _divup(uint256 x, uint256 y) internal pure returns (uint256 z) {
// Note: _divup(0,0) will return 0 differing from natural solidity division
unchecked {
z = x != 0 ? ((x - 1) / y) + 1 : 0;
}
}
// --- events ---
event Migrate(address indexed oldOwner, uint256 indexed oldIndex, address indexed newOwner, uint256 indexed newIndex, uint256 ink, uint256 debt) anonymous;
// --- constructor ---
constructor(address oldEngine_, address newEngine_, address mkrSky_, address flash_) {
oldEngine = LockstakeEngineLike(oldEngine_);
newEngine = LockstakeEngineLike(newEngine_);
mkrSky = MkrSkyLike(mkrSky_);
flash = FlashLike(flash_);
vat = oldEngine.vat();
usdsJoin = oldEngine.usdsJoin();
oldIlk = oldEngine.ilk();
newIlk = newEngine.ilk();
mkrSkyRate = mkrSky.rate();
TokenLike usds = usdsJoin.usds();
oldEngine.mkr().approve(mkrSky_, type(uint256).max);
oldEngine.sky().approve(newEngine_, type(uint256).max);
usds.approve(oldEngine_, type(uint256).max);
usds.approve(address(usdsJoin), type(uint256).max);
vat.hope(address(usdsJoin));
}
function migrate(address oldOwner, uint256 oldIndex, address newOwner, uint256 newIndex, uint16 ref) external {
require(oldEngine.isUrnAuth(oldOwner, oldIndex, msg.sender), "LockstakeMigrator/sender-not-authed-old-urn");
require(newEngine.isUrnAuth(newOwner, newIndex, msg.sender), "LockstakeMigrator/sender-not-authed-new-urn");
address oldUrn = oldEngine.ownerUrns(oldOwner, oldIndex);
(uint256 ink, uint256 art) = vat.urns(oldIlk, oldUrn);
uint256 debt;
if (art == 0) {
oldEngine.freeNoFee(oldOwner, oldIndex, address(this), ink);
mkrSky.mkrToSky(address(this), ink);
newEngine.lock(newOwner, newIndex, ink * mkrSkyRate, ref);
} else {
// Just a sanity check at migrate execution time. It is still needed to assume
// governance won't ever give debt ceiling allowance for the old collateral
(, uint256 oldIlkRate,, uint256 oldIlkLine,) = vat.ilks(oldIlk);
require(oldIlkLine == 0, "LockstakeMigrator/old-ilk-line-not-zero");
debt = _divup(art * oldIlkRate, RAY) * RAY;
flash.vatDaiFlashLoan(address(this), debt, abi.encode(oldOwner, oldIndex, newOwner, newIndex, ink, ref));
}
emit Migrate(oldOwner, oldIndex, newOwner, newIndex, ink, debt);
}
function onVatDaiFlashLoan(address initiator, uint256 radAmt, uint256, bytes calldata data) external returns (bytes32) {
require(msg.sender == address(flash) && initiator == address(this), "LockstakeMigrator/wrong-origin");
uint256 wadAmt = radAmt / RAY;
(address oldOwner, uint256 oldIndex, address newOwner, uint256 newIndex, uint256 ink, uint16 ref) = abi.decode(data, (address, uint256, address, uint256, uint256, uint16));
usdsJoin.exit(address(this), wadAmt);
oldEngine.wipeAll(oldOwner, oldIndex);
oldEngine.freeNoFee(oldOwner, oldIndex, address(this), ink);
mkrSky.mkrToSky(address(this), ink);
newEngine.lock(newOwner, newIndex, ink * mkrSkyRate, ref);
vat.file(newIlk, "line", 55_000_000 * RAD); // Should be enough for migrating current positions even if everything is taken and then some fees are accrued on top
newEngine.draw(newOwner, newIndex, address(this), wadAmt);
vat.file(newIlk, "line", 0);
usdsJoin.join(address(flash), wadAmt);
return keccak256("VatDaiFlashBorrower.onVatDaiFlashLoan");
}
}{
"remappings": [],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"evmVersion": "shanghai",
"viaIR": false,
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"oldEngine_","type":"address"},{"internalType":"address","name":"newEngine_","type":"address"},{"internalType":"address","name":"mkrSky_","type":"address"},{"internalType":"address","name":"flash_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":true,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"uint256","name":"oldIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"},{"indexed":true,"internalType":"uint256","name":"newIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ink","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debt","type":"uint256"}],"name":"Migrate","type":"event"},{"inputs":[],"name":"flash","outputs":[{"internalType":"contract FlashLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address"},{"internalType":"uint256","name":"oldIndex","type":"uint256"},{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"uint256","name":"newIndex","type":"uint256"},{"internalType":"uint16","name":"ref","type":"uint16"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mkrSky","outputs":[{"internalType":"contract MkrSkyLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkrSkyRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newEngine","outputs":[{"internalType":"contract LockstakeEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newIlk","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oldEngine","outputs":[{"internalType":"contract LockstakeEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oldIlk","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"radAmt","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onVatDaiFlashLoan","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdsJoin","outputs":[{"internalType":"contract UsdsJoinLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vat","outputs":[{"internalType":"contract VatLike","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
0x6101a060405234801562000011575f80fd5b5060405162001ae138038062001ae18339810160408190526200003491620005d1565b6001600160a01b03808516608081905284821660a05283821660c05290821660e052604080516336569e7760e01b815290516336569e77916004808201926020929091908290030181865afa15801562000090573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000b6919062000636565b6001600160a01b0316610100816001600160a01b0316815250506080516001600160a01b031663fa1e2e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200010f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000135919062000636565b6001600160a01b0316610120816001600160a01b0316815250506080516001600160a01b031663c5ce281e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b491906200065b565b610140818152505060a0516001600160a01b031663c5ce281e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022191906200065b565b610160818152505060c0516001600160a01b0316632c4e722e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000268573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028e91906200065b565b61018081815250505f610120516001600160a01b0316634cf282fb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002fd919062000636565b90506080516001600160a01b0316637e992cb86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000364919062000636565b60405163095ea7b360e01b81526001600160a01b0385811660048301525f196024830152919091169063095ea7b3906044015f604051808303815f87803b158015620003ae575f80fd5b505af1158015620003c1573d5f803e3d5ffd5b505050506080516001600160a01b031663692318046040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000404573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042a919062000636565b60405163095ea7b360e01b81526001600160a01b0386811660048301525f196024830152919091169063095ea7b3906044015f604051808303815f87803b15801562000474575f80fd5b505af115801562000487573d5f803e3d5ffd5b505060405163095ea7b360e01b81526001600160a01b0388811660048301525f1960248301528416925063095ea7b391506044015f604051808303815f87803b158015620004d3575f80fd5b505af1158015620004e6573d5f803e3d5ffd5b50506101205160405163095ea7b360e01b81526001600160a01b0391821660048201525f196024820152908416925063095ea7b391506044015f604051808303815f87803b15801562000537575f80fd5b505af11580156200054a573d5f803e3d5ffd5b505061010051610120516040516328ec8bf160e21b81526001600160a01b0391821660048201529116925063a3b22fc491506024015f604051808303815f87803b15801562000597575f80fd5b505af1158015620005aa573d5f803e3d5ffd5b50505050505050505062000673565b6001600160a01b0381168114620005ce575f80fd5b50565b5f805f8060808587031215620005e5575f80fd5b8451620005f281620005b9565b60208601519094506200060581620005b9565b60408601519093506200061881620005b9565b60608601519092506200062b81620005b9565b939692955090935050565b5f6020828403121562000647575f80fd5b81516200065481620005b9565b9392505050565b5f602082840312156200066c575f80fd5b5051919050565b60805160a05160c05160e05161010051610120516101405161016051610180516113546200078d5f395f818161019e0152818161054d0152610d1501525f81816101c501528181610613015261073f01525f818161016201528181610b350152610dbe01525f818161023a0152818161034c015261081d01525f818161011a015281816105e40152818161077801528181610b720152610df001525f81816101ec01528181610268015281816107ee0152610f3401525f818160af015281816104b90152610c8101525f818160f30152818161051c015281816106c8015281816109ca0152610ce401525f8181610213015281816103c701528181610435015281816108d501528181610abb0152610bff01526113545ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c80635ea8d4f31161006e5780635ea8d4f31461018457806381c44fcc14610199578063900e934d146101c0578063d336c82d146101e7578063e0d680a61461020e578063fa1e2e8614610235575f80fd5b806315cd07b6146100aa578063339f7f53146100ee57806336569e771461011557806342bf04b61461013c5780634988dbd71461015d575b5f80fd5b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b61014f61014a366004611044565b61025c565b6040519081526020016100e5565b61014f7f000000000000000000000000000000000000000000000000000000000000000081565b6101976101923660046110e8565b6108a9565b005b61014f7f000000000000000000000000000000000000000000000000000000000000000081565b61014f7f000000000000000000000000000000000000000000000000000000000000000081565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561029d57506001600160a01b03861630145b6102ee5760405162461bcd60e51b815260206004820152601e60248201527f4c6f636b7374616b654d69677261746f722f77726f6e672d6f726967696e000060448201526064015b60405180910390fd5b5f6103056b033b2e3c9fd0803ce800000087611153565b90505f8080808080610319898b018b611172565b60405163ef693bed60e01b8152306004820152602481018e9052959b509399509197509550935091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ef693bed906044015f604051808303815f87803b15801561038d575f80fd5b505af115801561039f573d5f803e3d5ffd5b50506040516336eda2b360e11b81526001600160a01b038981166004830152602482018990527f0000000000000000000000000000000000000000000000000000000000000000169250636ddb456691506044015f604051808303815f87803b15801561040a575f80fd5b505af115801561041c573d5f803e3d5ffd5b5050604051631c6eb67b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250631c6eb67b91506104729089908990309088906004016111d1565b5f604051808303815f87803b158015610489575f80fd5b505af115801561049b573d5f803e3d5ffd5b50506040516355c4b02d60e11b8152306004820152602481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063ab89605a91506044015f604051808303815f87803b158015610504575f80fd5b505af1158015610516573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636c3dead485857f00000000000000000000000000000000000000000000000000000000000000008661057791906111fb565b6040516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152604482015261ffff841660648201526084015f604051808303815f87803b1580156105cc575f80fd5b505af11580156105de573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631a0b287e7f0000000000000000000000000000000000000000000000000000000000000000722cd76fe086b93ce2f768a00b22a000000000006303473bc061065591906111fb565b6040516001600160e01b031960e085901b1681526004810192909252636c696e6560e01b602483015260448201526064015f604051808303815f87803b15801561069d575f80fd5b505af11580156106af573d5f803e3d5ffd5b50506040516307abdf2560e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250637abdf2509150610705908790879030908d906004016111d1565b5f604051808303815f87803b15801561071c575f80fd5b505af115801561072e573d5f803e3d5ffd5b5050604051630d05943f60e11b81527f00000000000000000000000000000000000000000000000000000000000000006004820152636c696e6560e01b60248201525f60448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169250631a0b287e91506064015f604051808303815f87803b1580156107c3575f80fd5b505af11580156107d5573d5f803e3d5ffd5b5050604051633b4da69f60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018b90527f0000000000000000000000000000000000000000000000000000000000000000169250633b4da69f91506044015f604051808303815f87803b158015610860575f80fd5b505af1158015610872573d5f803e3d5ffd5b505050507f0cceaa4ec34688ca5ae62e4ade215985d2d08dffd7fdb3eb79768a5dc372e8b197505050505050505095945050505050565b60405163631c84a560e01b81526001600160a01b038681166004830152602482018690523360448301527f0000000000000000000000000000000000000000000000000000000000000000169063631c84a590606401602060405180830381865afa15801561091a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093e9190611224565b61099e5760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b7374616b654d69677261746f722f73656e6465722d6e6f742d61757460448201526a3432b216b7b63216bab93760a91b60648201526084016102e5565b60405163631c84a560e01b81526001600160a01b038481166004830152602482018490523360448301527f0000000000000000000000000000000000000000000000000000000000000000169063631c84a590606401602060405180830381865afa158015610a0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a339190611224565b610a935760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b7374616b654d69677261746f722f73656e6465722d6e6f742d61757460448201526a3432b216b732bb96bab93760a91b60648201526084016102e5565b604051636cf830c960e11b81526001600160a01b038681166004830152602482018690525f917f00000000000000000000000000000000000000000000000000000000000000009091169063d9f0619290604401602060405180830381865afa158015610b02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b269190611243565b6040516309092f9760e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201526001600160a01b0382811660248301529192505f9182917f000000000000000000000000000000000000000000000000000000000000000090911690632424be5c906044016040805180830381865afa158015610bb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdc919061125e565b915091505f815f03610daf57604051631c6eb67b60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631c6eb67b90610c3a908c908c90309089906004016111d1565b5f604051808303815f87803b158015610c51575f80fd5b505af1158015610c63573d5f803e3d5ffd5b50506040516355c4b02d60e11b8152306004820152602481018690527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063ab89605a91506044015f604051808303815f87803b158015610ccc575f80fd5b505af1158015610cde573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636c3dead488887f000000000000000000000000000000000000000000000000000000000000000087610d3f91906111fb565b6040516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152604482015261ffff881660648201526084015f604051808303815f87803b158015610d94575f80fd5b505af1158015610da6573d5f803e3d5ffd5b50505050610fbf565b604051636cb1c69b60e11b81527f000000000000000000000000000000000000000000000000000000000000000060048201525f9081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d9638d369060240160a060405180830381865afa158015610e35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e599190611280565b50935050925050805f14610ebf5760405162461bcd60e51b815260206004820152602760248201527f4c6f636b7374616b654d69677261746f722f6f6c642d696c6b2d6c696e652d6e6044820152666f742d7a65726f60c81b60648201526084016102e5565b6b033b2e3c9fd0803ce8000000610eeb610ed984876111fb565b6b033b2e3c9fd0803ce8000000611001565b610ef591906111fb565b604080516001600160a01b038e811660208301529181018d90528b82166060820152608081018b905260a0810188905261ffff8a1660c08201529194507f00000000000000000000000000000000000000000000000000000000000000001690633f03653f903090869060e0016040516020818303038152906040526040518463ffffffff1660e01b8152600401610f8f939291906112bc565b5f604051808303815f87803b158015610fa6575f80fd5b505af1158015610fb8573d5f803e3d5ffd5b5050505050505b85876001600160a01b0316898b6001600160a01b03168685604051610fee929190918252602082015260400190565b60405180910390a4505050505050505050565b5f825f0361100f575f611026565b8160018403816110215761102161113f565b046001015b9392505050565b6001600160a01b0381168114611041575f80fd5b50565b5f805f805f60808688031215611058575f80fd5b85356110638161102d565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561108d575f80fd5b818801915088601f8301126110a0575f80fd5b8135818111156110ae575f80fd5b8960208285010111156110bf575f80fd5b9699959850939650602001949392505050565b803561ffff811681146110e3575f80fd5b919050565b5f805f805f60a086880312156110fc575f80fd5b85356111078161102d565b945060208601359350604086013561111e8161102d565b925060608601359150611133608087016110d2565b90509295509295909350565b634e487b7160e01b5f52601260045260245ffd5b5f8261116d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f805f8060c08789031215611187575f80fd5b86356111928161102d565b95506020870135945060408701356111a98161102d565b935060608701359250608087013591506111c560a088016110d2565b90509295509295509295565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b808202811582820484141761121e57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215611234575f80fd5b81518015158114611026575f80fd5b5f60208284031215611253575f80fd5b81516110268161102d565b5f806040838503121561126f575f80fd5b505080516020909101519092909150565b5f805f805f60a08688031215611294575f80fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b60018060a01b03841681525f602084818401526060604084015283518060608501525f5b818110156112fc578581018301518582016080015282016112e0565b505f608082860101526080601f19601f8301168501019250505094935050505056fea2646970667358221220f163a8ff7ebd67c682033b2ff54dc5d3f94fef350304f009b2b6be002055b87b64736f6c634300081500330000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f12000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a3000000000000000000000000a1ea1ba18e88c381c724a75f23a130420c403f9a00000000000000000000000060744434d6339a6b27d73d9eda62b6f66a0a04fa
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100a6575f3560e01c80635ea8d4f31161006e5780635ea8d4f31461018457806381c44fcc14610199578063900e934d146101c0578063d336c82d146101e7578063e0d680a61461020e578063fa1e2e8614610235575f80fd5b806315cd07b6146100aa578063339f7f53146100ee57806336569e771461011557806342bf04b61461013c5780634988dbd71461015d575b5f80fd5b6100d17f000000000000000000000000a1ea1ba18e88c381c724a75f23a130420c403f9a81565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d17f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a381565b6100d17f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b81565b61014f61014a366004611044565b61025c565b6040519081526020016100e5565b61014f7f4c53452d4d4b522d41000000000000000000000000000000000000000000000081565b6101976101923660046110e8565b6108a9565b005b61014f7f0000000000000000000000000000000000000000000000000000000000005dc081565b61014f7f4c534556322d534b592d4100000000000000000000000000000000000000000081565b6100d17f00000000000000000000000060744434d6339a6b27d73d9eda62b6f66a0a04fa81565b6100d17f0000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f1281565b6100d17f0000000000000000000000003c0f895007ca717aa01c8693e59df1e8c3777feb81565b5f336001600160a01b037f00000000000000000000000060744434d6339a6b27d73d9eda62b6f66a0a04fa1614801561029d57506001600160a01b03861630145b6102ee5760405162461bcd60e51b815260206004820152601e60248201527f4c6f636b7374616b654d69677261746f722f77726f6e672d6f726967696e000060448201526064015b60405180910390fd5b5f6103056b033b2e3c9fd0803ce800000087611153565b90505f8080808080610319898b018b611172565b60405163ef693bed60e01b8152306004820152602481018e9052959b509399509197509550935091506001600160a01b037f0000000000000000000000003c0f895007ca717aa01c8693e59df1e8c3777feb169063ef693bed906044015f604051808303815f87803b15801561038d575f80fd5b505af115801561039f573d5f803e3d5ffd5b50506040516336eda2b360e11b81526001600160a01b038981166004830152602482018990527f0000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f12169250636ddb456691506044015f604051808303815f87803b15801561040a575f80fd5b505af115801561041c573d5f803e3d5ffd5b5050604051631c6eb67b60e01b81526001600160a01b037f0000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f12169250631c6eb67b91506104729089908990309088906004016111d1565b5f604051808303815f87803b158015610489575f80fd5b505af115801561049b573d5f803e3d5ffd5b50506040516355c4b02d60e11b8152306004820152602481018590527f000000000000000000000000a1ea1ba18e88c381c724a75f23a130420c403f9a6001600160a01b0316925063ab89605a91506044015f604051808303815f87803b158015610504575f80fd5b505af1158015610516573d5f803e3d5ffd5b505050507f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a36001600160a01b0316636c3dead485857f0000000000000000000000000000000000000000000000000000000000005dc08661057791906111fb565b6040516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152604482015261ffff841660648201526084015f604051808303815f87803b1580156105cc575f80fd5b505af11580156105de573d5f803e3d5ffd5b505050507f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b0316631a0b287e7f4c534556322d534b592d41000000000000000000000000000000000000000000722cd76fe086b93ce2f768a00b22a000000000006303473bc061065591906111fb565b6040516001600160e01b031960e085901b1681526004810192909252636c696e6560e01b602483015260448201526064015f604051808303815f87803b15801561069d575f80fd5b505af11580156106af573d5f803e3d5ffd5b50506040516307abdf2560e41b81526001600160a01b037f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a3169250637abdf2509150610705908790879030908d906004016111d1565b5f604051808303815f87803b15801561071c575f80fd5b505af115801561072e573d5f803e3d5ffd5b5050604051630d05943f60e11b81527f4c534556322d534b592d410000000000000000000000000000000000000000006004820152636c696e6560e01b60248201525f60448201527f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b6001600160a01b03169250631a0b287e91506064015f604051808303815f87803b1580156107c3575f80fd5b505af11580156107d5573d5f803e3d5ffd5b5050604051633b4da69f60e01b81526001600160a01b037f00000000000000000000000060744434d6339a6b27d73d9eda62b6f66a0a04fa81166004830152602482018b90527f0000000000000000000000003c0f895007ca717aa01c8693e59df1e8c3777feb169250633b4da69f91506044015f604051808303815f87803b158015610860575f80fd5b505af1158015610872573d5f803e3d5ffd5b505050507f0cceaa4ec34688ca5ae62e4ade215985d2d08dffd7fdb3eb79768a5dc372e8b197505050505050505095945050505050565b60405163631c84a560e01b81526001600160a01b038681166004830152602482018690523360448301527f0000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f12169063631c84a590606401602060405180830381865afa15801561091a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093e9190611224565b61099e5760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b7374616b654d69677261746f722f73656e6465722d6e6f742d61757460448201526a3432b216b7b63216bab93760a91b60648201526084016102e5565b60405163631c84a560e01b81526001600160a01b038481166004830152602482018490523360448301527f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a3169063631c84a590606401602060405180830381865afa158015610a0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a339190611224565b610a935760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b7374616b654d69677261746f722f73656e6465722d6e6f742d61757460448201526a3432b216b732bb96bab93760a91b60648201526084016102e5565b604051636cf830c960e11b81526001600160a01b038681166004830152602482018690525f917f0000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f129091169063d9f0619290604401602060405180830381865afa158015610b02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b269190611243565b6040516309092f9760e21b81527f4c53452d4d4b522d41000000000000000000000000000000000000000000000060048201526001600160a01b0382811660248301529192505f9182917f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b90911690632424be5c906044016040805180830381865afa158015610bb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdc919061125e565b915091505f815f03610daf57604051631c6eb67b60e01b81526001600160a01b037f0000000000000000000000002b16c07d5fd5cc701a0a871eae2aad6da5fc8f121690631c6eb67b90610c3a908c908c90309089906004016111d1565b5f604051808303815f87803b158015610c51575f80fd5b505af1158015610c63573d5f803e3d5ffd5b50506040516355c4b02d60e11b8152306004820152602481018690527f000000000000000000000000a1ea1ba18e88c381c724a75f23a130420c403f9a6001600160a01b0316925063ab89605a91506044015f604051808303815f87803b158015610ccc575f80fd5b505af1158015610cde573d5f803e3d5ffd5b505050507f000000000000000000000000ce01c90de7fd1bcfa39e237fe6d8d9f569e8a6a36001600160a01b0316636c3dead488887f0000000000000000000000000000000000000000000000000000000000005dc087610d3f91906111fb565b6040516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152604482015261ffff881660648201526084015f604051808303815f87803b158015610d94575f80fd5b505af1158015610da6573d5f803e3d5ffd5b50505050610fbf565b604051636cb1c69b60e11b81527f4c53452d4d4b522d41000000000000000000000000000000000000000000000060048201525f9081906001600160a01b037f00000000000000000000000035d1b3f3d7966a1dfe207aa4514c12a259a0492b169063d9638d369060240160a060405180830381865afa158015610e35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e599190611280565b50935050925050805f14610ebf5760405162461bcd60e51b815260206004820152602760248201527f4c6f636b7374616b654d69677261746f722f6f6c642d696c6b2d6c696e652d6e6044820152666f742d7a65726f60c81b60648201526084016102e5565b6b033b2e3c9fd0803ce8000000610eeb610ed984876111fb565b6b033b2e3c9fd0803ce8000000611001565b610ef591906111fb565b604080516001600160a01b038e811660208301529181018d90528b82166060820152608081018b905260a0810188905261ffff8a1660c08201529194507f00000000000000000000000060744434d6339a6b27d73d9eda62b6f66a0a04fa1690633f03653f903090869060e0016040516020818303038152906040526040518463ffffffff1660e01b8152600401610f8f939291906112bc565b5f604051808303815f87803b158015610fa6575f80fd5b505af1158015610fb8573d5f803e3d5ffd5b5050505050505b85876001600160a01b0316898b6001600160a01b03168685604051610fee929190918252602082015260400190565b60405180910390a4505050505050505050565b5f825f0361100f575f611026565b8160018403816110215761102161113f565b046001015b9392505050565b6001600160a01b0381168114611041575f80fd5b50565b5f805f805f60808688031215611058575f80fd5b85356110638161102d565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561108d575f80fd5b818801915088601f8301126110a0575f80fd5b8135818111156110ae575f80fd5b8960208285010111156110bf575f80fd5b9699959850939650602001949392505050565b803561ffff811681146110e3575f80fd5b919050565b5f805f805f60a086880312156110fc575f80fd5b85356111078161102d565b945060208601359350604086013561111e8161102d565b925060608601359150611133608087016110d2565b90509295509295909350565b634e487b7160e01b5f52601260045260245ffd5b5f8261116d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f805f8060c08789031215611187575f80fd5b86356111928161102d565b95506020870135945060408701356111a98161102d565b935060608701359250608087013591506111c560a088016110d2565b90509295509295509295565b6001600160a01b039485168152602081019390935292166040820152606081019190915260800190565b808202811582820484141761121e57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215611234575f80fd5b81518015158114611026575f80fd5b5f60208284031215611253575f80fd5b81516110268161102d565b5f806040838503121561126f575f80fd5b505080516020909101519092909150565b5f805f805f60a08688031215611294575f80fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b60018060a01b03841681525f602084818401526060604084015283518060608501525f5b818110156112fc578581018301518582016080015282016112e0565b505f608082860101526080601f19601f8301168501019250505094935050505056fea2646970667358221220f163a8ff7ebd67c682033b2ff54dc5d3f94fef350304f009b2b6be002055b87b64736f6c63430008150033
Deployed Bytecode Sourcemap
2291:4335:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2455:43;;;;;;;;-1:-1:-1;;;;;196:32:1;;;178:51;;166:2;151:18;2455:43:0;;;;;;;;2403:46;;;;;2552:40;;;;;5503:1121;;;;;;:::i;:::-;;:::i;:::-;;;1847:25:1;;;1835:2;1820:18;5503:1121:0;1701:177:1;2649:43:0;;;;;4165:1332;;;;;;:::i;:::-;;:::i;:::-;;2747:47;;;;;2698:43;;;;;2504:42;;;;;2351:46;;;;;2598:45;;;;;5503:1121;5613:7;5640:10;-1:-1:-1;;;;;5662:5:0;5640:28;;:58;;;;-1:-1:-1;;;;;;5672:26:0;;5693:4;5672:26;5640:58;5632:101;;;;-1:-1:-1;;;5632:101:0;;3487:2:1;5632:101:0;;;3469:21:1;3526:2;3506:18;;;3499:30;3565:32;3545:18;;;3538:60;3615:18;;5632:101:0;;;;;;;;;5744:14;5761:12;2858:6;5761;:12;:::i;:::-;5744:29;-1:-1:-1;5784:16:0;;;;;;5883:71;;;;5894:4;5883:71;:::i;:::-;5964:36;;-1:-1:-1;;;5964:36:0;;5986:4;5964:36;;;4860:51:1;4927:18;;;4920:34;;;5783:171:0;;-1:-1:-1;5783:171:0;;-1:-1:-1;5783:171:0;;-1:-1:-1;5783:171:0;-1:-1:-1;5783:171:0;-1:-1:-1;5783:171:0;-1:-1:-1;;;;;;5964:8:0;:13;;;;4833:18:1;;5964:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6010:37:0;;-1:-1:-1;;;6010:37:0;;-1:-1:-1;;;;;4878:32:1;;;6010:37:0;;;4860:51:1;4927:18;;;4920:34;;;6010:9:0;:17;;-1:-1:-1;6010:17:0;;-1:-1:-1;4833:18:1;;6010:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6057:59:0;;-1:-1:-1;;;6057:59:0;;-1:-1:-1;;;;;6057:9:0;:19;;-1:-1:-1;6057:19:0;;-1:-1:-1;6057:59:0;;6077:8;;6087;;6105:4;;6112:3;;6057:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6126:35:0;;-1:-1:-1;;;6126:35:0;;6150:4;6126:35;;;4860:51:1;4927:18;;;4920:34;;;6126:6:0;-1:-1:-1;;;;;6126:15:0;;-1:-1:-1;6126:15:0;;-1:-1:-1;4833:18:1;;6126:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6171:9;-1:-1:-1;;;;;6171:14:0;;6186:8;6196;6212:10;6206:3;:16;;;;:::i;:::-;6171:57;;-1:-1:-1;;;;;;6171:57:0;;;;;;;-1:-1:-1;;;;;5934:32:1;;;6171:57:0;;;5916:51:1;5983:18;;;5976:34;;;;6026:18;;;6019:34;6101:6;6089:19;;6069:18;;;6062:47;5888:19;;6171:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6238:3;-1:-1:-1;;;;;6238:8:0;;6247:6;2901;6263:10;:16;;;;:::i;:::-;6238:42;;-1:-1:-1;;;;;;6238:42:0;;;;;;;;;;6385:25:1;;;;-1:-1:-1;;;6426:18:1;;;6419:34;6469:18;;;6462:34;6358:18;;6238:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6408:57:0;;-1:-1:-1;;;6408:57:0;;-1:-1:-1;;;;;6408:9:0;:14;;-1:-1:-1;6408:14:0;;-1:-1:-1;6408:57:0;;6423:8;;6433;;6451:4;;6458:6;;6408:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6475:27:0;;-1:-1:-1;;;6475:27:0;;6484:6;6475:27;;;6385:25:1;-1:-1:-1;;;6426:18:1;;;6419:34;6500:1:0;6469:18:1;;;6462:34;6475:3:0;-1:-1:-1;;;;;6475:8:0;;-1:-1:-1;6475:8:0;;-1:-1:-1;6358:18:1;;6475:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6512:37:0;;-1:-1:-1;;;6512:37:0;;-1:-1:-1;;;;;6534:5:0;4878:32:1;;6512:37:0;;;4860:51:1;4927:18;;;4920:34;;;6512:8:0;:13;;-1:-1:-1;6512:13:0;;-1:-1:-1;4833:18:1;;6512:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6567:50;6560:57;;;;;;;;;5503:1121;;;;;;;:::o;4165:1332::-;4293:51;;-1:-1:-1;;;4293:51:0;;-1:-1:-1;;;;;7160:15:1;;;4293:51:0;;;7142:34:1;7192:18;;;7185:34;;;4333:10:0;7235:18:1;;;7228:43;4293:9:0;:19;;;;7077:18:1;;4293:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4285:107;;;;-1:-1:-1;;;4285:107:0;;7766:2:1;4285:107:0;;;7748:21:1;7805:2;7785:18;;;7778:30;7844:34;7824:18;;;7817:62;-1:-1:-1;;;7895:18:1;;;7888:41;7946:19;;4285:107:0;7564:407:1;4285:107:0;4410:51;;-1:-1:-1;;;4410:51:0;;-1:-1:-1;;;;;7160:15:1;;;4410:51:0;;;7142:34:1;7192:18;;;7185:34;;;4450:10:0;7235:18:1;;;7228:43;4410:9:0;:19;;;;7077:18:1;;4410:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4402:107;;;;-1:-1:-1;;;4402:107:0;;8178:2:1;4402:107:0;;;8160:21:1;8217:2;8197:18;;;8190:30;8256:34;8236:18;;;8229:62;-1:-1:-1;;;8307:18:1;;;8300:41;8358:19;;4402:107:0;7976:407:1;4402:107:0;4537:39;;-1:-1:-1;;;4537:39:0;;-1:-1:-1;;;;;4878:32:1;;;4537:39:0;;;4860:51:1;4927:18;;;4920:34;;;4520:14:0;;4537:9;:19;;;;;;4833:18:1;;4537:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4615:24;;-1:-1:-1;;;4615:24:0;;4624:6;4615:24;;;8818:25:1;-1:-1:-1;;;;;8879:32:1;;;8859:18;;;8852:60;8879:32;;-1:-1:-1;;;;;4615:3:0;:8;;;;;;8791:18:1;;4615:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4586:53;;;;4649:12;4675:3;4682:1;4675:8;4671:746;;4699:59;;-1:-1:-1;;;4699:59:0;;-1:-1:-1;;;;;4699:9:0;:19;;;;:59;;4719:8;;4729;;4747:4;;4754:3;;4699:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4772:35:0;;-1:-1:-1;;;4772:35:0;;4796:4;4772:35;;;4860:51:1;4927:18;;;4920:34;;;4772:6:0;-1:-1:-1;;;;;4772:15:0;;-1:-1:-1;4772:15:0;;-1:-1:-1;4833:18:1;;4772:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4821:9;-1:-1:-1;;;;;4821:14:0;;4836:8;4846;4862:10;4856:3;:16;;;;:::i;:::-;4821:57;;-1:-1:-1;;;;;;4821:57:0;;;;;;;-1:-1:-1;;;;;5934:32:1;;;4821:57:0;;;5916:51:1;5983:18;;;5976:34;;;;6026:18;;;6019:34;6101:6;6089:19;;6069:18;;;6062:47;5888:19;;4821:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4671:746;;;5135:16;;-1:-1:-1;;;5135:16:0;;5144:6;5135:16;;;1847:25:1;5091:18:0;;;;-1:-1:-1;;;;;5135:3:0;:8;;;;1820:18:1;;5135:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5088:63;;;;;;;5173:10;5187:1;5173:15;5165:67;;;;-1:-1:-1;;;5165:67:0;;9810:2:1;5165:67:0;;;9792:21:1;9849:2;9829:18;;;9822:30;9888:34;9868:18;;;9861:62;-1:-1:-1;;;9939:18:1;;;9932:37;9986:19;;5165:67:0;9608:403:1;5165:67:0;2858:6;5253:29;5260:16;5266:10;5260:3;:16;:::i;:::-;2858:6;5253;:29::i;:::-;:35;;;;:::i;:::-;5345:60;;;-1:-1:-1;;;;;10357:15:1;;;5345:60:0;;;10339:34:1;10389:18;;;10382:34;;;10452:15;;;10432:18;;;10425:43;10484:18;;;10477:34;;;10527:19;;;10520:35;;;10604:6;10592:19;;10571;;;10564:48;5246:42:0;;-1:-1:-1;5302:5:0;:21;;;;5332:4;;5246:42;;10273:19:1;;5345:60:0;;;;;;;;;;;;5302:104;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4895:522;;4671:746;5470:8;5460;-1:-1:-1;;;;;5432:58:0;5450:8;5440;-1:-1:-1;;;;;5432:58:0;5480:3;5485:4;5432:58;;;;;;11519:25:1;;;11575:2;11560:18;;11553:34;11507:2;11492:18;;11345:248;5432:58:0;;;;;;;;4275:1222;;;;4165:1332;;;;;:::o;2935:241::-;2996:9;3129:1;3134;3129:6;:30;;3158:1;3129:30;;;3149:1;3144;3140;:5;3139:11;;;;;:::i;:::-;;3154:1;3138:17;3129:30;3125:34;2935:241;-1:-1:-1;;;2935:241:0:o;697:131:1:-;-1:-1:-1;;;;;772:31:1;;762:42;;752:70;;818:1;815;808:12;752:70;697:131;:::o;833:863::-;930:6;938;946;954;962;1015:3;1003:9;994:7;990:23;986:33;983:53;;;1032:1;1029;1022:12;983:53;1071:9;1058:23;1090:31;1115:5;1090:31;:::i;:::-;1140:5;-1:-1:-1;1192:2:1;1177:18;;1164:32;;-1:-1:-1;1243:2:1;1228:18;;1215:32;;-1:-1:-1;1298:2:1;1283:18;;1270:32;1321:18;1351:14;;;1348:34;;;1378:1;1375;1368:12;1348:34;1416:6;1405:9;1401:22;1391:32;;1461:7;1454:4;1450:2;1446:13;1442:27;1432:55;;1483:1;1480;1473:12;1432:55;1523:2;1510:16;1549:2;1541:6;1538:14;1535:34;;;1565:1;1562;1555:12;1535:34;1610:7;1605:2;1596:6;1592:2;1588:15;1584:24;1581:37;1578:57;;;1631:1;1628;1621:12;1578:57;833:863;;;;-1:-1:-1;833:863:1;;-1:-1:-1;1662:2:1;1654:11;;1684:6;833:863;-1:-1:-1;;;833:863:1:o;1883:159::-;1950:20;;2010:6;1999:18;;1989:29;;1979:57;;2032:1;2029;2022:12;1979:57;1883:159;;;:::o;2047:598::-;2141:6;2149;2157;2165;2173;2226:3;2214:9;2205:7;2201:23;2197:33;2194:53;;;2243:1;2240;2233:12;2194:53;2282:9;2269:23;2301:31;2326:5;2301:31;:::i;:::-;2351:5;-1:-1:-1;2403:2:1;2388:18;;2375:32;;-1:-1:-1;2459:2:1;2444:18;;2431:32;2472:33;2431:32;2472:33;:::i;:::-;2524:7;-1:-1:-1;2578:2:1;2563:18;;2550:32;;-1:-1:-1;2601:38:1;2634:3;2619:19;;2601:38;:::i;:::-;2591:48;;2047:598;;;;;;;;:::o;3644:127::-;3705:10;3700:3;3696:20;3693:1;3686:31;3736:4;3733:1;3726:15;3760:4;3757:1;3750:15;3776:217;3816:1;3842;3832:132;;3886:10;3881:3;3877:20;3874:1;3867:31;3921:4;3918:1;3911:15;3949:4;3946:1;3939:15;3832:132;-1:-1:-1;3978:9:1;;3776:217::o;3998:683::-;4117:6;4125;4133;4141;4149;4157;4210:3;4198:9;4189:7;4185:23;4181:33;4178:53;;;4227:1;4224;4217:12;4178:53;4266:9;4253:23;4285:31;4310:5;4285:31;:::i;:::-;4335:5;-1:-1:-1;4387:2:1;4372:18;;4359:32;;-1:-1:-1;4443:2:1;4428:18;;4415:32;4456:33;4415:32;4456:33;:::i;:::-;4508:7;-1:-1:-1;4562:2:1;4547:18;;4534:32;;-1:-1:-1;4613:3:1;4598:19;;4585:33;;-1:-1:-1;4637:38:1;4670:3;4655:19;;4637:38;:::i;:::-;4627:48;;3998:683;;;;;;;;:::o;4965:447::-;-1:-1:-1;;;;;5252:15:1;;;5234:34;;5299:2;5284:18;;5277:34;;;;5347:15;;5342:2;5327:18;;5320:43;5394:2;5379:18;;5372:34;;;;5183:3;5168:19;;4965:447::o;5417:265::-;5490:9;;;5521;;5538:15;;;5532:22;;5518:37;5508:168;;5598:10;5593:3;5589:20;5586:1;5579:31;5633:4;5630:1;5623:15;5661:4;5658:1;5651:15;5508:168;5417:265;;;;:::o;7282:277::-;7349:6;7402:2;7390:9;7381:7;7377:23;7373:32;7370:52;;;7418:1;7415;7408:12;7370:52;7450:9;7444:16;7503:5;7496:13;7489:21;7482:5;7479:32;7469:60;;7525:1;7522;7515:12;8388:251;8458:6;8511:2;8499:9;8490:7;8486:23;8482:32;8479:52;;;8527:1;8524;8517:12;8479:52;8559:9;8553:16;8578:31;8603:5;8578:31;:::i;8923:245::-;9002:6;9010;9063:2;9051:9;9042:7;9038:23;9034:32;9031:52;;;9079:1;9076;9069:12;9031:52;-1:-1:-1;;9102:16:1;;9158:2;9143:18;;;9137:25;9102:16;;9137:25;;-1:-1:-1;8923:245:1:o;9173:430::-;9279:6;9287;9295;9303;9311;9364:3;9352:9;9343:7;9339:23;9335:33;9332:53;;;9381:1;9378;9371:12;9332:53;-1:-1:-1;;9404:16:1;;9460:2;9445:18;;9439:25;9504:2;9489:18;;9483:25;9548:2;9533:18;;9527:25;9592:3;9577:19;;;9571:26;9404:16;;9439:25;;-1:-1:-1;9483:25:1;9527;-1:-1:-1;9571:26:1;;-1:-1:-1;9173:430:1;-1:-1:-1;9173:430:1:o;10623:717::-;10855:1;10851;10846:3;10842:11;10838:19;10830:6;10826:32;10815:9;10808:51;10789:4;10878:2;10916:6;10911:2;10900:9;10896:18;10889:34;10959:2;10954;10943:9;10939:18;10932:30;10991:6;10985:13;11034:6;11029:2;11018:9;11014:18;11007:34;11059:1;11069:141;11083:6;11080:1;11077:13;11069:141;;;11179:14;;;11175:23;;11169:30;11144:17;;;11163:3;11140:27;11133:67;11098:10;;11069:141;;;11073:3;11260:1;11254:3;11245:6;11234:9;11230:22;11226:32;11219:43;11330:3;11323:2;11319:7;11314:2;11306:6;11302:15;11298:29;11287:9;11283:45;11279:55;11271:63;;;;10623:717;;;;;;:::o
Swarm Source
ipfs://f163a8ff7ebd67c682033b2ff54dc5d3f94fef350304f009b2b6be002055b87b
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.