0 txs
10.5k calls
constructor
constructor()
functions
consortium
viewfunction consortium() view returns (address)
denomHash
viewfunction denomHash() view returns (bytes32)
getRate
viewfunction getRate() view returns (uint256)
maxAheadInterval
viewfunction maxAheadInterval() view returns (uint256)
nextRatio
viewfunction nextRatio() view returns (uint256, uint256)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
ratio
viewfunction ratio() view returns (uint256)
ratioThreshold
viewfunction ratioThreshold() view returns (uint256)
token
viewfunction token() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
changeConsortium
nonpayablefunction changeConsortium(address newVal)
changeMaxAheadInterval
nonpayablefunction changeMaxAheadInterval(uint256 newVal)
initialize
nonpayablefunction initialize(address owner_, address consortium_, address token_, bytes32 denomHash_, uint256 ratio_, uint256 switchTime_, uint256 maxAheadInterval_)
publishNewRatio
nonpayablefunction publishNewRatio(bytes rawPayload, bytes proof)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateRatioThreshold
nonpayablefunction updateRatioThreshold(uint32 newThreshold)
events
Initialized
event Initialized(uint64 version)
Oracle_ConsortiumChanged
event Oracle_ConsortiumChanged(address indexed prevVal, address indexed newVal)
Oracle_MaxAheadIntervalChanged
event Oracle_MaxAheadIntervalChanged(uint256 indexed prevVal, uint256 indexed newVal)
Oracle_RatioChanged
event Oracle_RatioChanged(uint256 prevVal, uint256 newVal, uint256 switchTime)
Oracle_TokenDetailsSet
event Oracle_TokenDetailsSet(address indexed token, bytes32 indexed denom)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
RatioThresholdUpdated
event RatioThresholdUpdated(uint256 indexed prevVal, uint256 indexed newVal)
errors
Actions_ZeroDenom
error Actions_ZeroDenom()
Actions_ZeroRatio
error Actions_ZeroRatio()
InvalidAction
error InvalidAction(bytes4 expected, bytes4 actual)
InvalidInitialization
error InvalidInitialization()
InvalidPayloadSize
error InvalidPayloadSize(uint256 expected, uint256 actual)
MathOverflowedMulDiv
error MathOverflowedMulDiv()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
RatioInitializedAlready
error RatioInitializedAlready()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
TooBigRatioChange
error TooBigRatioChange()
WrongRatioSwitchTime
error WrongRatioSwitchTime()
ZeroAddress
error ZeroAddress()
creation bytecode
0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6113f5806100df6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063c7bd3d7b11610071578063c7bd3d7b14610251578063e30c397814610264578063efd3e2111461026c578063f2fde38b146102c5578063fc0c546a146102d857600080fd5b80638da5cb5b146101ed5780638f18ded81461020d5780639ad1876514610220578063a28c76cc1461023e57600080fd5b8063715018a6116100e9578063715018a61461018757806371ca337d1461018f5780637721cf371461019757806379ba5097146101be5780638a74b208146101c657600080fd5b80632ac249b71461011b5780633be19c0314610130578063567121391461016c578063679aefce1461017f575b600080fd5b61012e6101293660046110b9565b610308565b005b7f773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df985942075463ffffffff165b6040519081526020015b60405180910390f35b61012e61017a366004611141565b61031a565b61015961032e565b61012e610351565b610159610365565b7f773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df9859420154610159565b61012e61036f565b7f773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df9859420654610159565b6101f56103b9565b6040516001600160a01b039091168152602001610163565b61012e61021b36600461115c565b6103ee565b6000805160206113a0833981519152546001600160a01b03166101f5565b61012e61024c366004611182565b6104e5565b61012e61025f3660046111ea565b610611565b6101f5610622565b7f773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df98594204547f773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df985942055460408051928352602083019190915201610163565b61012e6102d3366004611141565b61064b565b7f773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df98594202546001600160a01b03166101f5565b610314848484846106d0565b50505050565b610322610829565b61032b8161085b565b50565b600061034c670de0b6b3a7640000806103456108cc565b6001610919565b905090565b610359610829565b610363600061096a565b565b600061034c6108cc565b3380610379610622565b6001600160a01b0316146103b05760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61032b8161096a565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b6103f6610829565b6305f5e10063ffffffff8216108015610415575060008163ffffffff16115b6104615760405162461bcd60e51b815260206004820181905260248201527f6e657720726174696f207468726573686f6c64206f7574206f662072616e676560448201526064016103a7565b7f773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df98594207546040516000805160206113a08339815191529163ffffffff848116929116907fcef4718f6908c7bfae2786c6597d4e15fda100d708d9742c827b08bf37683f9990600090a3600701805463ffffffff191663ffffffff92909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561052b5750825b905060008267ffffffffffffffff1660011480156105485750303b155b905081158015610556575080155b156105745760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561059e57845460ff60401b1916600160401b1785555b6105a78c6109a6565b6105af6109b7565b6105bd8b8b8b8b8b8b6109bf565b831561060357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b610619610829565b61032b816109f5565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006103de565b610653610829565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556106976103b9565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6106e28484631b1c8b0b60e21b610a58565b600061072e6106f48560048189611203565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610ab992505050565b905060006000805160206113a083398151915290506107568183602001518460400151610b92565b60006002878760405161076a92919061122d565b602060405180830381855afa158015610787573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906107aa919061123d565b8254604051631f68c5f560e11b81529192506001600160a01b031690633ed18bea906107de90849089908990600401611256565b60006040518083038186803b1580156107f657600080fd5b505afa15801561080a573d6000803e3d6000fd5b5050505061082083602001518460400151610c8c565b50505050505050565b336108326103b9565b6001600160a01b0316146103635760405163118cdaa760e01b81523360048201526024016103a7565b61086481610d27565b6000805160206113a083398151915280546040516001600160a01b038481169216907f650cafeae1c4ce8a43a0c306b83871ece0fae36c59cfd1a5eed4c56309de64eb90600090a380546001600160a01b0319166001600160a01b0392909216919091179055565b7f773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df98594205546000906000805160206113a08339815191529042106109105760040154919050565b60030154919050565b600080610927868686610d4e565b905061093283610e13565b801561094e5750600084806109495761094961128c565b868809115b156109615761095e6001826112b8565b90505b95945050505050565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556109a282610e40565b5050565b6109ae610eb1565b61032b81610efa565b610363610eb1565b6109c7610eb1565b6109d08661085b565b6109da8585610f2c565b6109e48383610fb9565b6109ed816109f5565b505050505050565b7f773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df98594206546040516000805160206113a08339815191529183917f57804ab275a052f7a42c6632d358d689d2fbbd7c7975af8d80cbfc64b309e06390600090a360060155565b6001600160e01b03198116610a6d83856112d1565b6001600160e01b03191614610ab45780610a8783856112d1565b604051632e35ad2d60e11b81526001600160e01b03199283166004820152911660248201526044016103a7565b505050565b60408051606081018252600080825260208083018290529282015290610ae0906003611301565b825114610b1757610af360206003611301565b82516040516371cccdf360e11b8152600481019290925260248201526044016103a7565b600080600084806020019051810190610b309190611318565b9194509250905082610b555760405163c6ca21fd60e01b815260040160405180910390fd5b81610b73576040516333c5d4e760e11b815260040160405180910390fd5b6040805160608101825293845260208401929092529082015292915050565b808360050154101580610bb257506006830154610baf90426112b8565b81115b15610bd057604051638b0f996960e01b815260040160405180910390fd5b6000836005015482610be29190611346565b60048501546007860154919250600091610c1d9190610c079063ffffffff1685611301565b610c186305f5e10062015180611301565b610d4e565b9050838560040154118015610c40575080848660040154610c3e9190611346565b115b80610c675750846004015484118015610c67575080856004015485610c659190611346565b115b15610c855760405163918aafd360e01b815260040160405180910390fd5b5050505050565b7f773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df98594205546000805160206113a0833981519152904210610ccf57600481015460038201555b60048101839055600581018290556003810154604080519182526020820185905281018390527f7af4a9df3b955bd1403b9c99ab7142e469f27303ce87e7273e7fa2aa2399ceab9060600160405180910390a1505050565b6001600160a01b03811661032b5760405163d92e233d60e01b815260040160405180910390fd5b6000838302816000198587098281108382030391505080600003610d8557838281610d7b57610d7b61128c565b0492505050610e0c565b808411610da55760405163227bc15360e01b815260040160405180910390fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60006002826003811115610e2957610e29611359565b610e33919061136f565b60ff166001149050919050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661036357604051631afcd79f60e31b815260040160405180910390fd5b610f02610eb1565b6001600160a01b0381166103b057604051631e4fbdf760e01b8152600060048201526024016103a7565b610f3582610d27565b6040516000805160206113a08339815191529082906001600160a01b038516907f9156b9e1c465bc538a398cb0653fc128b1553cce62b1a3ff05d839b39eedcb5690600090a3604080518082019091528281526001600160a01b039093166020909301839052600181019190915560020180546001600160a01b0319169091179055565b7f773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df98594207805463ffffffff1916620186a01790557f773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df98594204546000805160206113a08339815191529015158061102c5750600381015415155b8061103a5750600581015415155b156110585760405163b72de3d560e01b815260040160405180910390fd5b670de0b6b3a76400006004820155610ab48383610c8c565b60008083601f84011261108257600080fd5b50813567ffffffffffffffff81111561109a57600080fd5b6020830191508360208285010111156110b257600080fd5b9250929050565b600080600080604085870312156110cf57600080fd5b843567ffffffffffffffff808211156110e757600080fd5b6110f388838901611070565b9096509450602087013591508082111561110c57600080fd5b5061111987828801611070565b95989497509550505050565b80356001600160a01b038116811461113c57600080fd5b919050565b60006020828403121561115357600080fd5b610e0c82611125565b60006020828403121561116e57600080fd5b813563ffffffff81168114610e0c57600080fd5b600080600080600080600060e0888a03121561119d57600080fd5b6111a688611125565b96506111b460208901611125565b95506111c260408901611125565b969995985095966060810135965060808101359560a0820135955060c0909101359350915050565b6000602082840312156111fc57600080fd5b5035919050565b6000808585111561121357600080fd5b8386111561122057600080fd5b5050820193919092039150565b8183823760009101908152919050565b60006020828403121561124f57600080fd5b5051919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156112cb576112cb6112a2565b92915050565b6001600160e01b031981358181169160048510156112f95780818660040360031b1b83161692505b505092915050565b80820281158282048414176112cb576112cb6112a2565b60008060006060848603121561132d57600080fd5b8351925060208401519150604084015190509250925092565b818103818111156112cb576112cb6112a2565b634e487b7160e01b600052602160045260246000fd5b600060ff83168061139057634e487b7160e01b600052601260045260246000fd5b8060ff8416069150509291505056fe773f82ddc38c293e7e76f6867b0d8bb7a6d27067018d4afff38772df98594200a26469706673582212208f89e2c98b284c15a1306801ad0a24ef2ce8e4762a0f0a69c8e2396d630ca0c164736f6c63430008180033