1 tx
69 calls
constructor
constructor(address ownerAddr, address referenceAssetAddr)
functions
convertToShares
viewfunction convertToShares(address lpTokenAddress, address assetInAddr, address vaultAddr, uint256 assetInAmount, uint256 externalAssets) view returns (uint256 shares, uint256 amountInReferenceTokens)
fromInputAssetToReferenceAsset
viewfunction fromInputAssetToReferenceAsset(address assetAddr, uint256 amount) view returns (uint256)
getOracleAddress
viewfunction getOracleAddress(address assetAddr) view returns (address)
getTotalAssetsValuation
viewfunction getTotalAssetsValuation(uint256 externalAssets) view returns (uint256)
getWhitelistedAssets
viewfunction getWhitelistedAssets() view returns (address[])
isWhitelisted
viewfunction isWhitelisted(address assetAddr) view returns (bool)
maxOracleUpdatesDuration
viewfunction maxOracleUpdatesDuration(address) view returns (uint256)
owner
viewfunction owner() view returns (address)
REFERENCE_ASSET_DECIMALS
viewfunction REFERENCE_ASSET_DECIMALS() view returns (uint8)
REFERENCE_ASSET
viewfunction REFERENCE_ASSET() view returns (address)
enableAsset
nonpayablefunction enableAsset(address assetAddr, address oracleAddr, uint256 newOracleDuration)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateOracleLagDuration
nonpayablefunction updateOracleLagDuration(uint256 newMaxOracleUpdatesDuration, address assetAddr)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
AssetAlreadyEnabled
error AssetAlreadyEnabled()
InvalidAddress
error InvalidAddress()
InvalidDecimalPlaces
error InvalidDecimalPlaces()
InvalidOraclePrice
error InvalidOraclePrice()
InvalidOracleTimestamp
error InvalidOracleTimestamp()
InvalidTimePeriod
error InvalidTimePeriod()
OwnerAddressRequired
error OwnerAddressRequired()
OwnerOnly
error OwnerOnly()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
ReferenceAssetNotPermitted
error ReferenceAssetNotPermitted()
RoundNotComplete
error RoundNotComplete()
StalePrice
error StalePrice()
WhitelistLimitReached
error WhitelistLimitReached()
ZeroAddressError
error ZeroAddressError()
creation bytecode
0x60c060405234801561000f575f80fd5b5060405161148d38038061148d83398101604081905261002e91610129565b6001600160a01b0382166100555760405163156fee5160e31b815260040160405180910390fd5b6001600160a01b03811661007c5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0384811691909117909155811660808190526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa1580156100dc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610100919061015a565b60ff1660a052506101819050565b80516001600160a01b0381168114610124575f80fd5b919050565b5f806040838503121561013a575f80fd5b6101438361010e565b91506101516020840161010e565b90509250929050565b5f6020828403121561016a575f80fd5b815160ff8116811461017a575f80fd5b9392505050565b60805160a0516112ad6101e05f395f818160d4015281816109b4015281816109e801528181610a8801528181610ab501528181610af30152610b5601525f818161025b0152818161037b015281816105310152610bf701526112ad5ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80638da5cb5b11610088578063c8d2df5611610063578063c8d2df5614610230578063d861811514610243578063ded4a6fe14610256578063f2fde38b1461027d575f80fd5b80638da5cb5b146101f7578063a22484d914610208578063ad0780211461021d575f80fd5b8063304cef9d146100cf5780633af32abf1461010d57806348ad6f5c1461014a578063544821731461015f57806356f1b546146101a2578063803bc5e2146101ca575b5f80fd5b6100f67f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020015b60405180910390f35b61013a61011b366004610ecb565b6001600160a01b039081165f9081526003602052604090205416151590565b6040519015158152602001610104565b61015d610158366004610ee4565b610290565b005b61018a61016d366004610ecb565b6001600160a01b039081165f908152600360205260409020541690565b6040516001600160a01b039091168152602001610104565b6101b56101b0366004610f0e565b610301565b60408051928352602083019190915201610104565b6101e96101d8366004610ecb565b60046020525f908152604090205481565b604051908152602001610104565b6001546001600160a01b031661018a565b6102106103fc565b6040516101049190610f5f565b6101e961022b366004610faa565b61045c565b6101e961023e366004610fc1565b61046d565b61015d610251366004610fe9565b61047f565b61018a7f000000000000000000000000000000000000000000000000000000000000000081565b61015d61028b366004610ecb565b610797565b60025f54036102b257604051633ee5aeb560e01b815260040160405180910390fd5b60025f556001546001600160a01b031633146102e157604051630b2db9b760e31b815260040160405180910390fd5b6001600160a01b03165f9081526004602052604081209190915560019055565b5f80600184101561031657505f9050806103f2565b5f876001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103779190611023565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316146103c1576103bc87866107f8565b6103c3565b845b91505f6103d08786610bca565b9050600182106103eb576103e68383835f610d35565b6103ed565b825b935050505b9550959350505050565b6060600280548060200260200160405190810160405280929190818152602001828054801561045257602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610434575b5050505050905090565b5f6104673383610bca565b92915050565b5f61047883836107f8565b9392505050565b60025f54036104a157604051633ee5aeb560e01b815260040160405180910390fd5b60025f556001546001600160a01b031633146104d057604051630b2db9b760e31b815260040160405180910390fd5b6001600160a01b03821615806104ed57506001600160a01b038316155b1561050b57604051633efa09af60e01b815260040160405180910390fd5b600254601e101561052f5760405163be8f94e960e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603610581576040516319fc848960e21b815260040160405180910390fd5b6001600160a01b038381165f9081526003602052604090206001015416156105bc57604051635405c10760e11b815260040160405180910390fd5b600280546001810182555f9182527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0386169081179091556040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa158015610641573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610665919061103a565b905060068160ff16101561068c57604051630da74dab60e01b815260040160405180910390fd5b5f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ed919061103a565b604080516080810182526001600160a01b039687168152968616602080890182815260ff9485168a850190815296851660608b019081525f938452600383528484209a518b54908b166001600160a01b0319909116178b55905160019a8b018054985192518716600160a81b0260ff60a81b1993909716600160a01b026001600160a81b031990991691909a16179690961795909516929092179095556004909252509182205555565b60025f54036107b957604051633ee5aeb560e01b815260040160405180910390fd5b60025f556001546001600160a01b031633146107e857604051630b2db9b760e31b815260040160405180910390fd5b6107f181610d90565b5060015f55565b6001600160a01b038083165f9081526003602052604080822080546001909101548251633fabe5a360e21b815292519394919091169260ff600160a81b8304811693600160a01b90930416918591829182918291889163feaf968c9160048082019260a0929091908290030181865afa158015610877573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089b9190611073565b94509450509350935060018312156108c55760405162fc7cad60e51b815260040160405180910390fd5b8369ffffffffffffffffffff168169ffffffffffffffffffff1610156108fe57604051630cd5fa0760e11b815260040160405180910390fd5b600182101561091f5760405162ace4c560e51b815260040160405180910390fd5b42821115610940576040516352c4db3960e11b815260040160405180910390fd5b6001600160a01b038a165f9081526004602052604090205461096283426110d5565b1115610981576040516329fc802760e11b815260040160405180910390fd5b5f8660ff168660ff16116109965760016109ab565b6109a087876110e8565b6109ab90600a6111e4565b90505f8660ff167f000000000000000000000000000000000000000000000000000000000000000060ff16116109e2576001610a17565b610a0c877f00000000000000000000000000000000000000000000000000000000000000006110e8565b610a1790600a6111e4565b90505f610a24838d6111f2565b90505f610a328960126110e8565b610a3d90600a6111e4565b90505f8782610a4d8c600a6111e4565b610a5791906111f2565b610a61919061121d565b90505f8285610a7086856111f2565b610a7a91906111f2565b610a84919061121d565b90507f000000000000000000000000000000000000000000000000000000000000000060ff168c60ff1603610b54577f000000000000000000000000000000000000000000000000000000000000000060ff16600603610aef57610ae8868261121d565b9050610b54565b60117f000000000000000000000000000000000000000000000000000000000000000060ff161115610b5457889150670de0b6b3a76400008386610b3387866111f2565b610b3d91906111f2565b610b47919061121d565b610b51919061121d565b90505b7f000000000000000000000000000000000000000000000000000000000000000060ff16600603610bb7578b60ff16601203610b9e57610b97629896808261121d565b9050610bb7565b8b60ff16600803610bb757610bb460648261121d565b90505b9f9e505050505050505050505050505050565b6002546040516370a0823160e01b81526001600160a01b0384811660048301525f928392839283929183917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610c3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c609190611023565b610c6a908861123c565b90505f5b82811015610d295760028181548110610c8957610c8961124f565b5f918252602090912001546040516370a0823160e01b81526001600160a01b038b81166004830152909116965086906370a0823190602401602060405180830381865afa158015610cdc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d009190611023565b94508415610d2157610d1286866107f8565b9350610d1e848361123c565b91505b600101610c6e565b50979650505050505050565b5f80610d42868686610e08565b90506001836002811115610d5857610d58611263565b148015610d7457505f8480610d6f57610d6f611209565b868809115b15610d8757610d8460018261123c565b90505b95945050505050565b6001600160a01b038116610db75760405163156fee5160e31b815260040160405180910390fd5b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f80805f19858709858702925082811083820303915050805f03610e3f57838281610e3557610e35611209565b0492505050610478565b808411610e4a575f80fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b80356001600160a01b0381168114610ec6575f80fd5b919050565b5f60208284031215610edb575f80fd5b61047882610eb0565b5f8060408385031215610ef5575f80fd5b82359150610f0560208401610eb0565b90509250929050565b5f805f805f60a08688031215610f22575f80fd5b610f2b86610eb0565b9450610f3960208701610eb0565b9350610f4760408701610eb0565b94979396509394606081013594506080013592915050565b602080825282518282018190525f918401906040840190835b81811015610f9f5783516001600160a01b0316835260209384019390920191600101610f78565b509095945050505050565b5f60208284031215610fba575f80fd5b5035919050565b5f8060408385031215610fd2575f80fd5b610fdb83610eb0565b946020939093013593505050565b5f805f60608486031215610ffb575f80fd5b61100484610eb0565b925061101260208501610eb0565b929592945050506040919091013590565b5f60208284031215611033575f80fd5b5051919050565b5f6020828403121561104a575f80fd5b815160ff81168114610478575f80fd5b805169ffffffffffffffffffff81168114610ec6575f80fd5b5f805f805f60a08688031215611087575f80fd5b6110908661105a565b602087015160408801516060890151929750909550935091506110b56080870161105a565b90509295509295909350565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610467576104676110c1565b60ff8281168282160390811115610467576104676110c1565b6001815b600184111561113c57808504811115611120576111206110c1565b600184161561112e57908102905b60019390931c928002611105565b935093915050565b5f8261115257506001610467565b8161115e57505f610467565b8160018114611174576002811461117e5761119a565b6001915050610467565b60ff84111561118f5761118f6110c1565b50506001821b610467565b5060208310610133831016604e8410600b84101617156111bd575081810a610467565b6111c95f198484611101565b805f19048211156111dc576111dc6110c1565b029392505050565b5f61047860ff841683611144565b8082028115828204841417610467576104676110c1565b634e487b7160e01b5f52601260045260245ffd5b5f8261123757634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610467576104676110c1565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52602160045260245ffdfea2646970667358221220828b53a03d4a03ecd583720a934232650f47dcb6e14c7ba757d06874c9357a2d64736f6c634300081a0033000000000000000000000000c573100a879f480c9ae5290f865a1e354f4ba67f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48