0 txs
0 calls
constructor
No constructor.
functions
getFeeConfig
viewfunction getFeeConfig(bool allowDeposit) view returns (tuple)
getStrategyConfig
viewfunction getStrategyConfig(address _strategy, address _principalToken) view returns (bytes)
getTypedToken
viewfunction getTypedToken(address _token) view returns (uint256 _type)
getTypedTokens
viewfunction getTypedTokens() view returns (address[] _typedTokens, uint256[] _typedTokenTypes)
isMatchedWithType
viewfunction isMatchedWithType(address _token, uint256 _type) view returns (bool)
isVaultPaused
viewfunction isVaultPaused() view returns (bool)
isWhitelistedAutomator
viewfunction isWhitelistedAutomator(address _automator) view returns (bool)
isWhitelistedStrategy
viewfunction isWhitelistedStrategy(address _strategy) view returns (bool)
isWhitelistedSwapRouter
viewfunction isWhitelistedSwapRouter(address _swapRouter) view returns (bool)
isWhitelistSigner
viewfunction isWhitelistSigner(address _signer) view returns (bool)
maxHarvestSlippage
viewfunction maxHarvestSlippage() view returns (int24)
maxPositions
viewfunction maxPositions() view returns (uint8)
owner
viewfunction owner() view returns (address)
strategyConfigs
viewfunction strategyConfigs(address, address) view returns (bytes)
whitelistAutomators
viewfunction whitelistAutomators(address) view returns (bool)
whitelistSigners
viewfunction whitelistSigners(address) view returns (bool)
whitelistStrategies
viewfunction whitelistStrategies(address) view returns (bool)
whitelistSwapRouters
viewfunction whitelistSwapRouters(address) view returns (bool)
initialize
nonpayablefunction initialize(address _owner, address[] _whitelistStrategies, address[] _whitelistSwapRouters, address[] _whitelistAutomator, address[] _whitelistSigners, address[] _typedTokens, uint256[] _typedTokenTypes, uint16 _vaultOwnerFeeBasisPoint, uint16 _platformFeeBasisPoint, uint16 _privatePlatformFeeBasisPoint, address _feeCollector, address[] _strategies, address[] _principalTokens, bytes[] _configs)
renounceOwnership
nonpayablefunction renounceOwnership()
setFeeConfig
nonpayablefunction setFeeConfig(bool allowDeposit, tuple _feeConfig)
setMaxHarvestSlippage
nonpayablefunction setMaxHarvestSlippage(int24 _maxHarvestSlippage)
setMaxPositions
nonpayablefunction setMaxPositions(uint8 _maxPositions)
setStrategyConfig
nonpayablefunction setStrategyConfig(address _strategy, address _principalToken, bytes _config)
setTypedTokens
nonpayablefunction setTypedTokens(address[] _typedTokens, uint256[] _typedTokenTypes)
setVaultPaused
nonpayablefunction setVaultPaused(bool _isVaultPaused)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
whitelistAutomator
nonpayablefunction whitelistAutomator(address[] _automators, bool _isWhitelisted)
whitelistSigner
nonpayablefunction whitelistSigner(address[] _signers, bool _isWhitelisted)
whitelistStrategy
nonpayablefunction whitelistStrategy(address[] _strategies, bool _isWhitelisted)
whitelistSwapRouter
nonpayablefunction whitelistSwapRouter(address[] _swapRouters, bool _isWhitelisted)
events
Initialized
event Initialized(uint64 version)
MaxHarvestSlippageSet
event MaxHarvestSlippageSet(int24 _maxHarvestSlippage)
MaxPositionsSet
event MaxPositionsSet(uint8 _maxPositions)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetFeeConfig
event SetFeeConfig(bool allowDeposit, (uint16 vaultOwnerFeeBasisPoint, address vaultOwner, uint16 platformFeeBasisPoint, address platformFeeRecipient, uint64 gasFeeX64, address gasFeeRecipient) _feeConfig)
SetStrategyConfig
event SetStrategyConfig(address indexed _strategy, address indexed _principalToken, bytes _config)
SetTypedTokens
event SetTypedTokens(address[] _typedTokens, uint256[] _typedTokenTypes)
VaultPausedSet
event VaultPausedSet(bool _isVaultPaused)
WhitelistAutomator
event WhitelistAutomator(address[] _automators, bool _isWhitelisted)
WhitelistSigner
event WhitelistSigner(address[] _signers, bool _isWhitelisted)
WhitelistStrategy
event WhitelistStrategy(address[] _strategies, bool _isWhitelisted)
WhitelistSwapRouter
event WhitelistSwapRouter(address[] _swapRouters, bool _isWhitelisted)
errors
EnumerableMapNonexistentKey
error EnumerableMapNonexistentKey(bytes32 key)
InvalidFeeConfig
error InvalidFeeConfig()
InvalidInitialization
error InvalidInitialization()
InvalidInstructionType
error InvalidInstructionType()
InvalidSigner
error InvalidSigner()
InvalidStrategy
error InvalidStrategy()
InvalidSwapRouter
error InvalidSwapRouter()
InvalidVaultConfig
error InvalidVaultConfig()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SignatureExpired
error SignatureExpired()
TransferFailed
error TransferFailed()
ZeroAddress
error ZeroAddress()
creation bytecode
0x608080604052346028576201f40a64ffffffffff196008541617600855611ed7908161002d8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ce75ce146118f45750806304bf2fd41461176f578063098401f51461174b5780630dedca241461137957806316dc76681461172b5780631d7528cf146116995780632031b6e21461160857806328bcfae91461122c578063315e4ec31461159f578063479d3cd81461154e57806354f4555e146114425780636edf30bb14610171578063715018a6146113db5780637198f710146113795780637872a7b914611269578063859ab73a1461122c5780638da5cb5b146111f857806394021dd8146111bc578063a192c288146111bc578063b771c82314610e53578063b887538814610de4578063bc32958f14610d52578063bc349bb914610cf2578063bf77202414610cb5578063c951698e14610c1a578063d4590b4d14610bba578063d8536ed7146109eb578063e43833e2146109c8578063ece91fa2146101dd578063f2fde38b146101b25763fdfc6db914610171575f80fd5b346101ae5760203660031901126101ae576001600160a01b0361019261192d565b165f526001602052602060ff60405f2054166040519015158152f35b5f80fd5b346101ae5760203660031901126101ae576101db6101ce61192d565b6101d6611d73565b611d02565b005b346101ae576101c03660031901126101ae576101f761192d565b6024356001600160401b0381116101ae57610216903690600401611b3c565b906044356001600160401b0381116101ae57610236903690600401611b3c565b6064356001600160401b0381116101ae57610255903690600401611b3c565b6084356001600160401b0381116101ae57610274903690600401611b3c565b9160a4356001600160401b0381116101ae57610294903690600401611b3c565b9160c435936001600160401b0385116101ae57366023860112156101ae578460040135946102c186611b25565b956102cf6040519788611a64565b8087526024602088019160051b830101913683116101ae57602401905b8282106109b85750505060e43561ffff81168091036101ae57610104359161ffff831683036101ae57610124359361ffff851685036101ae5761014435956001600160a01b03871687036101ae57610164356001600160401b0381116101ae5761035a903690600401611b3c565b9a610184356001600160401b0381116101ae5761037b903690600401611b3c565b986101a4359a6001600160401b038c116101ae573660238d0112156101ae578b600401356103a881611b25565b9c6040519d6103b7908f611a64565b8d8281526020019160051b8101602401903682116101ae5760248101925b82841061094357505050505f516020611eab5f395f51905f52549c8d6001600160401b038116159081610933575b6001600160401b03166001149081610929575b159081610920575b5061091157610463908e60016001600160401b03198216175f516020611eab5f395f51905f525560ff8160401c16156108e5575b5061045b611dea565b6101d6611dea565b8151915f5b8381106108a757505050508051905f5b828110610876575050508051905f5b828110610845575050508051905f5b828110610813575050508051905f5b8281106107e15750505061063b939261054e61ffff6106079461051582956040516104cf81611a49565b8181526001600160a01b038a16602082018190528486166040830152606082018190525f608083015260a0909101526009805461ffff191661ffff909216919091179055565b60098054601089901b62010000600160b01b031662010000600160c01b0319909116179290911660b01b61ffff60b01b16919091179055565b600a80546001600160e01b0319166001600160a01b038616908117909155600b80546001600160a01b031916909117905560405161058b81611a49565b5f8082526001600160a01b03861660208301819052848416604084015260608301819052608083019190915260a090910152600c805462010000600160b01b03601087901b16841990911662010000600160b01b031916179055600c805461ffff60b01b19169290911660b01b61ffff60b01b16919091179055565b600d80546001600160e01b0319166001600160a01b03929092169182179055600e80546001600160a01b0319169091179055565b8351915f5b8381106106a75760ff8560401c161561065557005b60ff60401b195f516020611eab5f395f51905f5254165f516020611eab5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b6106b18183611ba1565b516001600160a01b036106c48389611ba1565b51165f9081526004602052604090206001600160a01b036106e58487611ba1565b511660018060a01b03165f5260205260405f20908051906001600160401b0382116107cd5761071e826107188554611a11565b85611cb3565b602090601f83116001146107665791806107529260019695945f9261075b575b50508160011b915f199060031b1c19161790565b90555b01610640565b015190508b8061073e565b90601f19831691845f52815f20925f5b8181106107b557509160019695949291838895931061079d575b505050811b019055610755565b01515f1960f88460031b161c191690558a8080610790565b92936020600181928786015181550195019301610776565b634e487b7160e01b5f52604160045260245ffd5b6001906001600160a01b036107f68285611ba1565b51165f52600360205260405f208260ff19825416179055016104a5565b6001906001600160a01b036108288285611ba1565b51165f52600260205260405f208260ff1982541617905501610496565b6001906001600160a01b0361085a8285611ba1565b51165f528160205260405f208260ff1982541617905501610487565b6001906001600160a01b0361088b8285611ba1565b51165f525f60205260405f208260ff1982541617905501610478565b6001906108de6001600160a01b036108bf8386611ba1565b51166108cb8387611ba1565b51815f52600760205260405f2055611e15565b5001610468565b68ffffffffffffffffff191668010000000000000001175f516020611eab5f395f51905f52558e610452565b63f92ee8a960e01b5f5260045ffd5b9050155f61041e565b303b159150610416565b604081901c60ff16159150610403565b83356001600160401b0381116101ae578201366043820112156101ae576024810135916001600160401b0383116107cd5760405161098b601f8501601f191660200182611a64565b83815236604484860101116101ae575f6020858196604483970183860137830101528152019301926103d5565b81358152602091820191016102ec565b346101ae575f3660031901126101ae57602060085460081c60020b604051908152f35b346101ae5760603660031901126101ae57610a0461192d565b610a0c611943565b6044356001600160401b0381116101ae57366023820112156101ae578060040135926001600160401b0384116101ae5736602485840101116101ae57610a50611d73565b60018060a01b031691825f52600460205260405f2060018060a01b0382165f5260205260405f20610a8b85610a858354611a11565b83611cb3565b845f601f8211600114610b255792604092610ae0837f1f874d8f470e7744fa4abb0bea22c42f26ec1a29c55f8c27080f5163e7d51b4697946024975f91610b18575b508160011b915f199060031b1c19161790565b90555b8683519485936020855282602086015201848401375f8288018401526001600160a01b031695601f01601f19168101030190a3005b889150860101358b610acd565b5f8381526020812092508790601f198216905b818110610b9c57509260249592604095927f1f874d8f470e7744fa4abb0bea22c42f26ec1a29c55f8c27080f5163e7d51b46989510610b81575b5050600188811b019055610ae3565b84018601355f1960038b901b60f8161c191690558880610b72565b8784016024013585556001909401936020938401938a935001610b38565b346101ae5760203660031901126101ae5760043560ff81168091036101ae5760207f0bf7215366618a1ac699a81cf1a6d0d736eabee62562affaa01956985ad6013e91610c05611d73565b8060ff196008541617600855604051908152a1005b346101ae57610c28366119d6565b91610c31611d73565b5f5b828110610c715750610c6c7f189d51cc083d4acfa07bd80add1a3b7ffe3340fd985a0199f37e9af22d0de9d29360405193849384611c5a565b0390a1005b6001906001600160a01b03610c8f610c8a838787611bb5565b611c07565b165f5281602052610caf8560405f209060ff801983541691151516179055565b01610c33565b346101ae5760203660031901126101ae576001600160a01b03610cd661192d565b165f526002602052602060ff60405f2054166040519015158152f35b346101ae5760403660031901126101ae5760206001600160a01b03610d1561192d565b16610d2b815f52600660205260405f2054151590565b9081610d3d575b506040519015158152f35b9050610d4b60243591611da6565b1482610d32565b346101ae57610d60366119d6565b91610d69611d73565b5f5b828110610da45750610c6c7fe099255dbc6671a6d2e958a65570f337dad68a2b158d3e8d1b7541b7e04180349360405193849384611c5a565b6001906001600160a01b03610dbd610c8a838787611bb5565b165f526003602052610dde8560405f209060ff801983541691151516179055565b01610d6b565b346101ae5760203660031901126101ae576004358060020b908181036101ae577fff6e74a8967f55e579a1cf7d4a8627ee7a4b8ee37b51f3ddab43d2d2152b0b1591602091610e31611d73565b6008549060081b63ffffff00169063ffffff00191617600855604051908152a1005b346101ae5760e03660031901126101ae57610e6c6119c7565b60c03660231901126101ae57610e80611d73565b6107d061ffff610e8e611c7b565b1610156111ad576107d061ffff610ea3611c8c565b1610156111ad576733333333333334006001600160401b03610ec3611c9d565b1610156111ad57801561109e57610eed610edb611c7b565b61ffff1661ffff196009541617600955565b610f21610ef8611bc5565b6009805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b610f4d610f2c611c8c565b6009805461ffff60b01b191660b09290921b61ffff60b01b16919091179055565b610f7a610f58611bdb565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b610fb2610f85611c9d565b600a805467ffffffffffffffff60a01b191660a09290921b67ffffffffffffffff60a01b16919091179055565b610fdf610fbd611bf1565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b604051901515815260243561ffff81168091036101ae5760208201526044356001600160a01b038116908190036101ae57604082015260643561ffff81168091036101ae5760608201526084356001600160a01b038116908190036101ae57608082015260a4356001600160401b0381168091036101ae5760a082015260c4356001600160a01b038116908190036101ae578160e09160c07f98991f82bbca200cd856d1e94ba99c5b55182d91bd94cdde3ad96ce5ca896661940152a1005b61ffff6110a9611c7b565b1661ffff19600c541617600c556110ea6110c1611bc5565b600c805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6111166110f5611c8c565b600c805461ffff60b01b191660b09290921b61ffff60b01b16919091179055565b611143611121611bdb565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b61117b61114e611c9d565b600d805467ffffffffffffffff60a01b191660a09290921b67ffffffffffffffff60a01b16919091179055565b6111a8611186611bf1565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b610fdf565b632b00a33d60e11b5f5260045ffd5b346101ae5760203660031901126101ae576001600160a01b036111dd61192d565b165f525f602052602060ff60405f2054166040519015158152f35b346101ae575f3660031901126101ae575f516020611e8b5f395f51905f52546040516001600160a01b039091168152602090f35b346101ae5760203660031901126101ae576001600160a01b0361124d61192d565b165f526003602052602060ff60405f2054166040519015158152f35b346101ae5760203660031901126101ae576112826119c7565b5f60a060405161129181611a49565b82815282602082015282604082015282606082015282608082015201525f146113705760c060095b6040516112c581611a49565b6001600160401b03825461ffff81169384845261ffff602085019260018060a01b038160101c16845281604087019160b01c16815260018301549360a06060880194600180831b03871686528760808a0197831c1687526002600180841b0391015416970196875260405197885260018060a01b0390511660208801525116604086015260018060a01b0390511660608501525116608083015260018060a01b0390511660a0820152f35b60c0600c6112b9565b346101ae5760403660031901126101ae5761139261192d565b61139a611943565b9060018060a01b03165f52600460205260405f209060018060a01b03165f526020526113d76113cb60405f20611a85565b6040519182918261196d565b0390f35b346101ae575f3660031901126101ae576113f3611d73565b5f516020611e8b5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101ae5760403660031901126101ae576004356001600160401b0381116101ae57611472903690600401611997565b6024356001600160401b0381116101ae57611491903690600401611997565b909261149b611d73565b5f5b83811061150c57506114bb9060405193604085526040850191611c1b565b8281036020840152818152906001600160fb1b0381116101ae577f62b2b4963aea9398ccf9a1507a40fc9dbcf2ff2ac6e641c85e1d6959e1d84adc93602092849260051b80928583013701030190a1005b80611547611520610c8a6001948887611bb5565b61152b83878a611bb5565b3590848060a01b031690815f52600760205260405f2055611e15565b500161149d565b346101ae5760203660031901126101ae5761156761192d565b6001600160a01b03165f8181526006602052604090205461158f575060205f5b604051908152f35b61159a602091611da6565b611587565b346101ae5760203660031901126101ae577f1278375d57c6c72112ff3ec30ee1b6981ce1209951df82bed559f64f0b93754b60206115db6119c7565b6115e3611d73565b151560085464ff0000000082841b169064ff00000000191617600855604051908152a1005b346101ae57611616366119d6565b9161161f611d73565b5f5b82811061165a5750610c6c7fe9044eeeffa0d4c020fec5b1fe6381fe94f4f936f91133c84866fcf9382aa2019360405193849384611c5a565b6001906001600160a01b03611673610c8a838787611bb5565b165f525f6020526116938560405f209060ff801983541691151516179055565b01611621565b346101ae576116a7366119d6565b916116b0611d73565b5f5b8281106116eb5750610c6c7fd465276cb6e029a7ca8769970c5835481d500cc1523dafc4cf83c7ac2e77d06e9360405193849384611c5a565b6001906001600160a01b03611704610c8a838787611bb5565b165f5260026020526117258560405f209060ff801983541691151516179055565b016116b2565b346101ae575f3660031901126101ae57602060ff60085416604051908152f35b346101ae575f3660031901126101ae57602060ff600854821c166040519015158152f35b346101ae575f3660031901126101ae5760055461178b81611b25565b6117986040519182611a64565b8181526117a482611b25565b602082019290601f19013684376117ba81611b25565b926117c86040519485611a64565b8184526117d482611b25565b602085019290601f19013684376005545f5b82811061187257505050604051938493604085019060408652518091526060850192905f5b818110611850575050506020908483038286015251918281520191905f5b818110611837575050500390f35b8251845285945060209384019390920191600101611829565b82516001600160a01b031685528796506020948501949092019160010161180b565b5f969394959650818110156118e0577f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db08101545f8181526007602052604090205460019291906118c28388611ba1565b52828060a01b03166118d4828a611ba1565b520195949392956117e6565b634e487b7160e01b5f52603260045260245ffd5b346101ae5760203660031901126101ae576020906001600160a01b0361191861192d565b165f526002825260ff60405f20541615158152f35b600435906001600160a01b03821682036101ae57565b602435906001600160a01b03821682036101ae57565b35906001600160a01b03821682036101ae57565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b9181601f840112156101ae578235916001600160401b0383116101ae576020808501948460051b0101116101ae57565b6004359081151582036101ae57565b60406003198201126101ae57600435906001600160401b0382116101ae57611a0091600401611997565b909160243580151581036101ae5790565b90600182811c92168015611a3f575b6020831014611a2b57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611a20565b60c081019081106001600160401b038211176107cd57604052565b90601f801991011681019081106001600160401b038211176107cd57604052565b9060405191825f825492611a9884611a11565b8084529360018116908115611b035750600114611abf575b50611abd92500383611a64565b565b90505f9291925260205f20905f915b818310611ae7575050906020611abd928201015f611ab0565b6020919350806001915483858901015201910190918492611ace565b905060209250611abd94915060ff191682840152151560051b8201015f611ab0565b6001600160401b0381116107cd5760051b60200190565b9080601f830112156101ae578135611b5381611b25565b92611b616040519485611a64565b81845260208085019260051b8201019283116101ae57602001905b828210611b895750505090565b60208091611b9684611959565b815201910190611b7c565b80518210156118e05760209160051b010190565b91908110156118e05760051b0190565b6044356001600160a01b03811681036101ae5790565b6084356001600160a01b03811681036101ae5790565b60c4356001600160a01b03811681036101ae5790565b356001600160a01b03811681036101ae5790565b916020908281520191905f5b818110611c345750505090565b909192602080600192838060a01b03611c4c88611959565b168152019401929101611c27565b91602091611c7391959495604085526040850191611c1b565b931515910152565b60243561ffff811681036101ae5790565b60643561ffff811681036101ae5790565b60a4356001600160401b03811681036101ae5790565b601f8211611cc057505050565b5f5260205f20906020601f840160051c83019310611cf8575b601f0160051c01905b818110611ced575050565b5f8155600101611ce2565b9091508190611cd9565b6001600160a01b03168015611d60575f516020611e8b5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020611e8b5f395f51905f52546001600160a01b03163303611d9357565b63118cdaa760e01b5f523360045260245ffd5b805f52600760205260405f205490811580611dd6575b611dc4575090565b63015ab34360e11b5f5260045260245ffd5b50805f52600660205260405f205415611dbc565b60ff5f516020611eab5f395f51905f525460401c1615611e0657565b631afcd79f60e31b5f5260045ffd5b805f52600660205260405f2054155f14611e8557600554600160401b8110156107cd57600181016005556005548110156118e0577f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018190556005545f9182526006602052604090912055600190565b505f9056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a164736f6c634300081c000a