V1 Smart Contract Documentation
  • Bondtroller
    • Bondtroller
    • Bondtroller V 1 Storage
    • Bondtroller V 2 Storage
    • Bondtroller V 3 Storage
    • Bondtroller V 4 Storage
    • Bondtroller V 5 Storage
  • B Token
    • B Erc 20
    • B Erc 20 Interface
    • B Erc 20 Storage
    • B Ether
    • B Lending Token
    • B Token
    • B Token Interface
    • B Token Storage
  • Interest Rate Model
    • Base Jump Rate Model V 2
    • Fringe Interest Rate Model
    • Interest Rate Model
    • Jump Rate Model V 2
  • Interfaces
    • EIP 20 Interface
    • EIP 20 Non Standard Interface
    • IB Erc 20 Token
    • IB Lending Token
    • IB Primary Index Token
    • I Comptroller
    • I Price Provider Aggregator
    • I Primary Index Token
    • IPRJ
    • I Simple Price Oracle
    • IUSDC Test
  • Mock
    • PRJ
  • Openzeppelin
    • Contracts
      • Access
        • Access Control
        • Access Control Enumerable
        • I Access Control
        • I Access Control Enumerable
        • Ownable
      • Finance
        • Payment Splitter
      • Governance
        • Compatibility
          • Governor Compatibility Bravo
          • I Governor Compatibility Bravo
        • Extensions
          • Governor Counting Simple
          • Governor Proposal Threshold
          • Governor Timelock Compound
          • Governor Timelock Control
          • Governor Votes
          • Governor Votes Comp
          • Governor Votes Quorum Fraction
          • I Compound Timelock
          • I Governor Timelock
        • Governor
        • I Governor
        • Timelock Controller
      • Interfaces
        • IERC 1271
        • IERC 1363
        • IERC 1363 Receiver
        • IERC 1363 Spender
        • IERC 2612
        • IERC 2981
        • IERC 3156 Flash Borrower
        • IERC 3156 Flash Lender
      • Metatx
        • ERC 2771 Context
        • Minimal Forwarder
      • Proxy
        • Beacon
          • Beacon Proxy
          • I Beacon
          • Upgradeable Beacon
        • ERC 1967
          • ERC 1967 Proxy
          • ERC 1967 Upgrade
        • Transparent
          • Proxy Admin
          • Transparent Upgradeable Proxy
        • Utils
          • Initializable
          • UUPS Upgradeable
        • Clones
        • Proxy
      • Security
        • Pausable
        • Pull Payment
        • Reentrancy Guard
      • Token
        • ERC 1155
          • Extensions
            • ERC 1155 Burnable
            • ERC 1155 Pausable
            • ERC 1155 Supply
            • IERC 1155 Metadata URI
          • Presets
            • ERC 1155 Preset Minter Pauser
          • Utils
            • ERC 1155 Holder
            • ERC 1155 Receiver
          • IERC 1155
          • IERC 1155 Receiver
        • ERC 20
          • Extensions
            • ERC 20 Burnable
            • ERC 20 Capped
            • ERC 20 Flash Mint
            • ERC 20 Pausable
            • ERC 20 Permit
            • ERC 20 Snapshot
            • ERC 20 Votes
            • ERC 20 Votes Comp
            • ERC 20 Wrapper
            • IERC 20 Metadata
            • IERC 20 Permit
          • Presets
            • ERC 20 Preset Fixed Supply
            • ERC 20 Preset Minter Pauser
          • Utils
            • Safe ERC 20
            • Token Timelock
          • IERC 20
        • ERC 721
          • Extensions
            • ERC 721 Burnable
            • ERC 721 Enumerable
            • ERC 721 Pausable
            • ERC 721 URI Storage
            • IERC 721 Enumerable
            • IERC 721 Metadata
          • Presets
            • ERC 721 Preset Minter Pauser Auto Id
          • Utils
            • ERC 721 Holder
          • IERC 721
          • IERC 721 Receiver
        • ERC 777
          • Presets
            • ERC 777 Preset Fixed Supply
          • IERC 777
          • IERC 777 Recipient
          • IERC 777 Sender
      • Utils
        • Cryptography
          • ECDSA
          • EIP 712
          • Merkle Proof
          • Signature Checker
        • Escrow
          • Conditional Escrow
          • Escrow
          • Refund Escrow
        • Introspection
          • ERC 165
          • ERC 165 Checker
          • ERC 165 Storage
          • ERC 1820 Implementer
          • IERC 165
          • IERC 1820 Implementer
          • IERC 1820 Registry
        • Math
          • Math
          • Safe Cast
          • Safe Math
          • Signed Safe Math
        • Structs
          • Bit Maps
          • Enumerable Map
          • Enumerable Set
        • Address
        • Arrays
        • Context
        • Counters
        • Create 2
        • Multicall
        • Storage Slot
        • Strings
        • Timers
    • Contracts Upgradeable
      • Access
        • Access Control Enumerable Upgradeable
        • Access Control Upgradeable
        • I Access Control Enumerable Upgradeable
        • I Access Control Upgradeable
        • Ownable Upgradeable
      • Finance
        • Payment Splitter Upgradeable
      • Governance
        • Compatibility
          • Governor Compatibility Bravo Upgradeable
          • I Governor Compatibility Bravo Upgradeable
        • Extensions
          • Governor Counting Simple Upgradeable
          • Governor Proposal Threshold Upgradeable
          • Governor Timelock Compound Upgradeable
          • Governor Timelock Control Upgradeable
          • Governor Votes Comp Upgradeable
          • Governor Votes Quorum Fraction Upgradeable
          • Governor Votes Upgradeable
          • I Compound Timelock Upgradeable
          • I Governor Timelock Upgradeable
        • Governor Upgradeable
        • I Governor Upgradeable
        • Timelock Controller Upgradeable
      • Interfaces
        • IERC 1271 Upgradeable
        • IERC 1363 Receiver Upgradeable
        • IERC 1363 Spender Upgradeable
        • IERC 1363 Upgradeable
        • IERC 2612 Upgradeable
        • IERC 2981 Upgradeable
        • IERC 3156 Flash Borrower Upgradeable
        • IERC 3156 Flash Lender Upgradeable
      • Metatx
        • ERC 2771 Context Upgradeable
        • Minimal Forwarder Upgradeable
      • Proxy
        • Beacon
          • I Beacon Upgradeable
        • ERC 1967
          • ERC 1967 Upgrade Upgradeable
        • Utils
          • Initializable
          • UUPS Upgradeable
        • Clones Upgradeable
      • Security
        • Pausable Upgradeable
        • Pull Payment Upgradeable
        • Reentrancy Guard Upgradeable
      • Token
        • ERC 1155
          • Extensions
            • ERC 1155 Burnable Upgradeable
            • ERC 1155 Pausable Upgradeable
            • ERC 1155 Supply Upgradeable
            • IERC 1155 Metadata URI Upgradeable
          • Presets
            • ERC 1155 Preset Minter Pauser Upgradeable
          • Utils
            • ERC 1155 Holder Upgradeable
            • ERC 1155 Receiver Upgradeable
          • ERC 1155 Upgradeable
          • IERC 1155 Receiver Upgradeable
          • IERC 1155 Upgradeable
        • ERC 20
          • Extensions
            • ERC 20 Burnable Upgradeable
            • ERC 20 Capped Upgradeable
            • ERC 20 Flash Mint Upgradeable
            • ERC 20 Pausable Upgradeable
            • ERC 20 Permit Upgradeable
            • ERC 20 Snapshot Upgradeable
            • ERC 20 Votes Comp Upgradeable
            • ERC 20 Votes Upgradeable
            • ERC 20 Wrapper Upgradeable
            • IERC 20 Metadata Upgradeable
            • IERC 20 Permit Upgradeable
          • Presets
            • ERC 20 Preset Fixed Supply Upgradeable
            • ERC 20 Preset Minter Pauser Upgradeable
          • Utils
            • Safe ERC 20 Upgradeable
            • Token Timelock Upgradeable
          • ERC 20 Upgradeable
          • IERC 20 Upgradeable
        • ERC 721
          • Extensions
            • ERC 721 Burnable Upgradeable
            • ERC 721 Enumerable Upgradeable
            • ERC 721 Pausable Upgradeable
            • ERC 721 URI Storage Upgradeable
            • IERC 721 Enumerable Upgradeable
            • IERC 721 Metadata Upgradeable
          • Presets
            • ERC 721 Preset Minter Pauser Auto Id Upgradeable
          • Utils
            • ERC 721 Holder Upgradeable
          • ERC 721 Upgradeable
          • IERC 721 Receiver Upgradeable
          • IERC 721 Upgradeable
        • ERC 777
          • Presets
            • ERC 777 Preset Fixed Supply Upgradeable
          • ERC 777 Upgradeable
          • IERC 777 Recipient Upgradeable
          • IERC 777 Sender Upgradeable
          • IERC 777 Upgradeable
      • Utils
        • Cryptography
          • ECDSA Upgradeable
          • EIP 712 Upgradeable
          • Merkle Proof Upgradeable
          • Signature Checker Upgradeable
        • Escrow
          • Conditional Escrow Upgradeable
          • Escrow Upgradeable
          • Refund Escrow Upgradeable
        • Introspection
          • ERC 165 Checker Upgradeable
          • ERC 165 Storage Upgradeable
          • ERC 165 Upgradeable
          • ERC 1820 Implementer Upgradeable
          • IERC 165 Upgradeable
          • IERC 1820 Implementer Upgradeable
          • IERC 1820 Registry Upgradeable
        • Math
          • Math Upgradeable
          • Safe Cast Upgradeable
          • Safe Math Upgradeable
          • Signed Safe Math Upgradeable
        • Structs
          • Bit Maps Upgradeable
          • Enumerable Map Upgradeable
          • Enumerable Set Upgradeable
        • Address Upgradeable
        • Arrays Upgradeable
        • Context Upgradeable
        • Counters Upgradeable
        • Create 2 Upgradeable
        • Multicall Upgradeable
        • Storage Slot Upgradeable
        • Strings Upgradeable
        • Timers Upgradeable
  • Price Oracle
    • Priceproviders
      • Chainlink
        • Aggregator V 3 Interface
      • Uniswap V 2
        • I Uniswap V 2 Factory
        • I Uniswap V 2 Pair
        • I Uniswap V 2 Router 02
        • Safe Math
        • Uniswap V 2 Library
      • Backend Price Provider
      • Chainlink Price Provider
      • Price Provider
      • Uniswap V 2 Price Provider
    • Price Provider Aggregator
  • Util
    • Bondtroller Error Reporter
    • Careful Math
    • Exponential
    • Exponential No Error
    • Token Error Reporter
  • Console
  • Index
  • Primary Index Token
  • Primary Lending Platform Proxy Admin
