0 txs
133 calls
constructor
constructor()
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
afiToken
viewfunction afiToken() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
maxRedeemCap
viewfunction maxRedeemCap(address) view returns (uint256)
minSharesInVaultToken
viewfunction minSharesInVaultToken(address) view returns (uint256)
OPERATOR_ROLE
viewfunction OPERATOR_ROLE() view returns (bytes32)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
treasury
viewfunction treasury() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
whitelistedAddresses
viewfunction whitelistedAddresses(address) view returns (bool)
yield
viewfunction yield() view returns (address)
execute
nonpayablefunction execute(address[] targets, bytes[] data) returns (bytes[] results)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address admin, address _yield, address _executor)
manageAssetAndShares
nonpayablefunction manageAssetAndShares(address _to, tuple _order)
redeemFor
nonpayablefunction redeemFor(address _afiUSD, address _user)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setManagerAndYield
nonpayablefunction setManagerAndYield(address _yield, address _afiToken)
setMaxRedeemCap
nonpayablefunction setMaxRedeemCap(address _afiUSD, uint256 _maxRedeemCap)
setMinSharesInVaultToken
nonpayablefunction setMinSharesInVaultToken(address _afiUSD, uint256 _minShares)
setTreasury
nonpayablefunction setTreasury(address _treasury)
setWhitelistedAddresses
nonpayablefunction setWhitelistedAddresses(address[] _wallets, bool[] _statuses)
transferToVault
nonpayablefunction transferToVault(address token, uint256 amount)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AfiTokenSet
event AfiTokenSet(address indexed admin, address indexed afiToken)
AssetAndShareManaged
event AssetAndShareManaged(address indexed caller, address indexed vaultToken, uint256 shares, uint256 assetAmount, bool updateAsset, bool isMint)
AssetsWithdrawn
event AssetsWithdrawn(address indexed caller, address indexed recipient, address indexed asset, uint256 amount)
BatchExecuted
event BatchExecuted(address indexed operator, address[] targets, bytes[] data)
Initialized
event Initialized(uint64 version)
ManagerSet
event ManagerSet(address indexed admin, address indexed manager)
MaxRedeemCapSet
event MaxRedeemCapSet(address indexed admin, address indexed afiUSD, uint256 maxRedeemCap)
MinSharesInVaultTokenSet
event MinSharesInVaultTokenSet(address indexed admin, address indexed afiUSD, uint256 minShares)
RedemptionExecuted
event RedemptionExecuted(address indexed operator, address indexed afiUSD, address indexed user)
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)
TreasurySet
event TreasurySet(address indexed admin, address indexed treasury)
Upgraded
event Upgraded(address indexed implementation)
WhitelistUpdated
event WhitelistUpdated(address indexed admin, address indexed wallet, bool status)
YieldSet
event YieldSet(address indexed admin, address indexed yield)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidAddress
error InvalidAddress()
InvalidInitialization
error InvalidInitialization()
InvalidMinShares
error InvalidMinShares()
LengthMismatch
error LengthMismatch()
NotInitializing
error NotInitializing()
NotWhitelisted
error NotWhitelisted()
OnlyYieldContract
error OnlyYieldContract()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a080604052346100c257306080525f516020611dee5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051611d2790816100c7823960805181818161064301526110700152f35b6001600160401b0319166001600160401b039081175f516020611dee5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146101d457806306c933d8146101cf578063150d52ec146101ca5780632143fb33146101c5578063248a9ca3146101c057806328593984146101bb5780632f2ff15d146101b657806336568abe146101b15780634d537b69146101ac5780634f1ef286146101a757806352d1902d146101a25780635cb62c211461019d57806361d027b31461019857806375b238fc1461019357806389a71faa1461018e57806391d1485414610189578063a217fddf14610184578063ad3cb1cc1461017f578063c0c53b8b1461017a578063c8d18a4514610175578063cad66dde14610170578063d542e4c71461016b578063d547741f14610166578063e432633914610161578063eb809ec41461015c578063f0f4426014610157578063f5b541a6146101525763f8c511a31461014d575f80fd5b611031565b610ff7565b610f8a565b610f4f565b610e95565b610e48565b610dca565b610c7c565b610b3b565b6108ca565b61087f565b610841565b6107e3565b610733565b6106f9565b6106d2565b610697565b610631565b6105b7565b6104d9565b610491565b61043d565b610415565b6103cc565b61032a565b61027f565b61023f565b3461022a57602036600319011261022a5760043563ffffffff60e01b811680910361022a57602090637965db0b60e01b8114908115610219575b506040519015158152f35b6301ffc9a760e01b1490505f61020e565b5f80fd5b6001600160a01b0381160361022a57565b3461022a57602036600319011261022a5760043561025c8161022e565b60018060a01b03165f526003602052602060ff60405f2054166040519015158152f35b3461022a57604036600319011261022a5760043561029c8161022e565b602435906102a8611659565b81156102f35760018060a01b031690815f5260046020528060405f20556040519081527fe49c33e0a9b6ae0a06b6124720beee1ede00c63a2bb765b352b322a21b587e3a60203392a3005b631879ee5960e11b5f5260045ffd5b604090600319011261022a5760043561031a8161022e565b906024356103278161022e565b90565b3461022a5761033836610302565b906103416116c8565b6001600160a01b0316803b1561022a5760405163a9bbf7f160e01b81526001600160a01b03909216600483018190525f92909190838160248183865af180156103c7576103b2575b50337f9201f29db9e79de130a96417fd2794fda538c2374e551baeb94573883ca8f6148480a480f35b6103bf9193505f9061057b565b5f915f610389565b611059565b3461022a57602036600319011261022a5760206104036004355f525f516020611cb25f395f51905f52602052600160405f20015490565b604051908152f35b5f91031261022a57565b3461022a575f36600319011261022a576001546040516001600160a01b039091168152602090f35b3461022a57604036600319011261022a5761048f6024356004356104608261022e565b61048a610485825f525f516020611cb25f395f51905f52602052600160405f20015490565b611786565b6119ea565b005b3461022a57604036600319011261022a576004356024356104b18161022e565b336001600160a01b038216036104ca5761048f91611a7f565b63334bd91960e11b5f5260045ffd5b3461022a57604036600319011261022a576004356104f68161022e565b60243590610502611659565b60018060a01b031690815f5260056020528060405f20556040519081527f9b5f7fd7d8f1ef48cef00c8a6e22104d55bcdcf2e7bde42fa59dc04660296bb860203392a3005b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761057657604052565b610547565b90601f801991011681019081106001600160401b0382111761057657604052565b6001600160401b03811161057657601f01601f191660200190565b604036600319011261022a576004356105cf8161022e565b602435906001600160401b03821161022a573660238301121561022a578160040135906105fb8261059c565b91610609604051938461057b565b808352366024828601011161022a576020815f92602461048f97018387013784010152611064565b3461022a575f36600319011261022a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036106885760206040515f516020611c925f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b3461022a57602036600319011261022a576004356106b48161022e565b60018060a01b03165f526004602052602060405f2054604051908152f35b3461022a575f36600319011261022a575f546040516001600160a01b039091168152602090f35b3461022a575f36600319011261022a5760206040517fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758152f35b3461022a57604036600319011261022a576004356107508161022e565b6024359061075c6116c8565b60025460405163a9059cbb60e01b5f9081526001600160a01b0392831660045260249490945291169160209060448180865af160015f51148116156107c4575b604091909152156107a957005b635274afe760e01b5f526001600160a01b031660045260245ffd5b60018115166107da573d15833b1515161661079c565b503d5f823e3d90fd5b3461022a57604036600319011261022a57602060ff61083560243560043561080a8261022e565b5f525f516020611cb25f395f51905f52845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461022a575f36600319011261022a5760206040515f8152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b3461022a575f36600319011261022a576108c66040516108a060408261057b565b60058152640352e302e360dc1b602082015260405191829160208352602083019061085b565b0390f35b3461022a57606036600319011261022a576004356108e78161022e565b602435906108f48261022e565b6044356109008161022e565b5f516020611cd25f395f51905f5254926001600160401b0361093a60ff604087901c161561092d565b1590565b956001600160401b031690565b1680159081610a54575b6001149081610a4a575b159081610a41575b50610a3257610999928461099060016001600160401b03195f516020611cd25f395f51905f525416175f516020611cd25f395f51905f5255565b6109f85761117b565b61099f57005b6109c960ff60401b195f516020611cd25f395f51905f5254165f516020611cd25f395f51905f5255565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b610a2d6801000000000000000060ff60401b195f516020611cd25f395f51905f525416175f516020611cd25f395f51905f5255565b61117b565b63f92ee8a960e01b5f5260045ffd5b9050155f610956565b303b15915061094e565b859150610944565b9181601f8401121561022a578235916001600160401b03831161022a576020808501948460051b01011161022a57565b604060031982011261022a576004356001600160401b03811161022a5781610ab691600401610a5c565b92909291602435906001600160401b03821161022a57610ad891600401610a5c565b9091565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610b0e57505050505090565b9091929394602080610b2c600193603f19868203018752895161085b565b97019301930191939290610aff565b3461022a57610b4936610a8c565b91610b559391936116c8565b828103610c6d57610b65836111de565b925f5b818110610bb75750937fdace6a74e69c5dee4789960d522d7a177a050ce1b8cb98d832a2b06ef90efb0a91610ba86108c69660405193849333978561130b565b0390a260405191829182610adc565b610bf3610929610bec610bd3610bce85888a61123b565b611250565b6001600160a01b03165f90815260036020526040902090565b5460ff1690565b610c5e575f80610c07610bce84878961123b565b81610c1385878c61125a565b9190610c246040518094819361129b565b03925af1610c306112a8565b9015610c565790600191610c4482886112d7565b52610c4f81876112d7565b5001610b68565b602081519101fd5b630b094f2760e31b5f5260045ffd5b631fec674760e31b5f5260045ffd5b3461022a57610c8a36610a8c565b610c95939293611659565b808403610c6d575f5b848110610ca757005b610cb5610bce82878761123b565b600254610cd2906001600160a01b03165b6001600160a01b031690565b6001600160a01b03909116148015610d8b575b610c5e5780610d24610d02610cfd600194868861123b565b6113e9565b610d13610bd3610bce858b8b61123b565b9060ff801983541691151516179055565b610d32610bce82888861123b565b610d40610cfd83868861123b565b7fd9c6c3eabe38e3b9a606a66358d8f225489216a59eeba66facefb7d91663526660405192858060a01b03169280610d82339482919091602081019215159052565b0390a301610c9e565b50610d9a610bce82878761123b565b600154610daf906001600160a01b0316610cc6565b6001600160a01b0390911614610ce5565b8015150361022a57565b3461022a5760c036600319011261022a57600435610de78161022e565b60a036602319011261022a5760405161048f91610e038261055b565b602435610e0f8161022e565b825260443560208301526064356040830152608435610e2d81610dc0565b606083015260a435610e3e81610dc0565b60808301526113f3565b3461022a57604036600319011261022a5761048f602435600435610e6b8261022e565b610e90610485825f525f516020611cb25f395f51905f52602052600160405f20015490565b611a7f565b3461022a57610ea336610302565b90610eac611659565b6001600160a01b0316908115610f40576001600160a01b0316908115610f4057806001600160601b0360a01b6001541617600155816001600160601b0360a01b6002541617600255337f2fe4e5ef899cc1bf6c10bd764667743de04f9dfe0ad51bbc956f4539b4f8a6545f80a3337fa472d8cda50c1300d381ec4823eecff314d93c673c42134dc8b411882474223a5f80a3005b63e6c4247b60e01b5f5260045ffd5b3461022a57602036600319011261022a57600435610f6c8161022e565b60018060a01b03165f526005602052602060405f2054604051908152f35b3461022a57602036600319011261022a57600435610fa78161022e565b610faf611659565b6001600160a01b03168015610f4057806001600160601b0360a01b5f5416175f55337f21eb548722a564f6e09f039f7aa858ae94c911910f3823b37af2250eeca4f4035f80a3005b3461022a575f36600319011261022a5760206040517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b3461022a575f36600319011261022a576002546040516001600160a01b039091168152602090f35b6040513d5f823e3d90fd5b90916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611159575b50610688576110a8611737565b6040516352d1902d60e01b8152926020846004816001600160a01b0387165afa5f9481611128575b506110f157634c9c8ce360e01b5f526001600160a01b03831660045260245ffd5b90915f516020611c925f395f51905f52840361111457611112929350611b2e565b565b632a87526960e21b5f52600484905260245ffd5b61114b91955060203d602011611152575b611143818361057b565b810190611b1f565b935f6110d0565b503d611139565b5f516020611c925f395f51905f52546001600160a01b0316141590505f61109b565b916111a36111a9929361118c611bd0565b611194611bd0565b61119d816117cc565b50611868565b50611929565b5060018060a01b03166001600160601b0360a01b6001541617600155565b6001600160401b0381116105765760051b60200190565b906111e8826111c7565b6111f5604051918261057b565b8281528092611206601f19916111c7565b01905f5b82811061121657505050565b80606060208093850101520161120a565b634e487b7160e01b5f52603260045260245ffd5b919081101561124b5760051b0190565b611227565b356103278161022e565b919081101561124b5760051b81013590601e198136030182121561022a5701908135916001600160401b03831161022a57602001823603811361022a579190565b908092918237015f815290565b3d156112d2573d906112b98261059c565b916112c7604051938461057b565b82523d5f602084013e565b606090565b805182101561124b5760209160051b010190565b908060209392818452848401375f828201840152601f01601f1916010190565b909391806040830160408452526060820194905f5b8181106113bb575050506020818503910152808352602083019060208160051b85010193835f91601e1982360301905b848410611361575050505050505090565b90919293949596601f1982820301875287358381121561022a57840190602082359201916001600160401b03811161022a57803603831361022a576113ac60209283926001956112eb565b99019701959401929190611350565b909193949560208060019287356113d18161022e565b60a085901b8590031681520197969501929101611320565b3561032781610dc0565b60015490919061140b906001600160a01b0316610cc6565b330361164a5760608101916114208351151590565b6115d2575b6080820180511561153657825161144690610cc6906001600160a01b031681565b916020840151833b1561022a57604051635981783f60e01b81526001600160a01b039290921660048301526024820152915f908390604490829084905af19182156103c7577f22a285ebedc42e6216311be73d26e6fef2babeaa373932525680d3217fe8348c9261151c575b505b82516001600160a01b03166115176114e06114d9604060208801519701519751151590565b9351151590565b6040805196875260208701979097529215159585019590955290151560608401526001600160a01b03169233929081906080820190565b0390a3565b8061152a5f6115309361057b565b8061040b565b5f6114b2565b825161154c90610cc6906001600160a01b031681565b916020840151833b1561022a5760405163382ddce160e01b81526001600160a01b039290921660048301526024820152915f908390604490829084905af19182156103c7577f22a285ebedc42e6216311be73d26e6fef2babeaa373932525680d3217fe8348c926115be575b506114b4565b8061152a5f6115cc9361057b565b5f6115b8565b81516115e890610cc6906001600160a01b031681565b604083015160808401511515823b1561022a5760405163aa21161f60e01b8152600481019290925215156024820152905f908290604490829084905af180156103c757611636575b50611425565b8061152a5f6116449361057b565b5f611630565b63050ececd60e11b5f5260045ffd5b335f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff161561169157565b63e2517d3f60e01b5f52336004527fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177560245260445ffd5b335f9081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff161561170057565b63e2517d3f60e01b5f52336004527f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92960245260445ffd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561176f57565b63e2517d3f60e01b5f52336004525f60245260445ffd5b5f8181525f516020611cb25f395f51905f526020908152604080832033845290915290205460ff16156117b65750565b63e2517d3f60e01b5f523360045260245260445ffd5b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611863576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391905f516020611c725f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c602052604090205460ff16611863576001600160a01b0381165f9081527fb16e88c42fd4e48df2dd6a2eabd6bc9aec654ec170056b470819f8892cc6431c60205260409020805460ff1916600117905533906001600160a01b03167fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217755f516020611c725f395f51905f525f80a4600190565b6001600160a01b0381165f9081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff16611863576001600160a01b0381165f9081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45660205260409020805460ff1916600117905533906001600160a01b03167f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9295f516020611c725f395f51905f525f80a4600190565b5f8181525f516020611cb25f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16611a79575f8181525f516020611cb25f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916600117905533916001600160a01b0316905f516020611c725f395f51905f525f80a4600190565b50505f90565b5f8181525f516020611cb25f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615611a79575f8181525f516020611cb25f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b9081602091031261022a575190565b90813b15611baf575f516020611c925f395f51905f5280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115611b9757611b9491611bfb565b50565b505034611ba057565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b60ff5f516020611cd25f395f51905f525460401c1615611bec57565b631afcd79f60e31b5f5260045ffd5b5f8061032793602081519101845af4611c126112a8565b9190611c375750805115611c2857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611c68575b611c48575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15611c4056fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220b2b8643ee13b4f6068d8ca9615c0ce428b132702c6b91285fca8d331dab8566464736f6c634300081d0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00