ETH Price: $2,883.60 (+7.17%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Submit Prophecy125809862021-06-06 12:38:291250 days ago1622983109IN
0xd6d88F2E...47b93dF58
0 ETH0.0003132710
Submit Prophecy101855632020-06-02 9:26:351619 days ago1591089995IN
0xd6d88F2E...47b93dF58
0 ETH0.0003130310
Submit Prophecy101309792020-05-24 21:22:411627 days ago1590355361IN
0xd6d88F2E...47b93dF58
0 ETH0.0003130310
Submit Prophecy101308862020-05-24 20:59:281627 days ago1590353968IN
0xd6d88F2E...47b93dF58
0 ETH0.0003131510
Submit Prophecy101308812020-05-24 20:58:351627 days ago1590353915IN
0xd6d88F2E...47b93dF58
0 ETH0.0003132710
Submit Prophecy101308632020-05-24 20:53:561627 days ago1590353636IN
0xd6d88F2E...47b93dF58
0 ETH0.0003130310
Submit Prophecy101307492020-05-24 20:31:311627 days ago1590352291IN
0xd6d88F2E...47b93dF58
0 ETH0.0003135110
Submit Prophecy101245932020-05-23 21:38:301628 days ago1590269910IN
0xd6d88F2E...47b93dF58
0 ETH0.0003130310
Submit Prophecy101243982020-05-23 20:52:391628 days ago1590267159IN
0xd6d88F2E...47b93dF58
0 ETH0.0003130310
Submit Prophecy101238092020-05-23 18:48:411629 days ago1590259721IN
0xd6d88F2E...47b93dF58
0 ETH0.0003131510
Submit Prophecy101237502020-05-23 18:36:051629 days ago1590258965IN
0xd6d88F2E...47b93dF58
0 ETH0.0003131510
Submit Prophecy101229432020-05-23 15:29:291629 days ago1590247769IN
0xd6d88F2E...47b93dF58
0 ETH0.0003131510
Submit Prophecy101228802020-05-23 15:16:521629 days ago1590247012IN
0xd6d88F2E...47b93dF58
0 ETH0.0003130310
Submit Prophecy101208842020-05-23 7:54:461629 days ago1590220486IN
0xd6d88F2E...47b93dF58
0 ETH0.0003127910
Submit Prophecy101208702020-05-23 7:52:241629 days ago1590220344IN
0xd6d88F2E...47b93dF58
0 ETH0.0003130310
Submit Prophecy101207572020-05-23 7:24:561629 days ago1590218696IN
0xd6d88F2E...47b93dF58
0 ETH0.0003131510
Submit Prophecy101207452020-05-23 7:23:101629 days ago1590218590IN
0xd6d88F2E...47b93dF58
0 ETH0.0003132710
Submit Prophecy101207392020-05-23 7:21:491629 days ago1590218509IN
0xd6d88F2E...47b93dF58
0 ETH0.0003137510
Submit Prophecy101207152020-05-23 7:16:191629 days ago1590218179IN
0xd6d88F2E...47b93dF58
0 ETH0.0003135110
Submit Prophecy101206892020-05-23 7:11:231629 days ago1590217883IN
0xd6d88F2E...47b93dF58
0 ETH0.0003132710
Submit Prophecy101206182020-05-23 6:56:011629 days ago1590216961IN
0xd6d88F2E...47b93dF58
0 ETH0.0003130310
Submit Prophecy100992012020-05-19 22:56:491632 days ago1589929009IN
0xd6d88F2E...47b93dF58
0 ETH0.0003131510
Submit Prophecy100862992020-05-17 22:32:491634 days ago1589754769IN
0xd6d88F2E...47b93dF58
0 ETH0.0003130310
Submit Prophecy100862682020-05-17 22:25:291634 days ago1589754329IN
0xd6d88F2E...47b93dF58
0 ETH0.0003132710
Submit Prophecy100856612020-05-17 20:08:051634 days ago1589746085IN
0xd6d88F2E...47b93dF58
0 ETH0.0003132710
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AaveOracle

Compiler Version
v0.5.6+commit.b259423e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-03-23
*/

// File: contracts/interfaces/IAaveOracle.sol

pragma solidity ^0.5.0;

interface IAaveOracle {
    // TODO rename back to getOracleProphecy
    function getAssetPrice(address _asset) external view returns (uint256);
    function prophecies(address _asset) external view returns (uint64, uint96, uint96);
    function submitProphecy(address _asset, uint96 _sybilProphecy, uint96 _oracleProphecy) external;
    function isSybilWhitelisted(address _sybil) external view returns (bool);
}

// File: contracts/AaveOracle.sol

pragma solidity ^0.5.0;


contract AaveOracle is IAaveOracle {
    struct TimestampedProphecy {
        uint64 timestamp;
        uint96 sybilProphecy;
        uint96 oracleProphecy;
    }

    event ProphecySubmitted(
        address indexed _sybil,
        address indexed _asset,
        uint96 _sybilProphecy,
        uint96 _oracleProphecy
    );

    event SybilWhitelisted(address sybil);

    // Asset => price prophecy
    mapping(address => TimestampedProphecy) public prophecies;

    // Whitelisted sybils allowed to submit prices
    mapping(address => bool) private sybils;

    modifier onlySybil {
        require(isSybilWhitelisted(msg.sender), "INVALID_SYBIL");
        _;
    }

    constructor(address[] memory _sybils) public {
        internalWhitelistSybils(_sybils);
    }

    /// @notice Internal function to whitelist a list of sybils
    /// @param _sybils The addresses of the sybils
    function internalWhitelistSybils(address[] memory _sybils) internal {
        for (uint256 i = 0; i < _sybils.length; i++) {
            sybils[_sybils[i]] = true;
            emit SybilWhitelisted(_sybils[i]);
        }
    }

    /// @notice Submits a new prophecy for an asset
    /// - Only callable by whitelisted sybils
    /// @param _asset The asset address
    /// @param _sybilProphecy The new individual prophecy of the sybil
    /// @param _oracleProphecy The offchain calculated prophecy from all the currently valid ones
    function submitProphecy(address _asset, uint96 _sybilProphecy, uint96 _oracleProphecy) external onlySybil {
        prophecies[_asset] = TimestampedProphecy(uint64(block.timestamp), _sybilProphecy, _oracleProphecy);
        emit ProphecySubmitted(msg.sender, _asset, _sybilProphecy, _oracleProphecy);
    }

    /// @notice Gets the current prophecy for an asset
    /// @param _asset The asset address
    function getAssetPrice(address _asset) external view returns (uint256) {
        return uint256(prophecies[_asset].oracleProphecy);
    }

    /// @notice Gets the data of the current prophecy for an asset
    /// @param _asset The asset address
    function getProphecy(address _asset) external view returns (uint64, uint96, uint96) {
        TimestampedProphecy memory _prophecy = prophecies[_asset];
        return (_prophecy.timestamp, _prophecy.sybilProphecy, _prophecy.oracleProphecy);
    }

    /// @notice Return a bool with the whitelisting state of a sybil
    /// @param _sybil The address of the sybil
    function isSybilWhitelisted(address _sybil) public view returns (bool) {
        return sybils[_sybil];
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_sybil","type":"address"}],"name":"isSybilWhitelisted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"prophecies","outputs":[{"name":"timestamp","type":"uint64"},{"name":"sybilProphecy","type":"uint96"},{"name":"oracleProphecy","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_asset","type":"address"},{"name":"_sybilProphecy","type":"uint96"},{"name":"_oracleProphecy","type":"uint96"}],"name":"submitProphecy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_asset","type":"address"}],"name":"getAssetPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_asset","type":"address"}],"name":"getProphecy","outputs":[{"name":"","type":"uint64"},{"name":"","type":"uint96"},{"name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_sybils","type":"address[]"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_sybil","type":"address"},{"indexed":true,"name":"_asset","type":"address"},{"indexed":false,"name":"_sybilProphecy","type":"uint96"},{"indexed":false,"name":"_oracleProphecy","type":"uint96"}],"name":"ProphecySubmitted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sybil","type":"address"}],"name":"SybilWhitelisted","type":"event"}]

608060405234801561001057600080fd5b506040516105733803806105738339810180604052602081101561003357600080fd5b81019080805164010000000081111561004b57600080fd5b8201602081018481111561005e57600080fd5b815185602082028301116401000000008211171561007b57600080fd5b50509291905050506100928161009860201b60201c565b5061015c565b60005b81518110156101585760018060008484815181106100b557fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507fff9a774113b3a0de9ac85c77d65f2de5e46046024c441cad8745ffd1c6932bfd82828151811061012157fe5b602002602001015160405180826001600160a01b03166001600160a01b0316815260200191505060405180910390a160010161009b565b5050565b6104088061016b6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806330d454f01461005c57806362ac6fb714610096578063766aed89146100ef578063b3596f071461012e578063ca64bc5a14610166575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b031661018c565b604080519115158252519081900360200190f35b6100bc600480360360208110156100ac57600080fd5b50356001600160a01b03166101aa565b6040805167ffffffffffffffff90941684526001600160601b039283166020850152911682820152519081900360600190f35b61012c6004803603606081101561010557600080fd5b506001600160a01b03813516906001600160601b03602082013581169160400135166101e2565b005b6101546004803603602081101561014457600080fd5b50356001600160a01b031661031f565b60408051918252519081900360200190f35b6100bc6004803603602081101561017c57600080fd5b50356001600160a01b031661034a565b6001600160a01b031660009081526001602052604090205460ff1690565b60006020819052908152604090205467ffffffffffffffff8116906001600160601b03600160401b8204811691600160a01b90041683565b6101eb3361018c565b61023f5760408051600160e51b62461bcd02815260206004820152600d60248201527f494e56414c49445f535942494c00000000000000000000000000000000000000604482015290519081900360640190fd5b6040805160608101825267ffffffffffffffff42811682526001600160601b0380861660208085018281528784168688018181526001600160a01b03808d1660008181528087528b902099518a54955193518916600160a01b0293909816600160401b0273ffffffffffffffffffffffff0000000000000000199890991667ffffffffffffffff19909516949094179690961696909617909416949094179094558451908152928301528251909233927ff21bcf26163cffc0eeff8a7639319158a06e71681e8504fde895c9822f4cc6bc929081900390910190a3505050565b6001600160a01b0316600090815260208190526040902054600160a01b90046001600160601b031690565b60008060006103576103bc565b505050506001600160a01b0316600090815260208181526040918290208251606081018452905467ffffffffffffffff81168083526001600160601b03600160401b83048116948401859052600160a01b909204909116919093018190529192909190565b60408051606081018252600080825260208201819052918101919091529056fea165627a7a72305820e354a63ae2b9d8349aefa4f889af10ac71dd103925c0d2759d5e4af5cb0191fe002900000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000ea7a98133424041461c0784affd708ef7ddc77d90000000000000000000000000f45333725de4059561a2fe7b201ed16f9a7a1da

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100575760003560e01c806330d454f01461005c57806362ac6fb714610096578063766aed89146100ef578063b3596f071461012e578063ca64bc5a14610166575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b031661018c565b604080519115158252519081900360200190f35b6100bc600480360360208110156100ac57600080fd5b50356001600160a01b03166101aa565b6040805167ffffffffffffffff90941684526001600160601b039283166020850152911682820152519081900360600190f35b61012c6004803603606081101561010557600080fd5b506001600160a01b03813516906001600160601b03602082013581169160400135166101e2565b005b6101546004803603602081101561014457600080fd5b50356001600160a01b031661031f565b60408051918252519081900360200190f35b6100bc6004803603602081101561017c57600080fd5b50356001600160a01b031661034a565b6001600160a01b031660009081526001602052604090205460ff1690565b60006020819052908152604090205467ffffffffffffffff8116906001600160601b03600160401b8204811691600160a01b90041683565b6101eb3361018c565b61023f5760408051600160e51b62461bcd02815260206004820152600d60248201527f494e56414c49445f535942494c00000000000000000000000000000000000000604482015290519081900360640190fd5b6040805160608101825267ffffffffffffffff42811682526001600160601b0380861660208085018281528784168688018181526001600160a01b03808d1660008181528087528b902099518a54955193518916600160a01b0293909816600160401b0273ffffffffffffffffffffffff0000000000000000199890991667ffffffffffffffff19909516949094179690961696909617909416949094179094558451908152928301528251909233927ff21bcf26163cffc0eeff8a7639319158a06e71681e8504fde895c9822f4cc6bc929081900390910190a3505050565b6001600160a01b0316600090815260208190526040902054600160a01b90046001600160601b031690565b60008060006103576103bc565b505050506001600160a01b0316600090815260208181526040918290208251606081018452905467ffffffffffffffff81168083526001600160601b03600160401b83048116948401859052600160a01b909204909116919093018190529192909190565b60408051606081018252600080825260208201819052918101919091529056fea165627a7a72305820e354a63ae2b9d8349aefa4f889af10ac71dd103925c0d2759d5e4af5cb0191fe0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000ea7a98133424041461c0784affd708ef7ddc77d90000000000000000000000000f45333725de4059561a2fe7b201ed16f9a7a1da

-----Decoded View---------------
Arg [0] : _sybils (address[]): 0xea7A98133424041461c0784afFD708Ef7dDc77D9,0x0F45333725dE4059561A2Fe7b201ed16f9A7a1da

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [2] : 000000000000000000000000ea7a98133424041461c0784affd708ef7ddc77d9
Arg [3] : 0000000000000000000000000f45333725de4059561a2fe7b201ed16f9a7a1da


Deployed Bytecode Sourcemap

565:2637:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;565:2637:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3086:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3086:111:0;-1:-1:-1;;;;;3086:111:0;;:::i;:::-;;;;;;;;;;;;;;;;;;988:57;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;988:57:0;-1:-1:-1;;;;;988:57:0;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;988:57:0;;;;;;;;;;;;;;;;;;;;;;2040:309;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2040:309:0;;;;-1:-1:-1;;;;;2040:309:0;;;;;;;;;;;;:::i;:::-;;2454:139;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2454:139:0;-1:-1:-1;;;;;2454:139:0;;:::i;:::-;;;;;;;;;;;;;;;;2710:250;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2710:250:0;-1:-1:-1;;;;;2710:250:0;;:::i;3086:111::-;-1:-1:-1;;;;;3175:14:0;3151:4;3175:14;;;:6;:14;;;;;;;;;3086:111::o;988:57::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;988:57:0;;;;;-1:-1:-1;;;988:57:0;;;;:::o;2040:309::-;1192:30;1211:10;1192:18;:30::i;:::-;1184:56;;;;;-1:-1:-1;;;;;1184:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2178:77;;;;;;;;;2205:15;2178:77;;;;-1:-1:-1;;;;;2178:77:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2157:18:0;;;-1:-1:-1;2157:18:0;;;;;;;;;:98;;;;;;;;;;-1:-1:-1;;;2157:98:0;;;;;-1:-1:-1;;;2157:98:0;-1:-1:-1;;2157:98:0;;;;-1:-1:-1;;2157:98:0;;;;;;;;;;;;;;;;;;;;;;;;;2271:70;;;;;;;;;;;2157:18;;2289:10;;2271:70;;;;;;;;;;;2040:309;;;:::o;2454:139::-;-1:-1:-1;;;;;2551:18:0;2516:7;2551:18;;;;;;;;;;:33;-1:-1:-1;;;2551:33:0;;-1:-1:-1;;;;;2551:33:0;;2454:139::o;2710:250::-;2770:6;2778;2786;2805:36;;:::i;:::-;-1:-1:-1;;;;;;;;;2844:18:0;:10;:18;;;;;;;;;;;;2805:57;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;2805:57:0;;;;;;;;;;-1:-1:-1;;;2805:57:0;;;;;;;;;;;;;;;;;;2710:250::o;565:2637::-;;;;;;;;;-1:-1:-1;565:2637:0;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://e354a63ae2b9d8349aefa4f889af10ac71dd103925c0d2759d5e4af5cb0191fe

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.