Powered by GitBook
On this page
  • Methods
  • DEFAULT_ADMIN_ROLE
  • DESCRIPTION
  • TRUSTED_BACKEND_ROLE
  • backendMetadata
  • changeActive
  • getEthSignedMessageHash
  • getEvaluation
  • getEvaluationSigned
  • getMessageHash
  • getPrice
  • getPriceDecimals
  • getPriceSigned
  • getRoleAdmin
  • grandTrustedBackendRole
  • grantRole
  • hasRole
  • initialize
  • isActive
  • isListed
  • recoverSigner
  • renounceRole
  • revokeRole
  • revokeTrustedBackendRole
  • setToken
  • supportsInterface
  • usdDecimals
  • verify
  • Events
  • ChangeActive
  • GrandTrustedBackendRole
  • RevokeTrustedBackendRole
  • RoleAdminChanged
  • RoleGranted
  • RoleRevoked
  • SetToken
  1. Price Oracle
  2. Priceproviders

Backend Price Provider

Backend price verifier.

Methods

DEFAULT_ADMIN_ROLE

function DEFAULT_ADMIN_ROLE() external view returns (bytes32)

Returns

Name
Type
Description

_0

bytes32

undefined

DESCRIPTION

function DESCRIPTION() external view returns (string)

Returns

