0 txs
5 calls
constructor
constructor()
functions
calculator
viewfunction calculator() view returns (address)
maxAUMDropPercentage
viewfunction maxAUMDropPercentage() view returns (uint16)
owner
viewfunction owner() view returns (address)
vaultStorage
viewfunction vaultStorage() view returns (address)
whitelistedExecutors
viewfunction whitelistedExecutors(address) view returns (bool)
addWhitelistedExecutor
nonpayablefunction addWhitelistedExecutor(address _executor)
completeRebalance
nonpayablefunction completeRebalance(address _tokenToRemove, address _replacementToken, uint256 _replacementAmount)
initialize
nonpayablefunction initialize(address _vaultStorage, address _calculator, uint16 _maxAUMDropPercentage)
removeWhitelistedExecutor
nonpayablefunction removeWhitelistedExecutor(address _executor)
renounceOwnership
nonpayablefunction renounceOwnership()
setCalculator
nonpayablefunction setCalculator(address _calculator)
setMaxAUMDropPercentage
nonpayablefunction setMaxAUMDropPercentage(uint16 _maxAUMDropPercentage)
setVaultStorage
nonpayablefunction setVaultStorage(address _vaultStorage)
startRebalance
nonpayablefunction startRebalance(address _tokenToRemove, uint256 _amountToRemove, address _recipient)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Initialized
event Initialized(uint8 version)
LogRebalanceCompleted
event LogRebalanceCompleted(address indexed tokenToRemove, address indexed replacementToken, uint256 replacementAmount, uint256 finalAUM, uint256 aumDropPercentage)
LogRebalanceStarted
event LogRebalanceStarted(address indexed tokenToRemove, uint256 amountToRemove, address indexed recipient, uint256 initialAUM)
LogSetCalculator
event LogSetCalculator(address indexed oldCalculator, address indexed newCalculator)
LogSetMaxAUMDropPercentage
event LogSetMaxAUMDropPercentage(uint16 oldPercentage, uint16 newPercentage)
LogSetVaultStorage
event LogSetVaultStorage(address indexed oldVaultStorage, address indexed newVaultStorage)
LogSetWhitelistedExecutor
event LogSetWhitelistedExecutor(address indexed executor, bool isWhitelisted)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
ExternalRebalancer_AUMChanged
error ExternalRebalancer_AUMChanged()
ExternalRebalancer_AUMDropExceeded
error ExternalRebalancer_AUMDropExceeded()
ExternalRebalancer_AUMIncreaseExceeded
error ExternalRebalancer_AUMIncreaseExceeded()
ExternalRebalancer_InsufficientLiquidity
error ExternalRebalancer_InsufficientLiquidity()
ExternalRebalancer_InsufficientReplacementAmount
error ExternalRebalancer_InsufficientReplacementAmount()
ExternalRebalancer_InvalidAddress
error ExternalRebalancer_InvalidAddress()
ExternalRebalancer_InvalidAmount
error ExternalRebalancer_InvalidAmount()
ExternalRebalancer_InvalidPercentage
error ExternalRebalancer_InvalidPercentage()
ExternalRebalancer_NoReplacementToken
error ExternalRebalancer_NoReplacementToken()
ExternalRebalancer_NotWhitelisted
error ExternalRebalancer_NotWhitelisted()
creation bytecode
0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61167d806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100c45760003560e01c8062fe9ad4146100c95780634f4893d4146100f2578063715018a61461010757806372ced22d1461010f5780637709de7c146101225780637ebef5291461014a578063865a60ec1461015d5780638da5cb5b14610170578063b2dfed3414610178578063c53468f01461018b578063c5ec3dba1461019e578063ce3e39c0146101b1578063f0ff663e146101c4578063f2fde38b146101d7578063fe2b3502146101ea575b600080fd5b6097546100dc906001600160a01b031681565b6040516100e99190611358565b60405180910390f35b610105610100366004611388565b61021d565b005b610105610699565b61010561011d3660046113d6565b6106ad565b60985461013790600160a01b900461ffff1681565b60405161ffff90911681526020016100e9565b6101056101583660046113f8565b610747565b61010561016b36600461143b565b6108ef565b6100dc610962565b61010561018636600461143b565b610971565b61010561019936600461143b565b6109e5565b6101056101ac36600461143b565b610a70565b6098546100dc906001600160a01b031681565b6101056101d2366004611456565b610afb565b6101056101e536600461143b565b610e52565b61020d6101f836600461143b565b60996020526000908152604090205460ff1681565b60405190151581526020016100e9565b3360009081526099602052604090205460ff1661024d576040516348cd014b60e11b815260040160405180910390fd5b610255610ecb565b6001600160a01b038316158061027257506001600160a01b038216155b1561029057604051639b41c6b560e01b815260040160405180910390fd5b806000036102b15760405163fce8de2360e01b815260040160405180910390fd5b60975460405160016215dd2960e11b031981526000916001600160a01b03169063ffd445ae906102e5908790600401611358565b602060405180830381865afa158015610302573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103269190611489565b90508060000361034957604051632a83c0c560e21b815260040160405180910390fd5b6098546040516316a5fe0560e11b8152600060048201819052916001600160a01b031690632d4bfc0a90602401602060405180830381865afa158015610393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b79190611489565b609754604051631de6622360e11b81529192506001600160a01b031690633bccc446906103ea90889086906004016114a2565b600060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505060975461043892506001600160a01b03878116925033911686610f24565b60975460405163f0ca5ad560e01b81526001600160a01b039091169063f0ca5ad590610468908790600401611358565b6020604051808303816000875af1158015610487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ab9190611489565b5060975460405163112076bb60e21b81526001600160a01b0390911690634481daec906104de90879087906004016114a2565b600060405180830381600087803b1580156104f857600080fd5b505af115801561050c573d6000803e3d6000fd5b50506098546040516316a5fe0560e11b815260006004820181905293506001600160a01b039091169150632d4bfc0a90602401602060405180830381865afa15801561055c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105809190611489565b90506000828210156105e3578261059783826114d1565b6105a3906127106114ea565b6105ad9190611501565b609854909150600160a01b900461ffff168111156105de576040516304c8e2ef60e31b815260040160405180910390fd5b610635565b826105ee81846114d1565b6105fa906127106114ea565b6106049190611501565b609854909150600160a01b900461ffff1681111561063557604051631b92402d60e21b815260040160405180910390fd5b60408051868152602081018490529081018290526001600160a01b0380881691908916907f119eb366e8005416beb2964bf2b67b989ce58122268988df6670d23eb1e887c59060600160405180910390a3505050506106946001606555565b505050565b6106a1610f83565b6106ab6000610fe2565b565b6106b5610f83565b6127108161ffff1611156106dc576040516352fefb0560e11b815260040160405180910390fd5b6098546040805161ffff600160a01b9093048316815291831660208301527f89559d9b78892adfa2dd703ad5ff3b03c27c3b53a1ff0df7e439b554475344f7910160405180910390a16098805461ffff909216600160a01b0261ffff60a01b19909216919091179055565b600054610100900460ff16158080156107675750600054600160ff909116105b80610788575061077630611034565b158015610788575060005460ff166001145b6107f05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610813576000805461ff0019166101001790555b61081b611043565b610823611072565b6001600160a01b038416158061084057506001600160a01b038316155b1561085e57604051639b41c6b560e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0386811691909117909155609880549185166001600160b01b031990921691909117600160a01b61ffff85160217905580156108e9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6108f7610f83565b6001600160a01b03811661091e57604051639b41c6b560e01b815260040160405180910390fd5b6001600160a01b0381166000818152609960209081526040808320805460ff191690555191825260008051602061162883398151915291015b60405180910390a250565b6033546001600160a01b031690565b610979610f83565b6001600160a01b0381166109a057604051639b41c6b560e01b815260040160405180910390fd5b6001600160a01b038116600081815260996020908152604091829020805460ff1916600190811790915591519182526000805160206116288339815191529101610957565b6109ed610f83565b6001600160a01b038116610a1457604051639b41c6b560e01b815260040160405180910390fd5b6098546040516001600160a01b038084169216907fdacdee92c642a9d3af3e98e254bef584381bc64dc4b343ccb57c9470326bbe3290600090a3609880546001600160a01b0319166001600160a01b0392909216919091179055565b610a78610f83565b6001600160a01b038116610a9f57604051639b41c6b560e01b815260040160405180910390fd5b6097546040516001600160a01b038084169216907f4147ffe2749b31181d46bcb547b1689d534ece1da3185325fa9473a52a0d73c690600090a3609780546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526099602052604090205460ff16610b2b576040516348cd014b60e11b815260040160405180910390fd5b610b33610ecb565b6001600160a01b0383161580610b5057506001600160a01b038116155b15610b6e57604051639b41c6b560e01b815260040160405180910390fd5b81600003610b8f5760405163fce8de2360e01b815260040160405180910390fd5b6097546040516312049d0360e31b81526000916001600160a01b031690639024e81890610bc0908790600401611358565b602060405180830381865afa158015610bdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c019190611489565b905082811015610c245760405163114310d160e11b815260040160405180910390fd5b6098546040516316a5fe0560e11b8152600060048201819052916001600160a01b031690632d4bfc0a90602401602060405180830381865afa158015610c6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c929190611489565b60975460405163052d2fed60e31b81529192506001600160a01b0316906329697f6890610cc590889088906004016114a2565b600060405180830381600087803b158015610cdf57600080fd5b505af1158015610cf3573d6000803e3d6000fd5b50506097546040516301826f6f60e41b81526001600160a01b039091169250631826f6f09150610d2b90889087908990600401611523565b600060405180830381600087803b158015610d4557600080fd5b505af1158015610d59573d6000803e3d6000fd5b50506098546040516316a5fe0560e11b815260006004820181905293506001600160a01b039091169150632d4bfc0a90602401602060405180830381865afa158015610da9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcd9190611489565b9050818114610def57604051637c32815160e11b815260040160405180910390fd5b836001600160a01b0316866001600160a01b03167fa43e5ab9738cf2cf23c0e2805c12ba3abb21a33461be7554f9cae8d6173a7b7e8785604051610e3d929190918252602082015260400190565b60405180910390a35050506106946001606555565b610e5a610f83565b6001600160a01b038116610ebf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107e7565b610ec881610fe2565b50565b600260655403610f1d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107e7565b6002606555565b6108e9846323b872dd60e01b858585604051602401610f4593929190611523565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526110a1565b6001606555565b33610f8c610962565b6001600160a01b0316146106ab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e7565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03163b151590565b600054610100900460ff1661106a5760405162461bcd60e51b81526004016107e790611547565b6106ab611173565b600054610100900460ff166110995760405162461bcd60e51b81526004016107e790611547565b6106ab6111a3565b60006110f6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166111ca9092919063ffffffff16565b80519091501561069457808060200190518101906111149190611592565b6106945760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107e7565b600054610100900460ff1661119a5760405162461bcd60e51b81526004016107e790611547565b6106ab33610fe2565b600054610100900460ff16610f7c5760405162461bcd60e51b81526004016107e790611547565b60606111d984846000856111e1565b949350505050565b6060824710156112425760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016107e7565b600080866001600160a01b0316858760405161125e91906115d8565b60006040518083038185875af1925050503d806000811461129b576040519150601f19603f3d011682016040523d82523d6000602084013e6112a0565b606091505b50915091506112b1878383876112bc565b979650505050505050565b60608315611329578251600003611322576112d685611034565b6113225760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107e7565b50816111d9565b6111d9838381511561133e5781518083602001fd5b8060405162461bcd60e51b81526004016107e791906115f4565b6001600160a01b0391909116815260200190565b80356001600160a01b038116811461138357600080fd5b919050565b60008060006060848603121561139d57600080fd5b6113a68461136c565b92506113b46020850161136c565b9150604084013590509250925092565b803561ffff8116811461138357600080fd5b6000602082840312156113e857600080fd5b6113f1826113c4565b9392505050565b60008060006060848603121561140d57600080fd5b6114168461136c565b92506114246020850161136c565b9150611432604085016113c4565b90509250925092565b60006020828403121561144d57600080fd5b6113f18261136c565b60008060006060848603121561146b57600080fd5b6114748461136c565b9250602084013591506114326040850161136c565b60006020828403121561149b57600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052601160045260246000fd5b818103818111156114e4576114e46114bb565b92915050565b80820281158282048414176114e4576114e46114bb565b60008261151e57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000602082840312156115a457600080fd5b815180151581146113f157600080fd5b60005b838110156115cf5781810151838201526020016115b7565b50506000910152565b600082516115ea8184602087016115b4565b9190910192915050565b60208152600082518060208401526116138160408501602087016115b4565b601f01601f1916919091016040019291505056fedca9da96d3ad6e7f270839f40ab44a88ba2da4b242afcf162994978b4fec424aa264697066735822122011fc33941a8388633c8f160497dc3fb220565fbb98c4a9310c5fa31d09f97c4564736f6c63430008120033