Note: Our ether balance display is temporarily unavailable. Please check back later.
Source Code
Overview
ETH Balance
Ether balance is temporarily unavailable. Please check back later.
Token Holdings
More Info
ContractCreator
Multichain Info
N/A
Latest 16 from a total of 16 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Set Fixed Price | 8105040 | 474 days ago | IN | 0 ETH | 0.00004665 | ||||
Set Fixed Price | 8105012 | 474 days ago | IN | 0 ETH | 0.00002447 | ||||
Set Fixed Price | 8104985 | 474 days ago | IN | 0 ETH | 0.00002949 | ||||
Claim Operator | 8104978 | 474 days ago | IN | 0 ETH | 0.00002804 | ||||
Set Pending Oper... | 8104962 | 474 days ago | IN | 0 ETH | 0.00002924 | ||||
Set Fixed Price | 8104950 | 474 days ago | IN | 0 ETH | 0.00004678 | ||||
Set Fixed Price | 8104618 | 474 days ago | IN | 0 ETH | 0.00002528 | ||||
Set Fixed Price | 8104609 | 474 days ago | IN | 0 ETH | 0.00002529 | ||||
Set Fixed Price | 8104553 | 474 days ago | IN | 0 ETH | 0.00003036 | ||||
Set Fixed Price | 8104529 | 474 days ago | IN | 0 ETH | 0.00003046 | ||||
Set Fixed Price | 8104510 | 474 days ago | IN | 0 ETH | 0.00004757 | ||||
Set Fixed Price | 8104329 | 474 days ago | IN | 0 ETH | 0.00004942 | ||||
Set Pending Oper... | 8103757 | 475 days ago | IN | 0 ETH | 0.00004683 | ||||
Set Feed | 8097402 | 476 days ago | IN | 0 ETH | 0.00004735 | ||||
Set Feed | 8090368 | 477 days ago | IN | 0 ETH | 0.00000002 | ||||
0x60806040 | 8090297 | 477 days ago | IN | Create: Oracle | 0 ETH | 0.00000004 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
8139286 | 469 days ago | 0 ETH | ||||
8139286 | 469 days ago | 0 ETH | ||||
8139286 | 469 days ago | 0 ETH | ||||
8139279 | 469 days ago | 0 ETH | ||||
8139279 | 469 days ago | 0 ETH | ||||
8139279 | 469 days ago | 0 ETH | ||||
8139272 | 469 days ago | 0 ETH | ||||
8139272 | 469 days ago | 0 ETH | ||||
8139272 | 469 days ago | 0 ETH | ||||
8139265 | 469 days ago | 0 ETH | ||||
8139265 | 469 days ago | 0 ETH | ||||
8139265 | 469 days ago | 0 ETH | ||||
8139252 | 469 days ago | 0 ETH | ||||
8139252 | 469 days ago | 0 ETH | ||||
8139252 | 469 days ago | 0 ETH | ||||
8139236 | 469 days ago | 0 ETH | ||||
8139236 | 469 days ago | 0 ETH | ||||
8139236 | 469 days ago | 0 ETH | ||||
8139229 | 469 days ago | 0 ETH | ||||
8139229 | 469 days ago | 0 ETH | ||||
8139229 | 469 days ago | 0 ETH | ||||
8133532 | 469 days ago | 0 ETH | ||||
8133532 | 469 days ago | 0 ETH | ||||
8133532 | 469 days ago | 0 ETH | ||||
8133081 | 470 days ago | 0 ETH |
Loading...
Loading
Contract Name:
Oracle
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-07 */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.13; interface IChainlinkFeed { function decimals() external view returns (uint8); function latestAnswer() external view returns (uint); } /** @title Oracle @notice Oracle used by markets. Can use both fixed price feeds and Chainlink-style feeds for prices. The Pessimistic Oracle introduces collateral factor into the pricing formula. It ensures that any given oracle price is dampened to prevent borrowers from borrowing more than the lowest recorded value of their collateral over the past 2 days. This has the advantage of making price manipulation attacks more difficult, as an attacker needs to log artificially high lows. It has the disadvantage of reducing borrow power of borrowers to a 2-day minimum value of their collateral, where the value must have been seen by the oracle. */ contract Oracle { struct FeedData { IChainlinkFeed feed; uint8 tokenDecimals; } address public operator; address public pendingOperator; mapping (address => FeedData) public feeds; mapping (address => uint) public fixedPrices; mapping (address => mapping(uint => uint)) public dailyLows; // token => day => price constructor( address _operator ) { operator = _operator; } modifier onlyOperator { require(msg.sender == operator, "ONLY OPERATOR"); _; } /** @notice Sets the pending operator of the oracle. Only callable by operator. @param newOperator_ The address of the pending operator. */ function setPendingOperator(address newOperator_) public onlyOperator { pendingOperator = newOperator_; } /** @notice Sets the price feed of a specific token address. @dev Even though the price feeds implement the chainlink interface, it's possible to use other price oracle. @param token Address of the ERC20 token to set a feed for @param feed The chainlink feed of the ERC20 token. @param tokenDecimals uint8 representing the decimal precision of the token */ function setFeed(address token, IChainlinkFeed feed, uint8 tokenDecimals) public onlyOperator { feeds[token] = FeedData(feed, tokenDecimals); } /** @notice Sets a fixed price for a token @dev Be careful when setting this. Assuming a fixed price where one doesn't exist can have disastrous consequences. @param token The address of the fixed price token @param price The fixed price of the token. Remember to account for decimal precision when setting this. */ function setFixedPrice(address token, uint price) public onlyOperator { fixedPrices[token] = price; } /** @notice Claims the operator role. Only successfully callable by the pending operator. */ function claimOperator() public { require(msg.sender == pendingOperator, "ONLY PENDING OPERATOR"); operator = pendingOperator; pendingOperator = address(0); emit ChangeOperator(operator); } /** @notice Gets the price of a specific token in DOLA @param token The address of the token to get price of @return The price of the token in DOLA, adjusted for token and feed decimals */ function viewPrice(address token, uint collateralFactorBps) external view returns (uint) { if(fixedPrices[token] > 0) return fixedPrices[token]; if(feeds[token].feed != IChainlinkFeed(address(0))) { //get normalized price uint normalizedPrice = getNormalizedPrice(token); uint day = block.timestamp / 1 days; // get today's low uint todaysLow = dailyLows[token][day]; if(todaysLow == 0 || normalizedPrice < todaysLow) { todaysLow = normalizedPrice; } // get yesterday's low uint yesterdaysLow = dailyLows[token][day - 1]; // calculate new borrowing power based on collateral factor uint newBorrowingPower = normalizedPrice * collateralFactorBps / 10000; uint twoDayLow = todaysLow > yesterdaysLow && yesterdaysLow > 0 ? yesterdaysLow : todaysLow; if(twoDayLow > 0 && newBorrowingPower > twoDayLow) { uint dampenedPrice = twoDayLow * 10000 / collateralFactorBps; return dampenedPrice < normalizedPrice ? dampenedPrice: normalizedPrice; } return normalizedPrice; } revert("Price not found"); } /** @notice Gets the price of a specific token in DOLA while also saving the price if it is the day's lowest. @param token The address of the token to get price of @return The price of the token in DOLA, adjusted for token and feed decimals */ function getPrice(address token, uint collateralFactorBps) external returns (uint) { if(fixedPrices[token] > 0) return fixedPrices[token]; if(feeds[token].feed != IChainlinkFeed(address(0))) { // get normalized price uint normalizedPrice = getNormalizedPrice(token); // potentially store price as today's low uint day = block.timestamp / 1 days; uint todaysLow = dailyLows[token][day]; if(todaysLow == 0 || normalizedPrice < todaysLow) { dailyLows[token][day] = normalizedPrice; todaysLow = normalizedPrice; emit RecordDailyLow(token, normalizedPrice); } // get yesterday's low uint yesterdaysLow = dailyLows[token][day - 1]; // calculate new borrowing power based on collateral factor uint newBorrowingPower = normalizedPrice * collateralFactorBps / 10000; uint twoDayLow = todaysLow > yesterdaysLow && yesterdaysLow > 0 ? yesterdaysLow : todaysLow; if(twoDayLow > 0 && newBorrowingPower > twoDayLow) { uint dampenedPrice = twoDayLow * 10000 / collateralFactorBps; return dampenedPrice < normalizedPrice ? dampenedPrice: normalizedPrice; } return normalizedPrice; } revert("Price not found"); } /** @notice Gets the price from the price feed and normalizes it. @param token The token to get the normalized price for. @return normalizedPrice Returns the normalized price. */ function getNormalizedPrice(address token) internal view returns (uint normalizedPrice) { //get price from feed uint price = feeds[token].feed.latestAnswer(); require(price > 0, "Invalid feed price"); // normalize price uint8 feedDecimals = feeds[token].feed.decimals(); uint8 tokenDecimals = feeds[token].tokenDecimals; if(feedDecimals + tokenDecimals <= 36) { uint8 decimals = 36 - feedDecimals - tokenDecimals; normalizedPrice = price * (10 ** decimals); } else { uint8 decimals = feedDecimals + tokenDecimals - 36; normalizedPrice = price / 10 ** decimals; } } event ChangeOperator(address indexed newOperator); event RecordDailyLow(address indexed token, uint price); }
[{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"ChangeOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"RecordDailyLow","type":"event"},{"inputs":[],"name":"claimOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"dailyLows","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feeds","outputs":[{"internalType":"contract IChainlinkFeed","name":"feed","type":"address"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"fixedPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"collateralFactorBps","type":"uint256"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOperator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"contract IChainlinkFeed","name":"feed","type":"address"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"}],"name":"setFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setFixedPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator_","type":"address"}],"name":"setPendingOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"collateralFactorBps","type":"uint256"}],"name":"viewPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610c34380380610c3483398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610ba1806100936000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806370c4c23f1161007157806370c4c23f1461017d578063949c4fa3146101a8578063ac7e534e146101bb578063ae10561b146101ce578063d54e65fb146101e1578063e983fe25146101e957600080fd5b8063143d4e49146100ae5780631badc89a146100c35780632fba4aa9146100d6578063449e815d14610131578063570ca73514610152575b600080fd5b6100c16100bc3660046108bb565b610209565b005b6100c16100d13660046108df565b61025e565b61010b6100e43660046108bb565b6002602052600090815260409020546001600160a01b03811690600160a01b900460ff1682565b604080516001600160a01b03909316835260ff9091166020830152015b60405180910390f35b61014461013f3660046108df565b6102a4565b604051908152602001610128565b600054610165906001600160a01b031681565b6040516001600160a01b039091168152602001610128565b61014461018b3660046108df565b600460209081526000928352604080842090915290825290205481565b6101446101b63660046108df565b6104bc565b600154610165906001600160a01b031681565b6100c16101dc36600461091a565b610593565b6100c1610616565b6101446101f73660046108bb565b60036020526000908152604090205481565b6000546001600160a01b0316331461023c5760405162461bcd60e51b815260040161023390610965565b60405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146102885760405162461bcd60e51b815260040161023390610965565b6001600160a01b03909116600090815260036020526040902055565b6001600160a01b038216600090815260036020526040812054156102e157506001600160a01b0382166000908152600360205260409020546104b6565b6001600160a01b03838116600090815260026020526040902054161561047c57600061030c846106b9565b9050600061031d62015180426109a2565b6001600160a01b038616600090815260046020908152604080832084845290915290205490915080158061035057508083105b156103b157506001600160a01b038516600081815260046020908152604080832085845282529182902085905590518481528492917fbbf79d525adf40b05f7e2779ec9f3bc352803dc6f9a7ab4512fbde7120d67597910160405180910390a25b6001600160a01b0386166000908152600460205260408120816103d56001866109c4565b8152602001908152602001600020549050600061271087866103f791906109db565b61040191906109a2565b9050600082841180156104145750600083115b61041e5783610420565b825b905060008111801561043157508082115b1561046e57600088610445836127106109db565b61044f91906109a2565b905086811061045e5786610460565b805b9750505050505050506104b6565b8596505050505050506104b6565b60405162461bcd60e51b815260206004820152600f60248201526e141c9a58d9481b9bdd08199bdd5b99608a1b6044820152606401610233565b92915050565b6001600160a01b038216600090815260036020526040812054156104f957506001600160a01b0382166000908152600360205260409020546104b6565b6001600160a01b03838116600090815260026020526040902054161561047c576000610524846106b9565b9050600061053562015180426109a2565b6001600160a01b038616600090815260046020908152604080832084845290915290205490915080158061056857508083105b156103b15750816001600160a01b0386166000908152600460205260408120816103d56001866109c4565b6000546001600160a01b031633146105bd5760405162461bcd60e51b815260040161023390610965565b6040805180820182526001600160a01b03938416815260ff92831660208083019182529585166000908152600290965291909420935184549151909216600160a01b026001600160a81b03199091169190921617179055565b6001546001600160a01b031633146106685760405162461bcd60e51b815260206004820152601560248201527427a7262c902822a72224a7239027a822a920aa27a960591b6044820152606401610233565b60018054600080546001600160a01b0383166001600160a01b031991821681178355921690925560405190917f8eb831fe42156caaf4721a87ad40c6e662b893dbeee76d7a3ed2564a318b091c91a2565b6001600160a01b0380821660009081526002602090815260408083205481516350d25bcd60e01b81529151939485949116926350d25bcd92600480820193918290030181865afa158015610711573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073591906109fa565b90506000811161077c5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206665656420707269636560701b6044820152606401610233565b6001600160a01b03808416600090815260026020908152604080832054815163313ce56760e01b815291519394169263313ce567926004808401939192918290030181865afa1580156107d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f79190610a13565b6001600160a01b038516600090815260026020526040902054909150600160a01b900460ff1660246108298284610a30565b60ff16116108685760008161083f846024610a55565b6108499190610a55565b905061085681600a610b5c565b61086090856109db565b94505061089b565b600060246108768385610a30565b6108809190610a55565b905061088d81600a610b5c565b61089790856109a2565b9450505b505050919050565b6001600160a01b03811681146108b857600080fd5b50565b6000602082840312156108cd57600080fd5b81356108d8816108a3565b9392505050565b600080604083850312156108f257600080fd5b82356108fd816108a3565b946020939093013593505050565b60ff811681146108b857600080fd5b60008060006060848603121561092f57600080fd5b833561093a816108a3565b9250602084013561094a816108a3565b9150604084013561095a8161090b565b809150509250925092565b6020808252600d908201526c27a7262c9027a822a920aa27a960991b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000826109bf57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156109d6576109d661098c565b500390565b60008160001904831182151516156109f5576109f561098c565b500290565b600060208284031215610a0c57600080fd5b5051919050565b600060208284031215610a2557600080fd5b81516108d88161090b565b600060ff821660ff84168060ff03821115610a4d57610a4d61098c565b019392505050565b600060ff821660ff841680821015610a6f57610a6f61098c565b90039392505050565b600181815b80851115610ab3578160001904821115610a9957610a9961098c565b80851615610aa657918102915b93841c9390800290610a7d565b509250929050565b600082610aca575060016104b6565b81610ad7575060006104b6565b8160018114610aed5760028114610af757610b13565b60019150506104b6565b60ff841115610b0857610b0861098c565b50506001821b6104b6565b5060208310610133831016604e8410600b8410161715610b36575081810a6104b6565b610b408383610a78565b8060001904821115610b5457610b5461098c565b029392505050565b60006108d860ff841683610abb56fea26469706673582212209a6a51f77a04ca8c391ae67a1be9b122fbcd91e87a1dc91b6372e6af1679e6bb64736f6c634300080d00330000000000000000000000006535020cceb810bdb3f3ca5e93de2460ff7989bb
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806370c4c23f1161007157806370c4c23f1461017d578063949c4fa3146101a8578063ac7e534e146101bb578063ae10561b146101ce578063d54e65fb146101e1578063e983fe25146101e957600080fd5b8063143d4e49146100ae5780631badc89a146100c35780632fba4aa9146100d6578063449e815d14610131578063570ca73514610152575b600080fd5b6100c16100bc3660046108bb565b610209565b005b6100c16100d13660046108df565b61025e565b61010b6100e43660046108bb565b6002602052600090815260409020546001600160a01b03811690600160a01b900460ff1682565b604080516001600160a01b03909316835260ff9091166020830152015b60405180910390f35b61014461013f3660046108df565b6102a4565b604051908152602001610128565b600054610165906001600160a01b031681565b6040516001600160a01b039091168152602001610128565b61014461018b3660046108df565b600460209081526000928352604080842090915290825290205481565b6101446101b63660046108df565b6104bc565b600154610165906001600160a01b031681565b6100c16101dc36600461091a565b610593565b6100c1610616565b6101446101f73660046108bb565b60036020526000908152604090205481565b6000546001600160a01b0316331461023c5760405162461bcd60e51b815260040161023390610965565b60405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146102885760405162461bcd60e51b815260040161023390610965565b6001600160a01b03909116600090815260036020526040902055565b6001600160a01b038216600090815260036020526040812054156102e157506001600160a01b0382166000908152600360205260409020546104b6565b6001600160a01b03838116600090815260026020526040902054161561047c57600061030c846106b9565b9050600061031d62015180426109a2565b6001600160a01b038616600090815260046020908152604080832084845290915290205490915080158061035057508083105b156103b157506001600160a01b038516600081815260046020908152604080832085845282529182902085905590518481528492917fbbf79d525adf40b05f7e2779ec9f3bc352803dc6f9a7ab4512fbde7120d67597910160405180910390a25b6001600160a01b0386166000908152600460205260408120816103d56001866109c4565b8152602001908152602001600020549050600061271087866103f791906109db565b61040191906109a2565b9050600082841180156104145750600083115b61041e5783610420565b825b905060008111801561043157508082115b1561046e57600088610445836127106109db565b61044f91906109a2565b905086811061045e5786610460565b805b9750505050505050506104b6565b8596505050505050506104b6565b60405162461bcd60e51b815260206004820152600f60248201526e141c9a58d9481b9bdd08199bdd5b99608a1b6044820152606401610233565b92915050565b6001600160a01b038216600090815260036020526040812054156104f957506001600160a01b0382166000908152600360205260409020546104b6565b6001600160a01b03838116600090815260026020526040902054161561047c576000610524846106b9565b9050600061053562015180426109a2565b6001600160a01b038616600090815260046020908152604080832084845290915290205490915080158061056857508083105b156103b15750816001600160a01b0386166000908152600460205260408120816103d56001866109c4565b6000546001600160a01b031633146105bd5760405162461bcd60e51b815260040161023390610965565b6040805180820182526001600160a01b03938416815260ff92831660208083019182529585166000908152600290965291909420935184549151909216600160a01b026001600160a81b03199091169190921617179055565b6001546001600160a01b031633146106685760405162461bcd60e51b815260206004820152601560248201527427a7262c902822a72224a7239027a822a920aa27a960591b6044820152606401610233565b60018054600080546001600160a01b0383166001600160a01b031991821681178355921690925560405190917f8eb831fe42156caaf4721a87ad40c6e662b893dbeee76d7a3ed2564a318b091c91a2565b6001600160a01b0380821660009081526002602090815260408083205481516350d25bcd60e01b81529151939485949116926350d25bcd92600480820193918290030181865afa158015610711573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073591906109fa565b90506000811161077c5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206665656420707269636560701b6044820152606401610233565b6001600160a01b03808416600090815260026020908152604080832054815163313ce56760e01b815291519394169263313ce567926004808401939192918290030181865afa1580156107d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f79190610a13565b6001600160a01b038516600090815260026020526040902054909150600160a01b900460ff1660246108298284610a30565b60ff16116108685760008161083f846024610a55565b6108499190610a55565b905061085681600a610b5c565b61086090856109db565b94505061089b565b600060246108768385610a30565b6108809190610a55565b905061088d81600a610b5c565b61089790856109a2565b9450505b505050919050565b6001600160a01b03811681146108b857600080fd5b50565b6000602082840312156108cd57600080fd5b81356108d8816108a3565b9392505050565b600080604083850312156108f257600080fd5b82356108fd816108a3565b946020939093013593505050565b60ff811681146108b857600080fd5b60008060006060848603121561092f57600080fd5b833561093a816108a3565b9250602084013561094a816108a3565b9150604084013561095a8161090b565b809150509250925092565b6020808252600d908201526c27a7262c9027a822a920aa27a960991b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000826109bf57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156109d6576109d661098c565b500390565b60008160001904831182151516156109f5576109f561098c565b500290565b600060208284031215610a0c57600080fd5b5051919050565b600060208284031215610a2557600080fd5b81516108d88161090b565b600060ff821660ff84168060ff03821115610a4d57610a4d61098c565b019392505050565b600060ff821660ff841680821015610a6f57610a6f61098c565b90039392505050565b600181815b80851115610ab3578160001904821115610a9957610a9961098c565b80851615610aa657918102915b93841c9390800290610a7d565b509250929050565b600082610aca575060016104b6565b81610ad7575060006104b6565b8160018114610aed5760028114610af757610b13565b60019150506104b6565b60ff841115610b0857610b0861098c565b50506001821b6104b6565b5060208310610133831016604e8410600b8410161715610b36575081810a6104b6565b610b408383610a78565b8060001904821115610b5457610b5461098c565b029392505050565b60006108d860ff841683610abb56fea26469706673582212209a6a51f77a04ca8c391ae67a1be9b122fbcd91e87a1dc91b6372e6af1679e6bb64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006535020cceb810bdb3f3ca5e93de2460ff7989bb
-----Decoded View---------------
Arg [0] : _operator (address): 0x6535020cCeB810Bdb3F3cA5e93dE2460FF7989BB
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006535020cceb810bdb3f3ca5e93de2460ff7989bb
Deployed Bytecode Sourcemap
875:6435:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1619:105;;;;;;:::i;:::-;;:::i;:::-;;2621:101;;;;;;:::i;:::-;;:::i;1059:42::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1059:42:0;;;-1:-1:-1;;;1059:42:0;;;;;;;;;;-1:-1:-1;;;;;931:32:1;;;913:51;;1012:4;1000:17;;;995:2;980:18;;973:45;886:18;1059:42:0;;;;;;;;4847:1418;;;;;;:::i;:::-;;:::i;:::-;;;1175:25:1;;;1163:2;1148:18;4847:1418:0;1029:177:1;992:23:0;;;;;-1:-1:-1;;;;;992:23:0;;;;;;-1:-1:-1;;;;;1375:32:1;;;1357:51;;1345:2;1330:18;992:23:0;1211:203:1;1159:59:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3290:1280;;;;;;:::i;:::-;;:::i;1022:30::-;;;;;-1:-1:-1;;;;;1022:30:0;;;2124:143;;;;;;:::i;:::-;;:::i;2838:230::-;;;:::i;1108:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1619:105;1401:8;;-1:-1:-1;;;;;1401:8:0;1387:10;:22;1379:48;;;;-1:-1:-1;;;1379:48:0;;;;;;;:::i;:::-;;;;;;;;;1691:15:::1;:30:::0;;-1:-1:-1;;;;;;1691:30:0::1;-1:-1:-1::0;;;;;1691:30:0;;;::::1;::::0;;;::::1;::::0;;1619:105::o;2621:101::-;1401:8;;-1:-1:-1;;;;;1401:8:0;1387:10;:22;1379:48;;;;-1:-1:-1;;;1379:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2693:18:0;;::::1;;::::0;;;:11:::1;:18;::::0;;;;:26;2621:101::o;4847:1418::-;-1:-1:-1;;;;;4944:18:0;;4924:4;4944:18;;;:11;:18;;;;;;:22;4941:52;;-1:-1:-1;;;;;;4975:18:0;;;;;;:11;:18;;;;;;4968:25;;4941:52;-1:-1:-1;;;;;5007:12:0;;;5051:1;5007:12;;;:5;:12;;;;;:17;;:47;5004:1218;;5108:20;5131:25;5150:5;5131:18;:25::i;:::-;5108:48;-1:-1:-1;5226:8:0;5237:24;5255:6;5237:15;:24;:::i;:::-;-1:-1:-1;;;;;5293:16:0;;5276:14;5293:16;;;:9;:16;;;;;;;;:21;;;;;;;;;5226:35;;-1:-1:-1;5332:14:0;;;:45;;;5368:9;5350:15;:27;5332:45;5329:232;;;-1:-1:-1;;;;;;5398:16:0;;;;;;:9;:16;;;;;;;;:21;;;;;;;;;:39;;;5507:38;;1175:25:1;;;5398:39:0;;:16;5507:38;;1148:18:1;5507:38:0;;;;;;;5329:232;-1:-1:-1;;;;;5632:16:0;;5611:18;5632:16;;;:9;:16;;;;;5611:18;5649:7;5655:1;5649:3;:7;:::i;:::-;5632:25;;;;;;;;;;;;5611:46;;5745:22;5810:5;5788:19;5770:15;:37;;;;:::i;:::-;:45;;;;:::i;:::-;5745:70;;5830:14;5859:13;5847:9;:25;:46;;;;;5892:1;5876:13;:17;5847:46;:74;;5912:9;5847:74;;;5896:13;5847:74;5830:91;;5951:1;5939:9;:13;:46;;;;;5976:9;5956:17;:29;5939:46;5936:236;;;6006:18;6047:19;6027:17;:9;6039:5;6027:17;:::i;:::-;:39;;;;:::i;:::-;6006:60;;6108:15;6092:13;:31;:64;;6141:15;6092:64;;;6126:13;6092:64;6085:71;;;;;;;;;;;5936:236;6193:15;6186:22;;;;;;;;;;5004:1218;6232:25;;-1:-1:-1;;;6232:25:0;;3290:2:1;6232:25:0;;;3272:21:1;3329:2;3309:18;;;3302:30;-1:-1:-1;;;3348:18:1;;;3341:45;3403:18;;6232:25:0;3088:339:1;4847:1418:0;;;;;:::o;3290:1280::-;-1:-1:-1;;;;;3393:18:0;;3373:4;3393:18;;;:11;:18;;;;;;:22;3390:52;;-1:-1:-1;;;;;;3424:18:0;;;;;;:11;:18;;;;;;3417:25;;3390:52;-1:-1:-1;;;;;3456:12:0;;;3500:1;3456:12;;;:5;:12;;;;;:17;;:47;3453:1074;;3556:20;3579:25;3598:5;3579:18;:25::i;:::-;3556:48;-1:-1:-1;3619:8:0;3630:24;3648:6;3630:15;:24;:::i;:::-;-1:-1:-1;;;;;3718:16:0;;3701:14;3718:16;;;:9;:16;;;;;;;;:21;;;;;;;;;3619:35;;-1:-1:-1;3757:14:0;;;:45;;;3793:9;3775:15;:27;3757:45;3754:112;;;-1:-1:-1;3835:15:0;-1:-1:-1;;;;;3937:16:0;;3916:18;3937:16;;;:9;:16;;;;;3916:18;3954:7;3960:1;3954:3;:7;:::i;2124:143::-;1401:8;;-1:-1:-1;;;;;1401:8:0;1387:10;:22;1379:48;;;;-1:-1:-1;;;1379:48:0;;;;;;;:::i;:::-;2235:29:::1;::::0;;;;::::1;::::0;;-1:-1:-1;;;;;2235:29:0;;::::1;::::0;;::::1;::::0;;::::1;;::::0;;::::1;::::0;;;2220:12;;::::1;-1:-1:-1::0;2220:12:0;;;:5:::1;:12:::0;;;;;;;:44;;;;;;;;::::1;-1:-1:-1::0;;;2220:44:0::1;-1:-1:-1::0;;;;;;2220:44:0;;;;;;::::1;::::0;::::1;::::0;;2124:143::o;2838:230::-;2903:15;;-1:-1:-1;;;;;2903:15:0;2889:10;:29;2881:63;;;;-1:-1:-1;;;2881:63:0;;3634:2:1;2881:63:0;;;3616:21:1;3673:2;3653:18;;;3646:30;-1:-1:-1;;;3692:18:1;;;3685:51;3753:18;;2881:63:0;3432:345:1;2881:63:0;2966:15;;;;2955:26;;-1:-1:-1;;;;;2966:15:0;;-1:-1:-1;;;;;;2955:26:0;;;;;;;2992:28;;;;;3036:24;;2966:15;;3036:24;;;2838:230::o;6481:704::-;-1:-1:-1;;;;;6624:12:0;;;6547:20;6624:12;;;:5;:12;;;;;;;;:17;:32;;-1:-1:-1;;;6624:32:0;;;;6547:20;;;;6624:17;;;:30;;:32;;;;;;;;;;;:17;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6611:45;;6683:1;6675:5;:9;6667:40;;;;-1:-1:-1;;;6667:40:0;;4173:2:1;6667:40:0;;;4155:21:1;4212:2;4192:18;;;4185:30;-1:-1:-1;;;4231:18:1;;;4224:48;4289:18;;6667:40:0;3971:342:1;6667:40:0;-1:-1:-1;;;;;6767:12:0;;;6746:18;6767:12;;;:5;:12;;;;;;;;:17;:28;;-1:-1:-1;;;6767:28:0;;;;6746:18;;6767:17;;:26;;:28;;;;;:12;;:28;;;;;;:17;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6828:12:0;;6806:19;6828:12;;;:5;:12;;;;;:26;6746:49;;-1:-1:-1;;;;6828:26:0;;;;6900:2;6868:28;6828:26;6746:49;6868:28;:::i;:::-;:34;;;6865:311;;6919:14;6956:13;6936:17;6941:12;6936:2;:17;:::i;:::-;:33;;;;:::i;:::-;6919:50;-1:-1:-1;7011:14:0;6919:50;7011:2;:14;:::i;:::-;7002:24;;:5;:24;:::i;:::-;6984:42;;6904:134;6865:311;;;7059:14;7107:2;7076:28;7091:13;7076:12;:28;:::i;:::-;:33;;;;:::i;:::-;7059:50;-1:-1:-1;7150:14:0;7059:50;7150:2;:14;:::i;:::-;7142:22;;:5;:22;:::i;:::-;7124:40;;7044:132;6865:311;6569:616;;;6481:704;;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:1:o;402:315::-;470:6;478;531:2;519:9;510:7;506:23;502:32;499:52;;;547:1;544;537:12;499:52;586:9;573:23;605:31;630:5;605:31;:::i;:::-;655:5;707:2;692:18;;;;679:32;;-1:-1:-1;;;402:315:1:o;1419:114::-;1503:4;1496:5;1492:16;1485:5;1482:27;1472:55;;1523:1;1520;1513:12;1538:546;1634:6;1642;1650;1703:2;1691:9;1682:7;1678:23;1674:32;1671:52;;;1719:1;1716;1709:12;1671:52;1758:9;1745:23;1777:31;1802:5;1777:31;:::i;:::-;1827:5;-1:-1:-1;1884:2:1;1869:18;;1856:32;1897:33;1856:32;1897:33;:::i;:::-;1949:7;-1:-1:-1;2008:2:1;1993:18;;1980:32;2021:31;1980:32;2021:31;:::i;:::-;2071:7;2061:17;;;1538:546;;;;;:::o;2089:337::-;2291:2;2273:21;;;2330:2;2310:18;;;2303:30;-1:-1:-1;;;2364:2:1;2349:18;;2342:43;2417:2;2402:18;;2089:337::o;2431:127::-;2492:10;2487:3;2483:20;2480:1;2473:31;2523:4;2520:1;2513:15;2547:4;2544:1;2537:15;2563:217;2603:1;2629;2619:132;;2673:10;2668:3;2664:20;2661:1;2654:31;2708:4;2705:1;2698:15;2736:4;2733:1;2726:15;2619:132;-1:-1:-1;2765:9:1;;2563:217::o;2785:125::-;2825:4;2853:1;2850;2847:8;2844:34;;;2858:18;;:::i;:::-;-1:-1:-1;2895:9:1;;2785:125::o;2915:168::-;2955:7;3021:1;3017;3013:6;3009:14;3006:1;3003:21;2998:1;2991:9;2984:17;2980:45;2977:71;;;3028:18;;:::i;:::-;-1:-1:-1;3068:9:1;;2915:168::o;3782:184::-;3852:6;3905:2;3893:9;3884:7;3880:23;3876:32;3873:52;;;3921:1;3918;3911:12;3873:52;-1:-1:-1;3944:16:1;;3782:184;-1:-1:-1;3782:184:1:o;4318:247::-;4386:6;4439:2;4427:9;4418:7;4414:23;4410:32;4407:52;;;4455:1;4452;4445:12;4407:52;4487:9;4481:16;4506:29;4529:5;4506:29;:::i;4570:204::-;4608:3;4644:4;4641:1;4637:12;4676:4;4673:1;4669:12;4711:3;4705:4;4701:14;4696:3;4693:23;4690:49;;;4719:18;;:::i;:::-;4755:13;;4570:204;-1:-1:-1;;;4570:204:1:o;4779:195::-;4817:4;4854;4851:1;4847:12;4886:4;4883:1;4879:12;4911:3;4906;4903:12;4900:38;;;4918:18;;:::i;:::-;4955:13;;;4779:195;-1:-1:-1;;;4779:195:1:o;4979:422::-;5068:1;5111:5;5068:1;5125:270;5146:7;5136:8;5133:21;5125:270;;;5205:4;5201:1;5197:6;5193:17;5187:4;5184:27;5181:53;;;5214:18;;:::i;:::-;5264:7;5254:8;5250:22;5247:55;;;5284:16;;;;5247:55;5363:22;;;;5323:15;;;;5125:270;;;5129:3;4979:422;;;;;:::o;5406:806::-;5455:5;5485:8;5475:80;;-1:-1:-1;5526:1:1;5540:5;;5475:80;5574:4;5564:76;;-1:-1:-1;5611:1:1;5625:5;;5564:76;5656:4;5674:1;5669:59;;;;5742:1;5737:130;;;;5649:218;;5669:59;5699:1;5690:10;;5713:5;;;5737:130;5774:3;5764:8;5761:17;5758:43;;;5781:18;;:::i;:::-;-1:-1:-1;;5837:1:1;5823:16;;5852:5;;5649:218;;5951:2;5941:8;5938:16;5932:3;5926:4;5923:13;5919:36;5913:2;5903:8;5900:16;5895:2;5889:4;5886:12;5882:35;5879:77;5876:159;;;-1:-1:-1;5988:19:1;;;6020:5;;5876:159;6067:34;6092:8;6086:4;6067:34;:::i;:::-;6137:6;6133:1;6129:6;6125:19;6116:7;6113:32;6110:58;;;6148:18;;:::i;:::-;6186:20;;5406:806;-1:-1:-1;;;5406:806:1:o;6217:140::-;6275:5;6304:47;6345:4;6335:8;6331:19;6325:4;6304:47;:::i
Swarm Source
ipfs://9a6a51f77a04ca8c391ae67a1be9b122fbcd91e87a1dc91b6372e6af1679e6bb
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.