Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
FiRMSlashingModule
Compiler Version
v0.8.29+commit.ab55807c
Optimization Enabled:
No with 200 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity ^0.8.21;
interface IJuniorPool {
function slash(uint amount) external returns(uint slashed);
}
interface IDBR {
function markets(address) external view returns(bool);
}
interface IERC20 {
function approve(address pender, uint amount) external;
}
interface IMarket {
function debts(address borrower) external view returns(uint);
function getCollateralValue(address borrower) external view returns(uint);
function repay(address borrower, uint amount) external;
}
contract FiRMSlashingModule {
IJuniorPool public immutable JUNIOR_POOL;
IDBR public immutable DBR;
IERC20 public immutable DOLA;
address public gov;
address public pendingGov;
address public guardian;
uint public maxCollateralValue = 200e18;
uint public minDebt = 50e18;
uint public activationDelay = 14 days;
uint public constant MIN_ACTIVATION_DELAY = 7 days;
mapping(address => bool) public allowedMarkets;
mapping(address => uint) public activationTime;
constructor(address _slashingPool, address _dbr, address _dola, address _gov){
require(_gov != address(0), "Zero address");
JUNIOR_POOL = IJuniorPool(_slashingPool);
DBR = IDBR(_dbr);
DOLA = IERC20(_dola);
gov = _gov;
}
modifier onlyRole(address role, string memory errMsg) {
require(msg.sender == role, errMsg);
_;
}
event NewPendingGov(address);
event NewGov(address);
event NewGuardian(address);
event NewMarket(address, uint activationTime);
event MarketRemoved(address);
event Slash(address indexed market, address indexed borrower, uint amount, uint debt, uint collateralValue);
event MaxCollateralValueSet(uint oldValue, uint newValue);
event MinDebtSet(uint oldValue, uint newValue);
event ActivationDelaySet(uint oldValue, uint newValue);
/**
* @notice Repays up to the total bad debt incurred by `borrower` in FiRM `market`
* @dev Bad debt is not guaranteed to be repaid, as their may not be enough funds in the JUNIOR_POOL
* @param market The FiRM market contract with bad debt
* @param borrower The borrower that has incurred bad debt
* @return The amount of repaid bad debt
*/
function slash(address market, address borrower) public returns(uint) {
require(allowedMarkets[market], "Market not allowed");
require(DBR.markets(market), "Market not active FiRM market");
require(activationTime[market] <= block.timestamp && activationTime[market] > 0, "Market protection not activated");
uint collateralValue = IMarket(market).getCollateralValue(borrower);
uint debt = IMarket(market).debts(borrower);
require(debt > collateralValue, "No bad debt");
//We require debt to be above a minDebtValue to avoid unliquidateable debt being used to drain jDOLA depositors
require(debt >= minDebt, "Debt too low");
//We want positions to be liquidated before repaying bad debt, so we enforce a max collateral value
require(collateralValue <= maxCollateralValue, "Collateral value too high");
uint slashed = JUNIOR_POOL.slash(debt - collateralValue);
DOLA.approve(market, slashed);
IMarket(market).repay(borrower, slashed);
emit Slash(market, borrower, slashed, debt, collateralValue);
return slashed;
}
/// ADMIN METHODS
/**
* @notice Adds a market to the protected pool of markets after an activation delay, allowing bad debt repayments
* @dev WARNING: MAKE SURE MARKET CONTRACT ISN'T A TROJAN CONTRACT THAT CAN STEAL BAD DEBT REPAYMENTS
* @param market New market to add to protected pool
*/
function allowMarket(address market) onlyRole(gov, "ONLY GOV") external {
allowedMarkets[market] = true;
activationTime[market] = block.timestamp + activationDelay;
emit NewMarket(market, block.timestamp + activationDelay);
}
/**
* @notice Removes a market from the protected pool of markets.
* @dev Guardian role can disallow market during the activation delay
* @param market Market to have protections removed
*/
function disallowMarket(address market) external {
require(msg.sender == guardian || msg.sender == gov, "ONLY GUARDIAN OR GOV");
if(msg.sender == guardian){
require(block.timestamp < activationTime[market], "GUARDIAN CANNOT REMOVE ACTIVE MARKET");
}
allowedMarkets[market] = false;
activationTime[market] = 0;
emit MarketRemoved(market);
}
/**
* @notice Sets the max collateral value for slashings
* @dev Repayment of bad debt should only happen after liquidations have taken place
* @param _maxCollateralValue The new max collateral value
*/
function setMaxCollateralValue(uint _maxCollateralValue) external onlyRole(gov, "ONLY GOV") {
require(_maxCollateralValue > 0, "Max collateral value must be > 0");
emit MaxCollateralValueSet(maxCollateralValue, _maxCollateralValue);
maxCollateralValue = _maxCollateralValue;
}
/**
* @notice Sets the min debt value for slashings
* @dev Min debt value avoids tiny unliquidateable positions to rack up debt and incur losses for jDOLA depositors
* @param _minDebt The new min debt
*/
function setMinDebt(uint _minDebt) external onlyRole(gov, "ONLY GOV") {
emit MinDebtSet(minDebt, _minDebt);
minDebt = _minDebt;
}
/**
* @notice Sets the activation delay.
* @param _activationDelay The new activation delay. Must be above the hardcoded min activation delay.
*/
function setActivationDelay(uint _activationDelay) external onlyRole(gov, "ONLY GOV") {
require(_activationDelay >= MIN_ACTIVATION_DELAY, "ACTIVATION DELAY BELOW MIN");
emit ActivationDelaySet(activationDelay, _activationDelay);
activationDelay = _activationDelay;
}
/**
* @notice Sets the pending gov
* @dev Contract uses set-accept pattern for governance change
* @param _pendingGov The new pending gov
*/
function setPendingGov(address _pendingGov) onlyRole(gov, "ONLY GOV") external {
pendingGov = _pendingGov;
emit NewPendingGov(pendingGov);
}
/**
* @notice Sets the guardian role. Guardian may cancel the inclusion of new markets in the activation period.
* @param _guardian Address of the new guardian
*/
function setGuardian(address _guardian) onlyRole(gov, "ONLY GOV") external {
guardian = _guardian;
emit NewGuardian(guardian);
}
/**
* @notice Callable by pending gov to accept gov role
* @dev Contract uses set-accept pattern for governance
*/
function acceptGov() onlyRole(pendingGov, "ONLY PENDING GOV") external {
gov = pendingGov;
pendingGov = address(0);
emit NewGov(gov);
}
}{
"remappings": [
"ds-test/=lib/solmate/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"solmate/=lib/solmate/src/"
],
"optimizer": {
"enabled": false,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "cancun",
"viaIR": false
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_slashingPool","type":"address"},{"internalType":"address","name":"_dbr","type":"address"},{"internalType":"address","name":"_dola","type":"address"},{"internalType":"address","name":"_gov","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"ActivationDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"MarketRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"MaxCollateralValueSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"MinDebtSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"NewGov","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"NewGuardian","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"activationTime","type":"uint256"}],"name":"NewMarket","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"NewPendingGov","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"market","type":"address"},{"indexed":true,"internalType":"address","name":"borrower","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"collateralValue","type":"uint256"}],"name":"Slash","type":"event"},{"inputs":[],"name":"DBR","outputs":[{"internalType":"contract IDBR","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOLA","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"JUNIOR_POOL","outputs":[{"internalType":"contract IJuniorPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_ACTIVATION_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"activationDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"activationTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"}],"name":"allowMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowedMarkets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"}],"name":"disallowMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxCollateralValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingGov","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_activationDelay","type":"uint256"}],"name":"setActivationDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_guardian","type":"address"}],"name":"setGuardian","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxCollateralValue","type":"uint256"}],"name":"setMaxCollateralValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minDebt","type":"uint256"}],"name":"setMinDebt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pendingGov","type":"address"}],"name":"setPendingGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"address","name":"borrower","type":"address"}],"name":"slash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60e0604052680ad78ebc5ac62000006003556802b5e3af16b188000060045562127500600555348015610030575f5ffd5b506040516123b93803806123b983398181016040528101906100529190610202565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100b7906102c0565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506102de565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101d1826101a8565b9050919050565b6101e1816101c7565b81146101eb575f5ffd5b50565b5f815190506101fc816101d8565b92915050565b5f5f5f5f6080858703121561021a576102196101a4565b5b5f610227878288016101ee565b9450506020610238878288016101ee565b9350506040610249878288016101ee565b925050606061025a878288016101ee565b91505092959194509250565b5f82825260208201905092915050565b7f5a65726f206164647265737300000000000000000000000000000000000000005f82015250565b5f6102aa600c83610266565b91506102b582610276565b602082019050919050565b5f6020820190508181035f8301526102d78161029e565b9050919050565b60805160a05160c05161209c61031d5f395f8181610b96015261102d01525f81816106e0015261078e01525f81816105640152610af0015261209c5ff3fe608060405234801561000f575f5ffd5b5060043610610135575f3560e01c80637bc6729b116100b6578063b5456b9b1161007a578063b5456b9b14610303578063b98e325b14610321578063cd8d200a1461033d578063e027ff911461036d578063efdf0bb014610389578063f17336d7146103a557610135565b80637bc6729b146102855780638a0dac4a1461028f5780638ab0e241146102ab57806392c592d0146102c9578063ac39680b146102e757610135565b806340f6405d116100fd57806340f6405d146101cd578063452a9320146101fd5780636234dc211461021b5780636d124715146102375780637aeccce91461025557610135565b806312d43a511461013957806322d672d714610157578063252408101461017357806328daf145146101915780633a8c0786146101af575b5f5ffd5b6101416103c3565b60405161014e91906117a7565b60405180910390f35b610171600480360381019061016c91906117f7565b6103e7565b005b61017b61053d565b60405161018891906117a7565b60405180910390f35b610199610562565b6040516101a6919061187d565b60405180910390f35b6101b7610586565b6040516101c491906118a5565b60405180910390f35b6101e760048036038101906101e291906118e8565b61058c565b6040516101f4919061192d565b60405180910390f35b6102056105a9565b60405161021291906117a7565b60405180910390f35b610235600480360381019061023091906117f7565b6105ce565b005b61023f6106de565b60405161024c9190611966565b60405180910390f35b61026f600480360381019061026a919061197f565b610702565b60405161027c91906118a5565b60405180910390f35b61028d610cf9565b005b6102a960048036038101906102a491906118e8565b610ebe565b005b6102b3611024565b6040516102c091906118a5565b60405180910390f35b6102d161102b565b6040516102de91906119dd565b60405180910390f35b61030160048036038101906102fc91906117f7565b61104f565b005b61030b6111a1565b60405161031891906118a5565b60405180910390f35b61033b600480360381019061033691906118e8565b6111a7565b005b610357600480360381019061035291906118e8565b61135e565b60405161036491906118a5565b60405180910390f35b610387600480360381019061038291906118e8565b611373565b005b6103a3600480360381019061039e91906118e8565b6115fc565b005b6103ad611762565b6040516103ba91906118a5565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600881526020017f4f4e4c5920474f560000000000000000000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161481906104af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a69190611a66565b60405180910390fd5b5062093a808310156104f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ed90611ad0565b60405180910390fd5b7f293d72af226bd6f48fc96e954fa80023f4ba3238f6c8803bf4bcd27b97bebf5e60055484604051610529929190611aee565b60405180910390a182600581905550505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60055481565b6006602052805f5260405f205f915054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600881526020017f4f4e4c5920474f560000000000000000000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148190610696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068d9190611a66565b60405180910390fd5b507f20bfb3b3367e6616b14087d1a8ee9ba1d84283da7c89eb9a7e88019b195c3042600454846040516106ca929190611aee565b60405180910390a182600481905550505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390611b5f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16638e8f294b846040518263ffffffff1660e01b81526004016107e591906117a7565b602060405180830381865afa158015610800573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108249190611ba7565b610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90611c1c565b60405180910390fd5b4260075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054111580156108ec57505f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054115b61092b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092290611c84565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166397904e42846040518263ffffffff1660e01b815260040161096591906117a7565b602060405180830381865afa158015610980573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a49190611cb6565b90505f8473ffffffffffffffffffffffffffffffffffffffff16632ecd4e7d856040518263ffffffff1660e01b81526004016109e091906117a7565b602060405180830381865afa1580156109fb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1f9190611cb6565b9050818111610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a90611d2b565b60405180910390fd5b600454811015610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90611d93565b60405180910390fd5b600354821115610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae490611dfb565b60405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166345bc4d108484610b369190611e46565b6040518263ffffffff1660e01b8152600401610b5291906118a5565b6020604051808303815f875af1158015610b6e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b929190611cb6565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b387836040518363ffffffff1660e01b8152600401610bef929190611e79565b5f604051808303815f87803b158015610c06575f5ffd5b505af1158015610c18573d5f5f3e3d5ffd5b505050508573ffffffffffffffffffffffffffffffffffffffff166322867d7886836040518363ffffffff1660e01b8152600401610c57929190611e79565b5f604051808303815f87803b158015610c6e575f5ffd5b505af1158015610c80573d5f5f3e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f90b0ec766ec13736f33b5835a5299270b027c72ba2f120df8105b329c22ba3c0838587604051610ce593929190611ea0565b60405180910390a380935050505092915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601081526020017f4f4e4c592050454e44494e4720474f56000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148190610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db99190611a66565b60405180910390fd5b5060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f639717155292ce2c3e699929a8b65d14a637640f75ab5b6d165a4e735d82a4555f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610eb291906117a7565b60405180910390a15050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600881526020017f4f4e4c5920474f560000000000000000000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148190610f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7d9190611a66565b60405180910390fd5b508260025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb6182387b7ea948602a7e04e662a27ce251dc3dd014eacaed10dce36b41bf1a560025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161101791906117a7565b60405180910390a1505050565b62093a8081565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600881526020017f4f4e4c5920474f560000000000000000000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148190611117576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110e9190611a66565b60405180910390fd5b505f831161115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190611f1f565b60405180910390fd5b7f3adbc0315c34ed2efcdc227e34bbc83e6a1cbc0725bd7b547a98a7f158d175576003548460405161118d929190611aee565b60405180910390a182600381905550505050565b60035481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600881526020017f4f4e4c5920474f560000000000000000000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614819061126f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112669190611a66565b60405180910390fd5b50600160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600554426112d39190611f3d565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507eb8be5dd10422b2f44dca129cc52d80d2fecf400db379442066acc2dcc21f6783600554426113439190611f3d565b604051611351929190611e79565b60405180910390a1505050565b6007602052805f5260405f205f915090505481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061141957505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f90611fba565b60405180910390fd5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361152c5760075f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054421061152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290612048565b60405180910390fd5b5b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f59d7b1e52008dc342c9421dadfc773114b914a65682a4e4b53cf60a970df0d77816040516115f191906117a7565b60405180910390a150565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600881526020017f4f4e4c5920474f560000000000000000000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161481906116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb9190611a66565b60405180910390fd5b508260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff74ae56780e3765c0c0897ef57fb50a10a237584f419631812daf040913e1c9f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161175591906117a7565b60405180910390a1505050565b60045481565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61179182611768565b9050919050565b6117a181611787565b82525050565b5f6020820190506117ba5f830184611798565b92915050565b5f5ffd5b5f819050919050565b6117d6816117c4565b81146117e0575f5ffd5b50565b5f813590506117f1816117cd565b92915050565b5f6020828403121561180c5761180b6117c0565b5b5f611819848285016117e3565b91505092915050565b5f819050919050565b5f61184561184061183b84611768565b611822565b611768565b9050919050565b5f6118568261182b565b9050919050565b5f6118678261184c565b9050919050565b6118778161185d565b82525050565b5f6020820190506118905f83018461186e565b92915050565b61189f816117c4565b82525050565b5f6020820190506118b85f830184611896565b92915050565b6118c781611787565b81146118d1575f5ffd5b50565b5f813590506118e2816118be565b92915050565b5f602082840312156118fd576118fc6117c0565b5b5f61190a848285016118d4565b91505092915050565b5f8115159050919050565b61192781611913565b82525050565b5f6020820190506119405f83018461191e565b92915050565b5f6119508261184c565b9050919050565b61196081611946565b82525050565b5f6020820190506119795f830184611957565b92915050565b5f5f60408385031215611995576119946117c0565b5b5f6119a2858286016118d4565b92505060206119b3858286016118d4565b9150509250929050565b5f6119c78261184c565b9050919050565b6119d7816119bd565b82525050565b5f6020820190506119f05f8301846119ce565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a38826119f6565b611a428185611a00565b9350611a52818560208601611a10565b611a5b81611a1e565b840191505092915050565b5f6020820190508181035f830152611a7e8184611a2e565b905092915050565b7f41435449564154494f4e2044454c41592042454c4f57204d494e0000000000005f82015250565b5f611aba601a83611a00565b9150611ac582611a86565b602082019050919050565b5f6020820190508181035f830152611ae781611aae565b9050919050565b5f604082019050611b015f830185611896565b611b0e6020830184611896565b9392505050565b7f4d61726b6574206e6f7420616c6c6f77656400000000000000000000000000005f82015250565b5f611b49601283611a00565b9150611b5482611b15565b602082019050919050565b5f6020820190508181035f830152611b7681611b3d565b9050919050565b611b8681611913565b8114611b90575f5ffd5b50565b5f81519050611ba181611b7d565b92915050565b5f60208284031215611bbc57611bbb6117c0565b5b5f611bc984828501611b93565b91505092915050565b7f4d61726b6574206e6f7420616374697665204669524d206d61726b65740000005f82015250565b5f611c06601d83611a00565b9150611c1182611bd2565b602082019050919050565b5f6020820190508181035f830152611c3381611bfa565b9050919050565b7f4d61726b65742070726f74656374696f6e206e6f7420616374697661746564005f82015250565b5f611c6e601f83611a00565b9150611c7982611c3a565b602082019050919050565b5f6020820190508181035f830152611c9b81611c62565b9050919050565b5f81519050611cb0816117cd565b92915050565b5f60208284031215611ccb57611cca6117c0565b5b5f611cd884828501611ca2565b91505092915050565b7f4e6f2062616420646562740000000000000000000000000000000000000000005f82015250565b5f611d15600b83611a00565b9150611d2082611ce1565b602082019050919050565b5f6020820190508181035f830152611d4281611d09565b9050919050565b7f4465627420746f6f206c6f7700000000000000000000000000000000000000005f82015250565b5f611d7d600c83611a00565b9150611d8882611d49565b602082019050919050565b5f6020820190508181035f830152611daa81611d71565b9050919050565b7f436f6c6c61746572616c2076616c756520746f6f2068696768000000000000005f82015250565b5f611de5601983611a00565b9150611df082611db1565b602082019050919050565b5f6020820190508181035f830152611e1281611dd9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e50826117c4565b9150611e5b836117c4565b9250828203905081811115611e7357611e72611e19565b5b92915050565b5f604082019050611e8c5f830185611798565b611e996020830184611896565b9392505050565b5f606082019050611eb35f830186611896565b611ec06020830185611896565b611ecd6040830184611896565b949350505050565b7f4d617820636f6c6c61746572616c2076616c7565206d757374206265203e20305f82015250565b5f611f09602083611a00565b9150611f1482611ed5565b602082019050919050565b5f6020820190508181035f830152611f3681611efd565b9050919050565b5f611f47826117c4565b9150611f52836117c4565b9250828201905080821115611f6a57611f69611e19565b5b92915050565b7f4f4e4c5920475541524449414e204f5220474f560000000000000000000000005f82015250565b5f611fa4601483611a00565b9150611faf82611f70565b602082019050919050565b5f6020820190508181035f830152611fd181611f98565b9050919050565b7f475541524449414e2043414e4e4f542052454d4f564520414354495645204d415f8201527f524b455400000000000000000000000000000000000000000000000000000000602082015250565b5f612032602483611a00565b915061203d82611fd8565b604082019050919050565b5f6020820190508181035f83015261205f81612026565b905091905056fea2646970667358221220aaf1a2d19736bb64c574c5eef0746deaab8d4c2977c02c295fd5f6a3adabef5c64736f6c634300081d00330000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f54000000000000000000000000ad038eb671c44b853887a7e32528fab35dc5d710000000000000000000000000865377367054516e17014ccded1e7d814edc9ce4000000000000000000000000926df14a23be491164dcf93f4c468a50ef659d5b
Deployed Bytecode
0x608060405234801561000f575f5ffd5b5060043610610135575f3560e01c80637bc6729b116100b6578063b5456b9b1161007a578063b5456b9b14610303578063b98e325b14610321578063cd8d200a1461033d578063e027ff911461036d578063efdf0bb014610389578063f17336d7146103a557610135565b80637bc6729b146102855780638a0dac4a1461028f5780638ab0e241146102ab57806392c592d0146102c9578063ac39680b146102e757610135565b806340f6405d116100fd57806340f6405d146101cd578063452a9320146101fd5780636234dc211461021b5780636d124715146102375780637aeccce91461025557610135565b806312d43a511461013957806322d672d714610157578063252408101461017357806328daf145146101915780633a8c0786146101af575b5f5ffd5b6101416103c3565b60405161014e91906117a7565b60405180910390f35b610171600480360381019061016c91906117f7565b6103e7565b005b61017b61053d565b60405161018891906117a7565b60405180910390f35b610199610562565b6040516101a6919061187d565b60405180910390f35b6101b7610586565b6040516101c491906118a5565b60405180910390f35b6101e760048036038101906101e291906118e8565b61058c565b6040516101f4919061192d565b60405180910390f35b6102056105a9565b60405161021291906117a7565b60405180910390f35b610235600480360381019061023091906117f7565b6105ce565b005b61023f6106de565b60405161024c9190611966565b60405180910390f35b61026f600480360381019061026a919061197f565b610702565b60405161027c91906118a5565b60405180910390f35b61028d610cf9565b005b6102a960048036038101906102a491906118e8565b610ebe565b005b6102b3611024565b6040516102c091906118a5565b60405180910390f35b6102d161102b565b6040516102de91906119dd565b60405180910390f35b61030160048036038101906102fc91906117f7565b61104f565b005b61030b6111a1565b60405161031891906118a5565b60405180910390f35b61033b600480360381019061033691906118e8565b6111a7565b005b610357600480360381019061035291906118e8565b61135e565b60405161036491906118a5565b60405180910390f35b610387600480360381019061038291906118e8565b611373565b005b6103a3600480360381019061039e91906118e8565b6115fc565b005b6103ad611762565b6040516103ba91906118a5565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600881526020017f4f4e4c5920474f560000000000000000000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161481906104af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a69190611a66565b60405180910390fd5b5062093a808310156104f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ed90611ad0565b60405180910390fd5b7f293d72af226bd6f48fc96e954fa80023f4ba3238f6c8803bf4bcd27b97bebf5e60055484604051610529929190611aee565b60405180910390a182600581905550505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f0000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f5481565b60055481565b6006602052805f5260405f205f915054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600881526020017f4f4e4c5920474f560000000000000000000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148190610696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068d9190611a66565b60405180910390fd5b507f20bfb3b3367e6616b14087d1a8ee9ba1d84283da7c89eb9a7e88019b195c3042600454846040516106ca929190611aee565b60405180910390a182600481905550505050565b7f000000000000000000000000ad038eb671c44b853887a7e32528fab35dc5d71081565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390611b5f565b60405180910390fd5b7f000000000000000000000000ad038eb671c44b853887a7e32528fab35dc5d71073ffffffffffffffffffffffffffffffffffffffff16638e8f294b846040518263ffffffff1660e01b81526004016107e591906117a7565b602060405180830381865afa158015610800573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108249190611ba7565b610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90611c1c565b60405180910390fd5b4260075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054111580156108ec57505f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054115b61092b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092290611c84565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166397904e42846040518263ffffffff1660e01b815260040161096591906117a7565b602060405180830381865afa158015610980573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a49190611cb6565b90505f8473ffffffffffffffffffffffffffffffffffffffff16632ecd4e7d856040518263ffffffff1660e01b81526004016109e091906117a7565b602060405180830381865afa1580156109fb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1f9190611cb6565b9050818111610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a90611d2b565b60405180910390fd5b600454811015610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90611d93565b60405180910390fd5b600354821115610aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae490611dfb565b60405180910390fd5b5f7f0000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f5473ffffffffffffffffffffffffffffffffffffffff166345bc4d108484610b369190611e46565b6040518263ffffffff1660e01b8152600401610b5291906118a5565b6020604051808303815f875af1158015610b6e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b929190611cb6565b90507f000000000000000000000000865377367054516e17014ccded1e7d814edc9ce473ffffffffffffffffffffffffffffffffffffffff1663095ea7b387836040518363ffffffff1660e01b8152600401610bef929190611e79565b5f604051808303815f87803b158015610c06575f5ffd5b505af1158015610c18573d5f5f3e3d5ffd5b505050508573ffffffffffffffffffffffffffffffffffffffff166322867d7886836040518363ffffffff1660e01b8152600401610c57929190611e79565b5f604051808303815f87803b158015610c6e575f5ffd5b505af1158015610c80573d5f5f3e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f90b0ec766ec13736f33b5835a5299270b027c72ba2f120df8105b329c22ba3c0838587604051610ce593929190611ea0565b60405180910390a380935050505092915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601081526020017f4f4e4c592050454e44494e4720474f56000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148190610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db99190611a66565b60405180910390fd5b5060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f639717155292ce2c3e699929a8b65d14a637640f75ab5b6d165a4e735d82a4555f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610eb291906117a7565b60405180910390a15050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600881526020017f4f4e4c5920474f560000000000000000000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148190610f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7d9190611a66565b60405180910390fd5b508260025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb6182387b7ea948602a7e04e662a27ce251dc3dd014eacaed10dce36b41bf1a560025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161101791906117a7565b60405180910390a1505050565b62093a8081565b7f000000000000000000000000865377367054516e17014ccded1e7d814edc9ce481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600881526020017f4f4e4c5920474f560000000000000000000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148190611117576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110e9190611a66565b60405180910390fd5b505f831161115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190611f1f565b60405180910390fd5b7f3adbc0315c34ed2efcdc227e34bbc83e6a1cbc0725bd7b547a98a7f158d175576003548460405161118d929190611aee565b60405180910390a182600381905550505050565b60035481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600881526020017f4f4e4c5920474f560000000000000000000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614819061126f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112669190611a66565b60405180910390fd5b50600160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600554426112d39190611f3d565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507eb8be5dd10422b2f44dca129cc52d80d2fecf400db379442066acc2dcc21f6783600554426113439190611f3d565b604051611351929190611e79565b60405180910390a1505050565b6007602052805f5260405f205f915090505481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061141957505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f90611fba565b60405180910390fd5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361152c5760075f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054421061152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290612048565b60405180910390fd5b5b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f59d7b1e52008dc342c9421dadfc773114b914a65682a4e4b53cf60a970df0d77816040516115f191906117a7565b60405180910390a150565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600881526020017f4f4e4c5920474f560000000000000000000000000000000000000000000000008152508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161481906116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb9190611a66565b60405180910390fd5b508260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff74ae56780e3765c0c0897ef57fb50a10a237584f419631812daf040913e1c9f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161175591906117a7565b60405180910390a1505050565b60045481565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61179182611768565b9050919050565b6117a181611787565b82525050565b5f6020820190506117ba5f830184611798565b92915050565b5f5ffd5b5f819050919050565b6117d6816117c4565b81146117e0575f5ffd5b50565b5f813590506117f1816117cd565b92915050565b5f6020828403121561180c5761180b6117c0565b5b5f611819848285016117e3565b91505092915050565b5f819050919050565b5f61184561184061183b84611768565b611822565b611768565b9050919050565b5f6118568261182b565b9050919050565b5f6118678261184c565b9050919050565b6118778161185d565b82525050565b5f6020820190506118905f83018461186e565b92915050565b61189f816117c4565b82525050565b5f6020820190506118b85f830184611896565b92915050565b6118c781611787565b81146118d1575f5ffd5b50565b5f813590506118e2816118be565b92915050565b5f602082840312156118fd576118fc6117c0565b5b5f61190a848285016118d4565b91505092915050565b5f8115159050919050565b61192781611913565b82525050565b5f6020820190506119405f83018461191e565b92915050565b5f6119508261184c565b9050919050565b61196081611946565b82525050565b5f6020820190506119795f830184611957565b92915050565b5f5f60408385031215611995576119946117c0565b5b5f6119a2858286016118d4565b92505060206119b3858286016118d4565b9150509250929050565b5f6119c78261184c565b9050919050565b6119d7816119bd565b82525050565b5f6020820190506119f05f8301846119ce565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a38826119f6565b611a428185611a00565b9350611a52818560208601611a10565b611a5b81611a1e565b840191505092915050565b5f6020820190508181035f830152611a7e8184611a2e565b905092915050565b7f41435449564154494f4e2044454c41592042454c4f57204d494e0000000000005f82015250565b5f611aba601a83611a00565b9150611ac582611a86565b602082019050919050565b5f6020820190508181035f830152611ae781611aae565b9050919050565b5f604082019050611b015f830185611896565b611b0e6020830184611896565b9392505050565b7f4d61726b6574206e6f7420616c6c6f77656400000000000000000000000000005f82015250565b5f611b49601283611a00565b9150611b5482611b15565b602082019050919050565b5f6020820190508181035f830152611b7681611b3d565b9050919050565b611b8681611913565b8114611b90575f5ffd5b50565b5f81519050611ba181611b7d565b92915050565b5f60208284031215611bbc57611bbb6117c0565b5b5f611bc984828501611b93565b91505092915050565b7f4d61726b6574206e6f7420616374697665204669524d206d61726b65740000005f82015250565b5f611c06601d83611a00565b9150611c1182611bd2565b602082019050919050565b5f6020820190508181035f830152611c3381611bfa565b9050919050565b7f4d61726b65742070726f74656374696f6e206e6f7420616374697661746564005f82015250565b5f611c6e601f83611a00565b9150611c7982611c3a565b602082019050919050565b5f6020820190508181035f830152611c9b81611c62565b9050919050565b5f81519050611cb0816117cd565b92915050565b5f60208284031215611ccb57611cca6117c0565b5b5f611cd884828501611ca2565b91505092915050565b7f4e6f2062616420646562740000000000000000000000000000000000000000005f82015250565b5f611d15600b83611a00565b9150611d2082611ce1565b602082019050919050565b5f6020820190508181035f830152611d4281611d09565b9050919050565b7f4465627420746f6f206c6f7700000000000000000000000000000000000000005f82015250565b5f611d7d600c83611a00565b9150611d8882611d49565b602082019050919050565b5f6020820190508181035f830152611daa81611d71565b9050919050565b7f436f6c6c61746572616c2076616c756520746f6f2068696768000000000000005f82015250565b5f611de5601983611a00565b9150611df082611db1565b602082019050919050565b5f6020820190508181035f830152611e1281611dd9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e50826117c4565b9150611e5b836117c4565b9250828203905081811115611e7357611e72611e19565b5b92915050565b5f604082019050611e8c5f830185611798565b611e996020830184611896565b9392505050565b5f606082019050611eb35f830186611896565b611ec06020830185611896565b611ecd6040830184611896565b949350505050565b7f4d617820636f6c6c61746572616c2076616c7565206d757374206265203e20305f82015250565b5f611f09602083611a00565b9150611f1482611ed5565b602082019050919050565b5f6020820190508181035f830152611f3681611efd565b9050919050565b5f611f47826117c4565b9150611f52836117c4565b9250828201905080821115611f6a57611f69611e19565b5b92915050565b7f4f4e4c5920475541524449414e204f5220474f560000000000000000000000005f82015250565b5f611fa4601483611a00565b9150611faf82611f70565b602082019050919050565b5f6020820190508181035f830152611fd181611f98565b9050919050565b7f475541524449414e2043414e4e4f542052454d4f564520414354495645204d415f8201527f524b455400000000000000000000000000000000000000000000000000000000602082015250565b5f612032602483611a00565b915061203d82611fd8565b604082019050919050565b5f6020820190508181035f83015261205f81612026565b905091905056fea2646970667358221220aaf1a2d19736bb64c574c5eef0746deaab8d4c2977c02c295fd5f6a3adabef5c64736f6c634300081d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f54000000000000000000000000ad038eb671c44b853887a7e32528fab35dc5d710000000000000000000000000865377367054516e17014ccded1e7d814edc9ce4000000000000000000000000926df14a23be491164dcf93f4c468a50ef659d5b
-----Decoded View---------------
Arg [0] : _slashingPool (address): 0x5BaCAfBe2788b0EC837eB95f05938DAf49224f54
Arg [1] : _dbr (address): 0xAD038Eb671c44b853887A7E32528FaB35dC5D710
Arg [2] : _dola (address): 0x865377367054516e17014CcdED1e7d814EDC9ce4
Arg [3] : _gov (address): 0x926dF14a23BE491164dCF93f4c468A50ef659D5B
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000005bacafbe2788b0ec837eb95f05938daf49224f54
Arg [1] : 000000000000000000000000ad038eb671c44b853887a7e32528fab35dc5d710
Arg [2] : 000000000000000000000000865377367054516e17014ccded1e7d814edc9ce4
Arg [3] : 000000000000000000000000926df14a23be491164dcf93f4c468a50ef659d5b
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.