11 txs
74 calls
constructor
constructor(address _pyth)
functions
getBalancePrice
viewfunction getBalancePrice(address quoteToken, address baseToken) view returns (uint256)
getCommonParams
viewfunction getCommonParams(address, address) view returns (uint8 pairMode, uint8 quoteDecimals, uint8 baseDecimals)
getIntermediateToken
viewfunction getIntermediateToken(address, address) view returns (address)
getMargincallPrice
viewfunction getMargincallPrice(address quoteToken, address baseToken) view returns (uint256)
getParams
viewfunction getParams(address, address) view returns (bytes32 tokenPriceId, uint32 maxPriceAge)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingOwner
viewfunction pendingOwner() view returns (address)
pyth
viewfunction pyth() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setCompositePair
nonpayablefunction setCompositePair(address quoteToken, address intermediateToken, address baseToken)
setPair
nonpayablefunction setPair(address quoteToken, address baseToken, bytes32 tokenPriceId, uint32 maxPriceAge)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Unpaused
event Unpaused(address account)
errors
BaseAndQuoteMustBeDifferent
error BaseAndQuoteMustBeDifferent()
InvalidMode
error InvalidMode()
InvalidPrice
error InvalidPrice()
InvalidTokenAddress
error InvalidTokenAddress()
UnknownPair
error UnknownPair()
WrongValue
error WrongValue()
creation bytecode
0x60a060405234801561001057600080fd5b506040516200173d3803806200173d833981016040819052610031916100c6565b61003a33610058565b6003805460ff60a01b191690556001600160a01b03166080526100f6565b600380546001600160a01b031916905561007181610074565b50565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156100d857600080fd5b81516001600160a01b03811681146100ef57600080fd5b9392505050565b6080516116246200011960003960008181610290015261102c01526116246000f3fe608060405234801561001057600080fd5b50600436106100e05760003560e01c80638456cb59116100875780638456cb59146101e1578063869a9b9b146101e95780638da5cb5b146102355780639d07323e14610246578063e30c397814610267578063f2fde38b14610278578063f98d06f01461028b578063ffb6e1761461024657600080fd5b806312203d79146100e55780633f4ba83a1461013c578063530d324d146101465780635c975abb146101935780636a6ee8f9146101ab578063715018a6146101be57806379ba5097146101c657806380e023b5146101ce575b600080fd5b61011d6100f336600461127a565b60046020908152600092835260408084209091529082529020805460019091015463ffffffff1682565b6040805192835263ffffffff9091166020830152015b60405180910390f35b6101446102b2565b005b61018461015436600461127a565b600060208181529281526040808220909352908152205460ff808216916101008104821691620100009091041683565b604051610133939291906112c3565b61019b6102c4565b6040519015158152602001610133565b6101446101b93660046112fd565b6102d4565b6101446103a3565b6101446103b5565b6101446101dc366004611355565b610434565b61014461044c565b61021d6101f736600461127a565b60016020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610133565b6002546001600160a01b031661021d565b61025961025436600461127a565b61045c565b604051908152602001610133565b6003546001600160a01b031661021d565b610144610286366004611398565b610479565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b6102ba6104ea565b6102c2610544565b565b600354600160a01b900460ff1690565b6102dc6104ea565b8063ffffffff1660000361030357604051632635240760e21b815260040160405180910390fd5b61030d8484610599565b60408051808201825283815263ffffffff92831660208083018281526001600160a01b03988916600081815260048085528782209a909b168082529984528681209551865591516001958601805491891663ffffffff1992831617905586518088018852988952888401948552988252988252848120988152979052919095209251835551919093018054919093169116179055565b6103ab6104ea565b6102c260006107fb565b60035433906001600160a01b031681146104285760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084015b60405180910390fd5b610431816107fb565b50565b61043c6104ea565b610447838383610814565b505050565b6104546104ea565b6102c2610b51565b6000610466610b94565b6104708383610bdc565b90505b92915050565b6104816104ea565b600380546001600160a01b0383166001600160a01b031990911681179091556104b26002546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6002546001600160a01b031633146102c25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161041f565b61054c610f2a565b6003805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b806001600160a01b0316826001600160a01b0316036105cb576040516352808f5560e01b815260040160405180910390fd5b60006001600160a01b0383161561064357826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063e91906113b3565b610646565b60005b905060006001600160a01b038316156106c057826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bb91906113b3565b6106c3565b60005b6040805160608101909152909150806001815260ff8085166020808401919091529084166040928301526001600160a01b038088166000908152808352838120918816815291522081518154829060ff19166001836003811115610729576107296112ad565b0217905550602082810151825460409485015162ffff001990911661010060ff9384160262ff000019161762010000918316919091021790925582516060810184526002815284831681830152918516828401526001600160a01b038681166000908152808352848120918916815291529190912081518154829060ff191660018360038111156107bc576107bc6112ad565b02179055506020820151815460409093015162ffff001990931661010060ff9283160262ff000019161762010000919093160291909117905550505050565b600380546001600160a01b031916905561043181610f75565b6001600160a01b0380841660009081526020818152604080832093861683529290528181208251606081019093528054919291829060ff16600381111561085d5761085d6112ad565b600381111561086e5761086e6112ad565b8152905460ff610100820481166020840152620100009091041660409091015290506001815160038111156108a5576108a56112ad565b141580156108c657506002815160038111156108c3576108c36112ad565b14155b156108e45760405163a0042b1760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526020818152604080832093861683529290528181208251606081019093528054919291829060ff16600381111561092d5761092d6112ad565b600381111561093e5761093e6112ad565b8152905460ff61010082048116602084015262010000909104166040909101529050600181516003811115610975576109756112ad565b141580156109965750600281516003811115610993576109936112ad565b14155b156109b45760405163a0042b1760e01b815260040160405180910390fd5b6040805160608101909152806003815260208481015160ff90811682840152604085810151909116928101929092526001600160a01b038089166000908152808352838120918816815291522081518154829060ff19166001836003811115610a1f57610a1f6112ad565b02179055506020820151815460409384015160ff908116620100000262ff00001991909316610100021662ffff001990911617179055805160608101909152806003815260408084015160ff90811660208085019190915286810151909116928201929092526001600160a01b038087166000908152808452828120918a1681529252902081518154829060ff19166001836003811115610ac257610ac26112ad565b0217905550602082810151825460409485015160ff908116620100000262ff00001991909316610100021662ffff001990911617179091556001600160a01b0396871660008181526001808452848220978a1682529683528381208054999098166001600160a01b0319998a168117909855958252828620908652905290922080549094169092179092555050565b610b59610b94565b6003805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861057c3390565b610b9c6102c4565b156102c25760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161041f565b6001600160a01b038083166000908152602081815260408083209385168352929052818120825160608101909352805491928392909190829060ff166003811115610c2957610c296112ad565b6003811115610c3a57610c3a6112ad565b8152905460ff61010082048116602084015262010000909104166040909101529050600081516003811115610c7157610c716112ad565b03610c8f57604051633fb801a560e21b815260040160405180910390fd5b600181516003811115610ca457610ca46112ad565b1480610cc25750600281516003811115610cc057610cc06112ad565b145b15610d3957600080610cd48686610fc7565b91509150610ce78282856000015161113c565b60208501519193509150610d2f90610d0090600a6114d0565b610d0a90846114df565b600160601b8560400151600a610d2091906114d0565b610d2a90856114df565b61116e565b9350505050610473565b600381516003811115610d4e57610d4e6112ad565b03610f11576001600160a01b038085166000818152600160209081526040808320888616845282528083205493835282825280832093909416808352929052828120835160608101909452805492939192829060ff166003811115610db557610db56112ad565b6003811115610dc657610dc66112ad565b8152905460ff61010082048116602084015262010000909104166040909101529050600080610df58885610fc7565b91509150610e088282856000015161113c565b6001600160a01b03808716600090815260208181526040808320938d168352929052818120825160608101909352805494965092945092909190829060ff166003811115610e5857610e586112ad565b6003811115610e6957610e696112ad565b8152905460ff61010082048116602084015262010000909104166040909101529050600080610e98878b610fc7565b91509150610eab8282856000015161113c565b60208a01519193509150610f0290610ec490600a6114d0565b610ece84886114df565b610ed891906114df565b600160601b8a60400151600a610eee91906114d0565b610ef885896114df565b610d2a91906114df565b98505050505050505050610473565b60405163a0042b1760e01b815260040160405180910390fd5b610f326102c4565b6102c25760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161041f565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382811660009081526004602081815260408084208686168552825280842081518083018352815480825260019092015463ffffffff16938101849052915163052571af60e51b8152938401526024830191909152919283929183917f0000000000000000000000000000000000000000000000000000000000000000169063a4ae35e090604401608060405180830381865afa158015611073573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110979190611520565b604081015190915060030b600080821290816110b357826110bc565b6110bc836115b0565b90506000846000015160070b12156110e65760405162bfc92160e01b815260040160405180910390fd5b835160070b60008361110c576110fd83600a6115cc565b61110790836114df565b61110e565b815b905060008461111e576001611129565b61112984600a6115cc565b919c919b50909950505050505050505050565b6000806001836003811115611153576111536112ad565b1461115f578385611162565b84845b91509150935093915050565b60008080600019858709858702925082811083820303915050806000036111a85783828161119e5761119e6115d8565b0492505050611257565b8084116111ef5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161041f565b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b80356001600160a01b038116811461127557600080fd5b919050565b6000806040838503121561128d57600080fd5b6112968361125e565b91506112a46020840161125e565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60608101600485106112e557634e487b7160e01b600052602160045260246000fd5b93815260ff9283166020820152911660409091015290565b6000806000806080858703121561131357600080fd5b61131c8561125e565b935061132a6020860161125e565b925060408501359150606085013563ffffffff8116811461134a57600080fd5b939692955090935050565b60008060006060848603121561136a57600080fd5b6113738461125e565b92506113816020850161125e565b915061138f6040850161125e565b90509250925092565b6000602082840312156113aa57600080fd5b6104708261125e565b6000602082840312156113c557600080fd5b815160ff8116811461125757600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561142757816000190482111561140d5761140d6113d6565b8085161561141a57918102915b93841c93908002906113f1565b509250929050565b60008261143e57506001610473565b8161144b57506000610473565b8160018114611461576002811461146b57611487565b6001915050610473565b60ff84111561147c5761147c6113d6565b50506001821b610473565b5060208310610133831016604e8410600b84101617156114aa575081810a610473565b6114b483836113ec565b80600019048211156114c8576114c86113d6565b029392505050565b600061047060ff84168361142f565b8082028115828204841417610473576104736113d6565b805167ffffffffffffffff8116811461127557600080fd5b8051600381900b811461127557600080fd5b60006080828403121561153257600080fd5b6040516080810181811067ffffffffffffffff8211171561156357634e487b7160e01b600052604160045260246000fd5b6040528251600781900b811461157857600080fd5b8152611586602084016114f6565b60208201526115976040840161150e565b6040820152606083015160608201528091505092915050565b6000600160ff1b82016115c5576115c56113d6565b5060000390565b6000610470838361142f565b634e487b7160e01b600052601260045260246000fdfea264697066735822122074e32f5e8ce99403bc9357135a67833923b11f8bf85c91d9c4f22da038f0d5a964736f6c634300081300330000000000000000000000004305fb66699c3b2702d4d05cf36551390a4c69c6