Name
Type
Description

_0

string

undefined

TRUSTED_BACKEND_ROLE

function TRUSTED_BACKEND_ROLE() external view returns (bytes32)

Returns

Name
Type
Description

_0

bytes32

undefined

backendMetadata

function backendMetadata(address) external view returns (bool isListed, bool isActive)

Parameters

Name
Type
Description

_0

address

undefined

Returns

Name
Type
Description

isListed

bool

undefined

isActive

bool

undefined

changeActive

function changeActive(address token, bool active) external nonpayable

Parameters

Name
Type
Description

token

address

undefined

active

bool

undefined

getEthSignedMessageHash

function getEthSignedMessageHash(bytes32 messageHash) external pure returns (bytes32)
  1. step. Backend formatting the message and get hash of this message.

returns the keccak256 of formatted message

Parameters

Name
Type
Description

messageHash

bytes32

the keccak256 of message

Returns

Name
Type
Description

_0

bytes32

undefined

getEvaluation

function getEvaluation(address token, uint256 tokenAmount) external pure returns (uint256 evaluation)

Parameters

Name
Type
Description

token

address

undefined

tokenAmount

uint256

undefined

Returns

Name
Type
Description

evaluation

uint256

undefined

getEvaluationSigned

function getEvaluationSigned(address token, uint256 tokenAmount, uint256 priceMantissa, uint256 validTo, bytes signature) external view returns (uint256 evaluation)

