14 txs
117 calls
constructor
constructor(address admin)
functions
AGGREGATOR_V3_ORACLE_SETTER_ROLE
viewfunction AGGREGATOR_V3_ORACLE_SETTER_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getAssetPrice
viewfunction getAssetPrice(address token) view returns (uint256 price)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
HARDCODED_SETTER_ROLE
viewfunction HARDCODED_SETTER_ROLE() view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
RWA_ORACLE_SETTER_ROLE
viewfunction RWA_ORACLE_SETTER_ROLE() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokenToAggregatorV3Oracle
viewfunction tokenToAggregatorV3Oracle(address) view returns (address oracle, uint256 maxAggregatorV3OracleTimeDelay, uint256 normalizer)
tokenToHardcodedPrice
viewfunction tokenToHardcodedPrice(address) view returns (uint256)
tokenToOracleType
viewfunction tokenToOracleType(address) view returns (uint8)
tokenToRWAOracle
viewfunction tokenToRWAOracle(address) view returns (address)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setHardcodedPrice
nonpayablefunction setHardcodedPrice(address token, uint256 price)
setTokenToAggregatorV3Oracle
nonpayablefunction setTokenToAggregatorV3Oracle(address token, address newAggregatorV3Oracle, uint256 maxAggregatorV3OracleTimeDelay)
setTokenToOracleType
nonpayablefunction setTokenToOracleType(address token, uint8 oracleType)
setTokenToRWAOracle
nonpayablefunction setTokenToRWAOracle(address token, address rwaOracle)
events
AggregatorV3OracleSet
event AggregatorV3OracleSet(address indexed token, address previousOracle, address newOracle, uint256 maxAggregatorV3OracleTimeDelay)
HardcodedPriceSet
event HardcodedPriceSet(address indexed token, uint256 previousPrice, uint256 newPrice)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TokenToOracleTypeSet
event TokenToOracleTypeSet(address indexed token, uint8 oracleType)
TokenToRWAOracleSet
event TokenToRWAOracleSet(address indexed token, address previousRWAOracle, address newRWAOracle)
errors
AggregatorV3OraclePriceStale
error AggregatorV3OraclePriceStale()
CorruptedAggregatorV3Response
error CorruptedAggregatorV3Response()
InvalidOracleType
error InvalidOracleType(uint8 expectedOracleType, uint8 actualOracleType)
InvalidRWAOracle
error InvalidRWAOracle()
OracleCantBeZeroAddress
error OracleCantBeZeroAddress()
TokenAddressCantBeZero
error TokenAddressCantBeZero()
TokenNotSupported
error TokenNotSupported()
ZeroPrice
error ZeroPrice()
creation bytecode
0x60806040523480156200001157600080fd5b5060405162001b3738038062001b37833981016040819052620000349162000222565b62000041600082620000cc565b6200006d7ff267f266e5d4d3eb4b24d29fdcfe212142c586de9479a7432f3d8dc2ee1d3f4e82620000cc565b620000997f32d33fe1a19b0eecce25fc3b93f6efd8ff4fd3e6405b93c86e58c4afb523e2e582620000cc565b620000c57fe039fa7e94de75e34fbcddf922edf331d9154b032768f7c6b55dcceade2b6e6382620000cc565b5062000254565b620000e382826200010f60201b62000b5e1760201c565b60008281526001602090815260409091206200010a91839062000be2620001b0821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620001ac576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200016b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620001c7836001600160a01b038416620001d0565b90505b92915050565b60008181526001830160205260408120546200021957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001ca565b506000620001ca565b6000602082840312156200023557600080fd5b81516001600160a01b03811681146200024d57600080fd5b9392505050565b6118d380620002646000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80635e12f5ed116100b857806391d148541161007c57806391d1485414610357578063a217fddf1461036a578063b3596f0714610372578063ca15c87314610385578063d547741f14610398578063eca6f018146103ab57600080fd5b80635e12f5ed146102b8578063782884b2146102cb5780638c34121d146102f25780638ea5c49c146103195780639010d07c1461032c57600080fd5b8063248a9ca3116100ff578063248a9ca31461021f5780632f2ff15d1461024257806332b457a414610255578063358c23bf1461028557806336568abe146102a557600080fd5b806301ffc9a71461013c578063107ab6261461016457806312c93218146101795780631af3b01c1461018c5780631cfea52b146101ea575b600080fd5b61014f61014a366004611371565b6103d4565b60405190151581526020015b60405180910390f35b6101776101723660046113b7565b6103ff565b005b6101776101873660046113e1565b610525565b6101c561019a36600461141c565b6005602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b03909416845260208401929092529082015260600161015b565b6102117ff267f266e5d4d3eb4b24d29fdcfe212142c586de9479a7432f3d8dc2ee1d3f4e81565b60405190815260200161015b565b61021161022d366004611437565b60009081526020819052604090206001015490565b610177610250366004611450565b610686565b61027861026336600461141c565b60026020526000908152604090205460ff1681565b60405161015b91906114b4565b61021161029336600461141c565b60036020526000908152604090205481565b6101776102b3366004611450565b6106b1565b6101776102c63660046114c2565b61072f565b6102117f32d33fe1a19b0eecce25fc3b93f6efd8ff4fd3e6405b93c86e58c4afb523e2e581565b6102117fe039fa7e94de75e34fbcddf922edf331d9154b032768f7c6b55dcceade2b6e6381565b6101776103273660046114ec565b61090d565b61033f61033a366004611528565b6109f9565b6040516001600160a01b03909116815260200161015b565b61014f610365366004611450565b610a18565b610211600081565b61021161038036600461141c565b610a41565b610211610393366004611437565b610b21565b6101776103a6366004611450565b610b38565b61033f6103b936600461141c565b6004602052600090815260409020546001600160a01b031681565b60006001600160e01b03198216635a05180f60e01b14806103f957506103f982610bf7565b92915050565b7ff267f266e5d4d3eb4b24d29fdcfe212142c586de9479a7432f3d8dc2ee1d3f4e61042a8133610c2c565b60016001600160a01b03841660009081526002602052604090205460ff1660038111156104595761045961147c565b146104a3576001600160a01b0383166000908152600260205260409081902054905163691c887f60e01b815261049a9160019160ff9091169060040161154a565b60405180910390fd5b816000036104c457604051634dfba02360e01b815260040160405180910390fd5b6001600160a01b038316600081815260036020908152604091829020805490869055825181815291820186905292917fcaf5d44e2d7cd30d9cc4509d4fcdcec3d5a0559ed13bed4011a738a0860b558d91015b60405180910390a250505050565b60006105318133610c2c565b6001600160a01b03831660009081526002602052604090205460ff1660018160038111156105615761056161147c565b03610584576001600160a01b038416600090815260036020526040812055610613565b60028160038111156105985761059861147c565b036105c8576001600160a01b038416600090815260046020526040902080546001600160a01b0319169055610613565b60038160038111156105dc576105dc61147c565b03610613576001600160a01b038416600090815260056020526040812080546001600160a01b031916815560018101829055600201555b6001600160a01b0384166000908152600260205260409020805484919060ff191660018360038111156106485761064861147c565b0217905550836001600160a01b03167fc39bcea0b908e2305acc101ed05932106d8f946a9ef1b624e7fd82822b6aa94e8460405161051791906114b4565b6000828152602081905260409020600101546106a28133610c2c565b6106ac8383610c90565b505050565b6001600160a01b03811633146107215760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161049a565b61072b8282610cb2565b5050565b7f32d33fe1a19b0eecce25fc3b93f6efd8ff4fd3e6405b93c86e58c4afb523e2e561075a8133610c2c565b6001600160a01b0383166107815760405163885ce5f160e01b815260040160405180910390fd5b6001600160a01b0382166107a8576040516304f11ee960e21b815260040160405180910390fd5b60026001600160a01b03841660009081526002602052604090205460ff1660038111156107d7576107d761147c565b14610815576001600160a01b03831660009081526002602081905260409182902054915163691c887f60e01b815261049a9260ff169060040161154a565b6000826001600160a01b03166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610855573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108799190611565565b90508060000361089c5760405163d56ff8d160e01b815260040160405180910390fd5b6001600160a01b0384811660008181526004602090815260409182902080548886166001600160a01b0319821681179092558351951680865291850152927f97f52c72cd6902574f09daf34308587b6d807cde89bea2be55668a8c41f51ec991015b60405180910390a25050505050565b7fe039fa7e94de75e34fbcddf922edf331d9154b032768f7c6b55dcceade2b6e636109388133610c2c565b6001600160a01b03841661095f5760405163885ce5f160e01b815260040160405180910390fd5b6001600160a01b038316610986576040516304f11ee960e21b815260040160405180910390fd5b6001600160a01b03808516600090815260056020526040902054166109ac858585610cd4565b604080516001600160a01b0383811682528681166020830152918101859052908616907f257121d578783b8ab992bceb59a4aac85462c600320ba706b3bae5ccc6b3dd8f906060016108fe565b6000828152600160205260408120610a119083610e06565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6001600160a01b03811660009081526002602052604081205460ff166001816003811115610a7157610a7161147c565b03610a96576001600160a01b0383166000908152600360205260409020549150610afa565b6002816003811115610aaa57610aaa61147c565b03610abf57610ab883610e12565b9150610afa565b6003816003811115610ad357610ad361147c565b03610ae157610ab883610e8e565b604051633dd1b30560e01b815260040160405180910390fd5b81600003610b1b57604051634dfba02360e01b815260040160405180910390fd5b50919050565b60008181526001602052604081206103f990610fe5565b600082815260208190526040902060010154610b548133610c2c565b6106ac8383610cb2565b610b688282610a18565b61072b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610b9e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610a11836001600160a01b038416610fef565b60006001600160e01b03198216637965db0b60e01b14806103f957506301ffc9a760e01b6001600160e01b03198316146103f9565b610c368282610a18565b61072b57610c4e816001600160a01b0316601461103e565b610c5983602061103e565b604051602001610c6a9291906115a2565b60408051601f198184030181529082905262461bcd60e51b825261049a91600401611617565b610c9a8282610b5e565b60008281526001602052604090206106ac9082610be2565b610cbc82826111da565b60008281526001602052604090206106ac908261123f565b60036001600160a01b03841660009081526002602052604090205460ff166003811115610d0357610d0361147c565b14610d44576001600160a01b0383166000908152600260205260409081902054905163691c887f60e01b815261049a9160039160ff9091169060040161154a565b6001600160a01b0383811660009081526005602090815260409182902080546001600160a01b0319169386169384178155600101849055815163313ce56760e01b8152915163313ce5679260048082019392918290030181865afa158015610db0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd4919061164a565b610de29060ff16600a611767565b6001600160a01b039093166000908152600560205260409020600201929092555050565b6000610a118383611254565b6001600160a01b038082166000908152600460208181526040808420548151634c6afee560e11b815291519495169384936398d5fdca9383820193909291908290030181865afa158015610e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a119190611565565b6001600160a01b0380821660009081526005602052604080822080548251633fabe5a360e21b8152925193949193859384938493849391169163feaf968c9160048083019260a09291908290030181865afa158015610ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f15919061178d565b9450945050935093506000831280610f4457508069ffffffffffffffffffff168469ffffffffffffffffffff16105b80610f59575069ffffffffffffffffffff8416155b80610f62575081155b80610f6c57504282115b15610f8a57604051631eacd43160e31b815260040160405180910390fd5b6001850154610f9990426117dd565b821015610fb957604051633714bd4f60e01b815260040160405180910390fd5b6002850154610fd084670de0b6b3a76400006117f0565b610fda919061180f565b979650505050505050565b60006103f9825490565b6000818152600183016020526040812054611036575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556103f9565b5060006103f9565b6060600061104d8360026117f0565b611058906002611831565b67ffffffffffffffff81111561107057611070611844565b6040519080825280601f01601f19166020018201604052801561109a576020820181803683370190505b509050600360fc1b816000815181106110b5576110b561185a565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106110e4576110e461185a565b60200101906001600160f81b031916908160001a90535060006111088460026117f0565b611113906001611831565b90505b600181111561118b576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106111475761114761185a565b1a60f81b82828151811061115d5761115d61185a565b60200101906001600160f81b031916908160001a90535060049490941c9361118481611870565b9050611116565b508315610a115760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161049a565b6111e48282610a18565b1561072b576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610a11836001600160a01b03841661127e565b600082600001828154811061126b5761126b61185a565b9060005260206000200154905092915050565b600081815260018301602052604081205480156113675760006112a26001836117dd565b85549091506000906112b6906001906117dd565b905081811461131b5760008660000182815481106112d6576112d661185a565b90600052602060002001549050808760000184815481106112f9576112f961185a565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061132c5761132c611887565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506103f9565b60009150506103f9565b60006020828403121561138357600080fd5b81356001600160e01b031981168114610a1157600080fd5b80356001600160a01b03811681146113b257600080fd5b919050565b600080604083850312156113ca57600080fd5b6113d38361139b565b946020939093013593505050565b600080604083850312156113f457600080fd5b6113fd8361139b565b915060208301356004811061141157600080fd5b809150509250929050565b60006020828403121561142e57600080fd5b610a118261139b565b60006020828403121561144957600080fd5b5035919050565b6000806040838503121561146357600080fd5b823591506114736020840161139b565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b600481106114b057634e487b7160e01b600052602160045260246000fd5b9052565b602081016103f98284611492565b600080604083850312156114d557600080fd5b6114de8361139b565b91506114736020840161139b565b60008060006060848603121561150157600080fd5b61150a8461139b565b92506115186020850161139b565b9150604084013590509250925092565b6000806040838503121561153b57600080fd5b50508035926020909101359150565b604081016115588285611492565b610a116020830184611492565b60006020828403121561157757600080fd5b5051919050565b60005b83811015611599578181015183820152602001611581565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516115da81601785016020880161157e565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161160b81602884016020880161157e565b01602801949350505050565b602081526000825180602084015261163681604085016020870161157e565b601f01601f19169190910160400192915050565b60006020828403121561165c57600080fd5b815160ff81168114610a1157600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116be5781600019048211156116a4576116a461166d565b808516156116b157918102915b93841c9390800290611688565b509250929050565b6000826116d5575060016103f9565b816116e2575060006103f9565b81600181146116f857600281146117025761171e565b60019150506103f9565b60ff8411156117135761171361166d565b50506001821b6103f9565b5060208310610133831016604e8410600b8410161715611741575081810a6103f9565b61174b8383611683565b806000190482111561175f5761175f61166d565b029392505050565b6000610a1183836116c6565b805169ffffffffffffffffffff811681146113b257600080fd5b600080600080600060a086880312156117a557600080fd5b6117ae86611773565b94506020860151935060408601519250606086015191506117d160808701611773565b90509295509295909350565b818103818111156103f9576103f961166d565b600081600019048311821515161561180a5761180a61166d565b500290565b60008261182c57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156103f9576103f961166d565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60008161187f5761187f61166d565b506000190190565b634e487b7160e01b600052603160045260246000fdfea26469706673582212204193970e73cd41af8cb43878765629bbab6230daef672bc9a7589c90799e47e164736f6c63430008100033000000000000000000000000094bee6b74ec29d32869ae3140a659cac0482882