Contract Overview
Balance:
0 FTM
FTM Value:
$0.00
My Name Tag:
Not Available, login to update
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | ||
---|---|---|---|---|---|---|---|---|
0x759f3ba9c050666a7ad1d76b2a4d89c0eea8e0505e3773f5f9bee1e171efd73e | 0x60c06040 | 19737285 | 472 days 15 hrs ago | 0x55d56e1bb2fc8280a775ccfe9ececcecf1a01562 | IN | Create: ChainlinkedOracleMainAsset | 0 FTM | 0.151529243792 |
[ Download CSV Export ]
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0x759f3ba9c050666a7ad1d76b2a4d89c0eea8e0505e3773f5f9bee1e171efd73e | 19737285 | 472 days 15 hrs ago | 0x55d56e1bb2fc8280a775ccfe9ececcecf1a01562 | Contract Creation | 0 FTM |
[ Download CSV Export ]
Contract Name:
ChainlinkedOracleMainAsset
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity 0.7.6; import "../helpers/SafeMath.sol"; import "../VaultParameters.sol"; import "../interfaces/IAggregator.sol"; import "../interfaces/IOracleUsd.sol"; import "../interfaces/IOracleEth.sol"; import "../interfaces/IToken.sol"; /** * @title ChainlinkedOracleMainAsset * @dev Calculates the USD price of desired tokens **/ contract ChainlinkedOracleMainAsset is IOracleUsd, IOracleEth, Auth { using SafeMath for uint; mapping (address => address) public usdAggregators; mapping (address => address) public ethAggregators; uint public constant Q112 = 2 ** 112; uint public constant USD_TYPE = 0; uint public constant ETH_TYPE = 1; address public immutable WETH; event NewAggregator(address indexed asset, address indexed aggregator, uint aggType); constructor( address[] memory tokenAddresses1, address[] memory _usdAggregators, address[] memory tokenAddresses2, address[] memory _ethAggregators, address weth, address vaultParameters ) Auth(vaultParameters) { require(tokenAddresses1.length == _usdAggregators.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH"); require(tokenAddresses2.length == _ethAggregators.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH"); require(weth != address(0) && vaultParameters != address(0), "Unit Protocol: ZERO_ADDRESS"); WETH = weth; for (uint i = 0; i < tokenAddresses1.length; i++) { usdAggregators[tokenAddresses1[i]] = _usdAggregators[i]; emit NewAggregator(tokenAddresses1[i], _usdAggregators[i], USD_TYPE); } for (uint i = 0; i < tokenAddresses2.length; i++) { ethAggregators[tokenAddresses2[i]] = _ethAggregators[i]; emit NewAggregator(tokenAddresses2[i], _ethAggregators[i], ETH_TYPE); } } function setAggregators( address[] calldata tokenAddresses1, address[] calldata _usdAggregators, address[] calldata tokenAddresses2, address[] calldata _ethAggregators ) external onlyManager { require(tokenAddresses1.length == _usdAggregators.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH"); require(tokenAddresses2.length == _ethAggregators.length, "Unit Protocol: ARGUMENTS_LENGTH_MISMATCH"); for (uint i = 0; i < tokenAddresses1.length; i++) { usdAggregators[tokenAddresses1[i]] = _usdAggregators[i]; emit NewAggregator(tokenAddresses1[i], _usdAggregators[i], USD_TYPE); } for (uint i = 0; i < tokenAddresses2.length; i++) { ethAggregators[tokenAddresses2[i]] = _ethAggregators[i]; emit NewAggregator(tokenAddresses2[i], _ethAggregators[i], ETH_TYPE); } } /** * @notice {asset}/USD or {asset}/ETH pair must be registered at Chainlink * @param asset The token address * @param amount Amount of tokens * @return Q112-encoded price of asset amount in USD **/ function assetToUsd(address asset, uint amount) public override view returns (uint) { if (amount == 0) { return 0; } if (usdAggregators[asset] != address(0)) { return _assetToUsd(asset, amount); } return ethToUsd(assetToEth(asset, amount)); } function _assetToUsd(address asset, uint amount) internal view returns (uint) { IAggregator agg = IAggregator(usdAggregators[asset]); (, int256 answer, , uint256 updatedAt, ) = agg.latestRoundData(); require(updatedAt > block.timestamp - 24 hours, "Unit Protocol: STALE_CHAINLINK_PRICE"); require(answer >= 0, "Unit Protocol: NEGATIVE_CHAINLINK_PRICE"); int decimals = 18 - int(IToken(asset).decimals()) - int(agg.decimals()); if (decimals < 0) { return amount.mul(uint(answer)).mul(Q112).div(10 ** uint(-decimals)); } else { return amount.mul(uint(answer)).mul(Q112).mul(10 ** uint(decimals)); } } /** * @notice {asset}/ETH pair must be registered at Chainlink * @param asset The token address * @param amount Amount of tokens * @return Q112-encoded price of asset amount in ETH **/ function assetToEth(address asset, uint amount) public view override returns (uint) { if (amount == 0) { return 0; } if (asset == WETH) { return amount.mul(Q112); } IAggregator agg = IAggregator(ethAggregators[asset]); if (address(agg) == address (0)) { // check for usd aggregator require(usdAggregators[asset] != address (0), "Unit Protocol: AGGREGATOR_DOES_NOT_EXIST"); return usdToEth(_assetToUsd(asset, amount)); } (, int256 answer, , uint256 updatedAt, ) = agg.latestRoundData(); require(updatedAt > block.timestamp - 24 hours, "Unit Protocol: STALE_CHAINLINK_PRICE"); require(answer >= 0, "Unit Protocol: NEGATIVE_CHAINLINK_PRICE"); int decimals = 18 - int(IToken(asset).decimals()) - int(agg.decimals()); if (decimals < 0) { return amount.mul(uint(answer)).mul(Q112).div(10 ** uint(-decimals)); } else { return amount.mul(uint(answer)).mul(Q112).mul(10 ** uint(decimals)); } } /** * @notice ETH/USD price feed from Chainlink, see for more info: https://feeds.chain.link/eth-usd * returns The price of given amount of Ether in USD (0 decimals) **/ function ethToUsd(uint ethAmount) public override view returns (uint) { IAggregator agg = IAggregator(usdAggregators[WETH]); (, int256 answer, , uint256 updatedAt, ) = agg.latestRoundData(); require(updatedAt > block.timestamp - 6 hours, "Unit Protocol: STALE_CHAINLINK_PRICE"); return ethAmount.mul(uint(answer)).div(10 ** agg.decimals()); } function usdToEth(uint _usdAmount) public override view returns (uint) { IAggregator agg = IAggregator(usdAggregators[WETH]); (, int256 answer, , uint256 updatedAt, ) = agg.latestRoundData(); require(updatedAt > block.timestamp - 6 hours, "Unit Protocol: STALE_CHAINLINK_PRICE"); return _usdAmount.mul(10 ** agg.decimals()).div(uint(answer)); } }
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity 0.7.6; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath: division by zero"); return a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } }
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity 0.7.6; /** * @title Auth * @dev Manages USDP's system access **/ contract Auth { // address of the the contract with vault parameters VaultParameters public immutable vaultParameters; constructor(address _parameters) { vaultParameters = VaultParameters(_parameters); } // ensures tx's sender is a manager modifier onlyManager() { require(vaultParameters.isManager(msg.sender), "Unit Protocol: AUTH_FAILED"); _; } // ensures tx's sender is able to modify the Vault modifier hasVaultAccess() { require(vaultParameters.canModifyVault(msg.sender), "Unit Protocol: AUTH_FAILED"); _; } // ensures tx's sender is the Vault modifier onlyVault() { require(msg.sender == vaultParameters.vault(), "Unit Protocol: AUTH_FAILED"); _; } } /** * @title VaultParameters **/ contract VaultParameters is Auth { // map token to stability fee percentage; 3 decimals mapping(address => uint) public stabilityFee; // map token to liquidation fee percentage, 0 decimals mapping(address => uint) public liquidationFee; // map token to USDP mint limit mapping(address => uint) public tokenDebtLimit; // permissions to modify the Vault mapping(address => bool) public canModifyVault; // managers mapping(address => bool) public isManager; // enabled oracle types mapping(uint => mapping (address => bool)) public isOracleTypeEnabled; // address of the Vault address payable public immutable vault; // The foundation address address public foundation; /** * The address for an Ethereum contract is deterministically computed from the address of its creator (sender) * and how many transactions the creator has sent (nonce). The sender and nonce are RLP encoded and then * hashed with Keccak-256. * Therefore, the Vault address can be pre-computed and passed as an argument before deployment. **/ constructor(address payable _vault, address _foundation) Auth(address(this)) { require(_vault != address(0), "Unit Protocol: ZERO_ADDRESS"); require(_foundation != address(0), "Unit Protocol: ZERO_ADDRESS"); isManager[msg.sender] = true; vault = _vault; foundation = _foundation; } /** * @notice Only manager is able to call this function * @dev Grants and revokes manager's status of any address * @param who The target address * @param permit The permission flag **/ function setManager(address who, bool permit) external onlyManager { isManager[who] = permit; } /** * @notice Only manager is able to call this function * @dev Sets the foundation address * @param newFoundation The new foundation address **/ function setFoundation(address newFoundation) external onlyManager { require(newFoundation != address(0), "Unit Protocol: ZERO_ADDRESS"); foundation = newFoundation; } /** * @notice Only manager is able to call this function * @dev Sets ability to use token as the main collateral * @param asset The address of the main collateral token * @param stabilityFeeValue The percentage of the year stability fee (3 decimals) * @param liquidationFeeValue The liquidation fee percentage (0 decimals) * @param usdpLimit The USDP token issue limit * @param oracles The enables oracle types **/ function setCollateral( address asset, uint stabilityFeeValue, uint liquidationFeeValue, uint usdpLimit, uint[] calldata oracles ) external onlyManager { setStabilityFee(asset, stabilityFeeValue); setLiquidationFee(asset, liquidationFeeValue); setTokenDebtLimit(asset, usdpLimit); for (uint i=0; i < oracles.length; i++) { setOracleType(oracles[i], asset, true); } } /** * @notice Only manager is able to call this function * @dev Sets a permission for an address to modify the Vault * @param who The target address * @param permit The permission flag **/ function setVaultAccess(address who, bool permit) external onlyManager { canModifyVault[who] = permit; } /** * @notice Only manager is able to call this function * @dev Sets the percentage of the year stability fee for a particular collateral * @param asset The address of the main collateral token * @param newValue The stability fee percentage (3 decimals) **/ function setStabilityFee(address asset, uint newValue) public onlyManager { stabilityFee[asset] = newValue; } /** * @notice Only manager is able to call this function * @dev Sets the percentage of the liquidation fee for a particular collateral * @param asset The address of the main collateral token * @param newValue The liquidation fee percentage (0 decimals) **/ function setLiquidationFee(address asset, uint newValue) public onlyManager { require(newValue <= 100, "Unit Protocol: VALUE_OUT_OF_RANGE"); liquidationFee[asset] = newValue; } /** * @notice Only manager is able to call this function * @dev Enables/disables oracle types * @param _type The type of the oracle * @param asset The address of the main collateral token * @param enabled The control flag **/ function setOracleType(uint _type, address asset, bool enabled) public onlyManager { isOracleTypeEnabled[_type][asset] = enabled; } /** * @notice Only manager is able to call this function * @dev Sets USDP limit for a specific collateral * @param asset The address of the main collateral token * @param limit The limit number **/ function setTokenDebtLimit(address asset, uint limit) public onlyManager { tokenDebtLimit[asset] = limit; } }
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity 0.7.6; /** **/ interface IAggregator { function latestAnswer() external view returns (int256); function latestTimestamp() external view returns (uint256); function latestRound() external view returns (uint256); function getAnswer(uint256 roundId) external view returns (int256); function getTimestamp(uint256 roundId) external view returns (uint256); function decimals() external view returns (uint256); function latestRoundData() external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 timestamp); event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt); }
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity ^0.7.6; interface IOracleUsd { // returns Q112-encoded value // returned value 10**18 * 2**112 is $1 function assetToUsd(address asset, uint amount) external view returns (uint); }
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity ^0.7.6; interface IOracleEth { // returns Q112-encoded value // returned value 10**18 * 2**112 is 1 Ether function assetToEth(address asset, uint amount) external view returns (uint); // returns the value "as is" function ethToUsd(uint amount) external view returns (uint); // returns the value "as is" function usdToEth(uint amount) external view returns (uint); }
// SPDX-License-Identifier: bsl-1.1 /* Copyright 2020 Unit Protocol: Artem Zakharov ([email protected]). */ pragma solidity ^0.7.6; interface IToken { function decimals() external view returns (uint8); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address[]","name":"tokenAddresses1","type":"address[]"},{"internalType":"address[]","name":"_usdAggregators","type":"address[]"},{"internalType":"address[]","name":"tokenAddresses2","type":"address[]"},{"internalType":"address[]","name":"_ethAggregators","type":"address[]"},{"internalType":"address","name":"weth","type":"address"},{"internalType":"address","name":"vaultParameters","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"address","name":"aggregator","type":"address"},{"indexed":false,"internalType":"uint256","name":"aggType","type":"uint256"}],"name":"NewAggregator","type":"event"},{"inputs":[],"name":"ETH_TYPE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Q112","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USD_TYPE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"assetToEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"assetToUsd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ethAggregators","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"ethToUsd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokenAddresses1","type":"address[]"},{"internalType":"address[]","name":"_usdAggregators","type":"address[]"},{"internalType":"address[]","name":"tokenAddresses2","type":"address[]"},{"internalType":"address[]","name":"_ethAggregators","type":"address[]"}],"name":"setAggregators","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"usdAggregators","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_usdAmount","type":"uint256"}],"name":"usdToEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vaultParameters","outputs":[{"internalType":"contract VaultParameters","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c06040523480156200001157600080fd5b506040516200157238038062001572833981810160405260c08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82518660208202830111640100000000821117156200008c57600080fd5b82525081516020918201928201910280838360005b83811015620000bb578181015183820152602001620000a1565b5050505090500160405260200180516040519392919084640100000000821115620000e557600080fd5b908301906020820185811115620000fb57600080fd5b82518660208202830111640100000000821117156200011957600080fd5b82525081516020918201928201910280838360005b83811015620001485781810151838201526020016200012e565b50505050905001604052602001805160405193929190846401000000008211156200017257600080fd5b9083019060208201858111156200018857600080fd5b8251866020820283011164010000000082111715620001a657600080fd5b82525081516020918201928201910280838360005b83811015620001d5578181015183820152602001620001bb565b5050505090500160405260200180516040519392919084640100000000821115620001ff57600080fd5b9083019060208201858111156200021557600080fd5b82518660208202830111640100000000821117156200023357600080fd5b82525081516020918201928201910280838360005b838110156200026257818101518382015260200162000248565b5050505091909101604090815260208301519201516001600160601b0319606082901b1660805287518951939550909350919091149050620002d65760405162461bcd60e51b81526004018080602001828103825260288152602001806200152a6028913960400191505060405180910390fd5b8251845114620003185760405162461bcd60e51b81526004018080602001828103825260288152602001806200152a6028913960400191505060405180910390fd5b6001600160a01b038216158015906200033957506001600160a01b03811615155b6200038b576040805162461bcd60e51b815260206004820152601b60248201527f556e69742050726f746f636f6c3a205a45524f5f414444524553530000000000604482015290519081900360640190fd5b6001600160601b0319606083901b1660a05260005b86518110156200048757858181518110620003b757fe5b6020026020010151600080898481518110620003cf57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508581815181106200042857fe5b60200260200101516001600160a01b03168782815181106200044657fe5b60200260200101516001600160a01b03166000805160206200155283398151915260006040518082815260200191505060405180910390a3600101620003a0565b5060005b84518110156200057357838181518110620004a257fe5b602002602001015160016000878481518110620004bb57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508381815181106200051457fe5b60200260200101516001600160a01b03168582815181106200053257fe5b60200260200101516001600160a01b03166000805160206200155283398151915260016040518082815260200191505060405180910390a36001016200048b565b5050505050505060805160601c60a05160601c610f72620005b86000398061075f5280610a6b5280610c315280610c5d5250806103cd5280610c0d5250610f726000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063946d148011610071578063946d14801461029b578063a534acb8146102b8578063a5671e25146102fa578063aca345ee14610320578063ad5c464814610328578063bcecf66714610330576100b4565b80630bb8b23d146100b957806310e55698146100d35780631da720de146100ff5780632480aa421461025f5780633bf7a83e1461026757806363c1a38b1461026f575b600080fd5b6100c161034d565b60408051918252519081900360200190f35b6100c1600480360360408110156100e957600080fd5b506001600160a01b038135169060200135610352565b61025d6004803603608081101561011557600080fd5b810190602081018135600160201b81111561012f57600080fd5b82018360208201111561014157600080fd5b803590602001918460208302840111600160201b8311171561016257600080fd5b919390929091602081019035600160201b81111561017f57600080fd5b82018360208201111561019157600080fd5b803590602001918460208302840111600160201b831117156101b257600080fd5b919390929091602081019035600160201b8111156101cf57600080fd5b8201836020820111156101e157600080fd5b803590602001918460208302840111600160201b8311171561020257600080fd5b919390929091602081019035600160201b81111561021f57600080fd5b82018360208201111561023157600080fd5b803590602001918460208302840111600160201b8311171561025257600080fd5b5090925090506103ad565b005b6100c1610741565b6100c1610746565b6100c16004803603604081101561028557600080fd5b506001600160a01b03813516906020013561074e565b6100c1600480360360208110156102b157600080fd5b5035610a61565b6102de600480360360208110156102ce57600080fd5b50356001600160a01b0316610bd5565b604080516001600160a01b039092168252519081900360200190f35b6102de6004803603602081101561031057600080fd5b50356001600160a01b0316610bf0565b6102de610c0b565b6102de610c2f565b6100c16004803603602081101561034657600080fd5b5035610c53565b600081565b600081610361575060006103a7565b6001600160a01b0383811660009081526020819052604090205416156103925761038b8383610dbf565b90506103a7565b6103a461039f848461074e565b610a61565b90505b92915050565b6040805163f3ae241560e01b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f3ae2415916024808301926020929190829003018186803b15801561041357600080fd5b505afa158015610427573d6000803e3d6000fd5b505050506040513d602081101561043d57600080fd5b5051610490576040805162461bcd60e51b815260206004820152601a60248201527f556e69742050726f746f636f6c3a20415554485f4641494c4544000000000000604482015290519081900360640190fd5b8685146104ce5760405162461bcd60e51b8152600401808060200182810382526028815260200180610ea26028913960400191505060405180910390fd5b82811461050c5760405162461bcd60e51b8152600401808060200182810382526028815260200180610ea26028913960400191505060405180910390fd5b60005b878110156106205786868281811061052357fe5b905060200201356001600160a01b03166000808b8b8581811061054257fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508686828181106105a257fe5b905060200201356001600160a01b03166001600160a01b03168989838181106105c757fe5b905060200201356001600160a01b03166001600160a01b03167f352cae1ae41b5029904283957efaa3709f95ff033b624ddc6f442d40fc94582c60006040518082815260200191505060405180910390a360010161050f565b5060005b838110156107365782828281811061063857fe5b905060200201356001600160a01b03166001600087878581811061065857fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508282828181106106b857fe5b905060200201356001600160a01b03166001600160a01b03168585838181106106dd57fe5b905060200201356001600160a01b03166001600160a01b03167f352cae1ae41b5029904283957efaa3709f95ff033b624ddc6f442d40fc94582c60016040518082815260200191505060405180910390a3600101610624565b505050505050505050565b600181565b600160701b81565b60008161075d575060006103a7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614156107a55761038b82600160701b610e17565b6001600160a01b038084166000908152600160205260409020541680610835576001600160a01b038481166000908152602081905260409020541661081b5760405162461bcd60e51b8152600401808060200182810382526028815260200180610eca6028913960400191505060405180910390fd5b61082d6108288585610dbf565b610c53565b9150506103a7565b600080826001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561087157600080fd5b505afa158015610885573d6000803e3d6000fd5b505050506040513d60a081101561089b57600080fd5b50602081015160609091015190925090506201517f19420181116108f05760405162461bcd60e51b8152600401808060200182810382526024815260200180610ef26024913960400191505060405180910390fd5b60008212156109305760405162461bcd60e51b8152600401808060200182810382526027815260200180610f166027913960400191505060405180910390fd5b6000836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561096b57600080fd5b505afa15801561097f573d6000803e3d6000fd5b505050506040513d602081101561099557600080fd5b50516040805163313ce56760e01b815290516001600160a01b038a169163313ce567916004808301926020929190829003018186803b1580156109d757600080fd5b505afa1580156109eb573d6000803e3d6000fd5b505050506040513d6020811015610a0157600080fd5b505160ff166012030390506000811215610a4957610a3e6000829003600a0a610a38600160701b610a328a88610e17565b90610e17565b90610e3c565b9450505050506103a7565b610a3e600a82900a610a32600160701b818a88610e17565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600090815260208190526040808220548151633fabe5a360e21b815291519293169183918291849163feaf968c9160048083019260a0929190829003018186803b158015610ad957600080fd5b505afa158015610aed573d6000803e3d6000fd5b505050506040513d60a0811015610b0357600080fd5b506020810151606090910151909250905061545f1942018111610b575760405162461bcd60e51b8152600401808060200182810382526024815260200180610ef26024913960400191505060405180910390fd5b610bcc836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9357600080fd5b505afa158015610ba7573d6000803e3d6000fd5b505050506040513d6020811015610bbd57600080fd5b5051600a0a610a388785610e17565b95945050505050565b6000602081905290815260409020546001600160a01b031681565b6001602052600090815260409020546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600090815260208190526040808220548151633fabe5a360e21b815291519293169183918291849163feaf968c9160048083019260a0929190829003018186803b158015610ccb57600080fd5b505afa158015610cdf573d6000803e3d6000fd5b505050506040513d60a0811015610cf557600080fd5b506020810151606090910151909250905061545f1942018111610d495760405162461bcd60e51b8152600401808060200182810382526024815260200180610ef26024913960400191505060405180910390fd5b610bcc82610a38856001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8957600080fd5b505afa158015610d9d573d6000803e3d6000fd5b505050506040513d6020811015610db357600080fd5b50518890600a0a610e17565b6001600160a01b03808316600090815260208190526040808220548151633fabe5a360e21b815291519293169183918291849163feaf968c9160048083019260a0929190829003018186803b15801561087157600080fd5b600082610e26575060006103a7565b5081810281838281610e3457fe5b04146103a757fe5b600081610e90576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610e9957fe5b04939250505056fe556e69742050726f746f636f6c3a20415247554d454e54535f4c454e4754485f4d49534d41544348556e69742050726f746f636f6c3a2041474752454741544f525f444f45535f4e4f545f4558495354556e69742050726f746f636f6c3a205354414c455f434841494e4c494e4b5f5052494345556e69742050726f746f636f6c3a204e454741544956455f434841494e4c494e4b5f5052494345a2646970667358221220636d9b5050d156d686045811914df34d25c2bfba719282e3551ba6fb5b16386264736f6c63430007060033556e69742050726f746f636f6c3a20415247554d454e54535f4c454e4754485f4d49534d41544348352cae1ae41b5029904283957efaa3709f95ff033b624ddc6f442d40fc94582c00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012000000000000000000000000021be370d5312f44cb42ce377bc9b8a0cef1a4c83000000000000000000000000a8f0b5758041158cf0375b7adc8ac175ff031b6c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012000000000000000000000000021be370d5312f44cb42ce377bc9b8a0cef1a4c83000000000000000000000000a8f0b5758041158cf0375b7adc8ac175ff031b6c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [4] : 00000000000000000000000021be370d5312f44cb42ce377bc9b8a0cef1a4c83
Arg [5] : 000000000000000000000000a8f0b5758041158cf0375b7adc8ac175ff031b6c
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000000
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Validator ID :
0 FTM
Amount Staked
0
Amount Delegated
0
Staking Total
0
Staking Start Epoch
0
Staking Start Time
0
Proof of Importance
0
Origination Score
0
Validation Score
0
Active
0
Online
0
Downtime
0 s
Address | Amount | claimed Rewards | Created On Epoch | Created On |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.