return the evaluation in $ of tokenAmount with signed price

Parameters

Name
Type
Description

token

address

the address of token to get evaluation in $

tokenAmount

uint256

the amount of token to get evaluation. Amount is scaled by 10 in power token decimals

priceMantissa

uint256

the price multiplied by priceDecimals. The dimension of priceMantissa should be $/token

validTo

uint256

the timestamp in seconds, when price is gonna be not valid.

signature

bytes

the ECDSA sign on eliptic curve secp256k1.

Returns

Name
Type
Description

evaluation

uint256

undefined

getMessageHash

function getMessageHash(address token, uint256 priceMantissa, uint256 validTo) external pure returns (bytes32)
  1. step. Backend creates offchain data and get hash of this data. This data calls message.

returns the keccak256 of concatenated input data

Parameters

Name
Type
Description

token

address

the address of asset

priceMantissa

uint256

the price of asset that include decimals

validTo

uint256

the unix timestamp in seconds that define the validity of given price to validTo timestamp

Returns

Name
Type
Description

_0

bytes32

undefined

getPrice

function getPrice(address token) external pure returns (uint256 price, uint8 priceDecimals)

Returns the latest asset price and price decimals

Parameters

Name
Type
Description

token

address

the token address

Returns

Name
Type
Description

price

uint256

undefined

priceDecimals

uint8

undefined

getPriceDecimals

function getPriceDecimals() external view returns (uint8)

Returns

Name
Type
Description

_0

uint8

undefined

getPriceSigned

function getPriceSigned(address token, uint256 priceMantissa, uint256 validTo, bytes signature) external view returns (uint256 _priceMantissa, uint8 priceDecimals)

Parameters

Name
Type
Description

token

address

undefined

priceMantissa

uint256

undefined

validTo

uint256

undefined

signature

bytes

undefined

Returns

Name
Type
Description

_priceMantissa

uint256

undefined

priceDecimals

uint8

undefined

getRoleAdmin

function getRoleAdmin(bytes32 role) external view returns (bytes32)

Returns the admin role that controls role. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.

Parameters

Name
Type
Description

role

bytes32

undefined

Returns

Name
Type
Description

_0

bytes32

undefined

grandTrustedBackendRole

function grandTrustedBackendRole(address newTrustedBackend) external nonpayable

Parameters

Name
Type
Description

newTrustedBackend

address

undefined

grantRole

function grantRole(bytes32 role, address account) external nonpayable

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.

Parameters

Name
Type
Description

