Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 473 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Update Rate | 12388135 | 1663 days ago | IN | 0 ETH | 0.04090708 | ||||
| Update Rate | 12386999 | 1663 days ago | IN | 0 ETH | 0.01483881 | ||||
| Update Rate | 12385910 | 1663 days ago | IN | 0 ETH | 0.01112264 | ||||
| Update Rate | 12384797 | 1663 days ago | IN | 0 ETH | 0.01247313 | ||||
| Update Rate | 12383723 | 1664 days ago | IN | 0 ETH | 0.0129174 | ||||
| Update Rate | 12382583 | 1664 days ago | IN | 0 ETH | 0.02528439 | ||||
| Update Rate | 12381450 | 1664 days ago | IN | 0 ETH | 0.01884721 | ||||
| Update Rate | 12380333 | 1664 days ago | IN | 0 ETH | 0.01189164 | ||||
| Update Rate | 12379230 | 1664 days ago | IN | 0 ETH | 0.01138473 | ||||
| Update Rate | 12378093 | 1664 days ago | IN | 0 ETH | 0.01034796 | ||||
| Update Rate | 12376967 | 1665 days ago | IN | 0 ETH | 0.01365158 | ||||
| Update Rate | 12375809 | 1665 days ago | IN | 0 ETH | 0.01730208 | ||||
| Update Rate | 12374647 | 1665 days ago | IN | 0 ETH | 0.03016915 | ||||
| Update Rate | 12373549 | 1665 days ago | IN | 0 ETH | 0.00853376 | ||||
| Update Rate | 12372445 | 1665 days ago | IN | 0 ETH | 0.00775347 | ||||
| Update Rate | 12371298 | 1666 days ago | IN | 0 ETH | 0.01164573 | ||||
| Update Rate | 12370219 | 1666 days ago | IN | 0 ETH | 0.01293405 | ||||
| Update Rate | 12369083 | 1666 days ago | IN | 0 ETH | 0.01860552 | ||||
| Update Rate | 12367935 | 1666 days ago | IN | 0 ETH | 0.01319048 | ||||
| Update Rate | 12366828 | 1666 days ago | IN | 0 ETH | 0.00932749 | ||||
| Update Rate | 12365728 | 1666 days ago | IN | 0 ETH | 0.00853442 | ||||
| Update Rate | 12364538 | 1667 days ago | IN | 0 ETH | 0.0149836 | ||||
| Update Rate | 12363394 | 1667 days ago | IN | 0 ETH | 0.02274386 | ||||
| Update Rate | 12362261 | 1667 days ago | IN | 0 ETH | 0.01646504 | ||||
| Update Rate | 12361135 | 1667 days ago | IN | 0 ETH | 0.00993607 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
RateSetter
Compiler Version
v0.6.7+commit.b8d736ae
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-02-14
*/
// Copyright (C) 2020 Maker Ecosystem Growth Holdings, INC, Reflexer Labs, INC.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU 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 General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
pragma solidity 0.6.7;
contract GebMath {
uint256 public constant RAY = 10 ** 27;
uint256 public constant WAD = 10 ** 18;
function ray(uint x) public pure returns (uint z) {
z = multiply(x, 10 ** 9);
}
function rad(uint x) public pure returns (uint z) {
z = multiply(x, 10 ** 27);
}
function minimum(uint x, uint y) public pure returns (uint z) {
z = (x <= y) ? x : y;
}
function addition(uint x, uint y) public pure returns (uint z) {
z = x + y;
require(z >= x, "uint-uint-add-overflow");
}
function subtract(uint x, uint y) public pure returns (uint z) {
z = x - y;
require(z <= x, "uint-uint-sub-underflow");
}
function multiply(uint x, uint y) public pure returns (uint z) {
require(y == 0 || (z = x * y) / y == x, "uint-uint-mul-overflow");
}
function rmultiply(uint x, uint y) public pure returns (uint z) {
z = multiply(x, y) / RAY;
}
function rdivide(uint x, uint y) public pure returns (uint z) {
z = multiply(x, RAY) / y;
}
function wdivide(uint x, uint y) public pure returns (uint z) {
z = multiply(x, WAD) / y;
}
function wmultiply(uint x, uint y) public pure returns (uint z) {
z = multiply(x, y) / WAD;
}
function rpower(uint x, uint n, uint base) public pure returns (uint 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)
}
}
}
}
}
}
abstract contract StabilityFeeTreasuryLike {
function getAllowance(address) virtual external view returns (uint, uint);
function systemCoin() virtual external view returns (address);
function pullFunds(address, address, uint) virtual external;
}
contract IncreasingTreasuryReimbursement is GebMath {
// --- Auth ---
mapping (address => uint) public authorizedAccounts;
function addAuthorization(address account) virtual external isAuthorized {
authorizedAccounts[account] = 1;
emit AddAuthorization(account);
}
function removeAuthorization(address account) virtual external isAuthorized {
authorizedAccounts[account] = 0;
emit RemoveAuthorization(account);
}
modifier isAuthorized {
require(authorizedAccounts[msg.sender] == 1, "IncreasingTreasuryReimbursement/account-not-authorized");
_;
}
// --- Variables ---
// Starting reward for the fee receiver/keeper
uint256 public baseUpdateCallerReward; // [wad]
// Max possible reward for the fee receiver/keeper
uint256 public maxUpdateCallerReward; // [wad]
// Max delay taken into consideration when calculating the adjusted reward
uint256 public maxRewardIncreaseDelay; // [seconds]
// Rate applied to baseUpdateCallerReward every extra second passed beyond a certain point (e.g next time when a specific function needs to be called)
uint256 public perSecondCallerRewardIncrease; // [ray]
// SF treasury
StabilityFeeTreasuryLike public treasury;
// --- Events ---
event AddAuthorization(address account);
event RemoveAuthorization(address account);
event ModifyParameters(
bytes32 parameter,
address addr
);
event ModifyParameters(
bytes32 parameter,
uint256 val
);
event FailRewardCaller(bytes revertReason, address feeReceiver, uint256 amount);
constructor(
address treasury_,
uint256 baseUpdateCallerReward_,
uint256 maxUpdateCallerReward_,
uint256 perSecondCallerRewardIncrease_
) public {
if (address(treasury_) != address(0)) {
require(StabilityFeeTreasuryLike(treasury_).systemCoin() != address(0), "IncreasingTreasuryReimbursement/treasury-coin-not-set");
}
require(maxUpdateCallerReward_ >= baseUpdateCallerReward_, "IncreasingTreasuryReimbursement/invalid-max-caller-reward");
require(perSecondCallerRewardIncrease_ >= RAY, "IncreasingTreasuryReimbursement/invalid-per-second-reward-increase");
authorizedAccounts[msg.sender] = 1;
treasury = StabilityFeeTreasuryLike(treasury_);
baseUpdateCallerReward = baseUpdateCallerReward_;
maxUpdateCallerReward = maxUpdateCallerReward_;
perSecondCallerRewardIncrease = perSecondCallerRewardIncrease_;
maxRewardIncreaseDelay = uint(-1);
emit AddAuthorization(msg.sender);
emit ModifyParameters("treasury", treasury_);
emit ModifyParameters("baseUpdateCallerReward", baseUpdateCallerReward);
emit ModifyParameters("maxUpdateCallerReward", maxUpdateCallerReward);
emit ModifyParameters("perSecondCallerRewardIncrease", perSecondCallerRewardIncrease);
}
// --- Boolean Logic ---
function either(bool x, bool y) internal pure returns (bool z) {
assembly{ z := or(x, y)}
}
// --- Treasury ---
/**
* @notice This returns the stability fee treasury allowance for this contract by taking the minimum between the per block and the total allowances
**/
function treasuryAllowance() public view returns (uint256) {
(uint total, uint perBlock) = treasury.getAllowance(address(this));
return minimum(total, perBlock);
}
/*
* @notice Get the SF reward that can be sent to a function caller right now
*/
function getCallerReward(uint256 timeOfLastUpdate, uint256 defaultDelayBetweenCalls) public view returns (uint256) {
bool nullRewards = (baseUpdateCallerReward == 0 && maxUpdateCallerReward == 0);
if (either(timeOfLastUpdate >= now, nullRewards)) return 0;
uint256 timeElapsed = (timeOfLastUpdate == 0) ? defaultDelayBetweenCalls : subtract(now, timeOfLastUpdate);
if (either(timeElapsed < defaultDelayBetweenCalls, baseUpdateCallerReward == 0)) {
return 0;
}
uint256 adjustedTime = subtract(timeElapsed, defaultDelayBetweenCalls);
uint256 maxPossibleReward = minimum(maxUpdateCallerReward, treasuryAllowance() / RAY);
if (adjustedTime > maxRewardIncreaseDelay) {
return maxPossibleReward;
}
uint256 calculatedReward = baseUpdateCallerReward;
if (adjustedTime > 0) {
calculatedReward = rmultiply(rpower(perSecondCallerRewardIncrease, adjustedTime, RAY), calculatedReward);
}
if (calculatedReward > maxPossibleReward) {
calculatedReward = maxPossibleReward;
}
return calculatedReward;
}
/**
* @notice Send a stability fee reward to an address
* @param proposedFeeReceiver The SF receiver
* @param reward The system coin amount to send
**/
function rewardCaller(address proposedFeeReceiver, uint256 reward) internal {
if (address(treasury) == proposedFeeReceiver) return;
if (either(address(treasury) == address(0), reward == 0)) return;
address finalFeeReceiver = (proposedFeeReceiver == address(0)) ? msg.sender : proposedFeeReceiver;
try treasury.pullFunds(finalFeeReceiver, treasury.systemCoin(), reward) {}
catch(bytes memory revertReason) {
emit FailRewardCaller(revertReason, finalFeeReceiver, reward);
}
}
}
abstract contract OracleLike {
function getResultWithValidity() virtual external view returns (uint256, bool);
}
abstract contract OracleRelayerLike {
function redemptionPrice() virtual external returns (uint256);
function modifyParameters(bytes32,uint256) virtual external;
}
abstract contract PIDCalculator {
function computeRate(uint256, uint256, uint256) virtual external returns (uint256);
function rt(uint256, uint256, uint256) virtual external view returns (uint256);
function pscl() virtual external view returns (uint256);
function tlv() virtual external view returns (uint256);
}
contract RateSetter is IncreasingTreasuryReimbursement {
// --- Variables ---
// Settlement flag
uint256 public contractEnabled; // [0 or 1]
// Last recorded system coin market price
uint256 public latestMarketPrice; // [ray]
// When the price feed was last updated
uint256 public lastUpdateTime; // [timestamp]
// Enforced gap between calls
uint256 public updateRateDelay; // [seconds]
// --- System Dependencies ---
// OSM or medianizer for the system coin
OracleLike public orcl;
// OracleRelayer where the redemption price is stored
OracleRelayerLike public oracleRelayer;
// Calculator for the redemption rate
PIDCalculator public pidCalculator;
// --- Events ---
event UpdateRedemptionRate(
uint marketPrice,
uint redemptionPrice,
uint redemptionRate
);
event FailUpdateRedemptionRate(
bytes reason
);
event FailUpdateOracle(bytes revertReason, address orcl);
constructor(
address oracleRelayer_,
address orcl_,
address treasury_,
address pidCalculator_,
uint256 baseUpdateCallerReward_,
uint256 maxUpdateCallerReward_,
uint256 perSecondCallerRewardIncrease_,
uint256 updateRateDelay_
) public IncreasingTreasuryReimbursement(treasury_, baseUpdateCallerReward_, maxUpdateCallerReward_, perSecondCallerRewardIncrease_) {
oracleRelayer = OracleRelayerLike(oracleRelayer_);
orcl = OracleLike(orcl_);
pidCalculator = PIDCalculator(pidCalculator_);
updateRateDelay = updateRateDelay_;
contractEnabled = 1;
emit ModifyParameters("orcl", orcl_);
emit ModifyParameters("oracleRelayer", oracleRelayer_);
emit ModifyParameters("pidCalculator", pidCalculator_);
emit ModifyParameters("updateRateDelay", updateRateDelay_);
}
// --- Management ---
function modifyParameters(bytes32 parameter, address addr) external isAuthorized {
require(contractEnabled == 1, "RateSetter/contract-not-enabled");
if (parameter == "orcl") orcl = OracleLike(addr);
else if (parameter == "oracleRelayer") oracleRelayer = OracleRelayerLike(addr);
else if (parameter == "treasury") {
require(StabilityFeeTreasuryLike(addr).systemCoin() != address(0), "RateSetter/treasury-coin-not-set");
treasury = StabilityFeeTreasuryLike(addr);
}
else if (parameter == "pidCalculator") {
pidCalculator = PIDCalculator(addr);
}
else revert("RateSetter/modify-unrecognized-param");
emit ModifyParameters(
parameter,
addr
);
}
function modifyParameters(bytes32 parameter, uint256 val) external isAuthorized {
require(contractEnabled == 1, "RateSetter/contract-not-enabled");
if (parameter == "baseUpdateCallerReward") {
require(val <= maxUpdateCallerReward, "RateSetter/invalid-base-caller-reward");
baseUpdateCallerReward = val;
}
else if (parameter == "maxUpdateCallerReward") {
require(val >= baseUpdateCallerReward, "RateSetter/invalid-max-caller-reward");
maxUpdateCallerReward = val;
}
else if (parameter == "perSecondCallerRewardIncrease") {
require(val >= RAY, "RateSetter/invalid-caller-reward-increase");
perSecondCallerRewardIncrease = val;
}
else if (parameter == "maxRewardIncreaseDelay") {
require(val > 0, "RateSetter/invalid-max-increase-delay");
maxRewardIncreaseDelay = val;
}
else if (parameter == "updateRateDelay") {
require(val >= 0, "RateSetter/invalid-call-gap-length");
updateRateDelay = val;
}
else revert("RateSetter/modify-unrecognized-param");
emit ModifyParameters(
parameter,
val
);
}
function disableContract() external isAuthorized {
contractEnabled = 0;
}
// --- Feedback Mechanism ---
/**
* @notice Compute and set a new redemption rate
* @param feeReceiver The proposed address that should receive the reward for calling this function
* (unless it's address(0) in which case msg.sender will get it)
**/
function updateRate(address feeReceiver) external {
require(contractEnabled == 1, "RateSetter/contract-not-enabled");
// Check delay between calls
require(either(subtract(now, lastUpdateTime) >= updateRateDelay, lastUpdateTime == 0), "RateSetter/wait-more");
// Get price feed updates
(uint256 marketPrice, bool hasValidValue) = orcl.getResultWithValidity();
// If the oracle has a value
require(hasValidValue, "RateSetter/invalid-oracle-value");
// If the price is non-zero
require(marketPrice > 0, "RateSetter/null-price");
// Get the latest redemption price
uint redemptionPrice = oracleRelayer.redemptionPrice();
// Get the caller's reward
uint256 callerReward = getCallerReward(lastUpdateTime, updateRateDelay);
// Store the latest market price
latestMarketPrice = ray(marketPrice);
// Calculate the rate
uint256 tlv = pidCalculator.tlv();
uint256 iapcr = rpower(pidCalculator.pscl(), tlv, RAY);
uint256 validated = pidCalculator.computeRate(
marketPrice,
redemptionPrice,
iapcr
);
// Store the timestamp of the update
lastUpdateTime = now;
// Update the rate inside the system (if it doesn't throw)
try oracleRelayer.modifyParameters("redemptionRate", validated) {
// Emit success event
emit UpdateRedemptionRate(
ray(marketPrice),
redemptionPrice,
validated
);
}
catch(bytes memory revertReason) {
emit FailUpdateRedemptionRate(
revertReason
);
}
// Pay the caller for updating the rate
rewardCaller(feeReceiver, callerReward);
}
// --- Getters ---
/**
* @notice Get the market price from the system coin oracle
**/
function getMarketPrice() external view returns (uint256) {
(uint256 marketPrice, ) = orcl.getResultWithValidity();
return marketPrice;
}
/**
* @notice Get the redemption and the market prices for the system coin
**/
function getRedemptionAndMarketPrices() external returns (uint256 marketPrice, uint256 redemptionPrice) {
(marketPrice, ) = orcl.getResultWithValidity();
redemptionPrice = oracleRelayer.redemptionPrice();
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"oracleRelayer_","type":"address"},{"internalType":"address","name":"orcl_","type":"address"},{"internalType":"address","name":"treasury_","type":"address"},{"internalType":"address","name":"pidCalculator_","type":"address"},{"internalType":"uint256","name":"baseUpdateCallerReward_","type":"uint256"},{"internalType":"uint256","name":"maxUpdateCallerReward_","type":"uint256"},{"internalType":"uint256","name":"perSecondCallerRewardIncrease_","type":"uint256"},{"internalType":"uint256","name":"updateRateDelay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"AddAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"revertReason","type":"bytes"},{"indexed":false,"internalType":"address","name":"feeReceiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FailRewardCaller","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"revertReason","type":"bytes"},{"indexed":false,"internalType":"address","name":"orcl","type":"address"}],"name":"FailUpdateOracle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"FailUpdateRedemptionRate","type":"event"},{"anonymous":false,"inputs":[{"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":"val","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":false,"internalType":"uint256","name":"marketPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"redemptionPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"redemptionRate","type":"uint256"}],"name":"UpdateRedemptionRate","type":"event"},{"inputs":[],"name":"RAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WAD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"addition","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorizedAccounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseUpdateCallerReward","outputs":[{"internalType":"uint256","name":"","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":"uint256","name":"timeOfLastUpdate","type":"uint256"},{"internalType":"uint256","name":"defaultDelayBetweenCalls","type":"uint256"}],"name":"getCallerReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRedemptionAndMarketPrices","outputs":[{"internalType":"uint256","name":"marketPrice","type":"uint256"},{"internalType":"uint256","name":"redemptionPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestMarketPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRewardIncreaseDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxUpdateCallerReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"minimum","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"address","name":"addr","type":"address"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"uint256","name":"val","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"multiply","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"oracleRelayer","outputs":[{"internalType":"contract OracleRelayerLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"orcl","outputs":[{"internalType":"contract OracleLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"perSecondCallerRewardIncrease","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pidCalculator","outputs":[{"internalType":"contract PIDCalculator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"rad","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"ray","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"rdivide","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"rmultiply","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"n","type":"uint256"},{"internalType":"uint256","name":"base","type":"uint256"}],"name":"rpower","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"subtract","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"contract StabilityFeeTreasuryLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"feeReceiver","type":"address"}],"name":"updateRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateRateDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"wdivide","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"wmultiply","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b506040516200345a3803806200345a83398181016040526101008110156200003857600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505085848484600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614620001d457600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1663a7e944556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012757600080fd5b505afa1580156200013c573d6000803e3d6000fd5b505050506040513d60208110156200015357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415620001d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180620033ec6035913960400191505060405180910390fd5b5b828210156200022f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180620034216039913960400191505060405180910390fd5b6b033b2e3c9fd0803ce800000081101562000296576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180620033aa6042913960600191505060405180910390fd5b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260018190555081600281905550806004819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6003819055507f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f700010233604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d18460405180807f74726561737572790000000000000000000000000000000000000000000000008152506020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a60015460405180807f6261736555706461746543616c6c65725265776172640000000000000000000081525060200182815260200191505060405180910390a17fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a60025460405180807f6d617855706461746543616c6c6572526577617264000000000000000000000081525060200182815260200191505060405180910390a17fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a60045460405180807f7065725365636f6e6443616c6c6572526577617264496e63726561736500000081525060200182815260200191505060405180910390a15050505087600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060098190555060016006819055507fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d18760405180807f6f72636c000000000000000000000000000000000000000000000000000000008152506020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d18860405180807f6f7261636c6552656c61796572000000000000000000000000000000000000008152506020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d18560405180807f70696443616c63756c61746f72000000000000000000000000000000000000008152506020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a8160405180807f7570646174655261746544656c6179000000000000000000000000000000000081525060200182815260200191505060405180910390a15050505050505050612b5480620008566000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806361d027b311610125578063a0871637116100ad578063dd2d2a121161007c578063dd2d2a12146108b0578063f238ffd2146108fc578063f74826bb14610948578063f752fdc31461098c578063fe4f5890146109d85761021c565b8063a0871637146107d2578063c8f33c911461081e578063d243f6b71461083c578063d6e882dc1461085a5761021c565b80636614f010116100f45780636614f010146106fa57806369dec276146107485780636a14602414610766578063894ba8331461078457806394f3f81d1461078e5761021c565b806361d027b31461064f57806363ac7ca71461069957806363c9f725146106be578063660e16c3146106dc5761021c565b80633ef5e445116101a857806346f3e81c1161017757806346f3e81c1461050f5780634a8d632c146105515780634faf61ab1461059b57806354f363a3146105e5578063552033c4146106315761021c565b80633ef5e4451461043d57806341b3a0d91461048957806343943b6b146104a7578063448a2638146104c55761021c565b80632009e568116101ef5780632009e5681461031957806324ba5884146103375780633425677e1461038f57806335b28153146103ad5780633c8bb3e6146103f15761021c565b8063056640b714610221578063102134471461026d578063165c4a16146102af5780631c1f908c146102fb575b600080fd5b6102576004803603604081101561023757600080fd5b810190808035906020019092919080359060200190929190505050610a10565b6040518082815260200191505060405180910390f35b6102996004803603602081101561028357600080fd5b8101908080359060200190929190505050610a39565b6040518082815260200191505060405180910390f35b6102e5600480360360408110156102c557600080fd5b810190808035906020019092919080359060200190929190505050610a50565b6040518082815260200191505060405180910390f35b610303610ae5565b6040518082815260200191505060405180910390f35b610321610aeb565b6040518082815260200191505060405180910390f35b6103796004803603602081101561034d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610af1565b6040518082815260200191505060405180910390f35b610397610b09565b6040518082815260200191505060405180910390f35b6103ef600480360360208110156103c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c06565b005b6104276004803603604081101561040757600080fd5b810190808035906020019092919080359060200190929190505050610d47565b6040518082815260200191505060405180910390f35b6104736004803603604081101561045357600080fd5b810190808035906020019092919080359060200190929190505050610d6c565b6040518082815260200191505060405180910390f35b610491610def565b6040518082815260200191505060405180910390f35b6104af610df5565b6040518082815260200191505060405180910390f35b6104cd610dfb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053b6004803603602081101561052557600080fd5b8101908080359060200190929190505050610e21565b6040518082815260200191505060405180910390f35b610559610e40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105a3610e66565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61061b600480360360408110156105fb57600080fd5b810190808035906020019092919080359060200190929190505050610e8c565b6040518082815260200191505060405180910390f35b610639610f0f565b6040518082815260200191505060405180910390f35b610657610f1f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106a1610f45565b604051808381526020018281526020019250505060405180910390f35b6106c66110a4565b6040518082815260200191505060405180910390f35b6106e46110aa565b6040518082815260200191505060405180910390f35b6107466004803603604081101561071057600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611163565b005b610750611610565b6040518082815260200191505060405180910390f35b61076e611616565b6040518082815260200191505060405180910390f35b61078c611622565b005b6107d0600480360360208110156107a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116c3565b005b610808600480360360408110156107e857600080fd5b810190808035906020019092919080359060200190929190505050611804565b6040518082815260200191505060405180910390f35b61082661182d565b6040518082815260200191505060405180910390f35b610844611833565b6040518082815260200191505060405180910390f35b61089a6004803603606081101561087057600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611839565b6040518082815260200191505060405180910390f35b6108e6600480360360408110156108c657600080fd5b8101908080359060200190929190803590602001909291905050506118ff565b6040518082815260200191505060405180910390f35b6109326004803603604081101561091257600080fd5b810190808035906020019092919080359060200190929190505050611919565b6040518082815260200191505060405180910390f35b61098a6004803603602081101561095e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a2b565b005b6109c2600480360360408110156109a257600080fd5b8101908080359060200190929190803590602001909291905050506121b3565b6040518082815260200191505060405180910390f35b610a0e600480360360408110156109ee57600080fd5b8101908080359060200190929190803590602001909291905050506121d8565b005b60006b033b2e3c9fd0803ce8000000610a298484610a50565b81610a3057fe5b04905092915050565b6000610a4982633b9aca00610a50565b9050919050565b600080821480610a6d5750828283850292508281610a6a57fe5b04145b610adf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f75696e742d75696e742d6d756c2d6f766572666c6f770000000000000000000081525060200191505060405180910390fd5b92915050565b60015481565b60035481565b60006020528060005260406000206000915090505481565b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb5a662e306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b158015610bac57600080fd5b505afa158015610bc0573d6000803e3d6000fd5b505050506040513d6040811015610bd657600080fd5b81019080805190602001909291908051906020019092919050505091509150610bff82826118ff565b9250505090565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ae96036913960400191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f700010281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000670de0b6b3a7640000610d5c8484610a50565b81610d6357fe5b04905092915050565b6000818303905082811115610de9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f75696e742d75696e742d7375622d756e646572666c6f7700000000000000000081525060200191505060405180910390fd5b92915050565b60065481565b60045481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e39826b033b2e3c9fd0803ce8000000610a50565b9050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000818301905082811015610f09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f75696e742d75696e742d6164642d6f766572666c6f770000000000000000000081525060200191505060405180910390fd5b92915050565b6b033b2e3c9fd0803ce800000081565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634fd0ada86040518163ffffffff1660e01b8152600401604080518083038186803b158015610faf57600080fd5b505afa158015610fc3573d6000803e3d6000fd5b505050506040513d6040811015610fd957600080fd5b8101908080519060200190929190805190602001909291905050505080925050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c5b748c06040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561106357600080fd5b505af1158015611077573d6000803e3d6000fd5b505050506040513d602081101561108d57600080fd5b810190808051906020019092919050505090509091565b60095481565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634fd0ada86040518163ffffffff1660e01b8152600401604080518083038186803b15801561111457600080fd5b505afa158015611128573d6000803e3d6000fd5b505050506040513d604081101561113e57600080fd5b8101908080519060200190929190805190602001909291905050505090508091505090565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146111fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ae96036913960400191505060405180910390fd5b600160065414611272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526174655365747465722f636f6e74726163742d6e6f742d656e61626c65640081525060200191505060405180910390fd5b7f6f72636c000000000000000000000000000000000000000000000000000000008214156112e05780600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115a1565b7f6f7261636c6552656c617965720000000000000000000000000000000000000082141561134e5780600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115a0565b7f74726561737572790000000000000000000000000000000000000000000000008214156114df57600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663a7e944556040518163ffffffff1660e01b815260040160206040518083038186803b1580156113d457600080fd5b505afa1580156113e8573d6000803e3d6000fd5b505050506040513d60208110156113fe57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415611499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f526174655365747465722f74726561737572792d636f696e2d6e6f742d73657481525060200191505060405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061159f565b7f70696443616c63756c61746f720000000000000000000000000000000000000082141561154d5780600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061159e565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ac56024913960400191505060405180910390fd5b5b5b5b7fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d18282604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b60025481565b670de0b6b3a764000081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146116b9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ae96036913960400191505060405180910390fd5b6000600681905550565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461175a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ae96036913960400191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b90381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60008161181d846b033b2e3c9fd0803ce8000000610a50565b8161182457fe5b04905092915050565b60085481565b60075481565b600083600081146118df5760028406600081146118585785925061185c565b8392505b50600283046002850494505b84156118d957858602868782041461187f57600080fd5b8181018181101561188f57600080fd5b858104975060028706156118cc5787850285898204141589151516156118b457600080fd5b838101818110156118c457600080fd5b878104965050505b5050600285049450611868565b506118f7565b83600081146118f157600092506118f5565b8392505b505b509392505050565b60008183111561190f5781611911565b825b905092915050565b600080600060015414801561193057506000600254145b905061193f4285101582612651565b1561194e576000915050611a25565b6000808514611966576119614286610d6c565b611968565b835b905061197b848210600060015414612651565b1561198b57600092505050611a25565b60006119978286610d6c565b905060006119c36002546b033b2e3c9fd0803ce80000006119b6610b09565b816119bd57fe5b046118ff565b90506003548211156119db5780945050505050611a25565b600060015490506000831115611a1057611a0d611a07600454856b033b2e3c9fd0803ce8000000611839565b82610a10565b90505b81811115611a1c578190505b80955050505050505b92915050565b600160065414611aa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526174655365747465722f636f6e74726163742d6e6f742d656e61626c65640081525060200191505060405180910390fd5b611ac2600954611ab542600854610d6c565b1015600060085414612651565b611b34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f526174655365747465722f776169742d6d6f726500000000000000000000000081525060200191505060405180910390fd5b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634fd0ada86040518163ffffffff1660e01b8152600401604080518083038186803b158015611b9e57600080fd5b505afa158015611bb2573d6000803e3d6000fd5b505050506040513d6040811015611bc857600080fd5b8101908080519060200190929190805190602001909291905050509150915080611c5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526174655365747465722f696e76616c69642d6f7261636c652d76616c75650081525060200191505060405180910390fd5b60008211611cd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f526174655365747465722f6e756c6c2d7072696365000000000000000000000081525060200191505060405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c5b748c06040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611d3c57600080fd5b505af1158015611d50573d6000803e3d6000fd5b505050506040513d6020811015611d6657600080fd5b810190808051906020019092919050505090506000611d89600854600954611919565b9050611d9484610a39565b6007819055506000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636e3126ef6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e0457600080fd5b505afa158015611e18573d6000803e3d6000fd5b505050506040513d6020811015611e2e57600080fd5b810190808051906020019092919050505090506000611efc600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635f1b0b986040518163ffffffff1660e01b815260040160206040518083038186803b158015611eae57600080fd5b505afa158015611ec2573d6000803e3d6000fd5b505050506040513d6020811015611ed857600080fd5b8101908080519060200190929190505050836b033b2e3c9fd0803ce8000000611839565b90506000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166371c7132e8887856040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050602060405180830381600087803b158015611f8557600080fd5b505af1158015611f99573d6000803e3d6000fd5b505050506040513d6020811015611faf57600080fd5b8101908080519060200190929190505050905042600881905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe4f5890826040518263ffffffff1660e01b815260040180807f726564656d7074696f6e52617465000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561206657600080fd5b505af1925050508015612077575060015b61214f573d80600081146120a7576040519150601f19603f3d011682016040523d82523d6000602084013e6120ac565b606091505b507f2b6fb175766701d6a337a6f637d3453fd6d350d0ea5a93c7c56691006ade63b9816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561210f5780820151818401526020810190506120f4565b50505050905090810190601f16801561213c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a15061219f565b7f16abce12916e67b821a9cdabe7103d806d6f4280a69d5830925b3e34c83f52a861217988610a39565b868360405180848152602001838152602001828152602001935050505060405180910390a15b6121a9888561265e565b5050505050505050565b6000816121c884670de0b6b3a7640000610a50565b816121cf57fe5b04905092915050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461226f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ae96036913960400191505060405180910390fd5b6001600654146122e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526174655365747465722f636f6e74726163742d6e6f742d656e61626c65640081525060200191505060405180910390fd5b7f6261736555706461746543616c6c6572526577617264000000000000000000008214156123765760025481111561236a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a0c6025913960400191505060405180910390fd5b8060018190555061260e565b7f6d617855706461746543616c6c65725265776172640000000000000000000000821415612405576001548110156123f9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a7f6024913960400191505060405180910390fd5b8060028190555061260d565b7f7065725365636f6e6443616c6c6572526577617264496e63726561736500000082141561249e576b033b2e3c9fd0803ce8000000811015612492576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612a566029913960400191505060405180910390fd5b8060048190555061260c565b7f6d6178526577617264496e63726561736544656c61790000000000000000000082141561252b576000811161251f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a316025913960400191505060405180910390fd5b8060038190555061260b565b7f7570646174655261746544656c617900000000000000000000000000000000008214156125b95760008110156125ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612aa36022913960400191505060405180910390fd5b8060098190555061260a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ac56024913960400191505060405180910390fd5b5b5b5b5b7fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a8282604051808381526020018281526020019250505060405180910390a15050565b6000818317905092915050565b8173ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156126b957612a07565b612717600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161460008314612651565b1561272157612a07565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461275c578261275e565b335b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663201add9b82600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a7e944556040518163ffffffff1660e01b815260040160206040518083038186803b15801561280757600080fd5b505afa15801561281b573d6000803e3d6000fd5b505050506040513d602081101561283157600080fd5b8101908080519060200190929190505050856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156128df57600080fd5b505af19250505080156128f0575060015b612a04573d8060008114612920576040519150601f19603f3d011682016040523d82523d6000602084013e612925565b606091505b507ff7bf1f7447ce563690edb2abe40636178ff64fc766b07bf3e171b16102794a5481838560405180806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156129c25780820151818401526020810190506129a7565b50505050905090810190601f1680156129ef5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150612a05565b5b505b505056fe526174655365747465722f696e76616c69642d626173652d63616c6c65722d726577617264526174655365747465722f696e76616c69642d6d61782d696e6372656173652d64656c6179526174655365747465722f696e76616c69642d63616c6c65722d7265776172642d696e637265617365526174655365747465722f696e76616c69642d6d61782d63616c6c65722d726577617264526174655365747465722f696e76616c69642d63616c6c2d6761702d6c656e677468526174655365747465722f6d6f646966792d756e7265636f676e697a65642d706172616d496e6372656173696e6754726561737572795265696d62757273656d656e742f6163636f756e742d6e6f742d617574686f72697a6564a2646970667358221220b81bb5ef487e55709b1cda124e7fb551d64e88f74359bca2c7fa81e5b640b1f564736f6c63430006070033496e6372656173696e6754726561737572795265696d62757273656d656e742f696e76616c69642d7065722d7365636f6e642d7265776172642d696e637265617365496e6372656173696e6754726561737572795265696d62757273656d656e742f74726561737572792d636f696e2d6e6f742d736574496e6372656173696e6754726561737572795265696d62757273656d656e742f696e76616c69642d6d61782d63616c6c65722d7265776172640000000000000000000000004ed9c0dca0479bc64d8f4eb3007126d5791f785100000000000000000000000012a5e1c81b10b264a575930aeae80681ddf595fe00000000000000000000000083533fdd3285f48204215e9cf38c785371258e76000000000000000000000000cfa37dce6dfe80857c3b8dba100b592775ae268800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008ac7230489e800000000000000000000000000000000000000000000033b57034a98502542e4fba80000000000000000000000000000000000000000000000000000000000003840
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061021c5760003560e01c806361d027b311610125578063a0871637116100ad578063dd2d2a121161007c578063dd2d2a12146108b0578063f238ffd2146108fc578063f74826bb14610948578063f752fdc31461098c578063fe4f5890146109d85761021c565b8063a0871637146107d2578063c8f33c911461081e578063d243f6b71461083c578063d6e882dc1461085a5761021c565b80636614f010116100f45780636614f010146106fa57806369dec276146107485780636a14602414610766578063894ba8331461078457806394f3f81d1461078e5761021c565b806361d027b31461064f57806363ac7ca71461069957806363c9f725146106be578063660e16c3146106dc5761021c565b80633ef5e445116101a857806346f3e81c1161017757806346f3e81c1461050f5780634a8d632c146105515780634faf61ab1461059b57806354f363a3146105e5578063552033c4146106315761021c565b80633ef5e4451461043d57806341b3a0d91461048957806343943b6b146104a7578063448a2638146104c55761021c565b80632009e568116101ef5780632009e5681461031957806324ba5884146103375780633425677e1461038f57806335b28153146103ad5780633c8bb3e6146103f15761021c565b8063056640b714610221578063102134471461026d578063165c4a16146102af5780631c1f908c146102fb575b600080fd5b6102576004803603604081101561023757600080fd5b810190808035906020019092919080359060200190929190505050610a10565b6040518082815260200191505060405180910390f35b6102996004803603602081101561028357600080fd5b8101908080359060200190929190505050610a39565b6040518082815260200191505060405180910390f35b6102e5600480360360408110156102c557600080fd5b810190808035906020019092919080359060200190929190505050610a50565b6040518082815260200191505060405180910390f35b610303610ae5565b6040518082815260200191505060405180910390f35b610321610aeb565b6040518082815260200191505060405180910390f35b6103796004803603602081101561034d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610af1565b6040518082815260200191505060405180910390f35b610397610b09565b6040518082815260200191505060405180910390f35b6103ef600480360360208110156103c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c06565b005b6104276004803603604081101561040757600080fd5b810190808035906020019092919080359060200190929190505050610d47565b6040518082815260200191505060405180910390f35b6104736004803603604081101561045357600080fd5b810190808035906020019092919080359060200190929190505050610d6c565b6040518082815260200191505060405180910390f35b610491610def565b6040518082815260200191505060405180910390f35b6104af610df5565b6040518082815260200191505060405180910390f35b6104cd610dfb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053b6004803603602081101561052557600080fd5b8101908080359060200190929190505050610e21565b6040518082815260200191505060405180910390f35b610559610e40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105a3610e66565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61061b600480360360408110156105fb57600080fd5b810190808035906020019092919080359060200190929190505050610e8c565b6040518082815260200191505060405180910390f35b610639610f0f565b6040518082815260200191505060405180910390f35b610657610f1f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106a1610f45565b604051808381526020018281526020019250505060405180910390f35b6106c66110a4565b6040518082815260200191505060405180910390f35b6106e46110aa565b6040518082815260200191505060405180910390f35b6107466004803603604081101561071057600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611163565b005b610750611610565b6040518082815260200191505060405180910390f35b61076e611616565b6040518082815260200191505060405180910390f35b61078c611622565b005b6107d0600480360360208110156107a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116c3565b005b610808600480360360408110156107e857600080fd5b810190808035906020019092919080359060200190929190505050611804565b6040518082815260200191505060405180910390f35b61082661182d565b6040518082815260200191505060405180910390f35b610844611833565b6040518082815260200191505060405180910390f35b61089a6004803603606081101561087057600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611839565b6040518082815260200191505060405180910390f35b6108e6600480360360408110156108c657600080fd5b8101908080359060200190929190803590602001909291905050506118ff565b6040518082815260200191505060405180910390f35b6109326004803603604081101561091257600080fd5b810190808035906020019092919080359060200190929190505050611919565b6040518082815260200191505060405180910390f35b61098a6004803603602081101561095e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a2b565b005b6109c2600480360360408110156109a257600080fd5b8101908080359060200190929190803590602001909291905050506121b3565b6040518082815260200191505060405180910390f35b610a0e600480360360408110156109ee57600080fd5b8101908080359060200190929190803590602001909291905050506121d8565b005b60006b033b2e3c9fd0803ce8000000610a298484610a50565b81610a3057fe5b04905092915050565b6000610a4982633b9aca00610a50565b9050919050565b600080821480610a6d5750828283850292508281610a6a57fe5b04145b610adf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f75696e742d75696e742d6d756c2d6f766572666c6f770000000000000000000081525060200191505060405180910390fd5b92915050565b60015481565b60035481565b60006020528060005260406000206000915090505481565b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb5a662e306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604080518083038186803b158015610bac57600080fd5b505afa158015610bc0573d6000803e3d6000fd5b505050506040513d6040811015610bd657600080fd5b81019080805190602001909291908051906020019092919050505091509150610bff82826118ff565b9250505090565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ae96036913960400191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f700010281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000670de0b6b3a7640000610d5c8484610a50565b81610d6357fe5b04905092915050565b6000818303905082811115610de9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f75696e742d75696e742d7375622d756e646572666c6f7700000000000000000081525060200191505060405180910390fd5b92915050565b60065481565b60045481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e39826b033b2e3c9fd0803ce8000000610a50565b9050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000818301905082811015610f09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f75696e742d75696e742d6164642d6f766572666c6f770000000000000000000081525060200191505060405180910390fd5b92915050565b6b033b2e3c9fd0803ce800000081565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634fd0ada86040518163ffffffff1660e01b8152600401604080518083038186803b158015610faf57600080fd5b505afa158015610fc3573d6000803e3d6000fd5b505050506040513d6040811015610fd957600080fd5b8101908080519060200190929190805190602001909291905050505080925050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c5b748c06040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561106357600080fd5b505af1158015611077573d6000803e3d6000fd5b505050506040513d602081101561108d57600080fd5b810190808051906020019092919050505090509091565b60095481565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634fd0ada86040518163ffffffff1660e01b8152600401604080518083038186803b15801561111457600080fd5b505afa158015611128573d6000803e3d6000fd5b505050506040513d604081101561113e57600080fd5b8101908080519060200190929190805190602001909291905050505090508091505090565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146111fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ae96036913960400191505060405180910390fd5b600160065414611272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526174655365747465722f636f6e74726163742d6e6f742d656e61626c65640081525060200191505060405180910390fd5b7f6f72636c000000000000000000000000000000000000000000000000000000008214156112e05780600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115a1565b7f6f7261636c6552656c617965720000000000000000000000000000000000000082141561134e5780600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115a0565b7f74726561737572790000000000000000000000000000000000000000000000008214156114df57600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663a7e944556040518163ffffffff1660e01b815260040160206040518083038186803b1580156113d457600080fd5b505afa1580156113e8573d6000803e3d6000fd5b505050506040513d60208110156113fe57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415611499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f526174655365747465722f74726561737572792d636f696e2d6e6f742d73657481525060200191505060405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061159f565b7f70696443616c63756c61746f720000000000000000000000000000000000000082141561154d5780600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061159e565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ac56024913960400191505060405180910390fd5b5b5b5b7fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d18282604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b60025481565b670de0b6b3a764000081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146116b9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ae96036913960400191505060405180910390fd5b6000600681905550565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461175a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ae96036913960400191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b90381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60008161181d846b033b2e3c9fd0803ce8000000610a50565b8161182457fe5b04905092915050565b60085481565b60075481565b600083600081146118df5760028406600081146118585785925061185c565b8392505b50600283046002850494505b84156118d957858602868782041461187f57600080fd5b8181018181101561188f57600080fd5b858104975060028706156118cc5787850285898204141589151516156118b457600080fd5b838101818110156118c457600080fd5b878104965050505b5050600285049450611868565b506118f7565b83600081146118f157600092506118f5565b8392505b505b509392505050565b60008183111561190f5781611911565b825b905092915050565b600080600060015414801561193057506000600254145b905061193f4285101582612651565b1561194e576000915050611a25565b6000808514611966576119614286610d6c565b611968565b835b905061197b848210600060015414612651565b1561198b57600092505050611a25565b60006119978286610d6c565b905060006119c36002546b033b2e3c9fd0803ce80000006119b6610b09565b816119bd57fe5b046118ff565b90506003548211156119db5780945050505050611a25565b600060015490506000831115611a1057611a0d611a07600454856b033b2e3c9fd0803ce8000000611839565b82610a10565b90505b81811115611a1c578190505b80955050505050505b92915050565b600160065414611aa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526174655365747465722f636f6e74726163742d6e6f742d656e61626c65640081525060200191505060405180910390fd5b611ac2600954611ab542600854610d6c565b1015600060085414612651565b611b34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f526174655365747465722f776169742d6d6f726500000000000000000000000081525060200191505060405180910390fd5b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634fd0ada86040518163ffffffff1660e01b8152600401604080518083038186803b158015611b9e57600080fd5b505afa158015611bb2573d6000803e3d6000fd5b505050506040513d6040811015611bc857600080fd5b8101908080519060200190929190805190602001909291905050509150915080611c5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526174655365747465722f696e76616c69642d6f7261636c652d76616c75650081525060200191505060405180910390fd5b60008211611cd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f526174655365747465722f6e756c6c2d7072696365000000000000000000000081525060200191505060405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c5b748c06040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611d3c57600080fd5b505af1158015611d50573d6000803e3d6000fd5b505050506040513d6020811015611d6657600080fd5b810190808051906020019092919050505090506000611d89600854600954611919565b9050611d9484610a39565b6007819055506000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636e3126ef6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e0457600080fd5b505afa158015611e18573d6000803e3d6000fd5b505050506040513d6020811015611e2e57600080fd5b810190808051906020019092919050505090506000611efc600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635f1b0b986040518163ffffffff1660e01b815260040160206040518083038186803b158015611eae57600080fd5b505afa158015611ec2573d6000803e3d6000fd5b505050506040513d6020811015611ed857600080fd5b8101908080519060200190929190505050836b033b2e3c9fd0803ce8000000611839565b90506000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166371c7132e8887856040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050602060405180830381600087803b158015611f8557600080fd5b505af1158015611f99573d6000803e3d6000fd5b505050506040513d6020811015611faf57600080fd5b8101908080519060200190929190505050905042600881905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe4f5890826040518263ffffffff1660e01b815260040180807f726564656d7074696f6e52617465000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561206657600080fd5b505af1925050508015612077575060015b61214f573d80600081146120a7576040519150601f19603f3d011682016040523d82523d6000602084013e6120ac565b606091505b507f2b6fb175766701d6a337a6f637d3453fd6d350d0ea5a93c7c56691006ade63b9816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561210f5780820151818401526020810190506120f4565b50505050905090810190601f16801561213c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a15061219f565b7f16abce12916e67b821a9cdabe7103d806d6f4280a69d5830925b3e34c83f52a861217988610a39565b868360405180848152602001838152602001828152602001935050505060405180910390a15b6121a9888561265e565b5050505050505050565b6000816121c884670de0b6b3a7640000610a50565b816121cf57fe5b04905092915050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461226f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612ae96036913960400191505060405180910390fd5b6001600654146122e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526174655365747465722f636f6e74726163742d6e6f742d656e61626c65640081525060200191505060405180910390fd5b7f6261736555706461746543616c6c6572526577617264000000000000000000008214156123765760025481111561236a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a0c6025913960400191505060405180910390fd5b8060018190555061260e565b7f6d617855706461746543616c6c65725265776172640000000000000000000000821415612405576001548110156123f9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612a7f6024913960400191505060405180910390fd5b8060028190555061260d565b7f7065725365636f6e6443616c6c6572526577617264496e63726561736500000082141561249e576b033b2e3c9fd0803ce8000000811015612492576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612a566029913960400191505060405180910390fd5b8060048190555061260c565b7f6d6178526577617264496e63726561736544656c61790000000000000000000082141561252b576000811161251f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612a316025913960400191505060405180910390fd5b8060038190555061260b565b7f7570646174655261746544656c617900000000000000000000000000000000008214156125b95760008110156125ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612aa36022913960400191505060405180910390fd5b8060098190555061260a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ac56024913960400191505060405180910390fd5b5b5b5b5b7fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a8282604051808381526020018281526020019250505060405180910390a15050565b6000818317905092915050565b8173ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156126b957612a07565b612717600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161460008314612651565b1561272157612a07565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461275c578261275e565b335b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663201add9b82600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a7e944556040518163ffffffff1660e01b815260040160206040518083038186803b15801561280757600080fd5b505afa15801561281b573d6000803e3d6000fd5b505050506040513d602081101561283157600080fd5b8101908080519060200190929190505050856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156128df57600080fd5b505af19250505080156128f0575060015b612a04573d8060008114612920576040519150601f19603f3d011682016040523d82523d6000602084013e612925565b606091505b507ff7bf1f7447ce563690edb2abe40636178ff64fc766b07bf3e171b16102794a5481838560405180806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156129c25780820151818401526020810190506129a7565b50505050905090810190601f1680156129ef5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150612a05565b5b505b505056fe526174655365747465722f696e76616c69642d626173652d63616c6c65722d726577617264526174655365747465722f696e76616c69642d6d61782d696e6372656173652d64656c6179526174655365747465722f696e76616c69642d63616c6c65722d7265776172642d696e637265617365526174655365747465722f696e76616c69642d6d61782d63616c6c65722d726577617264526174655365747465722f696e76616c69642d63616c6c2d6761702d6c656e677468526174655365747465722f6d6f646966792d756e7265636f676e697a65642d706172616d496e6372656173696e6754726561737572795265696d62757273656d656e742f6163636f756e742d6e6f742d617574686f72697a6564a2646970667358221220b81bb5ef487e55709b1cda124e7fb551d64e88f74359bca2c7fa81e5b640b1f564736f6c63430006070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004ed9c0dca0479bc64d8f4eb3007126d5791f785100000000000000000000000012a5e1c81b10b264a575930aeae80681ddf595fe00000000000000000000000083533fdd3285f48204215e9cf38c785371258e76000000000000000000000000cfa37dce6dfe80857c3b8dba100b592775ae268800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008ac7230489e800000000000000000000000000000000000000000000033b57034a98502542e4fba80000000000000000000000000000000000000000000000000000000000003840
-----Decoded View---------------
Arg [0] : oracleRelayer_ (address): 0x4ed9C0dCa0479bC64d8f4EB3007126D5791f7851
Arg [1] : orcl_ (address): 0x12A5E1c81B10B264A575930aEae80681DDF595fe
Arg [2] : treasury_ (address): 0x83533fdd3285f48204215E9CF38C785371258E76
Arg [3] : pidCalculator_ (address): 0xcFa37DcE6DFE80857c3B8DbA100b592775aE2688
Arg [4] : baseUpdateCallerReward_ (uint256): 0
Arg [5] : maxUpdateCallerReward_ (uint256): 10000000000000000000
Arg [6] : perSecondCallerRewardIncrease_ (uint256): 1000192559420674483977255848
Arg [7] : updateRateDelay_ (uint256): 14400
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000004ed9c0dca0479bc64d8f4eb3007126d5791f7851
Arg [1] : 00000000000000000000000012a5e1c81b10b264a575930aeae80681ddf595fe
Arg [2] : 00000000000000000000000083533fdd3285f48204215e9cf38c785371258e76
Arg [3] : 000000000000000000000000cfa37dce6dfe80857c3b8dba100b592775ae2688
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000008ac7230489e80000
Arg [6] : 0000000000000000000000000000000000000000033b57034a98502542e4fba8
Arg [7] : 0000000000000000000000000000000000000000000000000000000000003840
Deployed Bytecode Sourcemap
9707:6977:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9707:6977:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1639:107:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1639:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;881:93;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;881:93:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1486:147;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1486:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4142:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4402;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3497:51;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3497:51:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6868:186;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3555:164;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3555:164:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1974:107;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1974:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1336:144;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1336:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9819:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4624:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10490:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;980:94;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;980:94:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10291:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10394:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1187:143;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1187:143:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;789:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4708:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16452:229;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;10141:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16192:160;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11786:790;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11786:790:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4260:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;834:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13839:87;;;:::i;:::-;;3725:170;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3725:170:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1752:105;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1752:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10038:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9931:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2087:1058;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2087:1058:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1080:101;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1080:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7157:1182;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7157:1182:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14220:1858;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14220:1858:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1863:105;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1863:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12582:1251;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12582:1251:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1639:107;1695:6;819:8;1718:14;1727:1;1730;1718:8;:14::i;:::-;:20;;;;;;1714:24;;1639:107;;;;:::o;881:93::-;923:6;946:20;955:1;958:7;946:8;:20::i;:::-;942:24;;881:93;;;:::o;1486:147::-;1541:6;1573:1;1568;:6;:30;;;;1597:1;1592;1587;1583;:5;1579:9;;;1578:15;;;;;;:20;1568:30;1560:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1486:147;;;;:::o;4142:37::-;;;;:::o;4402:::-;;;;:::o;3497:51::-;;;;;;;;;;;;;;;;;:::o;6868:186::-;6918:7;6939:10;6951:13;6968:8;;;;;;;;;;;:21;;;6998:4;6968:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6968:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6968:36:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;6968:36:0;;;;;;;;;;;;;;;;;;;;;;;;;6938:66;;;;7022:24;7030:5;7037:8;7022:7;:24::i;:::-;7015:31;;;;6868:186;:::o;3555:164::-;3976:1;3942:18;:30;3961:10;3942:30;;;;;;;;;;;;;;;;:35;3934:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3669:1:::1;3639:18;:27:::0;3658:7:::1;3639:27;;;;;;;;;;;;;;;:31;;;;3686:25;3703:7;3686:25;;;;;;;;;;;;;;;;;;;;;;3555:164:::0;:::o;1974:107::-;2030:6;864:8;2053:14;2062:1;2065;2053:8;:14::i;:::-;:20;;;;;;2049:24;;1974:107;;;;:::o;1336:144::-;1391:6;1418:1;1414;:5;1410:9;;1443:1;1438;:6;;1430:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1336:144;;;;:::o;9819:30::-;;;;:::o;4624:44::-;;;;:::o;10490:46::-;;;;;;;;;;;;;:::o;980:94::-;1022:6;1045:21;1054:1;1057:8;1045;:21::i;:::-;1041:25;;980:94;;;:::o;10291:37::-;;;;;;;;;;;;;:::o;10394:46::-;;;;;;;;;;;;;:::o;1187:143::-;1242:6;1269:1;1265;:5;1261:9;;1294:1;1289;:6;;1281:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1187:143;;;;:::o;789:38::-;819:8;789:38;:::o;4708:41::-;;;;;;;;;;;;;:::o;16452:229::-;16510:19;16531:23;16585:4;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16585:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16585:28:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16585:28:0;;;;;;;;;;;;;;;;;;;;;;;;;16567:46;;;;;16642:13;;;;;;;;;;;:29;;;:31;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16642:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16642:31:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16642:31:0;;;;;;;;;;;;;;;;16624:49;;16452:229;;:::o;10141:30::-;;;;:::o;16192:160::-;16241:7;16262:19;16287:4;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16287:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16287:28:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16287:28:0;;;;;;;;;;;;;;;;;;;;;;;;;16261:54;;;16333:11;16326:18;;;16192:160;:::o;11786:790::-;3976:1;3942:18;:30;3961:10;3942:30;;;;;;;;;;;;;;;;:35;3934:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11905:1:::1;11886:15;;:20;11878:64;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11957:19;:9;:19;11953:533;;;11996:4;11978;;:23;;;;;;;;;;;;;;;;;;11953:533;;;12021:28;:9;:28;12017:469;;;12085:4;12051:13;;:39;;;;;;;;;;;;;;;;;;12017:469;;;12110:23;:9;:23;12106:380;;;12211:1;12156:57;;12181:4;12156:41;;;:43;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;12156:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;12156:43:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;12156:43:0;;;;;;;;;;;;;;;;:57;;;;12148:102;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12299:4;12263:8;;:41;;;;;;;;;;;;;;;;;;12106:380;;;12335:28;:9;:28;12331:155;;;12408:4;12378:13;;:35;;;;;;;;;;;;;;;;;;12331:155;;;12440:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12331:155;12106:380;12017:469;11953:533;12502:66;12531:9;12553:4;12502:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;11786:790:::0;;:::o;4260:36::-;;;;:::o;834:38::-;864:8;834:38;:::o;13839:87::-;3976:1;3942:18;:30;3961:10;3942:30;;;;;;;;;;;;;;;;:35;3934:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13917:1:::1;13899:15;:19;;;;13839:87::o:0;3725:170::-;3976:1;3942:18;:30;3961:10;3942:30;;;;;;;;;;;;;;;;:35;3934:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3842:1:::1;3812:18:::0;:27:::1;3831:7;3812:27;;;;;;;;;;;;;;;:31;;;;3859:28;3879:7;3859:28;;;;;;;;;;;;;;;;;;;;;;3725:170:::0;:::o;1752:105::-;1806:6;1848:1;1829:16;1838:1;819:8;1829;:16::i;:::-;:20;;;;;;1825:24;;1752:105;;;;:::o;10038:29::-;;;;:::o;9931:32::-;;;;:::o;2087:1058::-;2151:6;2201:1;2208;2203:53;;;;2311:1;2308;2304:9;2319:1;2314:20;;;;2350:1;2345:6;;2297:56;;2314:20;2328:4;2323:9;;2297:56;;2393:1;2387:4;2383:12;2449:1;2446;2442:9;2437:14;;2431:681;2454:1;2431:681;;;2514:1;2511;2507:9;2563:1;2559;2555:2;2551:10;2548:17;2538:2;;2578:1;2576;2569:11;2538:2;2627:4;2623:2;2619:13;2669:2;2660:7;2657:15;2654:2;;;2684:1;2682;2675:11;2654:2;2728:4;2719:7;2715:18;2710:23;;2764:1;2762;2758:8;2755:2;;;2811:1;2808;2804:9;2887:1;2883;2879:2;2875:10;2872:17;2865:25;2860:1;2853:9;2846:17;2842:49;2839:2;;;2903:1;2901;2894:11;2839:2;2956:4;2952:2;2948:13;3002:2;2993:7;2990:15;2987:2;;;3017:1;3015;3008:11;2987:2;3065:4;3056:7;3052:18;3047:23;;2767:326;;2755:2;2474:638;;2469:1;2467;2463:8;2458:13;;2431:681;;;2278:849;2194:933;;2203:53;2218:1;2225;2220:18;;;;2253:1;2248:6;;2211:44;;2220:18;2233:4;2228:9;;2211:44;;2194:933;;2179:959;;;;;:::o;1080:101::-;1134:6;1163:1;1158;:6;;1157:16;;1172:1;1157:16;;;1168:1;1157:16;1153:20;;1080:101;;;;:::o;7157:1182::-;7263:7;7283:16;7329:1;7303:22;;:27;:57;;;;;7359:1;7334:21;;:26;7303:57;7283:78;;7376:44;7403:3;7383:16;:23;;7408:11;7376:6;:44::i;:::-;7372:58;;;7429:1;7422:8;;;;;7372:58;7441:19;7484:1;7464:16;:21;7463:84;;7516:31;7525:3;7530:16;7516:8;:31::i;:::-;7463:84;;;7489:24;7463:84;7441:106;;7562:75;7583:24;7569:11;:38;7635:1;7609:22;;:27;7562:6;:75::i;:::-;7558:116;;;7661:1;7654:8;;;;;;7558:116;7684:20;7712:47;7721:11;7734:24;7712:8;:47::i;:::-;7684:75;;7770:25;7798:57;7806:21;;819:8;7829:19;:17;:19::i;:::-;:25;;;;;;7798:7;:57::i;:::-;7770:85;;7885:22;;7870:12;:37;7866:94;;;7931:17;7924:24;;;;;;;;7866:94;7970:24;7997:22;;7970:49;;8049:1;8034:12;:16;8030:153;;;8086:85;8096:56;8103:29;;8134:12;819:8;8096:6;:56::i;:::-;8154:16;8086:9;:85::i;:::-;8067:104;;8030:153;8216:17;8197:16;:36;8193:105;;;8269:17;8250:36;;8193:105;8315:16;8308:23;;;;;;;7157:1182;;;;;:::o;14220:1858::-;14308:1;14289:15;;:20;14281:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14402:77;14442:15;;14409:29;14418:3;14423:14;;14409:8;:29::i;:::-;:48;;14477:1;14459:14;;:19;14402:6;:77::i;:::-;14394:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14551:19;14572:18;14594:4;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14594:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14594:28:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14594:28:0;;;;;;;;;;;;;;;;;;;;;;;;;14550:72;;;;14679:13;14671:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14798:1;14784:11;:15;14776:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14880:20;14903:13;;;;;;;;;;;:29;;;:31;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14903:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14903:31:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14903:31:0;;;;;;;;;;;;;;;;14880:54;;14981:20;15004:48;15020:14;;15036:15;;15004;:48::i;:::-;14981:71;;15125:16;15129:11;15125:3;:16::i;:::-;15105:17;:36;;;;15183:11;15203:13;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15203:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15203:19:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15203:19:0;;;;;;;;;;;;;;;;15183:39;;15233:13;15253:38;15260:13;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15260:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15260:20:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15260:20:0;;;;;;;;;;;;;;;;15282:3;819:8;15253:6;:38::i;:::-;15233:58;;15302:17;15322:13;;;;;;;;;;;:25;;;15362:11;15388:15;15418:5;15322:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15322:112:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15322:112:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15322:112:0;;;;;;;;;;;;;;;;15302:132;;15508:3;15491:14;:20;;;;15594:13;;;;;;;;;;;:30;;;15643:9;15594:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15594:59:0;;;;;;;;;;;;;;15590:382;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;15896:64:0;15935:12;15896:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;15896:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15845:127;15590:382;;;15705:118;15740:16;15744:11;15740:3;:16::i;:::-;15771:15;15801:9;15705:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15590:382;16031:39;16044:11;16057:12;16031;:39::i;:::-;14220:1858;;;;;;;;:::o;1863:105::-;1917:6;1959:1;1940:16;1949:1;864:8;1940;:16::i;:::-;:20;;;;;;1936:24;;1863:105;;;;:::o;12582:1251::-;3976:1;3942:18;:30;3961:10;3942:30;;;;;;;;;;;;;;;;:35;3934:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12700:1:::1;12681:15;;:20;12673:64;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12752:37;:9;:37;12748:996;;;12819:21;;12812:3;:28;;12804:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12920:3;12895:22;:28;;;;12748:996;;;12954:36;:9;:36;12950:794;;;13020:22;;13013:3;:29;;13005:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13120:3;13096:21;:27;;;;12950:794;;;13154:44;:9;:44;13150:594;;;819:8;13221:3;:10;;13213:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13322:3;13290:29;:35;;;;13150:594;;;13356:37;:9;:37;13352:392;;;13422:1;13416:3;:7;13408:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13503:3;13478:22;:28;;;;13352:392;;;13537:30;:9;:30;13533:211;;;13597:1;13590:3;:8;;13582:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13668:3;13650:15;:21;;;;13533:211;;;13698:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13533:211;13352:392;13150:594;12950:794;12748:996;13760:65;13789:9;13811:3;13760:65;;;;;;;;;;;;;;;;;;;;;;;;12582:1251:::0;;:::o;6560:105::-;6615:6;6655:1;6652;6649:8;6644:13;;6642:16;;;;:::o;8522:545::-;8634:19;8613:40;;8621:8;;;;;;;;;;;8613:40;;;8609:53;;;8655:7;;8609:53;8676:52;8712:1;8683:31;;8691:8;;;;;;;;;;;8683:31;;;8726:1;8716:6;:11;8676:6;:52::i;:::-;8672:65;;;8730:7;;8672:65;8747:24;8806:1;8775:33;;:19;:33;;;8774:70;;8825:19;8774:70;;;8812:10;8774:70;8747:97;;8859:8;;;;;;;;;;;:18;;;8878:16;8896:8;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8896:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8896:21:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8896:21:0;;;;;;;;;;;;;;;;8919:6;8859:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8859:67:0;;;;;;;;;;;;;;8855:205;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;8992:56:0;9009:12;9023:16;9041:6;8992:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8992:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8939:121;8855:205;;;;8522:545;;;;:::o
Swarm Source
ipfs://b81bb5ef487e55709b1cda124e7fb551d64e88f74359bca2c7fa81e5b640b1f5
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 33 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.