Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
MCAGAggregator
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.17; import {Errors} from "./libraries/Errors.sol"; import {IAccessControl} from "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol"; import {MCAGAggregatorInterface} from "./interfaces/MCAGAggregatorInterface.sol"; import {Roles} from "./libraries/Roles.sol"; import {WadRayMath} from "./libraries/WadRayMath.sol"; /** * @title MCAG Aggregator * @author MIMO Labs * @notice MCAGAggregator contracts serve as an oracle for the MCAGRateFeed */ contract MCAGAggregator is MCAGAggregatorInterface { using WadRayMath for uint256; uint256 public constant MIN_TERM = 4 weeks; uint8 private constant _VERSION = 1; uint8 private constant _DECIMALS = 27; uint256 private immutable _term; IAccessControl public immutable accessController; uint80 private _roundId; string private _description; int256 private _answer; int256 private _maxAnswer; uint256 private _volatilityThreshold; uint256 private _updatedAt; /** * @dev Modifier to make a function callable only when the caller has a specific role * @param role The role required to call the function */ modifier onlyRole(bytes32 role) { if (!accessController.hasRole(role, msg.sender)) { revert Errors.ACCESS_CONTROL_ACCOUNT_IS_MISSING_ROLE(msg.sender, role); } _; } /** * @param description_ Description of the oracle - for example "10 YEAR US TREASURY". * @param maxAnswer_ Maximum sensible answer the contract should accept during transmission * @param _accessController MCAG AccessController */ constructor( string memory description_, int256 maxAnswer_, IAccessControl _accessController, int256 answer, uint256 volatilityThreshold, uint256 term ) { if (address(_accessController) == address(0)) { revert Errors.CANNOT_SET_TO_ADDRESS_ZERO(); } if (volatilityThreshold <= 0) { revert Errors.INVALID_VOLATILITY_THRESHOLD(); } if (answer > maxAnswer_) { revert Errors.TRANSMITTED_ANSWER_TOO_HIGH(answer, maxAnswer_); } if (term < MIN_TERM) { revert Errors.TERM_TOO_LOW(term, MIN_TERM); } _description = description_; _answer = answer; _maxAnswer = maxAnswer_; _volatilityThreshold = volatilityThreshold; _updatedAt = block.timestamp; _term = term; accessController = _accessController; emit AccessControllerSet(address(_accessController)); emit AnswerTransmitted(msg.sender, 0, answer); emit MaxAnswerSet(0, maxAnswer_); emit VolatilityThresholdSet(0, volatilityThreshold); emit TermSet(term); } /** * @notice Transmits a new price to the aggreator and updates the answer, round id and updated at. * @dev Can only be called by a registered transmitter. * @param answer New central bank rate as a per second cumualtive rate in 27 decimals. * For example a 5% annual linear rate would be converted to a per second cumulative rate as follow : * (1 + 5%)^(1 / 31536000) * 1e27 = 100000000578137865680459171 */ function transmit(int256 answer) external onlyRole(Roles.MCAG_TRANSMITTER_ROLE) { if (answer > _maxAnswer) { revert Errors.TRANSMITTED_ANSWER_TOO_HIGH(answer, _maxAnswer); } if (answer < 0) { revert Errors.TRANSMITTED_ANSWER_TOO_LOW(answer, 0); } int256 answer_ = _answer; uint256 oldAnswer = uint256(answer_); uint256 newAnswer = uint256(answer); uint256 oldTotalLinearRate = oldAnswer.rayPow(_term); uint256 newTotalLinearRate = newAnswer.rayPow(_term); uint256 absoluteRateChange; if (newTotalLinearRate > oldTotalLinearRate) { absoluteRateChange = newTotalLinearRate - oldTotalLinearRate; } else { absoluteRateChange = oldTotalLinearRate - newTotalLinearRate; } if (absoluteRateChange > _volatilityThreshold) { revert Errors.RATE_TOO_VOLATILE(absoluteRateChange, _volatilityThreshold); } ++_roundId; _updatedAt = block.timestamp; _answer = answer; emit AnswerTransmitted(msg.sender, _roundId, answer); } /** * @notice Sets a new max answer. * @dev Can only be called by MCAG Manager. * @param newMaxAnswer New maximum sensible answer the contract should accept in RAY. */ function setMaxAnswer(int256 newMaxAnswer) external onlyRole(Roles.MCAG_MANAGER_ROLE) { emit MaxAnswerSet(_maxAnswer, newMaxAnswer); _maxAnswer = newMaxAnswer; } /** * @notice Sets a new volatility threshold. * @dev Can only be called by MCAG Manager. * @param newVolatilityThreshold New maximum absolute value change of the answer between two consecutive rounds. */ function setVolatilityThreshold(uint256 newVolatilityThreshold) external onlyRole(Roles.MCAG_MANAGER_ROLE) { if (newVolatilityThreshold == 0) { revert Errors.INVALID_VOLATILITY_THRESHOLD(); } emit VolatilityThresholdSet(_volatilityThreshold, newVolatilityThreshold); _volatilityThreshold = newVolatilityThreshold; } /** * @notice Returns round data per the Chainlink format. * @return roundId Latest _roundId. * @return answer Latest answer transmitted. * @return startedAt Unused variable here only to follow Chainlink format. * @return updatedAt Timestamp of the last transmitted answer. * @return answeredInRound Latest _roundId. */ function latestRoundData() external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) { roundId = _roundId; answer = _answer; startedAt = _updatedAt; updatedAt = _updatedAt; answeredInRound = _roundId; } /** * @return Description of the oracle - for example "10 YEAR US TREASURY". */ function description() external view returns (string memory) { return _description; } /** * @return Maximum sensible answer the contract should accept. */ function maxAnswer() external view returns (int256) { return _maxAnswer; } /** * @return Maximum absolute value change of the answer between two consecutive rounds. */ function getVolatilityThreshold() external view returns (uint256) { return _volatilityThreshold; } /** * @return The term of oracle asset in seconds. For example 364 days for 52 week t-bills. */ function getTerm() external view returns (uint256) { return _term; } /** * @return Number of decimals used to get its user representation. */ function decimals() external pure returns (uint8) { return _DECIMALS; } /** * @return Contract version. */ function version() external pure returns (uint8) { return _VERSION; } }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.17; interface MCAGAggregatorInterface { event AccessControllerSet(address accesController); event AnswerTransmitted(address indexed transmitter, uint80 roundId, int256 answer); event MaxAnswerSet(int256 oldMaxAnswer, int256 newMaxAnswer); event VolatilityThresholdSet(uint256 oldVolatilityThreshold, uint256 newVolatilityThreshold); event TermSet(uint256 term); function transmit(int256 answer) external; function decimals() external view returns (uint8); function description() external view returns (string memory); function maxAnswer() external view returns (int256); function getVolatilityThreshold() external view returns (uint256); function version() external view returns (uint8); function getTerm() external view returns (uint256); function latestRoundData() external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; library Errors { error CANNOT_SET_TO_ADDRESS_ZERO(); error ERC721_APPROVAL_TO_CURRENT_OWNER(); error ERC721_APPROVE_CALLER_IS_NOT_TOKEN_OWNER_OR_APPROVED_FOR_ALL(); error ERC721_INVALID_TOKEN_ID(); error ERC721_CALLER_IS_NOT_TOKEN_OWNER(); error ACCESS_CONTROL_ACCOUNT_IS_MISSING_ROLE(address account, bytes32 role); error BLACKLIST_CALLER_IS_NOT_BLACKLISTER(); error BLACKLIST_ACCOUNT_IS_NOT_BLACKLISTED(address account); error BLACKLIST_ACCOUNT_IS_BLACKLISTED(address account); error TRANSMITTED_ANSWER_TOO_HIGH(int256 answer, int256 maxAnswer); error TRANSMITTED_ANSWER_TOO_LOW(int256 answer, int256 minAnswer); error TOKEN_IS_NOT_TRANSFERABLE(); error KYC_DATA_OWNER_MISMATCH(address to, address owner); error RATE_TOO_VOLATILE(uint256 absoluteRateChange, uint256 volatilityThreshold); error INVALID_VOLATILITY_THRESHOLD(); error TERMS_AND_CONDITIONS_URL_DOES_NOT_EXIST(uint256 tncId); error TERM_TOO_LOW(uint256 term, uint256 minTerm); error RISK_CATEGORY_MISMATCH(bytes4 currency, bytes32 name, uint64 term, bytes32 riskCategory); error MATURITY_LESS_THAN_ISSUANCE(uint64 maturity, uint64 issuance); error INVALID_RISK_CATEGORY(); error EMPTY_CUSIP_AND_ISIN(); error INVALID_MAX_COUPON(); error INVALID_COUPON(uint256 coupon, uint256 minCoupon, uint256 maxCoupon); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; library Roles { bytes32 public constant MCAG_MINT_ROLE = keccak256("MCAG_MINT_ROLE"); bytes32 public constant MCAG_BURN_ROLE = keccak256("MCAG_BURN_ROLE"); bytes32 public constant MCAG_BLACKLIST_ROLE = keccak256("MCAG_BLACKLIST_ROLE"); bytes32 public constant MCAG_PAUSE_ROLE = keccak256("MCAG_PAUSE_ROLE"); bytes32 public constant MCAG_UNPAUSE_ROLE = keccak256("MCAG_UNPAUSE_ROLE"); bytes32 public constant MCAG_TRANSMITTER_ROLE = keccak256("MCAG_TRANSMITTER_ROLE"); bytes32 public constant MCAG_MANAGER_ROLE = keccak256("MCAG_MANAGER_ROLE"); bytes32 public constant MCAG_SET_URI_ROLE = keccak256("MCAG_SET_URI_ROLE"); bytes32 public constant MCAG_SET_TNC_ROLE = keccak256("MCAG_SET_TNC_ROLE"); bytes32 public constant MCAG_SET_MAX_COUPON_ROLE = keccak256("MCAG_SET_MAX_COUPON_ROLE"); }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.17; /** * @title WadRayMath library * @author Aave * @notice Provides functions to perform calculations with Wad and Ray units * @dev Provides mul and div function for wads (decimal numbers with 18 digits of precision) and rays (decimal numbers * with 27 digits of precision) * @dev Operations are rounded. If a value is >=.5, will be rounded up, otherwise rounded down. * */ library WadRayMath { // HALF_WAD and HALF_RAY expressed with extended notation as constant with operations are not supported in Yul assembly uint256 internal constant WAD = 1e18; uint256 internal constant HALF_WAD = 0.5e18; uint256 internal constant RAY = 1e27; uint256 internal constant HALF_RAY = 0.5e27; uint256 internal constant WAD_RAY_RATIO = 1e9; /** * @dev Multiplies two wad, rounding half up to the nearest wad * @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328 * @param a Wad * @param b Wad * @return c = a*b, in wad * */ function wadMul(uint256 a, uint256 b) internal pure returns (uint256 c) { // to avoid overflow, a <= (type(uint256).max - HALF_WAD) / b assembly { if iszero(or(iszero(b), iszero(gt(a, div(sub(not(0), HALF_WAD), b))))) { revert(0, 0) } c := div(add(mul(a, b), HALF_WAD), WAD) } } /** * @dev Divides two wad, rounding half up to the nearest wad * @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328 * @param a Wad * @param b Wad * @return c = a/b, in wad * */ function wadDiv(uint256 a, uint256 b) internal pure returns (uint256 c) { // to avoid overflow, a <= (type(uint256).max - halfB) / WAD assembly { if or(iszero(b), iszero(iszero(gt(a, div(sub(not(0), div(b, 2)), WAD))))) { revert(0, 0) } c := div(add(mul(a, WAD), div(b, 2)), b) } } /** * @notice Multiplies two ray, rounding half up to the nearest ray * @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328 * @param a Ray * @param b Ray * @return c = a raymul b * */ function rayMul(uint256 a, uint256 b) internal pure returns (uint256 c) { // to avoid overflow, a <= (type(uint256).max - HALF_RAY) / b assembly { if iszero(or(iszero(b), iszero(gt(a, div(sub(not(0), HALF_RAY), b))))) { revert(0, 0) } c := div(add(mul(a, b), HALF_RAY), RAY) } } /** * @notice Divides two ray, rounding half up to the nearest ray * @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328 * @param a Ray * @param b Ray * @return c = a raydiv b * */ function rayDiv(uint256 a, uint256 b) internal pure returns (uint256 c) { // to avoid overflow, a <= (type(uint256).max - halfB) / RAY assembly { if or(iszero(b), iszero(iszero(gt(a, div(sub(not(0), div(b, 2)), RAY))))) { revert(0, 0) } c := div(add(mul(a, RAY), div(b, 2)), b) } } /** * @dev Casts ray down to wad * @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328 * @param a Ray * @return b = a converted to wad, rounded half up to the nearest wad * */ function rayToWad(uint256 a) internal pure returns (uint256 b) { assembly { b := div(a, WAD_RAY_RATIO) let remainder := mod(a, WAD_RAY_RATIO) if iszero(lt(remainder, div(WAD_RAY_RATIO, 2))) { b := add(b, 1) } } } /** * @dev Converts wad up to ray * @dev assembly optimized for improved gas savings, see https://twitter.com/transmissions11/status/1451131036377571328 * @param a Wad * @return b = a converted in ray * */ function wadToRay(uint256 a) internal pure returns (uint256 b) { // to avoid overflow, b/WAD_RAY_RATIO == a assembly { b := mul(a, WAD_RAY_RATIO) if iszero(eq(div(b, WAD_RAY_RATIO), a)) { revert(0, 0) } } } /** * @dev calculates base^exp. The code uses the ModExp precompile * @return z base^exp, in ray * */ function rayPow(uint256 x, uint256 n) internal pure returns (uint256 z) { z = n % 2 != 0 ? x : RAY; for (n /= 2; n != 0; n /= 2) { x = rayMul(x, x); if (n % 2 != 0) { z = rayMul(z, x); } } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol) pragma solidity ^0.8.0; /** * @dev External interface of AccessControl declared to support ERC165 detection. */ interface IAccessControl { /** * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` * * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite * {RoleAdminChanged} not being emitted signaling this. * * _Available since v3.1._ */ event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole); /** * @dev Emitted when `account` is granted `role`. * * `sender` is the account that originated the contract call, an admin role * bearer except when using {AccessControl-_setupRole}. */ event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender); /** * @dev Emitted when `account` is revoked `role`. * * `sender` is the account that originated the contract call: * - if using `revokeRole`, it is the admin role bearer * - if using `renounceRole`, it is the role bearer (i.e. `account`) */ event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender); /** * @dev Returns `true` if `account` has been granted `role`. */ function hasRole(bytes32 role, address account) external view returns (bool); /** * @dev Returns the admin role that controls `role`. See {grantRole} and * {revokeRole}. * * To change a role's admin, use {AccessControl-_setRoleAdmin}. */ function getRoleAdmin(bytes32 role) external view returns (bytes32); /** * @dev Grants `role` to `account`. * * If `account` had not been already granted `role`, emits a {RoleGranted} * event. * * Requirements: * * - the caller must have ``role``'s admin role. */ function grantRole(bytes32 role, address account) external; /** * @dev Revokes `role` from `account`. * * If `account` had been granted `role`, emits a {RoleRevoked} event. * * Requirements: * * - the caller must have ``role``'s admin role. */ function revokeRole(bytes32 role, address account) external; /** * @dev Revokes `role` from the calling account. * * Roles are often managed via {grantRole} and {revokeRole}: this function's * purpose is to provide a mechanism for accounts to lose their privileges * if they are compromised (such as when a trusted device is misplaced). * * If the calling account had been granted `role`, emits a {RoleRevoked} * event. * * Requirements: * * - the caller must be `account`. */ function renounceRole(bytes32 role, address account) external; }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"description_","type":"string"},{"internalType":"int256","name":"maxAnswer_","type":"int256"},{"internalType":"contract IAccessControl","name":"_accessController","type":"address"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"volatilityThreshold","type":"uint256"},{"internalType":"uint256","name":"term","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"ACCESS_CONTROL_ACCOUNT_IS_MISSING_ROLE","type":"error"},{"inputs":[],"name":"CANNOT_SET_TO_ADDRESS_ZERO","type":"error"},{"inputs":[],"name":"INVALID_VOLATILITY_THRESHOLD","type":"error"},{"inputs":[{"internalType":"uint256","name":"absoluteRateChange","type":"uint256"},{"internalType":"uint256","name":"volatilityThreshold","type":"uint256"}],"name":"RATE_TOO_VOLATILE","type":"error"},{"inputs":[{"internalType":"uint256","name":"term","type":"uint256"},{"internalType":"uint256","name":"minTerm","type":"uint256"}],"name":"TERM_TOO_LOW","type":"error"},{"inputs":[{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"int256","name":"maxAnswer","type":"int256"}],"name":"TRANSMITTED_ANSWER_TOO_HIGH","type":"error"},{"inputs":[{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"int256","name":"minAnswer","type":"int256"}],"name":"TRANSMITTED_ANSWER_TOO_LOW","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"accesController","type":"address"}],"name":"AccessControllerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"transmitter","type":"address"},{"indexed":false,"internalType":"uint80","name":"roundId","type":"uint80"},{"indexed":false,"internalType":"int256","name":"answer","type":"int256"}],"name":"AnswerTransmitted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"int256","name":"oldMaxAnswer","type":"int256"},{"indexed":false,"internalType":"int256","name":"newMaxAnswer","type":"int256"}],"name":"MaxAnswerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"term","type":"uint256"}],"name":"TermSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVolatilityThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVolatilityThreshold","type":"uint256"}],"name":"VolatilityThresholdSet","type":"event"},{"inputs":[],"name":"MIN_TERM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accessController","outputs":[{"internalType":"contract IAccessControl","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTerm","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVolatilityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int256","name":"newMaxAnswer","type":"int256"}],"name":"setMaxAnswer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVolatilityThreshold","type":"uint256"}],"name":"setVolatilityThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int256","name":"answer","type":"int256"}],"name":"transmit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"}]
Contract Creation Code
60c06040523480156200001157600080fd5b5060405162001cfe38038062001cfe8339818101604052810190620000379190620005a8565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036200009e576040517f6a8403ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008211620000d9576040517fd3a8179c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84831315620001235782856040517f6bbbaae10000000000000000000000000000000000000000000000000000000081526004016200011a92919062000674565b60405180910390fd5b6224ea008110156200017357806224ea006040517f9fa7dec60000000000000000000000000000000000000000000000000000000081526004016200016a929190620006b2565b60405180910390fd5b856001908162000184919062000920565b508260028190555084600381905550816004819055504260058190555080608081815250508373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250507fd0761a673d8d97d3dd1e8beb78920467f6482d897a3d1a77d0749f20c653130d846040516200020e919062000a18565b60405180910390a13373ffffffffffffffffffffffffffffffffffffffff167f3a61c422699f82edf466ce95aa0fbca2b6ea7a729c6d6dd0726a1b57fe43b8406000856040516200026192919062000a8e565b60405180910390a27f263b9a37f944c68e18b47c2d29208ad38b48a198984ecfdda7b842a1955800286000866040516200029d92919062000af4565b60405180910390a17f8c04e5a7a35fdcad492801896ae7808f8240beb3b52c46822f56132f91f78566600083604051620002d992919062000b5a565b60405180910390a17fc7280f97f846a9a86abb340951a554b3b460a661f096b87b54c1e05428f20c748160405162000312919062000b87565b60405180910390a150505050505062000ba4565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200038f8262000344565b810181811067ffffffffffffffff82111715620003b157620003b062000355565b5b80604052505050565b6000620003c662000326565b9050620003d4828262000384565b919050565b600067ffffffffffffffff821115620003f757620003f662000355565b5b620004028262000344565b9050602081019050919050565b60005b838110156200042f57808201518184015260208101905062000412565b60008484015250505050565b6000620004526200044c84620003d9565b620003ba565b9050828152602081018484840111156200047157620004706200033f565b5b6200047e8482856200040f565b509392505050565b600082601f8301126200049e576200049d6200033a565b5b8151620004b08482602086016200043b565b91505092915050565b6000819050919050565b620004ce81620004b9565b8114620004da57600080fd5b50565b600081519050620004ee81620004c3565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200052182620004f4565b9050919050565b6000620005358262000514565b9050919050565b620005478162000528565b81146200055357600080fd5b50565b60008151905062000567816200053c565b92915050565b6000819050919050565b62000582816200056d565b81146200058e57600080fd5b50565b600081519050620005a28162000577565b92915050565b60008060008060008060c08789031215620005c857620005c762000330565b5b600087015167ffffffffffffffff811115620005e957620005e862000335565b5b620005f789828a0162000486565b96505060206200060a89828a01620004dd565b95505060406200061d89828a0162000556565b94505060606200063089828a01620004dd565b93505060806200064389828a0162000591565b92505060a06200065689828a0162000591565b9150509295509295509295565b6200066e81620004b9565b82525050565b60006040820190506200068b600083018562000663565b6200069a602083018462000663565b9392505050565b620006ac816200056d565b82525050565b6000604082019050620006c96000830185620006a1565b620006d86020830184620006a1565b9392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200073257607f821691505b602082108103620007485762000747620006ea565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000773565b620007be868362000773565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000801620007fb620007f5846200056d565b620007d6565b6200056d565b9050919050565b6000819050919050565b6200081d83620007e0565b620008356200082c8262000808565b84845462000780565b825550505050565b600090565b6200084c6200083d565b6200085981848462000812565b505050565b5b8181101562000881576200087560008262000842565b6001810190506200085f565b5050565b601f821115620008d0576200089a816200074e565b620008a58462000763565b81016020851015620008b5578190505b620008cd620008c48562000763565b8301826200085e565b50505b505050565b600082821c905092915050565b6000620008f560001984600802620008d5565b1980831691505092915050565b6000620009108383620008e2565b9150826002028217905092915050565b6200092b82620006df565b67ffffffffffffffff81111562000947576200094662000355565b5b62000953825462000719565b6200096082828562000885565b600060209050601f83116001811462000998576000841562000983578287015190505b6200098f858262000902565b865550620009ff565b601f198416620009a8866200074e565b60005b82811015620009d257848901518255600182019150602085019450602081019050620009ab565b86831015620009f25784890151620009ee601f891682620008e2565b8355505b6001600288020188555050505b505050505050565b62000a128162000514565b82525050565b600060208201905062000a2f600083018462000a07565b92915050565b6000819050919050565b600069ffffffffffffffffffff82169050919050565b600062000a7662000a7062000a6a8462000a35565b620007d6565b62000a3f565b9050919050565b62000a888162000a55565b82525050565b600060408201905062000aa5600083018562000a7d565b62000ab4602083018462000663565b9392505050565b600062000adc62000ad662000ad08462000a35565b620007d6565b620004b9565b9050919050565b62000aee8162000abb565b82525050565b600060408201905062000b0b600083018562000ae3565b62000b1a602083018462000663565b9392505050565b600062000b4262000b3c62000b368462000a35565b620007d6565b6200056d565b9050919050565b62000b548162000b21565b82525050565b600060408201905062000b71600083018562000b49565b62000b806020830184620006a1565b9392505050565b600060208201905062000b9e6000830184620006a1565b92915050565b60805160a05161111162000bed60003960008181610242015281816106560152818161069b015261081b0152600081816103cb01528181610402015261057801526111116000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637284e416116100715780637284e4161461016b578063bc43cbaf14610189578063d1d73635146101a7578063e9bded29146101c3578063f0604829146101df578063feaf968c146101fd576100b4565b80630452ed78146100b9578063124b65b4146100d5578063313ce567146100f357806353b8b8501461011157806354fd4d501461012f57806370da2f671461014d575b600080fd5b6100d360048036038101906100ce9190610aa6565b61021f565b005b6100dd610574565b6040516100ea9190610aec565b60405180910390f35b6100fb61059c565b6040516101089190610b23565b60405180910390f35b6101196105a5565b6040516101269190610aec565b60405180910390f35b6101376105af565b6040516101449190610b23565b60405180910390f35b6101556105b8565b6040516101629190610b4d565b60405180910390f35b6101736105c2565b6040516101809190610bf8565b60405180910390f35b610191610654565b60405161019e9190610c99565b60405180910390f35b6101c160048036038101906101bc9190610ce0565b610678565b005b6101dd60048036038101906101d89190610aa6565b6107f8565b005b6101e761093e565b6040516101f49190610aec565b60405180910390f35b610205610945565b604051610216959493929190610d32565b60405180910390f35b7fe6924b3e3549cbc71c8da5526215177ed4f734356390d258db06fc5a24837a697f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166391d1485482336040518363ffffffff1660e01b815260040161029b929190610dbf565b602060405180830381865afa1580156102b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102dc9190610e20565b61031f5733816040517f5dcee3bb000000000000000000000000000000000000000000000000000000008152600401610316929190610e4d565b60405180910390fd5b60035482131561036a57816003546040517f6bbbaae1000000000000000000000000000000000000000000000000000000008152600401610361929190610e76565b60405180910390fd5b60008212156103b3578160006040517f8bbdd4120000000000000000000000000000000000000000000000000000000081526004016103aa929190610eda565b60405180910390fd5b600060025490506000819050600084905060006103f97f00000000000000000000000000000000000000000000000000000000000000008461099690919063ffffffff16565b905060006104307f00000000000000000000000000000000000000000000000000000000000000008461099690919063ffffffff16565b905060008282111561044f5782826104489190610f32565b905061045e565b818361045b9190610f32565b90505b6004548111156104a957806004546040517f96f593a60000000000000000000000000000000000000000000000000000000081526004016104a0929190610f66565b60405180910390fd5b60008081819054906101000a900469ffffffffffffffffffff166104cc90610f8f565b91906101000a81548169ffffffffffffffffffff021916908369ffffffffffffffffffff16021790555042600581905550876002819055503373ffffffffffffffffffffffffffffffffffffffff167f3a61c422699f82edf466ce95aa0fbca2b6ea7a729c6d6dd0726a1b57fe43b84060008054906101000a900469ffffffffffffffffffff168a604051610562929190610fc1565b60405180910390a25050505050505050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000601b905090565b6000600454905090565b60006001905090565b6000600354905090565b6060600180546105d190611019565b80601f01602080910402602001604051908101604052809291908181526020018280546105fd90611019565b801561064a5780601f1061061f5761010080835404028352916020019161064a565b820191906000526020600020905b81548152906001019060200180831161062d57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b7fa9b4ac24d6673992e3084dcd16f95649bbd6c84b4a49263b9bbcb9bbb90890987f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166391d1485482336040518363ffffffff1660e01b81526004016106f4929190610dbf565b602060405180830381865afa158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190610e20565b6107785733816040517f5dcee3bb00000000000000000000000000000000000000000000000000000000815260040161076f929190610e4d565b60405180910390fd5b600082036107b2576040517fd3a8179c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f8c04e5a7a35fdcad492801896ae7808f8240beb3b52c46822f56132f91f78566600454836040516107e5929190610f66565b60405180910390a1816004819055505050565b7fa9b4ac24d6673992e3084dcd16f95649bbd6c84b4a49263b9bbcb9bbb90890987f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166391d1485482336040518363ffffffff1660e01b8152600401610874929190610dbf565b602060405180830381865afa158015610891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b59190610e20565b6108f85733816040517f5dcee3bb0000000000000000000000000000000000000000000000000000000081526004016108ef929190610e4d565b60405180910390fd5b7f263b9a37f944c68e18b47c2d29208ad38b48a198984ecfdda7b842a1955800286003548360405161092b929190610e76565b60405180910390a1816003819055505050565b6224ea0081565b60008060008060008060009054906101000a900469ffffffffffffffffffff16945060025493506005549250600554915060008054906101000a900469ffffffffffffffffffff1690509091929394565b6000806002836109a69190611079565b036109bd576b033b2e3c9fd0803ce80000006109bf565b825b90506002826109ce91906110aa565b91505b60008214610a1a576109e38384610a20565b925060006002836109f49190611079565b14610a0657610a038184610a20565b90505b600282610a1391906110aa565b91506109d1565b92915050565b6000816b019d971e4fe8401e740000006000190304831115821517610a4457600080fd5b6b033b2e3c9fd0803ce80000006b019d971e4fe8401e740000008385020104905092915050565b600080fd5b6000819050919050565b610a8381610a70565b8114610a8e57600080fd5b50565b600081359050610aa081610a7a565b92915050565b600060208284031215610abc57610abb610a6b565b5b6000610aca84828501610a91565b91505092915050565b6000819050919050565b610ae681610ad3565b82525050565b6000602082019050610b016000830184610add565b92915050565b600060ff82169050919050565b610b1d81610b07565b82525050565b6000602082019050610b386000830184610b14565b92915050565b610b4781610a70565b82525050565b6000602082019050610b626000830184610b3e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ba2578082015181840152602081019050610b87565b60008484015250505050565b6000601f19601f8301169050919050565b6000610bca82610b68565b610bd48185610b73565b9350610be4818560208601610b84565b610bed81610bae565b840191505092915050565b60006020820190508181036000830152610c128184610bbf565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610c5f610c5a610c5584610c1a565b610c3a565b610c1a565b9050919050565b6000610c7182610c44565b9050919050565b6000610c8382610c66565b9050919050565b610c9381610c78565b82525050565b6000602082019050610cae6000830184610c8a565b92915050565b610cbd81610ad3565b8114610cc857600080fd5b50565b600081359050610cda81610cb4565b92915050565b600060208284031215610cf657610cf5610a6b565b5b6000610d0484828501610ccb565b91505092915050565b600069ffffffffffffffffffff82169050919050565b610d2c81610d0d565b82525050565b600060a082019050610d476000830188610d23565b610d546020830187610b3e565b610d616040830186610add565b610d6e6060830185610add565b610d7b6080830184610d23565b9695505050505050565b6000819050919050565b610d9881610d85565b82525050565b6000610da982610c1a565b9050919050565b610db981610d9e565b82525050565b6000604082019050610dd46000830185610d8f565b610de16020830184610db0565b9392505050565b60008115159050919050565b610dfd81610de8565b8114610e0857600080fd5b50565b600081519050610e1a81610df4565b92915050565b600060208284031215610e3657610e35610a6b565b5b6000610e4484828501610e0b565b91505092915050565b6000604082019050610e626000830185610db0565b610e6f6020830184610d8f565b9392505050565b6000604082019050610e8b6000830185610b3e565b610e986020830184610b3e565b9392505050565b6000819050919050565b6000610ec4610ebf610eba84610e9f565b610c3a565b610a70565b9050919050565b610ed481610ea9565b82525050565b6000604082019050610eef6000830185610b3e565b610efc6020830184610ecb565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f3d82610ad3565b9150610f4883610ad3565b9250828203905081811115610f6057610f5f610f03565b5b92915050565b6000604082019050610f7b6000830185610add565b610f886020830184610add565b9392505050565b6000610f9a82610d0d565b915069ffffffffffffffffffff8203610fb657610fb5610f03565b5b600182019050919050565b6000604082019050610fd66000830185610d23565b610fe36020830184610b3e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061103157607f821691505b60208210810361104457611043610fea565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061108482610ad3565b915061108f83610ad3565b92508261109f5761109e61104a565b5b828206905092915050565b60006110b582610ad3565b91506110c083610ad3565b9250826110d0576110cf61104a565b5b82820490509291505056fea26469706673582212205ca1aea1c64f23481f75d76e69bc61df1bb0c6ab20b15e0d6c20137120973d4e64736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000033b2e3d06f1c662173443750000000000000000000000008b853de26973b6c772b1e29bb127f1a60130a7250000000000000000000000000000000000000000033b2e3cc342e541c00862a0000000000000000000000000000000000000000000295be96e640669720000000000000000000000000000000000000000000000000000000000000003cf9600000000000000000000000000000000000000000000000000000000000000002332592065474f20436f72706f7261746520426f6e642041646a757374656420526174650000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80637284e416116100715780637284e4161461016b578063bc43cbaf14610189578063d1d73635146101a7578063e9bded29146101c3578063f0604829146101df578063feaf968c146101fd576100b4565b80630452ed78146100b9578063124b65b4146100d5578063313ce567146100f357806353b8b8501461011157806354fd4d501461012f57806370da2f671461014d575b600080fd5b6100d360048036038101906100ce9190610aa6565b61021f565b005b6100dd610574565b6040516100ea9190610aec565b60405180910390f35b6100fb61059c565b6040516101089190610b23565b60405180910390f35b6101196105a5565b6040516101269190610aec565b60405180910390f35b6101376105af565b6040516101449190610b23565b60405180910390f35b6101556105b8565b6040516101629190610b4d565b60405180910390f35b6101736105c2565b6040516101809190610bf8565b60405180910390f35b610191610654565b60405161019e9190610c99565b60405180910390f35b6101c160048036038101906101bc9190610ce0565b610678565b005b6101dd60048036038101906101d89190610aa6565b6107f8565b005b6101e761093e565b6040516101f49190610aec565b60405180910390f35b610205610945565b604051610216959493929190610d32565b60405180910390f35b7fe6924b3e3549cbc71c8da5526215177ed4f734356390d258db06fc5a24837a697f0000000000000000000000008b853de26973b6c772b1e29bb127f1a60130a72573ffffffffffffffffffffffffffffffffffffffff166391d1485482336040518363ffffffff1660e01b815260040161029b929190610dbf565b602060405180830381865afa1580156102b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102dc9190610e20565b61031f5733816040517f5dcee3bb000000000000000000000000000000000000000000000000000000008152600401610316929190610e4d565b60405180910390fd5b60035482131561036a57816003546040517f6bbbaae1000000000000000000000000000000000000000000000000000000008152600401610361929190610e76565b60405180910390fd5b60008212156103b3578160006040517f8bbdd4120000000000000000000000000000000000000000000000000000000081526004016103aa929190610eda565b60405180910390fd5b600060025490506000819050600084905060006103f97f0000000000000000000000000000000000000000000000000000000003cf96008461099690919063ffffffff16565b905060006104307f0000000000000000000000000000000000000000000000000000000003cf96008461099690919063ffffffff16565b905060008282111561044f5782826104489190610f32565b905061045e565b818361045b9190610f32565b90505b6004548111156104a957806004546040517f96f593a60000000000000000000000000000000000000000000000000000000081526004016104a0929190610f66565b60405180910390fd5b60008081819054906101000a900469ffffffffffffffffffff166104cc90610f8f565b91906101000a81548169ffffffffffffffffffff021916908369ffffffffffffffffffff16021790555042600581905550876002819055503373ffffffffffffffffffffffffffffffffffffffff167f3a61c422699f82edf466ce95aa0fbca2b6ea7a729c6d6dd0726a1b57fe43b84060008054906101000a900469ffffffffffffffffffff168a604051610562929190610fc1565b60405180910390a25050505050505050565b60007f0000000000000000000000000000000000000000000000000000000003cf9600905090565b6000601b905090565b6000600454905090565b60006001905090565b6000600354905090565b6060600180546105d190611019565b80601f01602080910402602001604051908101604052809291908181526020018280546105fd90611019565b801561064a5780601f1061061f5761010080835404028352916020019161064a565b820191906000526020600020905b81548152906001019060200180831161062d57829003601f168201915b5050505050905090565b7f0000000000000000000000008b853de26973b6c772b1e29bb127f1a60130a72581565b7fa9b4ac24d6673992e3084dcd16f95649bbd6c84b4a49263b9bbcb9bbb90890987f0000000000000000000000008b853de26973b6c772b1e29bb127f1a60130a72573ffffffffffffffffffffffffffffffffffffffff166391d1485482336040518363ffffffff1660e01b81526004016106f4929190610dbf565b602060405180830381865afa158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190610e20565b6107785733816040517f5dcee3bb00000000000000000000000000000000000000000000000000000000815260040161076f929190610e4d565b60405180910390fd5b600082036107b2576040517fd3a8179c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f8c04e5a7a35fdcad492801896ae7808f8240beb3b52c46822f56132f91f78566600454836040516107e5929190610f66565b60405180910390a1816004819055505050565b7fa9b4ac24d6673992e3084dcd16f95649bbd6c84b4a49263b9bbcb9bbb90890987f0000000000000000000000008b853de26973b6c772b1e29bb127f1a60130a72573ffffffffffffffffffffffffffffffffffffffff166391d1485482336040518363ffffffff1660e01b8152600401610874929190610dbf565b602060405180830381865afa158015610891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b59190610e20565b6108f85733816040517f5dcee3bb0000000000000000000000000000000000000000000000000000000081526004016108ef929190610e4d565b60405180910390fd5b7f263b9a37f944c68e18b47c2d29208ad38b48a198984ecfdda7b842a1955800286003548360405161092b929190610e76565b60405180910390a1816003819055505050565b6224ea0081565b60008060008060008060009054906101000a900469ffffffffffffffffffff16945060025493506005549250600554915060008054906101000a900469ffffffffffffffffffff1690509091929394565b6000806002836109a69190611079565b036109bd576b033b2e3c9fd0803ce80000006109bf565b825b90506002826109ce91906110aa565b91505b60008214610a1a576109e38384610a20565b925060006002836109f49190611079565b14610a0657610a038184610a20565b90505b600282610a1391906110aa565b91506109d1565b92915050565b6000816b019d971e4fe8401e740000006000190304831115821517610a4457600080fd5b6b033b2e3c9fd0803ce80000006b019d971e4fe8401e740000008385020104905092915050565b600080fd5b6000819050919050565b610a8381610a70565b8114610a8e57600080fd5b50565b600081359050610aa081610a7a565b92915050565b600060208284031215610abc57610abb610a6b565b5b6000610aca84828501610a91565b91505092915050565b6000819050919050565b610ae681610ad3565b82525050565b6000602082019050610b016000830184610add565b92915050565b600060ff82169050919050565b610b1d81610b07565b82525050565b6000602082019050610b386000830184610b14565b92915050565b610b4781610a70565b82525050565b6000602082019050610b626000830184610b3e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ba2578082015181840152602081019050610b87565b60008484015250505050565b6000601f19601f8301169050919050565b6000610bca82610b68565b610bd48185610b73565b9350610be4818560208601610b84565b610bed81610bae565b840191505092915050565b60006020820190508181036000830152610c128184610bbf565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610c5f610c5a610c5584610c1a565b610c3a565b610c1a565b9050919050565b6000610c7182610c44565b9050919050565b6000610c8382610c66565b9050919050565b610c9381610c78565b82525050565b6000602082019050610cae6000830184610c8a565b92915050565b610cbd81610ad3565b8114610cc857600080fd5b50565b600081359050610cda81610cb4565b92915050565b600060208284031215610cf657610cf5610a6b565b5b6000610d0484828501610ccb565b91505092915050565b600069ffffffffffffffffffff82169050919050565b610d2c81610d0d565b82525050565b600060a082019050610d476000830188610d23565b610d546020830187610b3e565b610d616040830186610add565b610d6e6060830185610add565b610d7b6080830184610d23565b9695505050505050565b6000819050919050565b610d9881610d85565b82525050565b6000610da982610c1a565b9050919050565b610db981610d9e565b82525050565b6000604082019050610dd46000830185610d8f565b610de16020830184610db0565b9392505050565b60008115159050919050565b610dfd81610de8565b8114610e0857600080fd5b50565b600081519050610e1a81610df4565b92915050565b600060208284031215610e3657610e35610a6b565b5b6000610e4484828501610e0b565b91505092915050565b6000604082019050610e626000830185610db0565b610e6f6020830184610d8f565b9392505050565b6000604082019050610e8b6000830185610b3e565b610e986020830184610b3e565b9392505050565b6000819050919050565b6000610ec4610ebf610eba84610e9f565b610c3a565b610a70565b9050919050565b610ed481610ea9565b82525050565b6000604082019050610eef6000830185610b3e565b610efc6020830184610ecb565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f3d82610ad3565b9150610f4883610ad3565b9250828203905081811115610f6057610f5f610f03565b5b92915050565b6000604082019050610f7b6000830185610add565b610f886020830184610add565b9392505050565b6000610f9a82610d0d565b915069ffffffffffffffffffff8203610fb657610fb5610f03565b5b600182019050919050565b6000604082019050610fd66000830185610d23565b610fe36020830184610b3e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061103157607f821691505b60208210810361104457611043610fea565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061108482610ad3565b915061108f83610ad3565b92508261109f5761109e61104a565b5b828206905092915050565b60006110b582610ad3565b91506110c083610ad3565b9250826110d0576110cf61104a565b5b82820490509291505056fea26469706673582212205ca1aea1c64f23481f75d76e69bc61df1bb0c6ab20b15e0d6c20137120973d4e64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000033b2e3d06f1c662173443750000000000000000000000008b853de26973b6c772b1e29bb127f1a60130a7250000000000000000000000000000000000000000033b2e3cc342e541c00862a0000000000000000000000000000000000000000000295be96e640669720000000000000000000000000000000000000000000000000000000000000003cf9600000000000000000000000000000000000000000000000000000000000000002332592065474f20436f72706f7261746520426f6e642041646a757374656420526174650000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : description_ (string): 2Y eGO Corporate Bond Adjusted Rate
Arg [1] : maxAnswer_ (int256): 1000000007431297985657717621
Arg [2] : _accessController (address): 0x8b853de26973b6C772B1e29Bb127F1a60130a725
Arg [3] : answer (int256): 1000000002554215010151195296
Arg [4] : volatilityThreshold (uint256): 50000000000000000000000000
Arg [5] : term (uint256): 63936000
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000033b2e3d06f1c66217344375
Arg [2] : 0000000000000000000000008b853de26973b6c772b1e29bb127f1a60130a725
Arg [3] : 0000000000000000000000000000000000000000033b2e3cc342e541c00862a0
Arg [4] : 000000000000000000000000000000000000000000295be96e64066972000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000003cf9600
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000023
Arg [7] : 32592065474f20436f72706f7261746520426f6e642041646a75737465642052
Arg [8] : 6174650000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.