role

bytes32

undefined

account

address

undefined

hasRole

function hasRole(bytes32 role, address account) external view returns (bool)

Returns true if account has been granted role.

Parameters

Name
Type
Description

role

bytes32

undefined

account

address

undefined

Returns

Name
Type
Description

_0

bool

undefined

initialize

function initialize() external nonpayable

isActive

function isActive(address token) external view returns (bool)

Parameters

Name
Type
Description

token

address

undefined

Returns

Name
Type
Description

_0

bool

undefined

isListed

function isListed(address token) external view returns (bool)

Parameters

Name
Type
Description

token

address

undefined

Returns

Name
Type
Description

_0

bool

undefined

recoverSigner

function recoverSigner(bytes32 ethSignedMessageHash, bytes signature) external pure returns (address)

returns the signer of ethSignedMessageHash

Parameters

Name
Type
Description

ethSignedMessageHash

bytes32

undefined

signature

bytes

undefined

Returns

Name
Type
Description

_0

address

undefined

renounceRole

function renounceRole(bytes32 role, address account) external nonpayable

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.

Parameters

Name
Type
Description

role

bytes32

undefined

account

address

undefined

revokeRole

function revokeRole(bytes32 role, address account) external nonpayable

Revokes role from account. If account had been granted role, emits a {RoleRevoked} event. Requirements: - the caller must have role's admin role.

Parameters

Name
Type
Description

role

bytes32

undefined

account

address

undefined

revokeTrustedBackendRole

function revokeTrustedBackendRole(address trustedBackend) external nonpayable

Parameters

Name
Type
Description

trustedBackend

address

undefined

setToken

function setToken(address token) external nonpayable

Parameters

Name
Type
Description

token

address

undefined

supportsInterface

function supportsInterface(bytes4 interfaceId) external view returns (bool)

See {IERC165-supportsInterface}.

Parameters

Name
Type
Description

interfaceId

bytes4

undefined

Returns

Name
Type
Description

_0

bool

undefined

usdDecimals

function usdDecimals() external view returns (uint8)

Returns

Name
Type
Description

_0

uint8

undefined

verify

function verify(address token, uint256 priceMantissa, uint256 validTo, bytes signature) external view returns (bool)
  1. step. Smart contract verify the message (tuple)

returns true if the message is signed by trusted backend. Else returns false.

Parameters

Name
Type
Description

token

address

the address of asset

priceMantissa

uint256

the price of asset that include decimals

validTo

uint256

the unix timestamp in seconds that define the validity of given price to validTo timestamp

signature

bytes

the sign of message.

Returns

Name
Type
Description

_0

bool

undefined

Events

ChangeActive

event ChangeActive(address indexed who, address indexed token, bool active)

Parameters

Name
Type
Description

who indexed

address

undefined

token indexed

address

undefined

active

bool

undefined

GrandTrustedBackendRole

event GrandTrustedBackendRole(address indexed who, address indexed newTrustedBackend)

Parameters

Name
Type
Description

who indexed

address

undefined

newTrustedBackend indexed

address

undefined

RevokeTrustedBackendRole

event RevokeTrustedBackendRole(address indexed who, address indexed trustedBackend)

Parameters

Name
Type
Description

who indexed

address

undefined

trustedBackend indexed

address

undefined

RoleAdminChanged

event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)

Parameters

Name
Type
Description

role indexed

bytes32

undefined

previousAdminRole indexed

bytes32

undefined

newAdminRole indexed

bytes32

undefined

RoleGranted

event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)

Parameters

Name
Type
Description

role indexed

bytes32

undefined

account indexed

address

undefined

sender indexed

address

undefined

RoleRevoked

event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)

Parameters

Name
Type
Description

role indexed

bytes32

undefined

account indexed

address

undefined

sender indexed

address

undefined

SetToken

event SetToken(address indexed who, address indexed token)

Parameters

Name
Type
Description

who indexed

address

undefined

token indexed

address

undefined

PreviousUniswap V 2 LibraryNextChainlink Price Provider

Last updated 3 years ago