Address Details
contract

0x99C1a75642FcaAEd5f8F599C79c5D63b954bBDBF

Contract Name
BandPriceFeed
Creator
0x2d225e–e3dc77 at 0xa49fe5–2b7ce7
Balance
0 CELO ( )
Locked CELO Balance
0.00 CELO
Voting CELO Balance
0.00 CELO
Pending Unlocked Gold
0.00 CELO
Tokens
Fetching tokens...
Transactions
0 Transactions
Transfers
0 Transfers
Gas Used
Fetching gas used...
Last Balance Update
13573805
This contract has been verified via Sourcify. View contract in Sourcify repository
Contract name:
BandPriceFeed




Optimization enabled
true
Compiler version
v0.6.12+commit.27d51765




Optimization runs
1
EVM Version
istanbul




Verified at
2022-09-30T11:35:34.102645Z

contracts/oracle/BandPriceFeed.sol

pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;

import "./interfaces/IStdReference.sol";
import "./interfaces/IPriceFeed.sol";

contract BandPriceFeed is IPriceFeed {
    IStdReference ref;

    string public override description = "BandPriceOracle";
    address public override aggregator;

    string public base;
    string public quote;

    constructor(IStdReference _ref, string memory _base, string memory _quote) public {
        ref = _ref;
        base = _base;
        quote = _quote;
    }

    function latestAnswer() public override view returns (int256) {
        return int256(getPrice());
    }

    function latestRound() public override view returns (uint80) {
        return 1;
    }

    function getPrice() private view returns (uint256){
        IStdReference.ReferenceData memory data = ref.getReferenceData(base, quote);
        return data.rate;
    }

    function getRoundData(uint80 _roundId) public override view
    returns (uint80, int256, uint256, uint256, uint80)
    {
        return (1, int256(getPrice()), 0, 0, 0);
    }
}
        

/contracts/oracle/interfaces/IPriceFeed.sol

// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

interface IPriceFeed {
    function description() external view returns (string memory);
    function aggregator() external view returns (address);
    function latestAnswer() external view returns (int256);
    function latestRound() external view returns (uint80);
    function getRoundData(uint80 roundId) external view returns (uint80, int256, uint256, uint256, uint80);
}
          

/contracts/oracle/interfaces/IStdReference.sol

pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;

interface IStdReference {
    /// A structure returned whenever someone requests for standard reference data.
    struct ReferenceData {
        uint256 rate; // base/quote exchange rate, multiplied by 1e18.
        uint256 lastUpdatedBase; // UNIX epoch of the last time when base price gets updated.
        uint256 lastUpdatedQuote; // UNIX epoch of the last time when quote price gets updated.
    }

    /// Returns the price data for the given base/quote pair. Revert if not available.
    function getReferenceData(string memory _base, string memory _quote)
    external
    view
    returns (ReferenceData memory);

    /// Similar to getReferenceData, but with multiple base/quote pairs at once.
    function getReferenceDataBulk(string[] memory _bases, string[] memory _quotes)
    external
    view
    returns (ReferenceData[] memory);
}
          

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_ref","internalType":"contract IStdReference"},{"type":"string","name":"_base","internalType":"string"},{"type":"string","name":"_quote","internalType":"string"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"aggregator","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"base","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"description","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint80","name":"","internalType":"uint80"},{"type":"int256","name":"","internalType":"int256"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint80","name":"","internalType":"uint80"}],"name":"getRoundData","inputs":[{"type":"uint80","name":"_roundId","internalType":"uint80"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"int256","name":"","internalType":"int256"}],"name":"latestAnswer","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint80","name":"","internalType":"uint80"}],"name":"latestRound","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"quote","inputs":[]}]
              

Contract Creation Code

