196 txs
462 calls
constructor
constructor(address _owner, address _vault, address _accountant)
functions
accountant
viewfunction accountant() view returns (address)
authority
viewfunction authority() view returns (address)
beforeTransfer
viewfunction beforeTransfer(address from) view
depositNonce
viewfunction depositNonce() view returns (uint96)
isPaused
viewfunction isPaused() view returns (bool)
isSupported
viewfunction isSupported(address) view returns (bool)
owner
viewfunction owner() view returns (address)
publicDepositHistory
viewfunction publicDepositHistory(uint256) view returns (bytes32)
shareLockPeriod
viewfunction shareLockPeriod() view returns (uint64)
shareUnlockTime
viewfunction shareUnlockTime(address) view returns (uint256)
vault
viewfunction vault() view returns (address)
addAsset
nonpayablefunction addAsset(address asset)
bulkDeposit
nonpayablefunction bulkDeposit(address depositAsset, uint256 depositAmount, uint256 minimumMint, address to) returns (uint256 shares)
bulkWithdraw
nonpayablefunction bulkWithdraw(address withdrawAsset, uint256 shareAmount, uint256 minimumAssets, address to) returns (uint256 assetsOut)
deposit
nonpayablefunction deposit(address depositAsset, uint256 depositAmount, uint256 minimumMint) returns (uint256 shares)
depositWithPermit
nonpayablefunction depositWithPermit(address depositAsset, uint256 depositAmount, uint256 minimumMint, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns (uint256 shares)
pause
nonpayablefunction pause()
refundDeposit
nonpayablefunction refundDeposit(uint256 nonce, address receiver, address depositAsset, uint256 depositAmount, uint256 shareAmount, uint256 depositTimestamp, uint256 shareLockUpPeriodAtTimeOfDeposit)
removeAsset
nonpayablefunction removeAsset(address asset)
setAuthority
nonpayablefunction setAuthority(address newAuthority)
setShareLockPeriod
nonpayablefunction setShareLockPeriod(uint64 _shareLockPeriod)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
events
AssetAdded
event AssetAdded(address indexed asset)
AssetRemoved
event AssetRemoved(address indexed asset)
AuthorityUpdated
event AuthorityUpdated(address indexed user, address indexed newAuthority)
BulkDeposit
event BulkDeposit(address indexed asset, uint256 depositAmount)
BulkWithdraw
event BulkWithdraw(address indexed asset, uint256 shareAmount)
Deposit
event Deposit(uint256 indexed nonce, address indexed receiver, address indexed depositAsset, uint256 depositAmount, uint256 shareAmount, uint256 depositTimestamp, uint256 shareLockPeriodAtTimeOfDeposit)
DepositRefunded
event DepositRefunded(uint256 indexed nonce, bytes32 depositHash, address indexed user)
OwnershipTransferred
event OwnershipTransferred(address indexed user, address indexed newOwner)
Paused
event Paused()
Unpaused
event Unpaused()
errors
TellerWithMultiAssetSupport__AssetNotSupported
error TellerWithMultiAssetSupport__AssetNotSupported()
TellerWithMultiAssetSupport__BadDepositHash
error TellerWithMultiAssetSupport__BadDepositHash()
TellerWithMultiAssetSupport__MinimumAssetsNotMet
error TellerWithMultiAssetSupport__MinimumAssetsNotMet()
TellerWithMultiAssetSupport__MinimumMintNotMet
error TellerWithMultiAssetSupport__MinimumMintNotMet()
TellerWithMultiAssetSupport__Paused
error TellerWithMultiAssetSupport__Paused()
TellerWithMultiAssetSupport__PermitFailedAndAllowanceTooLow
error TellerWithMultiAssetSupport__PermitFailedAndAllowanceTooLow()
TellerWithMultiAssetSupport__ShareLockPeriodTooLong
error TellerWithMultiAssetSupport__ShareLockPeriodTooLong()
TellerWithMultiAssetSupport__SharesAreLocked
error TellerWithMultiAssetSupport__SharesAreLocked()
TellerWithMultiAssetSupport__SharesAreUnLocked
error TellerWithMultiAssetSupport__SharesAreUnLocked()
TellerWithMultiAssetSupport__ZeroAssets
error TellerWithMultiAssetSupport__ZeroAssets()
TellerWithMultiAssetSupport__ZeroShares
error TellerWithMultiAssetSupport__ZeroShares()
creation bytecode
0x60e060405260016002819055600480546001600160601b03191690911790553480156200002a575f80fd5b5060405162001a0238038062001a028339810160408190526200004d9162000189565b5f80546001600160a01b0385166001600160a01b031991821681178355600180549092169091556040518592919033907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908490a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350506001600160a01b03821660808190526040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa15801562000122573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001489190620001d0565b6200015590600a62000308565b60c0526001600160a01b031660a05250620003189050565b80516001600160a01b038116811462000184575f80fd5b919050565b5f805f606084860312156200019c575f80fd5b620001a7846200016d565b9250620001b7602085016200016d565b9150620001c7604085016200016d565b90509250925092565b5f60208284031215620001e1575f80fd5b815160ff81168114620001f2575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200024d57815f1904821115620002315762000231620001f9565b808516156200023f57918102915b93841c939080029062000212565b509250929050565b5f82620002655750600162000302565b816200027357505f62000302565b81600181146200028c57600281146200029757620002b7565b600191505062000302565b60ff841115620002ab57620002ab620001f9565b50506001821b62000302565b5060208310610133831016604e8410600b8410161715620002dc575081810a62000302565b620002e883836200020d565b805f1904821115620002fe57620002fe620001f9565b0290505b92915050565b5f620001f260ff84168362000255565b60805160a05160c0516116876200037b5f395f818161093601526110ca01525f8181610244015281816108c701526110ec01525f818161038e0152818161069c0152818161073c0152818161099401528181610bb7015261119701526116875ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c80637a9e5e4b116100bf578063b187bd2611610079578063b187bd2614610311578063bf7e214f14610325578063de35f5cb14610338578063e83931af14610363578063f2fde38b14610376578063fbfa77cf14610389575f80fd5b80637a9e5e4b1461027e5780638456cb59146102915780638da5cb5b146102995780639a94d3d0146102ab5780639d574420146102ca5780639fdb11b6146102dd575f80fd5b80633e64ce99116101105780633e64ce99146101cc5780633f4ba83a146101df57806346b563f4146101e75780634a5e42b1146101fa5780634f129c531461020d5780634fb3ccc51461023f575f80fd5b80630efe6a8b1461014c57806312056e2d146101725780631899ea8114610187578063298410e5146101a65780633d935d9e146101b9575b5f80fd5b61015f61015a366004611371565b6103b0565b6040519081526020015b60405180910390f35b6101856101803660046113a3565b6104bb565b005b61015f6101953660046113d1565b60066020525f908152604090205481565b6101856101b43660046113d1565b610548565b61015f6101c73660046113ec565b6105c4565b61015f6101da366004611454565b61081a565b610185610a49565b6101856101f536600461149b565b610ab1565b6101856102083660046113d1565b610c6f565b61022f61021b3660046113d1565b60036020525f908152604090205460ff1681565b6040519015158152602001610169565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610169565b61018561028c3660046113d1565b610ce8565b610185610dcc565b5f54610266906001600160a01b031681565b61015f6102b93660046114fb565b60056020525f908152604090205481565b61015f6102d8366004611454565b610e3a565b6004546102f890600160601b900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610169565b60045461022f90600160a01b900460ff1681565b600154610266906001600160a01b031681565b60045461034b906001600160601b031681565b6040516001600160601b039091168152602001610169565b6101856103713660046113d1565b610f28565b6101856103843660046113d1565b610f63565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b5f6103c6335f356001600160e01b031916610fde565b6103eb5760405162461bcd60e51b81526004016103e290611512565b60405180910390fd5b60025460011461040d5760405162461bcd60e51b81526004016103e290611538565b60028055600454600160a01b900460ff161561043c5760405163e0f9e71d60e01b815260040160405180910390fd5b6001600160a01b0384165f9081526003602052604090205460ff166104745760405163645fd19f60e11b815260040160405180910390fd5b61048084848433611086565b90506104af338585846004600c9054906101000a900467ffffffffffffffff1667ffffffffffffffff16611209565b60016002559392505050565b6104d0335f356001600160e01b031916610fde565b6104ec5760405162461bcd60e51b81526004016103e290611512565b6203f4808167ffffffffffffffff16111561051a57604051631fac010160e21b815260040160405180910390fd5b6004805467ffffffffffffffff909216600160601b0267ffffffffffffffff60601b19909216919091179055565b61055d335f356001600160e01b031916610fde565b6105795760405162461bcd60e51b81526004016103e290611512565b6001600160a01b0381165f81815260036020526040808220805460ff19166001179055517f0e3c58ebfb2e7465fbb1c32e6b4f40c3c4f5ca77e8218a386aff8617831260d79190a250565b5f6105da335f356001600160e01b031916610fde565b6105f65760405162461bcd60e51b81526004016103e290611512565b6002546001146106185760405162461bcd60e51b81526004016103e290611538565b60028055600454600160a01b900460ff16156106475760405163e0f9e71d60e01b815260040160405180910390fd5b6001600160a01b0388165f9081526003602052604090205460ff1661067f5760405163645fd19f60e11b815260040160405180910390fd5b60405163d505accf60e01b81523360048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018990526064820187905260ff8616608483015260a4820185905260c4820184905289169063d505accf9060e4015f604051808303815f87803b15801561070a575f80fd5b505af192505050801561071b575060015b6107cf57604051636eb1769f60e11b81523360048201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660248301528891908a169063dd62ed3e90604401602060405180830381865afa15801561078c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b0919061155c565b10156107cf576040516301b8851f60e41b815260040160405180910390fd5b6107db88888833611086565b905061080a338989846004600c9054906101000a900467ffffffffffffffff1667ffffffffffffffff16611209565b6001600255979650505050505050565b5f610830335f356001600160e01b031916610fde565b61084c5760405162461bcd60e51b81526004016103e290611512565b6001600160a01b0385165f9081526003602052604090205460ff166108845760405163645fd19f60e11b815260040160405180910390fd5b835f036108a457604051630ea3153160e21b815260040160405180910390fd5b604051634104b9ed60e11b81526001600160a01b03868116600483015261095a917f00000000000000000000000000000000000000000000000000000000000000009091169063820973da90602401602060405180830381865afa15801561090e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610932919061155c565b85907f0000000000000000000000000000000000000000000000000000000000000000611342565b90508281101561097d576040516302620f6160e61b815260040160405180910390fd5b6040516318457e6160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318457e61906109d19085908990869033908b90600401611573565b5f604051808303815f87803b1580156109e8575f80fd5b505af11580156109fa573d5f803e3d5ffd5b50505050846001600160a01b03167fdcc60b41ff1c604459e6aa4a7299817416b19fc586a392f111646e26597c4af985604051610a3991815260200190565b60405180910390a2949350505050565b610a5e335f356001600160e01b031916610fde565b610a7a5760405162461bcd60e51b81526004016103e290611512565b6004805460ff60a01b191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d16933905f90a1565b610ac6335f356001600160e01b031916610fde565b610ae25760405162461bcd60e51b81526004016103e290611512565b80610aed83426115ba565b1115610b0c57604051634c1eef1760e11b815260040160405180910390fd5b604080516001600160a01b038089166020830152871691810191909152606081018590526080810184905260a0810183905260c081018290525f9060e00160408051601f1981840301815291815281516020928301205f8b815260059093529120549091508114610b905760405163fa174ecb60e01b815260040160405180910390fd5b5f8881526005602052604080822091909155516318457e6160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318457e6190610bf4908a908a908a9083908b90600401611573565b5f604051808303815f87803b158015610c0b575f80fd5b505af1158015610c1d573d5f803e3d5ffd5b50505050866001600160a01b0316887faf98ea774275cadfa3e477a7b52cba03e01197445a76bd5d0d561608708c362483604051610c5d91815260200190565b60405180910390a35050505050505050565b610c84335f356001600160e01b031916610fde565b610ca05760405162461bcd60e51b81526004016103e290611512565b6001600160a01b0381165f81815260036020526040808220805460ff19169055517f37803e2125c48ee96c38ddf04e826daf335b0e1603579040fd275aba6d06b6fc9190a250565b5f546001600160a01b0316331480610d79575060015460405163b700961360e01b81526001600160a01b039091169063b700961390610d3a90339030906001600160e01b03195f3516906004016115cd565b602060405180830381865afa158015610d55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7991906115fa565b610d81575f80fd5b600180546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198905f90a350565b610de1335f356001600160e01b031916610fde565b610dfd5760405162461bcd60e51b81526004016103e290611512565b6004805460ff60a01b1916600160a01b1790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e752905f90a1565b5f610e50335f356001600160e01b031916610fde565b610e6c5760405162461bcd60e51b81526004016103e290611512565b600254600114610e8e5760405162461bcd60e51b81526004016103e290611538565b600280556001600160a01b0385165f9081526003602052604090205460ff16610eca5760405163645fd19f60e11b815260040160405180910390fd5b610ed685858585611086565b9050846001600160a01b03167f6f9b974223f85a1ae805c33b8b519039e2435481d949db1110de151a94d587af85604051610f1391815260200190565b60405180910390a26001600255949350505050565b6001600160a01b0381165f90815260066020526040902054421015610f605760405163f64059db60e01b815260040160405180910390fd5b50565b610f78335f356001600160e01b031916610fde565b610f945760405162461bcd60e51b81526004016103e290611512565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001545f906001600160a01b03168015801590611065575060405163b700961360e01b81526001600160a01b0382169063b700961390611026908790309088906004016115cd565b602060405180830381865afa158015611041573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106591906115fa565b8061107c57505f546001600160a01b038581169116145b9150505b92915050565b5f835f036110a75760405163259be69560e11b815260040160405180910390fd5b604051634104b9ed60e11b81526001600160a01b03868116600483015261115d917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000169063820973da90602401602060405180830381865afa158015611131573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611155919061155c565b869190611342565b9050828110156111805760405163097b2ad560e31b815260040160405180910390fd5b604051631ceb5d1960e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906339d6ba32906111d49033908990899088908890600401611573565b5f604051808303815f87803b1580156111eb575f80fd5b505af11580156111fd573d5f803e3d5ffd5b50505050949350505050565b6112138142611619565b6001600160a01b038681165f81815260066020908152604091829020949094556004548151948501929092529187169183019190915260608201859052608082018490524260a083015260c082018390526001600160601b03169060e00160408051601f1981840301815291815281516020928301205f848152600590935290822055600480546001600160601b0316916112ad8361162c565b91906101000a8154816001600160601b0302191690836001600160601b0316021790555050846001600160a01b0316866001600160a01b0316827fe96d7872363f475d18b2f5390caaa5eaa96b2d38e42c62afe4ac08ebd2b13c3a87874288604051611332949392919093845260208401929092526040830152606082015260800190565b60405180910390a4505050505050565b5f825f190484118302158202611356575f80fd5b5091020490565b6001600160a01b0381168114610f60575f80fd5b5f805f60608486031215611383575f80fd5b833561138e8161135d565b95602085013595506040909401359392505050565b5f602082840312156113b3575f80fd5b813567ffffffffffffffff811681146113ca575f80fd5b9392505050565b5f602082840312156113e1575f80fd5b81356113ca8161135d565b5f805f805f805f60e0888a031215611402575f80fd5b873561140d8161135d565b9650602088013595506040880135945060608801359350608088013560ff81168114611437575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f805f8060808587031215611467575f80fd5b84356114728161135d565b9350602085013592506040850135915060608501356114908161135d565b939692955090935050565b5f805f805f805f60e0888a0312156114b1575f80fd5b8735965060208801356114c38161135d565b955060408801356114d38161135d565b969995985095966060810135965060808101359560a0820135955060c0909101359350915050565b5f6020828403121561150b575f80fd5b5035919050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b6020808252600a90820152695245454e5452414e435960b01b604082015260600190565b5f6020828403121561156c575f80fd5b5051919050565b6001600160a01b039586168152938516602085015260408401929092529092166060820152608081019190915260a00190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115611080576110806115a6565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f6020828403121561160a575f80fd5b815180151581146113ca575f80fd5b80820180821115611080576110806115a6565b5f6001600160601b03808316818103611647576116476115a6565b600101939250505056fea26469706673582212203ca67207b2724db8c07a83126a50665ff40fe367cf912cb6a505864656260a0c64736f6c6343000815003300000000000000000000000004354e44ed31022716e77ec6320c04eda153010c00000000000000000000000082c40e07277ebb92935f79ce92268f80ddc7cab4000000000000000000000000e0bdb7b9225a2ceb42998dc2e51d4d3cdeb7e3be