Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 19,436 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Update Collatera... | 20255129 | 1 hr ago | IN | 0 ETH | 0.0004653 | ||||
Update Collatera... | 20254730 | 2 hrs ago | IN | 0 ETH | 0.00033867 | ||||
Update Collatera... | 20254334 | 3 hrs ago | IN | 0 ETH | 0.00032428 | ||||
Update Collatera... | 20253938 | 5 hrs ago | IN | 0 ETH | 0.00032567 | ||||
Update Collatera... | 20253538 | 6 hrs ago | IN | 0 ETH | 0.0003352 | ||||
Update Collatera... | 20253142 | 7 hrs ago | IN | 0 ETH | 0.00032236 | ||||
Update Collatera... | 20252743 | 9 hrs ago | IN | 0 ETH | 0.00035397 | ||||
Update Collatera... | 20252344 | 10 hrs ago | IN | 0 ETH | 0.00033139 | ||||
Update Collatera... | 20251947 | 11 hrs ago | IN | 0 ETH | 0.0003134 | ||||
Update Collatera... | 20251550 | 13 hrs ago | IN | 0 ETH | 0.0003087 | ||||
Update Collatera... | 20251153 | 14 hrs ago | IN | 0 ETH | 0.00030467 | ||||
Update Collatera... | 20250753 | 15 hrs ago | IN | 0 ETH | 0.00032009 | ||||
Update Collatera... | 20250353 | 17 hrs ago | IN | 0 ETH | 0.00031878 | ||||
Update Collatera... | 20249954 | 18 hrs ago | IN | 0 ETH | 0.00032456 | ||||
Update Collatera... | 20249558 | 19 hrs ago | IN | 0 ETH | 0.00034919 | ||||
Update Collatera... | 20249160 | 21 hrs ago | IN | 0 ETH | 0.00036892 | ||||
Update Collatera... | 20248761 | 22 hrs ago | IN | 0 ETH | 0.00063316 | ||||
Update Collatera... | 20248361 | 23 hrs ago | IN | 0 ETH | 0.00049709 | ||||
Update Collatera... | 20247962 | 25 hrs ago | IN | 0 ETH | 0.00050279 | ||||
Update Collatera... | 20247562 | 26 hrs ago | IN | 0 ETH | 0.00039244 | ||||
Update Collatera... | 20247165 | 27 hrs ago | IN | 0 ETH | 0.00037989 | ||||
Update Collatera... | 20246769 | 29 hrs ago | IN | 0 ETH | 0.00036905 | ||||
Update Collatera... | 20246375 | 30 hrs ago | IN | 0 ETH | 0.00037947 | ||||
Update Collatera... | 20245976 | 31 hrs ago | IN | 0 ETH | 0.00036052 | ||||
Update Collatera... | 20245580 | 33 hrs ago | IN | 0 ETH | 0.00033065 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
11848422 | 1240 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
OracleRelayer
Compiler Version
v0.6.7+commit.b8d736ae
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-14 */ /** *Submitted for verification at Etherscan.io on 2021-02-02 */ /// OracleRelayer.sol // 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.6.7; abstract contract SAFEEngineLike { function modifyParameters(bytes32, bytes32, uint256) virtual external; } abstract contract OracleLike { function getResultWithValidity() virtual public view returns (uint256, bool); } contract OracleRelayer { // --- Auth --- mapping (address => uint256) public authorizedAccounts; /** * @notice Add auth to an account * @param account Account to add auth to */ function addAuthorization(address account) external isAuthorized { authorizedAccounts[account] = 1; emit AddAuthorization(account); } /** * @notice Remove auth from an account * @param account Account to remove auth from */ function removeAuthorization(address account) external isAuthorized { authorizedAccounts[account] = 0; emit RemoveAuthorization(account); } /** * @notice Checks whether msg.sender can call an authed function **/ modifier isAuthorized { require(authorizedAccounts[msg.sender] == 1, "OracleRelayer/account-not-authorized"); _; } // --- Data --- struct CollateralType { // Usually an oracle security module that enforces delays to fresh price feeds OracleLike orcl; // CRatio used to compute the 'safePrice' - the price used when generating debt in SAFEEngine uint256 safetyCRatio; // CRatio used to compute the 'liquidationPrice' - the price used when liquidating SAFEs uint256 liquidationCRatio; } // Data about each collateral type mapping (bytes32 => CollateralType) public collateralTypes; SAFEEngineLike public safeEngine; // Whether this contract is enabled uint256 public contractEnabled; // Virtual redemption price (not the most updated value) uint256 internal _redemptionPrice; // [ray] // The force that changes the system users' incentives by changing the redemption price uint256 public redemptionRate; // [ray] // Last time when the redemption price was changed uint256 public redemptionPriceUpdateTime; // [unix epoch time] // Upper bound for the per-second redemption rate uint256 public redemptionRateUpperBound; // [ray] // Lower bound for the per-second redemption rate uint256 public redemptionRateLowerBound; // [ray] // --- Events --- event AddAuthorization(address account); event RemoveAuthorization(address account); event DisableContract(); event ModifyParameters( bytes32 collateralType, bytes32 parameter, address addr ); event ModifyParameters(bytes32 parameter, uint256 data); event ModifyParameters( bytes32 collateralType, bytes32 parameter, uint256 data ); event UpdateRedemptionPrice(uint256 redemptionPrice); event UpdateCollateralPrice( bytes32 indexed collateralType, uint256 priceFeedValue, uint256 safetyPrice, uint256 liquidationPrice ); // --- Init --- constructor(address safeEngine_) public { authorizedAccounts[msg.sender] = 1; safeEngine = SAFEEngineLike(safeEngine_); _redemptionPrice = RAY; redemptionRate = RAY; redemptionPriceUpdateTime = now; redemptionRateUpperBound = RAY * WAD; redemptionRateLowerBound = 1; contractEnabled = 1; emit AddAuthorization(msg.sender); } // --- Math --- uint256 constant WAD = 10 ** 18; uint256 constant RAY = 10 ** 27; function subtract(uint256 x, uint256 y) internal pure returns (uint256 z) { z = x - y; require(z <= x, "OracleRelayer/sub-underflow"); } function multiply(uint256 x, uint256 y) internal pure returns (uint256 z) { require(y == 0 || (z = x * y) / y == x, "OracleRelayer/mul-overflow"); } function rmultiply(uint256 x, uint256 y) internal pure returns (uint256 z) { // always rounds down z = multiply(x, y) / RAY; } function rdivide(uint256 x, uint256 y) internal pure returns (uint256 z) { require(y > 0, "OracleRelayer/rdiv-by-zero"); z = multiply(x, RAY) / y; } function rpower(uint256 x, uint256 n, uint256 base) internal pure returns (uint256 z) { assembly { switch x case 0 {switch n case 0 {z := base} default {z := 0}} default { switch mod(n, 2) case 0 { z := base } default { z := x } let half := div(base, 2) // for rounding. for { n := div(n, 2) } n { n := div(n,2) } { let xx := mul(x, x) if iszero(eq(div(xx, x), x)) { revert(0,0) } let xxRound := add(xx, half) if lt(xxRound, xx) { revert(0,0) } x := div(xxRound, base) if mod(n,2) { let zx := mul(z, x) if and(iszero(iszero(x)), iszero(eq(div(zx, x), z))) { revert(0,0) } let zxRound := add(zx, half) if lt(zxRound, zx) { revert(0,0) } z := div(zxRound, base) } } } } } // --- Administration --- /** * @notice Modify oracle price feed addresses * @param collateralType Collateral whose oracle we change * @param parameter Name of the parameter * @param addr New oracle address */ function modifyParameters( bytes32 collateralType, bytes32 parameter, address addr ) external isAuthorized { require(contractEnabled == 1, "OracleRelayer/contract-not-enabled"); if (parameter == "orcl") collateralTypes[collateralType].orcl = OracleLike(addr); else revert("OracleRelayer/modify-unrecognized-param"); emit ModifyParameters( collateralType, parameter, addr ); } /** * @notice Modify redemption related parameters * @param parameter Name of the parameter * @param data New param value */ function modifyParameters(bytes32 parameter, uint256 data) external isAuthorized { require(contractEnabled == 1, "OracleRelayer/contract-not-enabled"); require(data > 0, "OracleRelayer/null-data"); if (parameter == "redemptionPrice") { _redemptionPrice = data; } else if (parameter == "redemptionRate") { require(now == redemptionPriceUpdateTime, "OracleRelayer/redemption-price-not-updated"); uint256 adjustedRate = data; if (data > redemptionRateUpperBound) { adjustedRate = redemptionRateUpperBound; } else if (data < redemptionRateLowerBound) { adjustedRate = redemptionRateLowerBound; } redemptionRate = adjustedRate; } else if (parameter == "redemptionRateUpperBound") { require(data > RAY, "OracleRelayer/invalid-redemption-rate-upper-bound"); redemptionRateUpperBound = data; } else if (parameter == "redemptionRateLowerBound") { require(data < RAY, "OracleRelayer/invalid-redemption-rate-lower-bound"); redemptionRateLowerBound = data; } else revert("OracleRelayer/modify-unrecognized-param"); emit ModifyParameters( parameter, data ); } /** * @notice Modify CRatio related parameters * @param collateralType Collateral whose parameters we change * @param parameter Name of the parameter * @param data New param value */ function modifyParameters( bytes32 collateralType, bytes32 parameter, uint256 data ) external isAuthorized { require(contractEnabled == 1, "OracleRelayer/contract-not-enabled"); if (parameter == "safetyCRatio") { require(data >= collateralTypes[collateralType].liquidationCRatio, "OracleRelayer/safety-lower-than-liquidation-cratio"); collateralTypes[collateralType].safetyCRatio = data; } else if (parameter == "liquidationCRatio") { require(data <= collateralTypes[collateralType].safetyCRatio, "OracleRelayer/safety-lower-than-liquidation-cratio"); collateralTypes[collateralType].liquidationCRatio = data; } else revert("OracleRelayer/modify-unrecognized-param"); emit ModifyParameters( collateralType, parameter, data ); } // --- Redemption Price Update --- /** * @notice Update the redemption price according to the current redemption rate */ function updateRedemptionPrice() internal returns (uint256) { // Update redemption price _redemptionPrice = rmultiply( rpower(redemptionRate, subtract(now, redemptionPriceUpdateTime), RAY), _redemptionPrice ); if (_redemptionPrice == 0) _redemptionPrice = 1; redemptionPriceUpdateTime = now; emit UpdateRedemptionPrice(_redemptionPrice); // Return updated redemption price return _redemptionPrice; } /** * @notice Fetch the latest redemption price by first updating it */ function redemptionPrice() public returns (uint256) { if (now > redemptionPriceUpdateTime) return updateRedemptionPrice(); return _redemptionPrice; } // --- Update value --- /** * @notice Update the collateral price inside the system (inside SAFEEngine) * @param collateralType The collateral we want to update prices (safety and liquidation prices) for */ function updateCollateralPrice(bytes32 collateralType) external { (uint256 priceFeedValue, bool hasValidValue) = collateralTypes[collateralType].orcl.getResultWithValidity(); uint256 redemptionPrice_ = redemptionPrice(); uint256 safetyPrice_ = hasValidValue ? rdivide(rdivide(multiply(uint256(priceFeedValue), 10 ** 9), redemptionPrice_), collateralTypes[collateralType].safetyCRatio) : 0; uint256 liquidationPrice_ = hasValidValue ? rdivide(rdivide(multiply(uint256(priceFeedValue), 10 ** 9), redemptionPrice_), collateralTypes[collateralType].liquidationCRatio) : 0; safeEngine.modifyParameters(collateralType, "safetyPrice", safetyPrice_); safeEngine.modifyParameters(collateralType, "liquidationPrice", liquidationPrice_); emit UpdateCollateralPrice(collateralType, priceFeedValue, safetyPrice_, liquidationPrice_); } /** * @notice Disable this contract (normally called by GlobalSettlement) */ function disableContract() external isAuthorized { contractEnabled = 0; redemptionRate = RAY; emit DisableContract(); } /** * @notice Fetch the safety CRatio of a specific collateral type * @param collateralType The collateral type we want the safety CRatio for */ function safetyCRatio(bytes32 collateralType) public view returns (uint256) { return collateralTypes[collateralType].safetyCRatio; } /** * @notice Fetch the liquidation CRatio of a specific collateral type * @param collateralType The collateral type we want the liquidation CRatio for */ function liquidationCRatio(bytes32 collateralType) public view returns (uint256) { return collateralTypes[collateralType].liquidationCRatio; } /** * @notice Fetch the oracle price feed of a specific collateral type * @param collateralType The collateral type we want the oracle price feed for */ function orcl(bytes32 collateralType) public view returns (address) { return address(collateralTypes[collateralType].orcl); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"safeEngine_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"AddAuthorization","type":"event"},{"anonymous":false,"inputs":[],"name":"DisableContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"RemoveAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"priceFeedValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"safetyPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidationPrice","type":"uint256"}],"name":"UpdateCollateralPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"redemptionPrice","type":"uint256"}],"name":"UpdateRedemptionPrice","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorizedAccounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"collateralTypes","outputs":[{"internalType":"contract OracleLike","name":"orcl","type":"address"},{"internalType":"uint256","name":"safetyCRatio","type":"uint256"},{"internalType":"uint256","name":"liquidationCRatio","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractEnabled","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"}],"name":"liquidationCRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"address","name":"addr","type":"address"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"}],"name":"orcl","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redemptionPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"redemptionPriceUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redemptionRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redemptionRateLowerBound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redemptionRateUpperBound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"safeEngine","outputs":[{"internalType":"contract SAFEEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"}],"name":"safetyCRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"}],"name":"updateCollateralPrice","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516113083803806113088339818101604052602081101561003357600080fd5b50513360008181526020818152604091829020600190819055600280546001600160a01b0319166001600160a01b0387161790556b033b2e3c9fd0803ce8000000600481905560055542600655722cd76fe086b93ce2f768a00b22a000000000006007556008819055600355815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150611228806100e06000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806375502d3c116100ad57806394f3f81d1161007157806394f3f81d14610280578063c5b748c0146102a6578063d07900bb146102ae578063d4b9311d146102f3578063fe4f58901461031c57610121565b806375502d3c14610243578063894ba833146102605780638b5a7dba146102685780638e42e4b514610270578063925270371461027857610121565b8063513a3dba116100f4578063513a3dba146101ab578063540385a3146101dd578063667641cb146101e557806367aea3131461021e5780636d530fb31461022657610121565b806324ba5884146101265780633443106d1461015e57806335b281531461017b57806341b3a0d9146101a3575b600080fd5b61014c6004803603602081101561013c57600080fd5b50356001600160a01b031661033f565b60408051918252519081900360200190f35b61014c6004803603602081101561017457600080fd5b5035610351565b6101a16004803603602081101561019157600080fd5b50356001600160a01b0316610367565b005b61014c610407565b6101a1600480360360608110156101c157600080fd5b50803590602081013590604001356001600160a01b031661040d565b61014c61055b565b610202600480360360208110156101fb57600080fd5b5035610561565b604080516001600160a01b039092168252519081900360200190f35b61020261057c565b6101a16004803603602081101561023c57600080fd5b503561058b565b61014c6004803603602081101561025957600080fd5b50356107f0565b6101a1610805565b61014c610893565b61014c610899565b61014c61089f565b6101a16004803603602081101561029657600080fd5b50356001600160a01b03166108a5565b61014c610944565b6102cb600480360360208110156102c457600080fd5b5035610967565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b6101a16004803603606081101561030957600080fd5b5080359060208101359060400135610993565b6101a16004803603604081101561033257600080fd5b5080359060200135610b6a565b60006020819052908152604090205481565b6000908152600160208190526040909120015490565b336000908152602081905260409020546001146103b55760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b60035481565b3360009081526020819052604090205460011461045b5760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b60035460011461049c5760405162461bcd60e51b81526004018080602001828103825260228152602001806110ef6022913960400191505060405180910390fd5b81631bdc98db60e21b14156104d757600083815260016020526040902080546001600160a01b0319166001600160a01b03831617905561050e565b60405162461bcd60e51b81526004018080602001828103825260278152602001806110c86027913960400191505060405180910390fd5b60408051848152602081018490526001600160a01b0383168183015290517f87c209b94b27bfe8cb3329ca996f854fc16f2ec485116b0932eccd15fac50a409181900360600190a1505050565b60055481565b6000908152600160205260409020546001600160a01b031690565b6002546001600160a01b031681565b6000818152600160205260408082205481516309fa15b560e31b8152825184936001600160a01b0390931692634fd0ada89260048082019391829003018186803b1580156105d857600080fd5b505afa1580156105ec573d6000803e3d6000fd5b505050506040513d604081101561060257600080fd5b5080516020909101519092509050600061061a610944565b905060008261062a57600061065c565b61065c61064461063e86633b9aca00610e2a565b84610e9c565b60008781526001602081905260409091200154610e9c565b905060008361066c57600061069d565b61069d61068661068087633b9aca00610e2a565b85610e9c565b600088815260016020526040902060020154610e9c565b6002546040805163d4b9311d60e01b8152600481018a90526a736166657479507269636560a81b60248201526044810186905290519293506001600160a01b039091169163d4b9311d9160648082019260009290919082900301818387803b15801561070857600080fd5b505af115801561071c573d6000803e3d6000fd5b50506002546040805163d4b9311d60e01b8152600481018b90526f6c69717569646174696f6e507269636560801b60248201526044810186905290516001600160a01b03909216935063d4b9311d925060648082019260009290919082900301818387803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b5050604080518881526020810186905280820185905290518993507f37f13f22a2174c79144ffda4c6b7ad416951d5a41171bec961f53ef4c049014e92509081900360600190a2505050505050565b60009081526001602052604090206002015490565b336000908152602081905260409020546001146108535760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b600060038190556b033b2e3c9fd0803ce80000006005556040517f2d4b4ecff7bd7503135271925520a2f6c0d98c9473ffc1a1e72c92502f51b25e9190a1565b60065481565b60085481565b60075481565b336000908152602081905260409020546001146108f35760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b600060065442111561095f57610958610f18565b9050610964565b506004545b90565b60016020819052600091825260409091208054918101546002909101546001600160a01b039092169183565b336000908152602081905260409020546001146109e15760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b600354600114610a225760405162461bcd60e51b81526004018080602001828103825260228152602001806110ef6022913960400191505060405180910390fd5b816b73616665747943526174696f60a01b1415610aa357600083815260016020526040902060020154811015610a895760405162461bcd60e51b81526004018080602001828103825260328152602001806111666032913960400191505060405180910390fd5b600083815260016020819052604090912001819055610b25565b81706c69717569646174696f6e43526174696f60781b14156104d75760008381526001602081905260409091200154811115610b105760405162461bcd60e51b81526004018080602001828103825260328152602001806111666032913960400191505060405180910390fd5b60008381526001602052604090206002018190555b604080518481526020810184905280820183905290517fc59b1109b54f213212d2f5af5c1dae5e887f9daa63b595578fae847cb048e8f49181900360600190a1505050565b33600090815260208190526040902054600114610bb85760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b600354600114610bf95760405162461bcd60e51b81526004018080602001828103825260228152602001806110ef6022913960400191505060405180910390fd5b60008111610c4e576040805162461bcd60e51b815260206004820152601760248201527f4f7261636c6552656c617965722f6e756c6c2d64617461000000000000000000604482015290519081900360640190fd5b816e726564656d7074696f6e507269636560881b1415610c72576004819055610deb565b816d726564656d7074696f6e5261746560901b1415610cf7576006544214610ccb5760405162461bcd60e51b815260040180806020018281038252602a815260200180611198602a913960400191505060405180910390fd5b6007548190811115610ce05750600754610cef565b600854821015610cef57506008545b600555610deb565b817f726564656d7074696f6e526174655570706572426f756e6400000000000000001415610d73576b033b2e3c9fd0803ce80000008111610d695760405162461bcd60e51b81526004018080602001828103825260318152602001806111c26031913960400191505060405180910390fd5b6007819055610deb565b817f726564656d7074696f6e526174654c6f776572426f756e64000000000000000014156104d7576b033b2e3c9fd0803ce80000008110610de55760405162461bcd60e51b81526004018080602001828103825260318152602001806111116031913960400191505060405180910390fd5b60088190555b604080518381526020810183905281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15050565b6000811580610e4557505080820282828281610e4257fe5b04145b610e96576040805162461bcd60e51b815260206004820152601a60248201527f4f7261636c6552656c617965722f6d756c2d6f766572666c6f77000000000000604482015290519081900360640190fd5b92915050565b6000808211610ef2576040805162461bcd60e51b815260206004820152601a60248201527f4f7261636c6552656c617965722f726469762d62792d7a65726f000000000000604482015290519081900360640190fd5b81610f09846b033b2e3c9fd0803ce8000000610e2a565b81610f1057fe5b049392505050565b6000610f49610f41600554610f2f42600654610f98565b6b033b2e3c9fd0803ce8000000610ff0565b6004546110ae565b6004819055610f585760016004555b4260065560045460408051918252517f9e2c1201748a5c10b659169e27843c246931edf32ccc126c79505db2352fbc3b9181900360200190a15060045490565b80820382811115610e96576040805162461bcd60e51b815260206004820152601b60248201527f4f7261636c6552656c617965722f7375622d756e646572666c6f770000000000604482015290519081900360640190fd5b60008380156110905760018416801561100b5785925061100f565b8392505b50600283046002850494505b841561108a57858602868782041461103257600080fd5b8181018181101561104257600080fd5b859004965050600185161561107f57858302838782041415871515161561106857600080fd5b8181018181101561107857600080fd5b8590049350505b60028504945061101b565b506110a6565b8380156110a057600092506110a4565b8392505b505b509392505050565b60006b033b2e3c9fd0803ce8000000610f098484610e2a56fe4f7261636c6552656c617965722f6d6f646966792d756e7265636f676e697a65642d706172616d4f7261636c6552656c617965722f636f6e74726163742d6e6f742d656e61626c65644f7261636c6552656c617965722f696e76616c69642d726564656d7074696f6e2d726174652d6c6f7765722d626f756e644f7261636c6552656c617965722f6163636f756e742d6e6f742d617574686f72697a65644f7261636c6552656c617965722f7361666574792d6c6f7765722d7468616e2d6c69717569646174696f6e2d63726174696f4f7261636c6552656c617965722f726564656d7074696f6e2d70726963652d6e6f742d757064617465644f7261636c6552656c617965722f696e76616c69642d726564656d7074696f6e2d726174652d75707065722d626f756e64a2646970667358221220c2f2e60bbbb0e899011fdb85c74ca0cd43ed83a901401914bd0f80b9617e954164736f6c63430006070033000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c806375502d3c116100ad57806394f3f81d1161007157806394f3f81d14610280578063c5b748c0146102a6578063d07900bb146102ae578063d4b9311d146102f3578063fe4f58901461031c57610121565b806375502d3c14610243578063894ba833146102605780638b5a7dba146102685780638e42e4b514610270578063925270371461027857610121565b8063513a3dba116100f4578063513a3dba146101ab578063540385a3146101dd578063667641cb146101e557806367aea3131461021e5780636d530fb31461022657610121565b806324ba5884146101265780633443106d1461015e57806335b281531461017b57806341b3a0d9146101a3575b600080fd5b61014c6004803603602081101561013c57600080fd5b50356001600160a01b031661033f565b60408051918252519081900360200190f35b61014c6004803603602081101561017457600080fd5b5035610351565b6101a16004803603602081101561019157600080fd5b50356001600160a01b0316610367565b005b61014c610407565b6101a1600480360360608110156101c157600080fd5b50803590602081013590604001356001600160a01b031661040d565b61014c61055b565b610202600480360360208110156101fb57600080fd5b5035610561565b604080516001600160a01b039092168252519081900360200190f35b61020261057c565b6101a16004803603602081101561023c57600080fd5b503561058b565b61014c6004803603602081101561025957600080fd5b50356107f0565b6101a1610805565b61014c610893565b61014c610899565b61014c61089f565b6101a16004803603602081101561029657600080fd5b50356001600160a01b03166108a5565b61014c610944565b6102cb600480360360208110156102c457600080fd5b5035610967565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b6101a16004803603606081101561030957600080fd5b5080359060208101359060400135610993565b6101a16004803603604081101561033257600080fd5b5080359060200135610b6a565b60006020819052908152604090205481565b6000908152600160208190526040909120015490565b336000908152602081905260409020546001146103b55760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b60035481565b3360009081526020819052604090205460011461045b5760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b60035460011461049c5760405162461bcd60e51b81526004018080602001828103825260228152602001806110ef6022913960400191505060405180910390fd5b81631bdc98db60e21b14156104d757600083815260016020526040902080546001600160a01b0319166001600160a01b03831617905561050e565b60405162461bcd60e51b81526004018080602001828103825260278152602001806110c86027913960400191505060405180910390fd5b60408051848152602081018490526001600160a01b0383168183015290517f87c209b94b27bfe8cb3329ca996f854fc16f2ec485116b0932eccd15fac50a409181900360600190a1505050565b60055481565b6000908152600160205260409020546001600160a01b031690565b6002546001600160a01b031681565b6000818152600160205260408082205481516309fa15b560e31b8152825184936001600160a01b0390931692634fd0ada89260048082019391829003018186803b1580156105d857600080fd5b505afa1580156105ec573d6000803e3d6000fd5b505050506040513d604081101561060257600080fd5b5080516020909101519092509050600061061a610944565b905060008261062a57600061065c565b61065c61064461063e86633b9aca00610e2a565b84610e9c565b60008781526001602081905260409091200154610e9c565b905060008361066c57600061069d565b61069d61068661068087633b9aca00610e2a565b85610e9c565b600088815260016020526040902060020154610e9c565b6002546040805163d4b9311d60e01b8152600481018a90526a736166657479507269636560a81b60248201526044810186905290519293506001600160a01b039091169163d4b9311d9160648082019260009290919082900301818387803b15801561070857600080fd5b505af115801561071c573d6000803e3d6000fd5b50506002546040805163d4b9311d60e01b8152600481018b90526f6c69717569646174696f6e507269636560801b60248201526044810186905290516001600160a01b03909216935063d4b9311d925060648082019260009290919082900301818387803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b5050604080518881526020810186905280820185905290518993507f37f13f22a2174c79144ffda4c6b7ad416951d5a41171bec961f53ef4c049014e92509081900360600190a2505050505050565b60009081526001602052604090206002015490565b336000908152602081905260409020546001146108535760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b600060038190556b033b2e3c9fd0803ce80000006005556040517f2d4b4ecff7bd7503135271925520a2f6c0d98c9473ffc1a1e72c92502f51b25e9190a1565b60065481565b60085481565b60075481565b336000908152602081905260409020546001146108f35760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b600060065442111561095f57610958610f18565b9050610964565b506004545b90565b60016020819052600091825260409091208054918101546002909101546001600160a01b039092169183565b336000908152602081905260409020546001146109e15760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b600354600114610a225760405162461bcd60e51b81526004018080602001828103825260228152602001806110ef6022913960400191505060405180910390fd5b816b73616665747943526174696f60a01b1415610aa357600083815260016020526040902060020154811015610a895760405162461bcd60e51b81526004018080602001828103825260328152602001806111666032913960400191505060405180910390fd5b600083815260016020819052604090912001819055610b25565b81706c69717569646174696f6e43526174696f60781b14156104d75760008381526001602081905260409091200154811115610b105760405162461bcd60e51b81526004018080602001828103825260328152602001806111666032913960400191505060405180910390fd5b60008381526001602052604090206002018190555b604080518481526020810184905280820183905290517fc59b1109b54f213212d2f5af5c1dae5e887f9daa63b595578fae847cb048e8f49181900360600190a1505050565b33600090815260208190526040902054600114610bb85760405162461bcd60e51b81526004018080602001828103825260248152602001806111426024913960400191505060405180910390fd5b600354600114610bf95760405162461bcd60e51b81526004018080602001828103825260228152602001806110ef6022913960400191505060405180910390fd5b60008111610c4e576040805162461bcd60e51b815260206004820152601760248201527f4f7261636c6552656c617965722f6e756c6c2d64617461000000000000000000604482015290519081900360640190fd5b816e726564656d7074696f6e507269636560881b1415610c72576004819055610deb565b816d726564656d7074696f6e5261746560901b1415610cf7576006544214610ccb5760405162461bcd60e51b815260040180806020018281038252602a815260200180611198602a913960400191505060405180910390fd5b6007548190811115610ce05750600754610cef565b600854821015610cef57506008545b600555610deb565b817f726564656d7074696f6e526174655570706572426f756e6400000000000000001415610d73576b033b2e3c9fd0803ce80000008111610d695760405162461bcd60e51b81526004018080602001828103825260318152602001806111c26031913960400191505060405180910390fd5b6007819055610deb565b817f726564656d7074696f6e526174654c6f776572426f756e64000000000000000014156104d7576b033b2e3c9fd0803ce80000008110610de55760405162461bcd60e51b81526004018080602001828103825260318152602001806111116031913960400191505060405180910390fd5b60088190555b604080518381526020810183905281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15050565b6000811580610e4557505080820282828281610e4257fe5b04145b610e96576040805162461bcd60e51b815260206004820152601a60248201527f4f7261636c6552656c617965722f6d756c2d6f766572666c6f77000000000000604482015290519081900360640190fd5b92915050565b6000808211610ef2576040805162461bcd60e51b815260206004820152601a60248201527f4f7261636c6552656c617965722f726469762d62792d7a65726f000000000000604482015290519081900360640190fd5b81610f09846b033b2e3c9fd0803ce8000000610e2a565b81610f1057fe5b049392505050565b6000610f49610f41600554610f2f42600654610f98565b6b033b2e3c9fd0803ce8000000610ff0565b6004546110ae565b6004819055610f585760016004555b4260065560045460408051918252517f9e2c1201748a5c10b659169e27843c246931edf32ccc126c79505db2352fbc3b9181900360200190a15060045490565b80820382811115610e96576040805162461bcd60e51b815260206004820152601b60248201527f4f7261636c6552656c617965722f7375622d756e646572666c6f770000000000604482015290519081900360640190fd5b60008380156110905760018416801561100b5785925061100f565b8392505b50600283046002850494505b841561108a57858602868782041461103257600080fd5b8181018181101561104257600080fd5b859004965050600185161561107f57858302838782041415871515161561106857600080fd5b8181018181101561107857600080fd5b8590049350505b60028504945061101b565b506110a6565b8380156110a057600092506110a4565b8392505b505b509392505050565b60006b033b2e3c9fd0803ce8000000610f098484610e2a56fe4f7261636c6552656c617965722f6d6f646966792d756e7265636f676e697a65642d706172616d4f7261636c6552656c617965722f636f6e74726163742d6e6f742d656e61626c65644f7261636c6552656c617965722f696e76616c69642d726564656d7074696f6e2d726174652d6c6f7765722d626f756e644f7261636c6552656c617965722f6163636f756e742d6e6f742d617574686f72697a65644f7261636c6552656c617965722f7361666574792d6c6f7765722d7468616e2d6c69717569646174696f6e2d63726174696f4f7261636c6552656c617965722f726564656d7074696f6e2d70726963652d6e6f742d757064617465644f7261636c6552656c617965722f696e76616c69642d726564656d7074696f6e2d726174652d75707065722d626f756e64a2646970667358221220c2f2e60bbbb0e899011fdb85c74ca0cd43ed83a901401914bd0f80b9617e954164736f6c63430006070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962
-----Decoded View---------------
Arg [0] : safeEngine_ (address): 0xCC88a9d330da1133Df3A7bD823B95e52511A6962
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962
Deployed Bytecode Sourcemap
1041:12122:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1041:12122:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1092:54:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1092:54:0;-1:-1:-1;;;;;1092:54:0;;:::i;:::-;;;;;;;;;;;;;;;;12353:146;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12353:146:0;;:::i;1256:156::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1256:156:0;-1:-1:-1;;;;;1256:156:0;;:::i;:::-;;2561:30;;;:::i;6723:496::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6723:496:0;;;;;;;;;;;-1:-1:-1;;;;;6723:496:0;;:::i;2857:29::-;;;:::i;13021:139::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;13021:139:0;;:::i;:::-;;;;-1:-1:-1;;;;;13021:139:0;;;;;;;;;;;;;;2479:32;;;:::i;11022:902::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11022:902:0;;:::i;12683:156::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12683:156:0;;:::i;12026:151::-;;;:::i;3017:40::-;;;:::i;3347:39::-;;;:::i;3188:::-;;;:::i;1531:162::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1531:162:0;-1:-1:-1;;;;;1531:162:0;;:::i;10607:172::-;;;:::i;2412:58::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2412:58:0;;:::i;:::-;;;;-1:-1:-1;;;;;2412:58:0;;;;;;;;;;;;;;;;;;;;;;;;;8944:919;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8944:919:0;;;;;;;;;;;;:::i;7379:1341::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7379:1341:0;;;;;;;:::i;1092:54::-;;;;;;;;;;;;;;:::o;12353:146::-;12420:7;12447:31;;;:15;:31;;;;;;;;:44;;;12353:146::o;1256:156::-;1846:10;1827:18;:30;;;;;;;;;;;1861:1;1827:35;1819:84;;;;-1:-1:-1;;;1819:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1332:27:0;::::1;:18;:27:::0;;;::::1;::::0;;;;;;;;1362:1:::1;1332:31:::0;;1379:25;;;;;;;::::1;::::0;;;;;;;;::::1;1256:156:::0;:::o;2561:30::-;;;;:::o;6723:496::-;1846:10;1827:18;:30;;;;;;;;;;;1861:1;1827:35;1819:84;;;;-1:-1:-1;;;1819:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6881:15:::1;;6900:1;6881:20;6873:67;;;;-1:-1:-1::0;;;6873:67:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6955:9;-1:-1:-1::0;;;6955:19:0::1;6951:145;;;6976:31;::::0;;;:15:::1;:31;::::0;;;;:55;;-1:-1:-1;;;;;;6976:55:0::1;-1:-1:-1::0;;;;;6976:55:0;::::1;;::::0;;6951:145:::1;;;7047:49;;-1:-1:-1::0;;;7047:49:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6951:145;7112:99;::::0;;;;;::::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;7112:99:0;::::1;::::0;;;;;;::::1;::::0;;;;;;;::::1;6723:496:::0;;;:::o;2857:29::-;;;;:::o;13021:139::-;13080:7;13115:31;;;:15;:31;;;;;:36;-1:-1:-1;;;;;13115:36:0;;13021:139::o;2479:32::-;;;-1:-1:-1;;;;;2479:32:0;;:::o;11022:902::-;11098:22;11155:31;;;:15;:31;;;;;;:36;:60;;-1:-1:-1;;;11155:60:0;;;;11098:22;;-1:-1:-1;;;;;11155:36:0;;;;:58;;:60;;;;;;;;;;;:36;:60;;;2:2:-1;;;;27:1;24;17:12;2:2;11155:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11155:60:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11155:60:0;;;;;;;;;-1:-1:-1;11155:60:0;-1:-1:-1;11226:24:0;11253:17;:15;:17::i;:::-;11226:44;;11281:20;11304:13;:144;;11447:1;11304:144;;;11320:124;11328:69;11336:42;11353:14;11370:7;11336:8;:42::i;:::-;11380:16;11328:7;:69::i;:::-;11399:31;;;;:15;:31;;;;;;;;:44;;11320:7;:124::i;:::-;11281:167;;11459:25;11487:13;:149;;11635:1;11487:149;;;11503:129;11511:69;11519:42;11536:14;11553:7;11519:8;:42::i;:::-;11563:16;11511:7;:69::i;:::-;11582:31;;;;:15;:31;;;;;:49;;;11503:7;:129::i;:::-;11649:10;;:72;;;-1:-1:-1;;;11649:72:0;;;;;;;;-1:-1:-1;;;11649:72:0;;;;;;;;;;;;11459:177;;-1:-1:-1;;;;;;11649:10:0;;;;:27;;:72;;;;;:10;;:72;;;;;;;;:10;;:72;;;2:2:-1;;;;27:1;24;17:12;2:2;11649:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11732:10:0;;:82;;;-1:-1:-1;;;11732:82:0;;;;;;;;-1:-1:-1;;;11732:82:0;;;;;;;;;;;;-1:-1:-1;;;;;11732:10:0;;;;-1:-1:-1;11732:27:0;;-1:-1:-1;11732:82:0;;;;;:10;;:82;;;;;;;;:10;;:82;;;2:2:-1;;;;27:1;24;17:12;2:2;11732:82:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11830:86:0;;;;;;;;;;;;;;;;;;;;11852:14;;-1:-1:-1;11830:86:0;;-1:-1:-1;11830:86:0;;;;;;;;11022:902;;;;;;:::o;12683:156::-;12755:7;12782:31;;;:15;:31;;;;;:49;;;;12683:156::o;12026:151::-;1846:10;1827:18;:30;;;;;;;;;;;1861:1;1827:35;1819:84;;;;-1:-1:-1;;;1819:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12104:1:::1;12086:15;:19:::0;;;4711:8:::1;12116:14;:20:::0;12152:17:::1;::::0;::::1;::::0;12104:1;12152:17:::1;12026:151::o:0;3017:40::-;;;;:::o;3347:39::-;;;;:::o;3188:::-;;;;:::o;1531:162::-;1846:10;1827:18;:30;;;;;;;;;;;1861:1;1827:35;1819:84;;;;-1:-1:-1;;;1819:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1610:27:0;::::1;1640:1;1610:27:::0;;;::::1;::::0;;;;;;;:31;;;;1657:28;;;;;;;::::1;::::0;;;;;;;;::::1;1531:162:::0;:::o;10607:172::-;10650:7;10680:25;;10674:3;:31;10670:67;;;10714:23;:21;:23::i;:::-;10707:30;;;;10670:67;-1:-1:-1;10755:16:0;;10607:172;;:::o;2412:58::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2412:58:0;;;;;:::o;8944:919::-;1846:10;1827:18;:30;;;;;;;;;;;1861:1;1827:35;1819:84;;;;-1:-1:-1;;;1819:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9102:15:::1;;9121:1;9102:20;9094:67;;;;-1:-1:-1::0;;;9094:67:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9176:9;-1:-1:-1::0;;;9176:27:0::1;9172:568;;;9234:31;::::0;;;:15:::1;:31;::::0;;;;:49:::1;;::::0;9226:57;::::1;;9218:120;;;;-1:-1:-1::0;;;9218:120:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9351:31;::::0;;;:15:::1;:31;::::0;;;;;;;:44:::1;:51:::0;;;9172:568:::1;;;9433:9;-1:-1:-1::0;;;9433:32:0::1;9429:311;;;9496:31;::::0;;;:15:::1;:31;::::0;;;;;;;:44:::1;::::0;9488:52;::::1;;9480:115;;;;-1:-1:-1::0;;;9480:115:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9608:31;::::0;;;:15:::1;:31;::::0;;;;:49:::1;;:56:::0;;;9429:311:::1;9756:99;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;8944:919:::0;;;:::o;7379:1341::-;1846:10;1827:18;:30;;;;;;;;;;;1861:1;1827:35;1819:84;;;;-1:-1:-1;;;1819:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7479:15:::1;;7498:1;7479:20;7471:67;;;;-1:-1:-1::0;;;7471:67:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7564:1;7557:4;:8;7549:44;;;::::0;;-1:-1:-1;;;7549:44:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;7608:9;-1:-1:-1::0;;;7608:30:0::1;7604:1022;;;7653:16;:23:::0;;;7604:1022:::1;;;7707:9;-1:-1:-1::0;;;7707:29:0::1;7703:923;;;7766:25;;7759:3;:32;7751:87;;;;-1:-1:-1::0;;;7751:87:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7902:24;::::0;7874:4;;7895:31;::::1;7891:216;;;-1:-1:-1::0;7958:24:0::1;::::0;7891:216:::1;;;8013:24;;8006:4;:31;8002:105;;;-1:-1:-1::0;8069:24:0::1;::::0;8002:105:::1;8119:14;:29:::0;7703:923:::1;;;8179:9;:39;;8175:451;;;4711:8;8241:4;:10;8233:72;;;;-1:-1:-1::0;;;8233:72:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8318:24;:31:::0;;;8175:451:::1;;;8380:9;:39;;8376:250;;;4711:8;8442:4;:10;8434:72;;;;-1:-1:-1::0;;;8434:72:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8519:24;:31:::0;;;8376:250:::1;8642:70;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;7379:1341:::0;;:::o;4893:162::-;4956:9;4986:6;;;:30;;-1:-1:-1;;5001:5:0;;;5015:1;5010;5001:5;5010:1;4996:15;;;;;:20;4986:30;4978:69;;;;;-1:-1:-1;;;4978:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4893:162;;;;:::o;5216:171::-;5278:9;5312:1;5308;:5;5300:44;;;;;-1:-1:-1;;;5300:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5378:1;5359:16;5368:1;4711:8;5359;:16::i;:::-;:20;;;;;;;5216:171;-1:-1:-1;;;5216:171:0:o;10014:498::-;10065:7;10140:131;10162:69;10169:14;;10185:40;10194:3;10199:25;;10185:8;:40::i;:::-;4711:8;10162:6;:69::i;:::-;10244:16;;10140:9;:131::i;:::-;10121:16;:150;;;10282:47;;10328:1;10309:16;:20;10282:47;10368:3;10340:25;:31;10409:16;;10387:39;;;;;;;;;;;;;;;;-1:-1:-1;10488:16:0;;10014:498;:::o;4728:159::-;4817:5;;;4841:6;;;;4833:46;;;;;-1:-1:-1;;;4833:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5393:1072;5468:9;5521:1;5523:53;;;;5624:9;;;5634:20;;;;5670:1;5665:6;;5617:56;;5634:20;5648:4;5643:9;;5617:56;;5713:1;5707:4;5703:12;5769:1;5766;5762:9;5757:14;;5751:681;5774:1;5751:681;;;5834:1;5831;5827:9;5883:1;5879;5875:2;5871:10;5868:17;5858:2;;5898:1;5896;5889:11;5858:2;5947:4;5943:2;5939:13;5989:2;5980:7;5977:15;5974:2;;;6004:1;6002;5995:11;5974:2;6035:18;;;;-1:-1:-1;;6078:8:0;;;6075:2;;;6131:1;6128;6124:9;6207:1;6203;6199:2;6195:10;6192:17;6185:25;6180:1;6173:9;6166:17;6162:49;6159:2;;;6223:1;6221;6214:11;6159:2;6276:4;6272:2;6268:13;6322:2;6313:7;6310:15;6307:2;;;6337:1;6335;6328:11;6307:2;6372:18;;;;-1:-1:-1;;6075:2:0;5789:1;5787;5783:8;5778:13;;5751:681;;;5755:18;5514:933;;5523:53;5538:1;5540:18;;;;5573:1;5568:6;;5531:44;;5540:18;5553:4;5548:9;;5531:44;;5514:933;;5499:959;;;;;:::o;5061:149::-;5125:9;4711:8;5182:14;5191:1;5194;5182:8;:14::i
Swarm Source
ipfs://c2f2e60bbbb0e899011fdb85c74ca0cd43ed83a901401914bd0f80b9617e9541
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.