0x60c0604052600f60808190526e42616e6450726963654f7261636c6560881b60a090815261003091600191906100a7565b5034801561003d57600080fd5b506040516107d63803806107d683398101604081905261005c916101da565b600080546001600160a01b0319166001600160a01b038516179055815161008a9060039060208501906100a7565b50805161009e9060049060208401906100a7565b50505050610258565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100e857805160ff1916838001178555610115565b82800160010185558215610115579182015b828111156101155782518255916020019190600101906100fa565b50610121929150610125565b5090565b5b808211156101215760008155600101610126565b600082601f83011261014a578081fd5b81516001600160401b0380821115610160578283fd5b6040516020601f8401601f1916820181018381118382101715610181578586fd5b8060405250819450838252868185880101111561019d57600080fd5b600092505b838310156101bf57858301810151828401820152918201916101a2565b838311156101d05760008185840101525b5050505092915050565b6000806000606084860312156101ee578283fd5b83516001600160a01b0381168114610204578384fd5b60208501519093506001600160401b0380821115610220578384fd5b61022c8783880161013a565b93506040860151915080821115610241578283fd5b5061024e8682870161013a565b9150509250925092565b61056f806102676000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c8063245a7bfc146100725780635001f3b51461009057806350d25bcd146100a5578063668a0f02146100ba5780637284e416146100cf578063999b93af146100d75780639a6fc8f5146100df575b600080fd5b61007a610103565b604051610087919061044b565b60405180910390f35b610098610112565b6040516100879190610468565b6100ad6101a0565b604051610087919061045f565b6100c26101af565b60405161008791906104e9565b6100986101b4565b61009861020e565b6100f26100ed36600461039a565b610269565b6040516100879594939291906104fd565b6002546001600160a01b031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101985780601f1061016d57610100808354040283529160200191610198565b820191906000526020600020905b81548152906001019060200180831161017b57829003601f168201915b505050505081565b60006101aa61028f565b905090565b600190565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101985780601f1061016d57610100808354040283529160200191610198565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101985780601f1061016d57610100808354040283529160200191610198565b6000806000806000600161027b61028f565b909790965060009550859450849350915050565b6000610299610323565b60005460405163195556f360e21b81526001600160a01b03909116906365555bcc906102cc9060039060049081016104bb565b60606040518083038186803b1580156102e457600080fd5b505afa1580156102f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031c9190610344565b5191505090565b60405180606001604052806000815260200160008152602001600081525090565b600060608284031215610355578081fd5b604051606081016001600160401b0381118282101715610373578283fd5b80604052508251815260208301516020820152604083015160408201528091505092915050565b6000602082840312156103ab578081fd5b81356001600160501b03811681146103c1578182fd5b9392505050565b600081546001808216600081146103e6576001811461040457610442565b60028304607f16865260ff1983166020870152604086019350610442565b600283048087526104148661052d565b60005b828110156104385781546020828b0101528482019150602081019050610417565b8801602001955050505b50505092915050565b6001600160a01b0391909116815260200190565b90815260200190565b6000602080835283518082850152825b8181101561049457858101830151858201604001528201610478565b818111156104a55783604083870101525b50601f01601f1916929092016040019392505050565b6000604082526104ce60408301856103c8565b82810360208401526104e081856103c8565b95945050505050565b6001600160501b0391909116815260200190565b6001600160501b039586168152602081019490945260408401929092526060830152909116608082015260a00190565b6000908152602090209056fea264697066735822122061ee5e9f3c6bc07f9b070a4184246c8d11255e523662cffdd1a03df877f5455e64736f6c634300060c0033000000000000000000000000da7a001b254cd22e46d3eab04d937489c93174c3000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000443454c4f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035553440000000000000000000000000000000000000000000000000000000000

Deployed ByteCode

0x608060405234801561001057600080fd5b506004361061006d5760003560e01c8063245a7bfc146100725780635001f3b51461009057806350d25bcd146100a5578063668a0f02146100ba5780637284e416146100cf578063999b93af146100d75780639a6fc8f5146100df575b600080fd5b61007a610103565b604051610087919061044b565b60405180910390f35b610098610112565b6040516100879190610468565b6100ad6101a0565b604051610087919061045f565b6100c26101af565b60405161008791906104e9565b6100986101b4565b61009861020e565b6100f26100ed36600461039a565b610269565b6040516100879594939291906104fd565b6002546001600160a01b031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101985780601f1061016d57610100808354040283529160200191610198565b820191906000526020600020905b81548152906001019060200180831161017b57829003601f168201915b505050505081565b60006101aa61028f565b905090565b600190565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101985780601f1061016d57610100808354040283529160200191610198565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101985780601f1061016d57610100808354040283529160200191610198565b6000806000806000600161027b61028f565b909790965060009550859450849350915050565b6000610299610323565b60005460405163195556f360e21b81526001600160a01b03909116906365555bcc906102cc9060039060049081016104bb565b60606040518083038186803b1580156102e457600080fd5b505afa1580156102f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031c9190610344565b5191505090565b60405180606001604052806000815260200160008152602001600081525090565b600060608284031215610355578081fd5b604051606081016001600160401b0381118282101715610373578283fd5b80604052508251815260208301516020820152604083015160408201528091505092915050565b6000602082840312156103ab578081fd5b81356001600160501b03811681146103c1578182fd5b9392505050565b600081546001808216600081146103e6576001811461040457610442565b60028304607f16865260ff1983166020870152604086019350610442565b600283048087526104148661052d565b60005b828110156104385781546020828b0101528482019150602081019050610417565b8801602001955050505b50505092915050565b6001600160a01b0391909116815260200190565b90815260200190565b6000602080835283518082850152825b8181101561049457858101830151858201604001528201610478565b818111156104a55783604083870101525b50601f01601f1916929092016040019392505050565b6000604082526104ce60408301856103c8565b82810360208401526104e081856103c8565b95945050505050565b6001600160501b0391909116815260200190565b6001600160501b039586168152602081019490945260408401929092526060830152909116608082015260a00190565b6000908152602090209056fea264697066735822122061ee5e9f3c6bc07f9b070a4184246c8d11255e523662cffdd1a03df877f5455e64736f6c634300060c0033