7 txs
811 calls
constructor
constructor((uint8 underlyingAssetDecimals, address cToken, address priceFeed, uint256 fixedPrice)[] configs)
functions
getConfig
viewfunction getConfig(address cToken) view returns (tuple)
getUnderlyingPrice
viewfunction getUnderlyingPrice(address cToken) view returns (uint256)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
addConfig
nonpayablefunction addConfig(tuple config)
removeConfig
nonpayablefunction removeConfig(address cToken)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateConfigFixedPrice
nonpayablefunction updateConfigFixedPrice(address cToken, uint256 fixedPrice)
updateConfigPriceFeed
nonpayablefunction updateConfigPriceFeed(address cToken, address priceFeed)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
PriceOracleAssetAdded
event PriceOracleAssetAdded(address indexed cToken, uint8 underlyingAssetDecimals, address priceFeed, uint256 fixedPrice)
PriceOracleAssetFixedPriceUpdated
event PriceOracleAssetFixedPriceUpdated(address indexed cToken, uint256 oldFixedPrice, uint256 newFixedPrice, address oldPriceFeed)
PriceOracleAssetPriceFeedUpdated
event PriceOracleAssetPriceFeedUpdated(address indexed cToken, address oldPriceFeed, address newPriceFeed, uint256 oldFixedPrice)
PriceOracleAssetRemoved
event PriceOracleAssetRemoved(address indexed cToken, uint8 underlyingAssetDecimals, address priceFeed, uint256 fixedPrice)
errors
ConfigNotFound
error ConfigNotFound(address cToken)
DuplicateConfig
error DuplicateConfig(address cToken)
FormattingDecimalsTooHigh
error FormattingDecimalsTooHigh(uint16 decimals)
InvalidFixedPrice
error InvalidFixedPrice(uint256 fixedPrice)
InvalidPriceConfigs
error InvalidPriceConfigs(address priceFeed, uint256 fixedPrice)
InvalidPriceFeed
error InvalidPriceFeed(address priceFeed)
InvalidUnderlyingAssetDecimals
error InvalidUnderlyingAssetDecimals(uint8 underlyingAssetDecimals)
MissingCTokenAddress
error MissingCTokenAddress()
UnchangedFixedPrice
error UnchangedFixedPrice(address cToken, uint256 existingFixedPrice, uint256 newFixedPrice)
UnchangedPriceFeed
error UnchangedPriceFeed(address cToken, address existingPriceFeed, address newPriceFeed)
creation bytecode
0x60806040523480156200001157600080fd5b50604051620018b2380380620018b2833981016040819052620000349162000585565b6200003f336200009c565b60005b8151811015620000945760008282815181106200006357620000636200068e565b602002602001015190506200007e81620000c660201b60201c565b50806200008b81620006ba565b91505062000042565b50506200074b565b600180546001600160a01b0319169055620000c381620001a3602090811b62000a9e17901c565b50565b620000d0620001f3565b620000db8162000255565b6040805160608082018352835160ff908116835284840180516001600160a01b0390811660208087019182528886018051888a01908152828b01805186166000908152600285528b90208a51815496518816610100026001600160a81b0319909716908a16179590951785559051600190940193909355915189519451925189519590961685529183169084015295820192909252929316917fb9639f0f44a640d9e166275d62b035bbaf14aed9b4763801fbec17f8e9bf64e9910160405180910390a25050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620002535760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b565b60208101516001600160a01b0316620002815760405163d589a57960e01b815260040160405180910390fd5b60408101516001600160a01b03161580156200029f57506060810151155b15620002dd5760408082015160608301519151635e8e0e7f60e01b81526001600160a01b03909116600482015260248101919091526044016200024a565b60408101516001600160a01b031615801590620002fd5750606081015115155b156200033b5760408082015160608301519151635e8e0e7f60e01b81526001600160a01b03909116600482015260248101919091526044016200024a565b6020808201516001600160a01b039081166000908152600283526040908190208151606081018352815460ff811682526101009004909316938301849052600101549082015290151580620003935750604081015115155b15620003c4576020820151604051637e8b46c960e01b81526001600160a01b0390911660048201526024016200024a565b60408201516001600160a01b031615620003eb5760408201518251620003eb9190620003ef565b5050565b620003fd60066024620006d8565b60ff168160ff1611156200042a5760405163a0b356c360e01b815260ff821660048201526024016200024a565b60008290506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000470573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004969190620006fe565b90506048620004a6848362000723565b60ff161115620004dc57620004bc838262000723565b60405163a849c7df60e01b815260ff90911660048201526024016200024a565b50505050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156200051d576200051d620004e2565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200054e576200054e620004e2565b604052919050565b805160ff811681146200056857600080fd5b919050565b80516001600160a01b03811681146200056857600080fd5b600060208083850312156200059957600080fd5b82516001600160401b0380821115620005b157600080fd5b818501915085601f830112620005c657600080fd5b815181811115620005db57620005db620004e2565b620005eb848260051b0162000523565b818152848101925060079190911b8301840190878211156200060c57600080fd5b928401925b818410156200068357608084890312156200062c5760008081fd5b62000636620004f8565b620006418562000556565b8152620006508686016200056d565b868201526040620006638187016200056d565b908201526060858101519082015283526080909301929184019162000611565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415620006d157620006d1620006a4565b5060010190565b600060ff821660ff841680821015620006f557620006f5620006a4565b90039392505050565b6000602082840312156200071157600080fd5b6200071c8262000556565b9392505050565b600060ff821660ff84168060ff03821115620007435762000743620006a4565b019392505050565b611157806200075b6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806379ba50971161007157806379ba5097146101045780638da5cb5b1461010c578063e30c397814610136578063e48a5f7b14610147578063f2fde38b14610188578063fc57d4df1461019b57600080fd5b80630966dedd146100ae57806319108ad3146100c35780633b1495c9146100d65780636b3ab955146100e9578063715018a6146100fc575b600080fd5b6100c16100bc366004610e00565b6101bc565b005b6100c16100d1366004610e89565b610296565b6100c16100e4366004610ebc565b610465565b6100c16100f7366004610ee6565b6105e9565b6100c16106f7565b6100c161070b565b6000546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6001546001600160a01b0316610119565b61015a610155366004610ee6565b610785565b60408051825160ff1681526020808401516001600160a01b031690820152918101519082015260600161012d565b6100c1610196366004610ee6565b610826565b6101ae6101a9366004610ee6565b610897565b60405190815260200161012d565b6101c4610aee565b6101cd81610b48565b6040805160608082018352835160ff908116835284840180516001600160a01b0390811660208087019182528886018051888a01908152828b01805186166000908152600285528b90208a51815496518816610100026001600160a81b0319909716908a16179590951785559051600190940193909355915189519451925189519590961685529183169084015295820192909252929316917fb9639f0f44a640d9e166275d62b035bbaf14aed9b4763801fbec17f8e9bf64e991015b60405180910390a25050565b61029e610aee565b6001600160a01b038083166000908152600260209081526040918290208251606081018452815460ff81168252610100900490941691840182905260010154918301919091521580156102f357506040810151155b156103215760405163f5cd4cf960e01b81526001600160a01b03841660048201526024015b60405180910390fd5b6001600160a01b03821661035357604051636ade937960e11b81526001600160a01b0383166004820152602401610318565b816001600160a01b031681602001516001600160a01b031614156103ab57602081015160405163862610fd60e01b81526001600160a01b03808616600483015291821660248201529083166044820152606401610318565b6103b9828260000151610cd6565b602080820151604080840180516001600160a01b038089166000908152600290965292909420805492871661010002610100600160a81b0319909316929092178255519192911561040c57600060018201555b604080516001600160a01b0385811682528781166020830152918101849052908716907ff245898478328280cec510f1394c145377921a3dfc60eb7677795797e182b711906060015b60405180910390a2505050505050565b61046d610aee565b6001600160a01b038083166000908152600260209081526040918290208251606081018452815460ff81168252610100900490941691840182905260010154918301919091521580156104c257506040810151155b156104eb5760405163f5cd4cf960e01b81526001600160a01b0384166004820152602401610318565b8161050c5760405163392d047160e11b815260048101839052602401610318565b8181604001511415610550576040808201519051637867df7360e01b81526001600160a01b0385166004820152602481019190915260448101839052606401610318565b604080820151602080840180516001600160a01b038089166000908152600290945294909220600181018790559051929391929091161561059b578054610100600160a81b03191681555b60408051848152602081018790526001600160a01b0384811692820192909252908716907f0a6670f7d25e56220be90c82809314a299e299a37df1b6ebdab26dc209687e4f90606001610455565b6105f1610aee565b6001600160a01b038082166000908152600260209081526040918290208251606081018452815460ff811682526101009004909416918401829052600101549183019190915215801561064657506040810151155b1561066f5760405163f5cd4cf960e01b81526001600160a01b0383166004820152602401610318565b6001600160a01b038216600081815260026020908152604080832080546001600160a81b0319168155600101929092558351908401518483015192517f0122b45951145968c631f99407b359c4f3c62f53fe9907e673827cc86d14c29a9361028a93929160ff9390931683526001600160a01b03919091166020830152604082015260600190565b6106ff610aee565b6107096000610dbc565b565b60015433906001600160a01b031681146107795760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610318565b61078281610dbc565b50565b60408051606081018252600080825260208201819052918101919091526001600160a01b038083166000908152600260209081526040918290208251606081018452815460ff81168252610100900490941691840182905260010154918301919091521580156107f757506040810151155b156108205760405163f5cd4cf960e01b81526001600160a01b0384166004820152602401610318565b92915050565b61082e610aee565b600180546001600160a01b0383166001600160a01b0319909116811790915561085f6000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b0380821660009081526002602090815260408083208151606081018352815460ff81168252610100900490951692850183905260010154908401529091901580156108eb57506040810151155b156109145760405163f5cd4cf960e01b81526001600160a01b0384166004820152602401610318565b604081015115610928576040015192915050565b6000816020015190506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109959190610f08565b90506000826001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156109d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fb9190610f3f565b50505091505060008113610a155750600095945050505050565b83518190602490610a269085610fa5565b60ff1611610a6b578451600090610a3e856024610fca565b610a489190610fca565b610a5390600a6110d1565b9050610a5f81836110e0565b98975050505050505050565b8451600090602490610a7d9086610fa5565b610a879190610fca565b610a9290600a6110d1565b9050610a5f81836110ff565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146107095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610318565b60208101516001600160a01b0316610b735760405163d589a57960e01b815260040160405180910390fd5b60408101516001600160a01b0316158015610b9057506060810151155b15610bcc5760408082015160608301519151635e8e0e7f60e01b81526001600160a01b0390911660048201526024810191909152604401610318565b60408101516001600160a01b031615801590610beb5750606081015115155b15610c275760408082015160608301519151635e8e0e7f60e01b81526001600160a01b0390911660048201526024810191909152604401610318565b6020808201516001600160a01b039081166000908152600283526040908190208151606081018352815460ff811682526101009004909316938301849052600101549082015290151580610c7e5750604081015115155b15610cad576020820151604051637e8b46c960e01b81526001600160a01b039091166004820152602401610318565b60408201516001600160a01b031615610cd257610cd282604001518360000151610cd6565b5050565b610ce260066024610fca565b60ff168160ff161115610d0d5760405163a0b356c360e01b815260ff82166004820152602401610318565b60008290506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d769190610f08565b90506048610d848483610fa5565b60ff161115610db657610d978382610fa5565b60405163a849c7df60e01b815260ff9091166004820152602401610318565b50505050565b600180546001600160a01b031916905561078281610a9e565b60ff8116811461078257600080fd5b80356001600160a01b0381168114610dfb57600080fd5b919050565b600060808284031215610e1257600080fd5b6040516080810181811067ffffffffffffffff82111715610e4357634e487b7160e01b600052604160045260246000fd5b6040528235610e5181610dd5565b8152610e5f60208401610de4565b6020820152610e7060408401610de4565b6040820152606083013560608201528091505092915050565b60008060408385031215610e9c57600080fd5b610ea583610de4565b9150610eb360208401610de4565b90509250929050565b60008060408385031215610ecf57600080fd5b610ed883610de4565b946020939093013593505050565b600060208284031215610ef857600080fd5b610f0182610de4565b9392505050565b600060208284031215610f1a57600080fd5b8151610f0181610dd5565b805169ffffffffffffffffffff81168114610dfb57600080fd5b600080600080600060a08688031215610f5757600080fd5b610f6086610f25565b9450602086015193506040860151925060608601519150610f8360808701610f25565b90509295509295909350565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168060ff03821115610fc257610fc2610f8f565b019392505050565b600060ff821660ff841680821015610fe457610fe4610f8f565b90039392505050565b600181815b8085111561102857816000190482111561100e5761100e610f8f565b8085161561101b57918102915b93841c9390800290610ff2565b509250929050565b60008261103f57506001610820565b8161104c57506000610820565b8160018114611062576002811461106c57611088565b6001915050610820565b60ff84111561107d5761107d610f8f565b50506001821b610820565b5060208310610133831016604e8410600b84101617156110ab575081810a610820565b6110b58383610fed565b80600019048211156110c9576110c9610f8f565b029392505050565b6000610f0160ff841683611030565b60008160001904831182151516156110fa576110fa610f8f565b500290565b60008261111c57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220f950b61f191c9bbd61b66098a7306d2d5e53b9e12e2fd9bb9e37722c1c018a0764736f6c634300080a003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000