More Info
Private Name Tags
ContractCreator
Sponsored
Latest 7 from a total of 7 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 25437751 | 947 days ago | IN | 0 POL | 0.00087406 | ||||
Set Reserve Rate... | 16898850 | 1175 days ago | IN | 0 POL | 0.00004119 | ||||
Set Reserve Rate... | 15881190 | 1202 days ago | IN | 0 POL | 0.00003687 | ||||
Set Reserve Rate... | 15872851 | 1202 days ago | IN | 0 POL | 0.00003688 | ||||
Set Reserve Rate... | 15604262 | 1209 days ago | IN | 0 POL | 0.00010122 | ||||
Set Reserve Rate... | 15604250 | 1209 days ago | IN | 0 POL | 0.00010122 | ||||
0x60806040 | 15603855 | 1209 days ago | IN | 0 POL | 0.00066263 |
Loading...
Loading
Contract Name:
ConfigurableReserve
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.7.6; import "@openzeppelin/contracts/access/Ownable.sol"; import "./IConfigurableReserve.sol"; import "./IPrizePool.sol"; /// @title Implementation of IConfigurable reserve /// @notice Provides an Ownable configurable reserve for prize pools. This includes an opt-out default rate for prize pools. /// For flexibility this includes a specified withdraw Strategist address which can be set by the owner. /// The prize pool Reserve can withdrawn by the owner or the reserve strategist. contract ConfigurableReserve is IConfigurableReserve, Ownable { /// @notice Storage of Reserve Rate Mantissa associated with a Prize Pool mapping(address => ReserveRate) public prizePoolMantissas; /// @notice Storage of the address of a withdrawal strategist address public withdrawStrategist; /// @notice Storage of the default rate mantissa uint224 public defaultReserveRateMantissa; constructor() Ownable(){ } /// @notice Returns the reserve rate for a particular source /// @param source The source for which the reserve rate should be return. These are normally prize pools. /// @return The reserve rate as a fixed point 18 number, like Ether. A rate of 0.05 = 50000000000000000 function reserveRateMantissa(address source) external override view returns (uint256){ if(!prizePoolMantissas[source].useCustom){ return uint256(defaultReserveRateMantissa); } // else return the custom rate return prizePoolMantissas[source].rateMantissa; } /// @notice Allows the owner of the contract to set the reserve rates for a given set of sources. /// @dev Length must match sources param. /// @param sources The sources for which to set the reserve rates. /// @param _reserveRates The respective ReserveRates for the sources. function setReserveRateMantissa(address[] calldata sources, uint224[] calldata _reserveRates, bool[] calldata useCustom) external override onlyOwner{ for(uint256 i = 0; i < sources.length; i++){ prizePoolMantissas[sources[i]].rateMantissa = _reserveRates[i]; prizePoolMantissas[sources[i]].useCustom = useCustom[i]; emit ReserveRateMantissaSet(sources[i], _reserveRates[i], useCustom[i]); } } /// @notice Allows the owner of the contract to set the withdrawal strategy address /// @param _strategist The new withdrawal strategist address function setWithdrawStrategist(address _strategist) external override onlyOwner{ withdrawStrategist = _strategist; emit ReserveWithdrawStrategistChanged(_strategist); } /// @notice Calls withdrawReserve on the Prize Pool /// @param prizePool The Prize Pool to withdraw reserve /// @param to The reserve transfer destination address /// @return The amount of reserve withdrawn from the prize pool function withdrawReserve(address prizePool, address to) external override onlyOwnerOrWithdrawStrategist returns (uint256){ return PrizePoolInterface(prizePool).withdrawReserve(to); } /// @notice Sets the default ReserveRate mantissa /// @param _reserveRateMantissa The new default reserve rate mantissa function setDefaultReserveRateMantissa(uint224 _reserveRateMantissa) external override onlyOwner{ defaultReserveRateMantissa = _reserveRateMantissa; emit DefaultReserveRateMantissaSet(_reserveRateMantissa); } /// @notice Only allows the owner or current strategist to call a function modifier onlyOwnerOrWithdrawStrategist(){ require(msg.sender == owner() || msg.sender == withdrawStrategist, "!onlyOwnerOrWithdrawStrategist"); _; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.6; interface IConfigurableReserve { ///@notice struct to store the reserve rate mantissa for an address and a flag to indicate to use the default reserve rate struct ReserveRate{ uint224 rateMantissa; bool useCustom; } /// @notice Returns the reserve rate for a particular source /// @param source The source for which the reserve rate should be return. These are normally prize pools. /// @return The reserve rate as a fixed point 18 number, like Ether. A rate of 0.05 = 50000000000000000 function reserveRateMantissa(address source) external view returns (uint256); /// @notice Allows the owner of the contract to set the reserve rates for a given set of sources. /// @dev Length must match sources param. /// @param sources The sources for which to set the reserve rates. /// @param _reserveRates The respective ReserveRates for the sources. function setReserveRateMantissa(address[] calldata sources, uint224[] calldata _reserveRates, bool[] calldata useCustom) external; /// @notice Allows the owner of the contract to set the withdrawal strategy address /// @param strategist The new withdrawal strategist address function setWithdrawStrategist(address strategist) external; /// @notice Calls withdrawReserve on the Prize Pool /// @param prizePool The Prize Pool to withdraw reserve /// @param to The reserve transfer destination address function withdrawReserve(address prizePool, address to) external returns (uint256); /// @notice Sets the default ReserveRate mantissa /// @param _reserveRateMantissa The new default reserve rate mantissa function setDefaultReserveRateMantissa(uint224 _reserveRateMantissa) external; /// @notice Emitted when the reserve rate mantissa was updated for a prize pool /// @param prizePool The prize pool address for which the rate was set /// @param reserveRateMantissa The respective reserve rate for the prizepool. /// @param useCustom Whether to use the custom reserve rate (true) or the default (false) event ReserveRateMantissaSet(address indexed prizePool, uint256 reserveRateMantissa, bool useCustom); /// @notice Emitted when the withdraw strategist is changed /// @param strategist The updated strategist address event ReserveWithdrawStrategistChanged(address indexed strategist); /// @notice Emitted when the default reserve rate mantissa was updated /// @param rate The new updated default mantissa rate event DefaultReserveRateMantissaSet(uint256 rate); }
// SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.7.6; /// @title Escrows assets and deposits them into a yield source. Exposes interest to Prize Strategy. Users deposit and withdraw from this contract to participate in Prize Pool. /// @notice Accounting is managed using Controlled Tokens, whose mint and burn functions can only be called by this contract. /// @dev Must be inherited to provide specific yield-bearing asset control, such as Compound cTokens interface PrizePoolInterface { function withdrawReserve(address to) external returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "istanbul", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "metadata": { "useLiteralContent": true } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"}],"name":"DefaultReserveRateMantissaSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prizePool","type":"address"},{"indexed":false,"internalType":"uint256","name":"reserveRateMantissa","type":"uint256"},{"indexed":false,"internalType":"bool","name":"useCustom","type":"bool"}],"name":"ReserveRateMantissaSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"strategist","type":"address"}],"name":"ReserveWithdrawStrategistChanged","type":"event"},{"inputs":[],"name":"defaultReserveRateMantissa","outputs":[{"internalType":"uint224","name":"","type":"uint224"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"prizePoolMantissas","outputs":[{"internalType":"uint224","name":"rateMantissa","type":"uint224"},{"internalType":"bool","name":"useCustom","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"source","type":"address"}],"name":"reserveRateMantissa","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint224","name":"_reserveRateMantissa","type":"uint224"}],"name":"setDefaultReserveRateMantissa","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"sources","type":"address[]"},{"internalType":"uint224[]","name":"_reserveRates","type":"uint224[]"},{"internalType":"bool[]","name":"useCustom","type":"bool[]"}],"name":"setReserveRateMantissa","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_strategist","type":"address"}],"name":"setWithdrawStrategist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"prizePool","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStrategist","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b610a928061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806385b925ec1161007157806385b925ec1461018d5780638da5cb5b146101b1578063a0dc039b146101b9578063baede25e146102cd578063c5e7b3be146102f3578063f2fde38b14610317576100a9565b8063010dfa58146100ae5780635f365f10146100e657806361853b421461010e578063715018a61461013c5780637ad4ee0d14610144575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b031661033d565b60408051918252519081900360200190f35b61010c600480360360208110156100fc57600080fd5b50356001600160e01b031661039f565b005b6100d46004803603604081101561012457600080fd5b506001600160a01b0381358116916020013516610455565b61010c61055b565b61016a6004803603602081101561015a57600080fd5b50356001600160a01b0316610607565b604080516001600160e01b03909316835290151560208301528051918290030190f35b61019561062e565b604080516001600160a01b039092168252519081900360200190f35b61019561063d565b61010c600480360360608110156101cf57600080fd5b8101906020810181356401000000008111156101ea57600080fd5b8201836020820111156101fc57600080fd5b8035906020019184602083028401116401000000008311171561021e57600080fd5b91939092909160208101903564010000000081111561023c57600080fd5b82018360208201111561024e57600080fd5b8035906020019184602083028401116401000000008311171561027057600080fd5b91939092909160208101903564010000000081111561028e57600080fd5b8201836020820111156102a057600080fd5b803590602001918460208302840111640100000000831117156102c257600080fd5b50909250905061064c565b61010c600480360360208110156102e357600080fd5b50356001600160a01b0316610855565b6102fb610901565b604080516001600160e01b039092168252519081900360200190f35b61010c6004803603602081101561032d57600080fd5b50356001600160a01b0316610910565b6001600160a01b038116600090815260016020526040812054600160e01b900460ff1661037657506003546001600160e01b031661039a565b506001600160a01b0381166000908152600160205260409020546001600160e01b03165b919050565b6103a7610a12565b6001600160a01b03166103b861063d565b6001600160a01b031614610401576040805162461bcd60e51b81526020600482018190526024820152600080516020610a3d833981519152604482015290519081900360640190fd5b600380546001600160e01b0383166001600160e01b0319909116811790915560408051918252517fc86c3cce30b0573c71caeabb76b3c908826697d53b53a8ffb8a46743fc39ea6e9181900360200190a150565b600061045f61063d565b6001600160a01b0316336001600160a01b0316148061048857506002546001600160a01b031633145b6104d9576040805162461bcd60e51b815260206004820152601e60248201527f216f6e6c794f776e65724f725769746864726177537472617465676973740000604482015290519081900360640190fd5b826001600160a01b03166352a387ab836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561052857600080fd5b505af115801561053c573d6000803e3d6000fd5b505050506040513d602081101561055257600080fd5b50519392505050565b610563610a12565b6001600160a01b031661057461063d565b6001600160a01b0316146105bd576040805162461bcd60e51b81526020600482018190526024820152600080516020610a3d833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001602052600090815260409020546001600160e01b03811690600160e01b900460ff1682565b6002546001600160a01b031681565b6000546001600160a01b031690565b610654610a12565b6001600160a01b031661066561063d565b6001600160a01b0316146106ae576040805162461bcd60e51b81526020600482018190526024820152600080516020610a3d833981519152604482015290519081900360640190fd5b60005b8581101561084c578484828181106106c557fe5b905060200201356001600160e01b0316600160008989858181106106e557fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060000160006101000a8154816001600160e01b0302191690836001600160e01b0316021790555082828281811061074857fe5b9050602002013515156001600089898581811061076157fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600001601c6101000a81548160ff0219169083151502179055508686828181106107b757fe5b905060200201356001600160a01b03166001600160a01b03167f1069081ee8013d1696dd56236d8de825f20e1a9349aa08d09cedb868dac61c858686848181106107fd57fe5b905060200201356001600160e01b031685858581811061081957fe5b604080516001600160e01b03909516855260209182029390930135151590840152508051918290030190a26001016106b1565b50505050505050565b61085d610a12565b6001600160a01b031661086e61063d565b6001600160a01b0316146108b7576040805162461bcd60e51b81526020600482018190526024820152600080516020610a3d833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f5e6ccfaa4c27cf9175e92dd72903fce6e829f5870d59756148197ecc124646b590600090a250565b6003546001600160e01b031681565b610918610a12565b6001600160a01b031661092961063d565b6001600160a01b031614610972576040805162461bcd60e51b81526020600482018190526024820152600080516020610a3d833981519152604482015290519081900360640190fd5b6001600160a01b0381166109b75760405162461bcd60e51b8152600401808060200182810382526026815260200180610a176026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122086b69bb3f78475fa76a5f758fbdf2384bcc7025d6add964d1a0164260abf542064736f6c63430007060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806385b925ec1161007157806385b925ec1461018d5780638da5cb5b146101b1578063a0dc039b146101b9578063baede25e146102cd578063c5e7b3be146102f3578063f2fde38b14610317576100a9565b8063010dfa58146100ae5780635f365f10146100e657806361853b421461010e578063715018a61461013c5780637ad4ee0d14610144575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b031661033d565b60408051918252519081900360200190f35b61010c600480360360208110156100fc57600080fd5b50356001600160e01b031661039f565b005b6100d46004803603604081101561012457600080fd5b506001600160a01b0381358116916020013516610455565b61010c61055b565b61016a6004803603602081101561015a57600080fd5b50356001600160a01b0316610607565b604080516001600160e01b03909316835290151560208301528051918290030190f35b61019561062e565b604080516001600160a01b039092168252519081900360200190f35b61019561063d565b61010c600480360360608110156101cf57600080fd5b8101906020810181356401000000008111156101ea57600080fd5b8201836020820111156101fc57600080fd5b8035906020019184602083028401116401000000008311171561021e57600080fd5b91939092909160208101903564010000000081111561023c57600080fd5b82018360208201111561024e57600080fd5b8035906020019184602083028401116401000000008311171561027057600080fd5b91939092909160208101903564010000000081111561028e57600080fd5b8201836020820111156102a057600080fd5b803590602001918460208302840111640100000000831117156102c257600080fd5b50909250905061064c565b61010c600480360360208110156102e357600080fd5b50356001600160a01b0316610855565b6102fb610901565b604080516001600160e01b039092168252519081900360200190f35b61010c6004803603602081101561032d57600080fd5b50356001600160a01b0316610910565b6001600160a01b038116600090815260016020526040812054600160e01b900460ff1661037657506003546001600160e01b031661039a565b506001600160a01b0381166000908152600160205260409020546001600160e01b03165b919050565b6103a7610a12565b6001600160a01b03166103b861063d565b6001600160a01b031614610401576040805162461bcd60e51b81526020600482018190526024820152600080516020610a3d833981519152604482015290519081900360640190fd5b600380546001600160e01b0383166001600160e01b0319909116811790915560408051918252517fc86c3cce30b0573c71caeabb76b3c908826697d53b53a8ffb8a46743fc39ea6e9181900360200190a150565b600061045f61063d565b6001600160a01b0316336001600160a01b0316148061048857506002546001600160a01b031633145b6104d9576040805162461bcd60e51b815260206004820152601e60248201527f216f6e6c794f776e65724f725769746864726177537472617465676973740000604482015290519081900360640190fd5b826001600160a01b03166352a387ab836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561052857600080fd5b505af115801561053c573d6000803e3d6000fd5b505050506040513d602081101561055257600080fd5b50519392505050565b610563610a12565b6001600160a01b031661057461063d565b6001600160a01b0316146105bd576040805162461bcd60e51b81526020600482018190526024820152600080516020610a3d833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001602052600090815260409020546001600160e01b03811690600160e01b900460ff1682565b6002546001600160a01b031681565b6000546001600160a01b031690565b610654610a12565b6001600160a01b031661066561063d565b6001600160a01b0316146106ae576040805162461bcd60e51b81526020600482018190526024820152600080516020610a3d833981519152604482015290519081900360640190fd5b60005b8581101561084c578484828181106106c557fe5b905060200201356001600160e01b0316600160008989858181106106e557fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060000160006101000a8154816001600160e01b0302191690836001600160e01b0316021790555082828281811061074857fe5b9050602002013515156001600089898581811061076157fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600001601c6101000a81548160ff0219169083151502179055508686828181106107b757fe5b905060200201356001600160a01b03166001600160a01b03167f1069081ee8013d1696dd56236d8de825f20e1a9349aa08d09cedb868dac61c858686848181106107fd57fe5b905060200201356001600160e01b031685858581811061081957fe5b604080516001600160e01b03909516855260209182029390930135151590840152508051918290030190a26001016106b1565b50505050505050565b61085d610a12565b6001600160a01b031661086e61063d565b6001600160a01b0316146108b7576040805162461bcd60e51b81526020600482018190526024820152600080516020610a3d833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f5e6ccfaa4c27cf9175e92dd72903fce6e829f5870d59756148197ecc124646b590600090a250565b6003546001600160e01b031681565b610918610a12565b6001600160a01b031661092961063d565b6001600160a01b031614610972576040805162461bcd60e51b81526020600482018190526024820152600080516020610a3d833981519152604482015290519081900360640190fd5b6001600160a01b0381166109b75760405162461bcd60e51b8152600401808060200182810382526026815260200180610a176026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122086b69bb3f78475fa76a5f758fbdf2384bcc7025d6add964d1a0164260abf542064736f6c63430007060033
Deployed Bytecode Sourcemap
540:3207:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1285:304;;;;;;;;;;;;;;;;-1:-1:-1;1285:304:2;-1:-1:-1;;;;;1285:304:2;;:::i;:::-;;;;;;;;;;;;;;;;3264:228;;;;;;;;;;;;;;;;-1:-1:-1;3264:228:2;-1:-1:-1;;;;;3264:228:2;;:::i;:::-;;2936:194;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2936:194:2;;;;;;;;;;:::i;1717:145:0:-;;;:::i;691:57:2:-;;;;;;;;;;;;;;;;-1:-1:-1;691:57:2;-1:-1:-1;;;;;691:57:2;;:::i;:::-;;;;-1:-1:-1;;;;;691:57:2;;;;;;;;;;;;;;;;;;;;;822:33;;;:::i;:::-;;;;-1:-1:-1;;;;;822:33:2;;;;;;;;;;;;;;1085:85:0;;;:::i;1890:450:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1890:450:2;;-1:-1:-1;1890:450:2;-1:-1:-1;1890:450:2;:::i;2499:188::-;;;;;;;;;;;;;;;;-1:-1:-1;2499:188:2;-1:-1:-1;;;;;2499:188:2;;:::i;915:41::-;;;:::i;:::-;;;;-1:-1:-1;;;;;915:41:2;;;;;;;;;;;;;;2011:240:0;;;;;;;;;;;;;;;;-1:-1:-1;2011:240:0;-1:-1:-1;;;;;2011:240:0;;:::i;1285:304:2:-;-1:-1:-1;;;;;1384:26:2;;1362:7;1384:26;;;:18;:26;;;;;:36;-1:-1:-1;;;1384:36:2;;;;1380:108;;-1:-1:-1;1450:26:2;;-1:-1:-1;;;;;1450:26:2;1435:42;;1380:108;-1:-1:-1;;;;;;1543:26:2;;;;;;:18;:26;;;;;:39;-1:-1:-1;;;;;1543:39:2;1285:304;;;;:::o;3264:228::-;1308:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1289:68:0;;;;;;;;;;;;;;;3370:26:2::1;:49:::0;;-1:-1:-1;;;;;3370:49:2;::::1;-1:-1:-1::0;;;;;;3370:49:2;;::::1;::::0;::::1;::::0;;;3434:51:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;3264:228:::0;:::o;2936:194::-;3049:7;3649;:5;:7::i;:::-;-1:-1:-1;;;;;3635:21:2;:10;-1:-1:-1;;;;;3635:21:2;;:57;;;-1:-1:-1;3674:18:2;;-1:-1:-1;;;;;3674:18:2;3660:10;:32;3635:57;3627:100;;;;;-1:-1:-1;;;3627:100:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;3093:9:::1;-1:-1:-1::0;;;;;3074:45:2::1;;3120:2;3074:49;;;;;;;;;;;;;-1:-1:-1::0;;;;;3074:49:2::1;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;3074:49:2;;2936:194;-1:-1:-1;;;2936:194:2:o;1717:145:0:-;1308:12;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1289:68:0;;;;;;;;;;;;;;;1823:1:::1;1807:6:::0;;1786:40:::1;::::0;-1:-1:-1;;;;;1807:6:0;;::::1;::::0;1786:40:::1;::::0;1823:1;;1786:40:::1;1853:1;1836:19:::0;;-1:-1:-1;;;;;;1836:19:0::1;::::0;;1717:145::o;691:57:2:-;;;;;;;;;;;;-1:-1:-1;;;;;691:57:2;;;-1:-1:-1;;;691:57:2;;;;;:::o;822:33::-;;;-1:-1:-1;;;;;822:33:2;;:::o;1085:85:0:-;1131:7;1157:6;-1:-1:-1;;;;;1157:6:0;1085:85;:::o;1890:450:2:-;1308:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1289:68:0;;;;;;;;;;;;;;;2053:9:2::1;2049:285;2068:19:::0;;::::1;2049:285;;;2153:13;;2167:1;2153:16;;;;;;;;;;;;;-1:-1:-1::0;;;;;2153:16:2::1;2107:18;:30;2126:7;;2134:1;2126:10;;;;;;;;;;;;;-1:-1:-1::0;;;;;2126:10:2::1;-1:-1:-1::0;;;;;2107:30:2::1;-1:-1:-1::0;;;;;2107:30:2::1;;;;;;;;;;;;:43;;;:62;;;;;-1:-1:-1::0;;;;;2107:62:2::1;;;;;-1:-1:-1::0;;;;;2107:62:2::1;;;;;;2226:9;;2236:1;2226:12;;;;;;;;;;;;;;;2183:18;:30;2202:7;;2210:1;2202:10;;;;;;;;;;;;;-1:-1:-1::0;;;;;2202:10:2::1;-1:-1:-1::0;;;;;2183:30:2::1;-1:-1:-1::0;;;;;2183:30:2::1;;;;;;;;;;;;:40;;;:55;;;;;;;;;;;;;;;;;;2280:7;;2288:1;2280:10;;;;;;;;;;;;;-1:-1:-1::0;;;;;2280:10:2::1;-1:-1:-1::0;;;;;2257:66:2::1;;2292:13;;2306:1;2292:16;;;;;;;;;;;;;-1:-1:-1::0;;;;;2292:16:2::1;2310:9;;2320:1;2310:12;;;;;;;2257:66;::::0;;-1:-1:-1;;;;;2257:66:2;;::::1;::::0;;2310:12:::1;::::0;;::::1;::::0;;;::::1;;;;2257:66:::0;;::::1;::::0;-1:-1:-1;2257:66:2;;;;;;;;::::1;2089:3;;2049:285;;;;1890:450:::0;;;;;;:::o;2499:188::-;1308:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1289:68:0;;;;;;;;;;;;;;;2588:18:2::1;:32:::0;;-1:-1:-1;;;;;;2588:32:2::1;-1:-1:-1::0;;;;;2588:32:2;::::1;::::0;;::::1;::::0;;;2635:45:::1;::::0;::::1;::::0;-1:-1:-1;;2635:45:2::1;2499:188:::0;:::o;915:41::-;;;-1:-1:-1;;;;;915:41:2;;:::o;2011:240:0:-;1308:12;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1289:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2099:22:0;::::1;2091:73;;;;-1:-1:-1::0;;;2091:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2200:6;::::0;;2179:38:::1;::::0;-1:-1:-1;;;;;2179:38:0;;::::1;::::0;2200:6;::::1;::::0;2179:38:::1;::::0;::::1;2227:6;:17:::0;;-1:-1:-1;;;;;;2227:17:0::1;-1:-1:-1::0;;;;;2227:17:0;;;::::1;::::0;;;::::1;::::0;;2011:240::o;598:104:1:-;685:10;598:104;:::o
Swarm Source
ipfs://86b69bb3f78475fa76a5f758fbdf2384bcc7025d6add964d1a0164260abf5420
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.