{"abi":[{"type":"event","name":"UnorderedNonceInvalidation","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"word","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mask","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AfterAddLiquidityHookFailed","inputs":[]},{"type":"error","name":"AfterInitializeHookFailed","inputs":[]},{"type":"error","name":"AfterRemoveLiquidityHookFailed","inputs":[]},{"type":"error","name":"AfterSwapHookFailed","inputs":[]},{"type":"error","name":"AllZeroInputs","inputs":[]},{"type":"error","name":"AllowanceExpired","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"AmountGivenZero","inputs":[]},{"type":"error","name":"AmountInAboveMax","inputs":[{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"AmountOutBelowMin","inputs":[{"name":"tokenOut","type":"address","internalType":"contract IERC20"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"AmpUpdateAlreadyStarted","inputs":[]},{"type":"error","name":"AmpUpdateDurationTooShort","inputs":[]},{"type":"error","name":"AmpUpdateRateTooFast","inputs":[]},{"type":"error","name":"AmplificationFactorTooHigh","inputs":[]},{"type":"error","name":"AmplificationFactorTooLow","inputs":[]},{"type":"error","name":"AssetBoundsExceeded","inputs":[]},{"type":"error","name":"BalanceNotSettled","inputs":[]},{"type":"error","name":"BeforeAddLiquidityHookFailed","inputs":[]},{"type":"error","name":"BeforeInitializeHookFailed","inputs":[]},{"type":"error","name":"BeforeRemoveLiquidityHookFailed","inputs":[]},{"type":"error","name":"BeforeSwapHookFailed","inputs":[]},{"type":"error","name":"BptAmountInAboveMax","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BptAmountOutBelowMin","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BufferAlreadyInitialized","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"}]},{"type":"error","name":"BufferNotInitialized","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"}]},{"type":"error","name":"BufferSharesInvalidOwner","inputs":[]},{"type":"error","name":"BufferSharesInvalidReceiver","inputs":[]},{"type":"error","name":"BufferTotalSupplyTooLow","inputs":[{"name":"totalSupply","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"CallerIsNotPoolCreator","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"CannotReceiveEth","inputs":[]},{"type":"error","name":"CannotSwapSameToken","inputs":[]},{"type":"error","name":"DoesNotSupportAddLiquidityCustom","inputs":[]},{"type":"error","name":"DoesNotSupportDonation","inputs":[]},{"type":"error","name":"DoesNotSupportRemoveLiquidityCustom","inputs":[]},{"type":"error","name":"DoesNotSupportUnbalancedLiquidity","inputs":[]},{"type":"error","name":"DynamicSwapFeeHookFailed","inputs":[]},{"type":"error","name":"ExcessiveInvalidation","inputs":[]},{"type":"error","name":"FeePrecisionTooHigh","inputs":[]},{"type":"error","name":"HookAdjustedAmountInAboveMax","inputs":[{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"HookAdjustedAmountOutBelowMin","inputs":[{"name":"tokenOut","type":"address","internalType":"contract IERC20"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"HookAdjustedSwapLimit","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"HookRegistrationFailed","inputs":[{"name":"poolHooksContract","type":"address","internalType":"address"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolFactory","type":"address","internalType":"address"}]},{"type":"error","name":"InputLengthMismatch","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientEth","inputs":[]},{"type":"error","name":"InvalidAddLiquidityKind","inputs":[]},{"type":"error","name":"InvalidAmount","inputs":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidRemoveLiquidityKind","inputs":[]},{"type":"error","name":"InvalidToken","inputs":[]},{"type":"error","name":"InvalidTokenConfiguration","inputs":[]},{"type":"error","name":"InvalidTokenDecimals","inputs":[]},{"type":"error","name":"InvalidTokenType","inputs":[]},{"type":"error","name":"InvalidUnderlyingToken","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"}]},{"type":"error","name":"IssuedSharesBelowMin","inputs":[{"name":"issuedShares","type":"uint256","internalType":"uint256"},{"name":"minIssuedShares","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"LengthMismatch","inputs":[]},{"type":"error","name":"MaxTokens","inputs":[]},{"type":"error","name":"MinTokens","inputs":[]},{"type":"error","name":"MinWeight","inputs":[]},{"type":"error","name":"MultipleNonZeroInputs","inputs":[]},{"type":"error","name":"NormalizedWeightInvariant","inputs":[]},{"type":"error","name":"NotEnoughBufferShares","inputs":[]},{"type":"error","name":"NotEnoughUnderlying","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"},{"name":"expectedUnderlyingAmount","type":"uint256","internalType":"uint256"},{"name":"actualUnderlyingAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotEnoughWrapped","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"},{"name":"expectedWrappedAmount","type":"uint256","internalType":"uint256"},{"name":"actualWrappedAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotStaticCall","inputs":[]},{"type":"error","name":"NotVaultDelegateCall","inputs":[]},{"type":"error","name":"OnlyPauseGuardian","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"PauseBufferPeriodDurationTooLarge","inputs":[]},{"type":"error","name":"PercentageAboveMax","inputs":[]},{"type":"error","name":"PoolAddressMismatch","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolAlreadyInitialized","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolAlreadyRegistered","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolCreatorFeePercentageTooHigh","inputs":[]},{"type":"error","name":"PoolCreatorNotRegistered","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolInRecoveryMode","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolNotInRecoveryMode","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolNotInitialized","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolNotPaused","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolNotRegistered","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolPauseWindowExpired","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"PoolPaused","inputs":[{"name":"pool","type":"address","internalType":"address"}]},{"type":"error","name":"ProtocolFeesExceedTotalCollected","inputs":[]},{"type":"error","name":"ProtocolSwapFeePercentageTooHigh","inputs":[]},{"type":"error","name":"ProtocolYieldFeePercentageTooHigh","inputs":[]},{"type":"error","name":"QueriesDisabled","inputs":[]},{"type":"error","name":"QueriesDisabledPermanently","inputs":[]},{"type":"error","name":"QuoteResultSpoofed","inputs":[]},{"type":"error","name":"RouterNotTrusted","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SenderIsNotVault","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"StandardPoolWithCreator","inputs":[]},{"type":"error","name":"StaticATokenInvalidZeroShares","inputs":[]},{"type":"error","name":"SwapDeadline","inputs":[]},{"type":"error","name":"SwapFeePercentageTooHigh","inputs":[]},{"type":"error","name":"SwapFeePercentageTooLow","inputs":[]},{"type":"error","name":"SwapLimit","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"TokenAlreadyRegistered","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}]},{"type":"error","name":"TokenNotRegistered","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}]},{"type":"error","name":"TokensMismatch","inputs":[{"name":"pool","type":"address","internalType":"address"},{"name":"expectedToken","type":"address","internalType":"address"},{"name":"actualToken","type":"address","internalType":"address"}]},{"type":"error","name":"TokensNotSorted","inputs":[]},{"type":"error","name":"TradeAmountTooSmall","inputs":[]},{"type":"error","name":"VaultBuffersArePaused","inputs":[]},{"type":"error","name":"VaultIsNotUnlocked","inputs":[]},{"type":"error","name":"VaultNotPaused","inputs":[]},{"type":"error","name":"VaultPauseWindowDurationTooLarge","inputs":[]},{"type":"error","name":"VaultPauseWindowExpired","inputs":[]},{"type":"error","name":"VaultPaused","inputs":[]},{"type":"error","name":"VaultQueriesDisabled","inputs":[]},{"type":"error","name":"WeightedPoolBptRateUnsupported","inputs":[]},{"type":"error","name":"WrapAmountTooSmall","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"}]},{"type":"error","name":"WrongProtocolFeeControllerDeployment","inputs":[]},{"type":"error","name":"WrongUnderlyingToken","inputs":[{"name":"wrappedToken","type":"address","internalType":"contract IERC4626"},{"name":"underlyingToken","type":"address","internalType":"address"}]},{"type":"error","name":"WrongVaultAdminDeployment","inputs":[]},{"type":"error","name":"WrongVaultExtensionDeployment","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AfterAddLiquidityHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AfterInitializeHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AfterRemoveLiquidityHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AfterSwapHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllZeroInputs\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"AllowanceExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmountGivenZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"}],\"name\":\"AmountInAboveMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"AmountOutBelowMin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmpUpdateAlreadyStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmpUpdateDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmpUpdateRateTooFast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmplificationFactorTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmplificationFactorTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AssetBoundsExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceNotSettled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BeforeAddLiquidityHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BeforeInitializeHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BeforeRemoveLiquidityHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BeforeSwapHookFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"}],\"name\":\"BptAmountInAboveMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"BptAmountOutBelowMin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"BufferAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"BufferNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BufferSharesInvalidOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BufferSharesInvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"name\":\"BufferTotalSupplyTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"CallerIsNotPoolCreator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReceiveEth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotSwapSameToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DoesNotSupportAddLiquidityCustom\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DoesNotSupportDonation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DoesNotSupportRemoveLiquidityCustom\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DoesNotSupportUnbalancedLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DynamicSwapFeeHookFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExcessiveInvalidation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeePrecisionTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"}],\"name\":\"HookAdjustedAmountInAboveMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"HookAdjustedAmountOutBelowMin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"HookAdjustedSwapLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"poolHooksContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"poolFactory\",\"type\":\"address\"}],\"name\":\"HookRegistrationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InputLengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientEth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddLiquidityKind\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRemoveLiquidityKind\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenConfiguration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenDecimals\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"InvalidUnderlyingToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"issuedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minIssuedShares\",\"type\":\"uint256\"}],\"name\":\"IssuedSharesBelowMin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinWeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MultipleNonZeroInputs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NormalizedWeightInvariant\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBufferShares\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expectedUnderlyingAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualUnderlyingAmount\",\"type\":\"uint256\"}],\"name\":\"NotEnoughUnderlying\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expectedWrappedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualWrappedAmount\",\"type\":\"uint256\"}],\"name\":\"NotEnoughWrapped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotStaticCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultDelegateCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"OnlyPauseGuardian\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PauseBufferPeriodDurationTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PercentageAboveMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolAddressMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolCreatorFeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolCreatorNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolInRecoveryMode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolNotInRecoveryMode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolNotPaused\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolPauseWindowExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProtocolFeesExceedTotalCollected\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProtocolSwapFeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProtocolYieldFeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueriesDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QueriesDisabledPermanently\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuoteResultSpoofed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterNotTrusted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderIsNotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StandardPoolWithCreator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaticATokenInvalidZeroShares\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapDeadline\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapFeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapFeePercentageTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SwapLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expectedToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"actualToken\",\"type\":\"address\"}],\"name\":\"TokensMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokensNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TradeAmountTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultBuffersArePaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultIsNotUnlocked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultNotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultPauseWindowDurationTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultPauseWindowExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultQueriesDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WeightedPoolBptRateUnsupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"WrapAmountTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongProtocolFeeControllerDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"contract IERC4626\",\"name\":\"wrappedToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingToken\",\"type\":\"address\"}],\"name\":\"WrongUnderlyingToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongVaultAdminDeployment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongVaultExtensionDeployment\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"word\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mask\",\"type\":\"uint256\"}],\"name\":\"UnorderedNonceInvalidation\",\"type\":\"event\"}],\"devdoc\":{\"errors\":{\"AllZeroInputs()\":[{\"details\":\"Input arrays for single token add/remove liquidity operations are expected to have one non-zero value, corresponding to the token being added or removed. This error results if all entries are zero.\"}],\"AllowanceExpired(uint256)\":[{\"params\":{\"deadline\":\"The timestamp at which the allowed amount is no longer valid\"}}],\"AmountInAboveMax(address,uint256,uint256)\":[{\"params\":{\"amountIn\":\"The total token amount in\",\"maxAmountIn\":\"The amount of the limit that has been exceeded\",\"tokenIn\":\"The incoming token\"}}],\"AmountOutBelowMin(address,uint256,uint256)\":[{\"params\":{\"amountOut\":\"The total BPT amount out\",\"minAmountOut\":\"The amount of the limit that has been exceeded\",\"tokenOut\":\"The outgoing token\"}}],\"BptAmountInAboveMax(uint256,uint256)\":[{\"params\":{\"amountIn\":\"The total BPT amount in\",\"maxAmountIn\":\"The amount of the limit that has been exceeded\"}}],\"BptAmountOutBelowMin(uint256,uint256)\":[{\"params\":{\"amountOut\":\"The total BPT amount out\",\"minAmountOut\":\"The amount of the limit that has been exceeded\"}}],\"BufferAlreadyInitialized(address)\":[{\"params\":{\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}],\"BufferNotInitialized(address)\":[{\"params\":{\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}],\"BufferTotalSupplyTooLow(uint256)\":[{\"params\":{\"totalSupply\":\"The total supply value that was below the minimum\"}}],\"CallerIsNotPoolCreator(address,address)\":[{\"params\":{\"caller\":\"The account attempting to withdraw pool creator fees\",\"pool\":\"The pool the caller tried to withdraw from\"}}],\"FeePrecisionTooHigh()\":[{\"details\":\"Primary fee percentages are 18-decimal values, stored here in 64 bits, and calculated with full 256-bit precision. However, the resulting aggregate fees are stored in the Vault with 24-bit precision, which corresponds to 0.00001% resolution (i.e., a fee can be 1%, 1.00001%, 1.00002%, but not 1.000005%). Disallow setting fees such that there would be precision loss in the Vault, leading to a discrepancy between the aggregate fee calculated here and that stored in the Vault.\"}],\"HookAdjustedAmountInAboveMax(address,uint256,uint256)\":[{\"params\":{\"amountIn\":\"The total token amount in\",\"maxAmountIn\":\"The amount of the limit that has been exceeded\",\"tokenIn\":\"The incoming token\"}}],\"HookAdjustedAmountOutBelowMin(address,uint256,uint256)\":[{\"params\":{\"amountOut\":\"The total BPT amount out\",\"minAmountOut\":\"The amount of the limit that has been exceeded\",\"tokenOut\":\"The outgoing token\"}}],\"HookAdjustedSwapLimit(uint256,uint256)\":[{\"params\":{\"amount\":\"The total amount in or out\",\"limit\":\"The amount of the limit that has been exceeded\"}}],\"HookRegistrationFailed(address,address,address)\":[{\"params\":{\"pool\":\"Address of the rejected pool\",\"poolFactory\":\"Address of the pool factory\",\"poolHooksContract\":\"Address of the hook contract that rejected the pool registration\"}}],\"InsufficientAllowance(uint256)\":[{\"params\":{\"amount\":\"The maximum amount allowed\"}}],\"InvalidUnderlyingToken(address)\":[{\"details\":\"This should never happen, but a malicious wrapper contract might do this (e.g., in an attempt to re-initialize the buffer).\",\"params\":{\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}],\"IssuedSharesBelowMin(uint256,uint256)\":[{\"details\":\"Shares issued during initialization are below the requested amount.\"}],\"LengthMismatch()\":[{\"details\":\"If the spender does not need to transfer the number of tokens permitted, the spender can request amount 0 to be transferred\"}],\"MultipleNonZeroInputs()\":[{\"details\":\"Input arrays for single token add/remove liquidity operations are expected to have only one non-zero value, corresponding to the token being added or removed. This error results if there are multiple non-zero entries.\"}],\"NotEnoughUnderlying(address,uint256,uint256)\":[{\"details\":\"A wrap/unwrap operation consumed more or returned less underlying tokens than it should.\"}],\"NotEnoughWrapped(address,uint256,uint256)\":[{\"details\":\"A wrap/unwrap operation consumed more or returned less wrapped tokens than it should.\"}],\"NotVaultDelegateCall()\":[{\"details\":\"It can only be called by the Vault via delegatecall.\"}],\"PoolAlreadyInitialized(address)\":[{\"params\":{\"pool\":\"The already initialized pool\"}}],\"PoolAlreadyRegistered(address)\":[{\"params\":{\"pool\":\"The already registered pool\"}}],\"PoolCreatorNotRegistered(address)\":[{\"params\":{\"pool\":\"The pool with no creator\"}}],\"PoolInRecoveryMode(address)\":[{\"params\":{\"pool\":\"The pool\"}}],\"PoolNotInRecoveryMode(address)\":[{\"params\":{\"pool\":\"The pool\"}}],\"PoolNotInitialized(address)\":[{\"params\":{\"pool\":\"The uninitialized pool\"}}],\"PoolNotPaused(address)\":[{\"params\":{\"pool\":\"The unpaused pool\"}}],\"PoolNotRegistered(address)\":[{\"params\":{\"pool\":\"The unregistered pool\"}}],\"PoolPauseWindowExpired(address)\":[{\"params\":{\"pool\":\"The pool\"}}],\"PoolPaused(address)\":[{\"params\":{\"pool\":\"The paused pool\"}}],\"ProtocolFeesExceedTotalCollected()\":[{\"details\":\"This occurs when the sum of the parts (aggregate swap or yield fee) is greater than the whole (total swap or yield fee). Also validated when the protocol fee controller updates aggregate fee percentages in the Vault.\"}],\"ProtocolSwapFeePercentageTooHigh()\":[{\"details\":\"Note that this is checked for both the global and pool-specific protocol swap fee percentages.\"}],\"ProtocolYieldFeePercentageTooHigh()\":[{\"details\":\"Note that this is checked for both the global and pool-specific protocol yield fee percentages.\"}],\"SenderIsNotVault(address)\":[{\"params\":{\"sender\":\"The account attempting to call a permissioned function\"}}],\"SwapFeePercentageTooHigh()\":[{\"details\":\"The Vault itself does not impose a universal minimum. Rather, it validates against the range specified by the `ISwapFeePercentageBounds` interface. and reverts with this error if it is above the maximum value returned by the pool. Pools with dynamic fees do not check these limits.\"}],\"SwapFeePercentageTooLow()\":[{\"details\":\"The Vault itself does not impose a universal minimum. Rather, it validates against the range specified by the `ISwapFeePercentageBounds` interface. and reverts with this error if it is below the minimum value returned by the pool. Pools with dynamic fees do not check these limits.\"}],\"SwapLimit(uint256,uint256)\":[{\"params\":{\"amount\":\"The total amount in or out\",\"limit\":\"The amount of the limit that has been exceeded\"}}],\"TokenAlreadyRegistered(address)\":[{\"params\":{\"token\":\"The duplicate token\"}}],\"TokenNotRegistered(address)\":[{\"params\":{\"token\":\"The unregistered token\"}}],\"TokensMismatch(address,address,address)\":[{\"params\":{\"actualToken\":\"The actual token found at that index\",\"expectedToken\":\"The correct token at a given index in the pool\",\"pool\":\"Address of the pool\"}}],\"TokensNotSorted()\":[{\"details\":\"Tokens are not sorted by address on registration. This is an optimization so that off-chain processes can predict the token order without having to query the Vault. (It is also legacy v2 behavior.)\"}],\"WrapAmountTooSmall(address)\":[{\"params\":{\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}],\"WrongUnderlyingToken(address,address)\":[{\"details\":\"This should never happen, but a malicious wrapper contract might not return the correct address. Legitimate wrapper contracts should make the asset a constant or immutable value.\",\"params\":{\"underlyingToken\":\"The underlying token returned by `asset`\",\"wrappedToken\":\"The wrapped token corresponding to the buffer\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"AfterAddLiquidityHookFailed()\":[{\"notice\":\"The pool has returned false to the afterAddLiquidity hook, indicating the transaction should revert.\"}],\"AfterInitializeHookFailed()\":[{\"notice\":\"The pool has returned false to the afterInitialize hook, indicating the transaction should revert.\"}],\"AfterRemoveLiquidityHookFailed()\":[{\"notice\":\"The pool has returned false to the afterRemoveLiquidity hook, indicating the transaction should revert.\"}],\"AfterSwapHookFailed()\":[{\"notice\":\"The pool has returned false to the afterSwap hook, indicating the transaction should revert.\"}],\"AllZeroInputs()\":[{\"notice\":\"No valid input was given for a single token operation.\"}],\"AllowanceExpired(uint256)\":[{\"notice\":\"Thrown when an allowance on a token has expired.\"}],\"AmountGivenZero()\":[{\"notice\":\"The user tried to swap zero tokens.\"}],\"AmountInAboveMax(address,uint256,uint256)\":[{\"notice\":\"A required amountIn exceeds the maximum limit specified for the operation.\"}],\"AmountOutBelowMin(address,uint256,uint256)\":[{\"notice\":\"The actual amount out is below the minimum limit specified for the operation.\"}],\"AmpUpdateAlreadyStarted()\":[{\"notice\":\"Amplification update operations must be done one at a time.\"}],\"AmpUpdateDurationTooShort()\":[{\"notice\":\"The amplification change duration is too short.\"}],\"AmpUpdateRateTooFast()\":[{\"notice\":\"The amplification change rate is too fast.\"}],\"AmplificationFactorTooHigh()\":[{\"notice\":\"The amplification factor is above the maximum of the range (1 - 5000).\"}],\"AmplificationFactorTooLow()\":[{\"notice\":\"The amplification factor is below the minimum of the range (1 - 5000).\"}],\"BalanceNotSettled()\":[{\"notice\":\"A transient accounting operation completed with outstanding token deltas.\"}],\"BeforeAddLiquidityHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeAddLiquidity hook, indicating the transaction should revert.\"}],\"BeforeInitializeHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeInitialize hook, indicating the transaction should revert.\"}],\"BeforeRemoveLiquidityHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeRemoveLiquidity hook, indicating the transaction should revert.\"}],\"BeforeSwapHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeSwap hook, indicating the transaction should revert.\"}],\"BptAmountInAboveMax(uint256,uint256)\":[{\"notice\":\"The required BPT amount in exceeds the maximum limit specified for the operation.\"}],\"BptAmountOutBelowMin(uint256,uint256)\":[{\"notice\":\"The BPT amount received from adding liquidity is below the minimum specified for the operation.\"}],\"BufferAlreadyInitialized(address)\":[{\"notice\":\"The buffer for the given wrapped token was already initialized.\"}],\"BufferNotInitialized(address)\":[{\"notice\":\"The buffer for the given wrapped token was not initialized.\"}],\"BufferSharesInvalidOwner()\":[{\"notice\":\"Buffer shares were burned from the zero address.\"}],\"BufferSharesInvalidReceiver()\":[{\"notice\":\"Buffer shares were minted to the zero address.\"}],\"BufferTotalSupplyTooLow(uint256)\":[{\"notice\":\"The total supply of a buffer can't be lower than the absolute minimum.\"}],\"CallerIsNotPoolCreator(address,address)\":[{\"notice\":\"Error raised if the wrong account attempts to withdraw pool creator fees.\"}],\"CannotReceiveEth()\":[{\"notice\":\"The contract should not receive ETH.\"}],\"CannotSwapSameToken()\":[{\"notice\":\"The user attempted to swap a token for itself.\"}],\"DoesNotSupportAddLiquidityCustom()\":[{\"notice\":\"Pool does not support adding liquidity with a customized input.\"}],\"DoesNotSupportDonation()\":[{\"notice\":\"Pool does not support adding liquidity through donation.\"}],\"DoesNotSupportRemoveLiquidityCustom()\":[{\"notice\":\"Pool does not support removing liquidity with a customized input.\"}],\"DoesNotSupportUnbalancedLiquidity()\":[{\"notice\":\"Pool does not support adding / removing liquidity with an unbalanced input.\"}],\"DynamicSwapFeeHookFailed()\":[{\"notice\":\"The pool has returned false to the beforeSwap hook, indicating the transaction should revert.\"}],\"FeePrecisionTooHigh()\":[{\"notice\":\"Primary fee percentages result in an aggregate fee that cannot be stored with the required precision.\"}],\"HookAdjustedAmountInAboveMax(address,uint256,uint256)\":[{\"notice\":\"A hook adjusted amountIn exceeds the maximum limit specified for the operation.\"}],\"HookAdjustedAmountOutBelowMin(address,uint256,uint256)\":[{\"notice\":\"The hook adjusted amount out is below the minimum limit specified for the operation.\"}],\"HookAdjustedSwapLimit(uint256,uint256)\":[{\"notice\":\"A hook adjusted amount in or out has exceeded the limit specified in the swap request.\"}],\"HookRegistrationFailed(address,address,address)\":[{\"notice\":\"A hook contract rejected a pool on registration.\"}],\"InputLengthMismatch()\":[{\"notice\":\"Arrays passed to a function and intended to be parallel have different lengths.\"}],\"InsufficientAllowance(uint256)\":[{\"notice\":\"Thrown when an allowance on a token has been depleted.\"}],\"InvalidAddLiquidityKind()\":[{\"notice\":\"Add liquidity kind not supported.\"}],\"InvalidRemoveLiquidityKind()\":[{\"notice\":\"Remove liquidity kind not supported.\"}],\"InvalidToken()\":[{\"notice\":\"Invalid tokens (e.g., zero) cannot be registered.\"}],\"InvalidTokenConfiguration()\":[{\"notice\":\"The data in a TokenConfig struct is inconsistent or unsupported.\"}],\"InvalidTokenDecimals()\":[{\"notice\":\"Tokens with more than 18 decimals are not supported.\"}],\"InvalidTokenType()\":[{\"notice\":\"The token type given in a TokenConfig during pool registration is invalid.\"}],\"InvalidUnderlyingToken(address)\":[{\"notice\":\"A wrapped token reported the zero address as its underlying token asset.\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the number of tokens permissioned to a spender does not match the number of tokens being transferred\"}],\"MaxTokens()\":[{\"notice\":\"The token count is above the maximum allowed.\"}],\"MinTokens()\":[{\"notice\":\"The token count is below the minimum allowed.\"}],\"MinWeight()\":[{\"notice\":\"Indicates that one of the pool tokens' weight is below the minimum allowed.\"}],\"MultipleNonZeroInputs()\":[{\"notice\":\"More than one non-zero value was given for a single token operation.\"}],\"NormalizedWeightInvariant()\":[{\"notice\":\"Indicates that the sum of the pool tokens' weights is not FixedPoint.ONE.\"}],\"NotEnoughBufferShares()\":[{\"notice\":\"The user is trying to remove more than their allocated shares from the buffer.\"}],\"NotVaultDelegateCall()\":[{\"notice\":\"The `VaultExtension` contract was called by an account directly.\"}],\"PauseBufferPeriodDurationTooLarge()\":[{\"notice\":\"The caller specified a buffer period longer than the maximum.\"}],\"PercentageAboveMax()\":[{\"notice\":\"A given percentage is above the maximum (usually a value close to FixedPoint.ONE, or 1e18 wei).\"}],\"PoolAlreadyInitialized(address)\":[{\"notice\":\"A pool has already been initialized. `initialize` may only be called once.\"}],\"PoolAlreadyRegistered(address)\":[{\"notice\":\"A pool has already been registered. `registerPool` may only be called once.\"}],\"PoolCreatorFeePercentageTooHigh()\":[{\"notice\":\"Error raised when the pool creator swap or yield fee percentage exceeds the maximum allowed value.\"}],\"PoolCreatorNotRegistered(address)\":[{\"notice\":\"Error raised if there is no pool creator on a withdrawal attempt from the given pool.\"}],\"PoolInRecoveryMode(address)\":[{\"notice\":\"Cannot enable recovery mode when already enabled.\"}],\"PoolNotInRecoveryMode(address)\":[{\"notice\":\"Cannot disable recovery mode when not enabled.\"}],\"PoolNotInitialized(address)\":[{\"notice\":\"A referenced pool has not been initialized.\"}],\"PoolNotPaused(address)\":[{\"notice\":\"Governance tried to unpause the Pool when it was not paused.\"}],\"PoolNotRegistered(address)\":[{\"notice\":\"A pool has not been registered.\"}],\"PoolPauseWindowExpired(address)\":[{\"notice\":\"Governance tried to pause a Pool after the pause period expired.\"}],\"PoolPaused(address)\":[{\"notice\":\"A user tried to perform an operation involving a paused Pool.\"}],\"ProtocolFeesExceedTotalCollected()\":[{\"notice\":\"Error raised when there is an overflow in the fee calculation.\"}],\"ProtocolSwapFeePercentageTooHigh()\":[{\"notice\":\"Error raised when the protocol swap fee percentage exceeds the maximum allowed value.\"}],\"ProtocolYieldFeePercentageTooHigh()\":[{\"notice\":\"Error raised when the protocol yield fee percentage exceeds the maximum allowed value.\"}],\"QueriesDisabled()\":[{\"notice\":\"A user tried to execute a query operation when they were disabled.\"}],\"QueriesDisabledPermanently()\":[{\"notice\":\"An admin tried to re-enable queries, but they were disabled permanently.\"}],\"QuoteResultSpoofed()\":[{\"notice\":\"Quote reverted with a reserved error code.\"}],\"RouterNotTrusted()\":[{\"notice\":\"An unauthorized Router tried to call a permissioned function (i.e., using the Vault's token allowance).\"}],\"SenderIsNotVault(address)\":[{\"notice\":\"Error indicating the sender is not the Vault (e.g., someone is trying to call a permissioned function).\"}],\"SwapFeePercentageTooHigh()\":[{\"notice\":\"Error raised when the swap fee percentage is greater than the maximum allowed value.\"}],\"SwapFeePercentageTooLow()\":[{\"notice\":\"Error raised when the swap fee percentage is less than the minimum allowed value.\"}],\"SwapLimit(uint256,uint256)\":[{\"notice\":\"An amount in or out has exceeded the limit specified in the swap request.\"}],\"TokenAlreadyRegistered(address)\":[{\"notice\":\"A token was already registered (i.e., it is a duplicate in the pool).\"}],\"TokenNotRegistered(address)\":[{\"notice\":\"The user attempted to operate with a token that is not in the pool.\"}],\"TokensMismatch(address,address,address)\":[{\"notice\":\"The token list passed into an operation does not match the pool tokens in the pool.\"}],\"TokensNotSorted()\":[{\"notice\":\"The tokens supplied to an array argument were not sorted in numerical order.\"}],\"TradeAmountTooSmall()\":[{\"notice\":\"The amount given or calculated for an operation is below the minimum limit.\"}],\"VaultBuffersArePaused()\":[{\"notice\":\"Buffer operation attempted while vault buffers are paused.\"}],\"VaultIsNotUnlocked()\":[{\"notice\":\"A user called a Vault function (swap, add/remove liquidity) outside the lock context.\"}],\"VaultNotPaused()\":[{\"notice\":\"Governance tried to unpause the Vault when it was not paused.\"}],\"VaultPauseWindowDurationTooLarge()\":[{\"notice\":\"The caller specified a pause window period longer than the maximum.\"}],\"VaultPauseWindowExpired()\":[{\"notice\":\"Governance tried to pause the Vault after the pause period expired.\"}],\"VaultPaused()\":[{\"notice\":\"A user tried to perform an operation while the Vault was paused.\"}],\"WrapAmountTooSmall(address)\":[{\"notice\":\"The amount given to wrap/unwrap was too small, which can introduce rounding issues.\"}],\"WrongProtocolFeeControllerDeployment()\":[{\"notice\":\"The `ProtocolFeeController` contract was configured with an incorrect Vault address.\"}],\"WrongUnderlyingToken(address,address)\":[{\"notice\":\"The wrapped token asset does not match the underlying token.\"}],\"WrongVaultAdminDeployment()\":[{\"notice\":\"The `VaultAdmin` contract was configured with an incorrect Vault address.\"}],\"WrongVaultExtensionDeployment()\":[{\"notice\":\"The `VaultExtension` contract was configured with an incorrect Vault address.\"}]},\"events\":{\"UnorderedNonceInvalidation(address,uint256,uint256)\":{\"notice\":\"Emits an event when the owner successfully invalidates an unordered nonce.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/balancer-v3/lib/BalancerV3Errors.sol\":\"BalancerV3Errors\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/balancer-v3/BalancerV3SwapAdapter.sol\":{\"keccak256\":\"0x953286f17c621bef769154e4d735e11350ddf439f4a7bb136b875ef11bcc1abc\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://916037f7d6a973f8ef83f8509e74fc9dcf4dcf34ef74836b8579353b45b4fd0a\",\"dweb:/ipfs/Qma94Vf221Q9BaYuNY2WvKJcaAQ8frZpyf5tH7LBuepfba\"]},\"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol\":{\"keccak256\":\"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313\",\"dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8\"]},\"src/balancer-v3/lib/BalancerERC20Helpers.sol\":{\"keccak256\":\"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec\",\"dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8\"]},\"src/balancer-v3/lib/BalancerERC4626Helpers.sol\":{\"keccak256\":\"0xf19e1a229b1cb569617e28ba1bc8d1b2cfb403d3164018610040ab439e65c211\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://2493d7748eedfc1ad1bed4bd6b16ede7f5e1b69f1ecf4176851a857f39b018ea\",\"dweb:/ipfs/QmeogRJKPvPGBTdJvciejWGMWy1tik8e817uPcp5Dp2Wn7\"]},\"src/balancer-v3/lib/BalancerInterfaces.sol\":{\"keccak256\":\"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701\",\"dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ\"]},\"src/balancer-v3/lib/BalancerStorage.sol\":{\"keccak256\":\"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136\",\"dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48\"]},\"src/balancer-v3/lib/BalancerSwapHelpers.sol\":{\"keccak256\":\"0x48d7f787de65a4671de1a49208130919b3fc7b17786c6eddf1897af122572f88\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://17ff1db9264aebdae9f74bb587a40870ace02d4d90bb083e128af48af8500b76\",\"dweb:/ipfs/QmPa9t3PmbRYZVzYoHyRVVjBZD9gs55pUNfF9hhuni5AQP\"]},\"src/balancer-v3/lib/BalancerV3Errors.sol\":{\"keccak256\":\"0x18480a94df48406540188876ec5381f4e2240013c893df0c4d74d5cfd0e7cbdb\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ae1e8647ab344c5ebad993497bccd6ad17dcf9533fb3646a333bfe99a66e82a9\",\"dweb:/ipfs/QmS5oeSX7WQttqNc1rZ7MNuA7VkffaFwMZk91j1RNC4ykY\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]},\"src/libraries/CustomBytesAppend.sol\":{\"keccak256\":\"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5\",\"dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AfterAddLiquidityHookFailed"},{"inputs":[],"type":"error","name":"AfterInitializeHookFailed"},{"inputs":[],"type":"error","name":"AfterRemoveLiquidityHookFailed"},{"inputs":[],"type":"error","name":"AfterSwapHookFailed"},{"inputs":[],"type":"error","name":"AllZeroInputs"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"AllowanceExpired"},{"inputs":[],"type":"error","name":"AmountGivenZero"},{"inputs":[{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"}],"type":"error","name":"AmountInAboveMax"},{"inputs":[{"internalType":"contract IERC20","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"type":"error","name":"AmountOutBelowMin"},{"inputs":[],"type":"error","name":"AmpUpdateAlreadyStarted"},{"inputs":[],"type":"error","name":"AmpUpdateDurationTooShort"},{"inputs":[],"type":"error","name":"AmpUpdateRateTooFast"},{"inputs":[],"type":"error","name":"AmplificationFactorTooHigh"},{"inputs":[],"type":"error","name":"AmplificationFactorTooLow"},{"inputs":[],"type":"error","name":"AssetBoundsExceeded"},{"inputs":[],"type":"error","name":"BalanceNotSettled"},{"inputs":[],"type":"error","name":"BeforeAddLiquidityHookFailed"},{"inputs":[],"type":"error","name":"BeforeInitializeHookFailed"},{"inputs":[],"type":"error","name":"BeforeRemoveLiquidityHookFailed"},{"inputs":[],"type":"error","name":"BeforeSwapHookFailed"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"}],"type":"error","name":"BptAmountInAboveMax"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"type":"error","name":"BptAmountOutBelowMin"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"}],"type":"error","name":"BufferAlreadyInitialized"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"}],"type":"error","name":"BufferNotInitialized"},{"inputs":[],"type":"error","name":"BufferSharesInvalidOwner"},{"inputs":[],"type":"error","name":"BufferSharesInvalidReceiver"},{"inputs":[{"internalType":"uint256","name":"totalSupply","type":"uint256"}],"type":"error","name":"BufferTotalSupplyTooLow"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"CallerIsNotPoolCreator"},{"inputs":[],"type":"error","name":"CannotReceiveEth"},{"inputs":[],"type":"error","name":"CannotSwapSameToken"},{"inputs":[],"type":"error","name":"DoesNotSupportAddLiquidityCustom"},{"inputs":[],"type":"error","name":"DoesNotSupportDonation"},{"inputs":[],"type":"error","name":"DoesNotSupportRemoveLiquidityCustom"},{"inputs":[],"type":"error","name":"DoesNotSupportUnbalancedLiquidity"},{"inputs":[],"type":"error","name":"DynamicSwapFeeHookFailed"},{"inputs":[],"type":"error","name":"ExcessiveInvalidation"},{"inputs":[],"type":"error","name":"FeePrecisionTooHigh"},{"inputs":[{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"}],"type":"error","name":"HookAdjustedAmountInAboveMax"},{"inputs":[{"internalType":"contract IERC20","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"type":"error","name":"HookAdjustedAmountOutBelowMin"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"HookAdjustedSwapLimit"},{"inputs":[{"internalType":"address","name":"poolHooksContract","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"poolFactory","type":"address"}],"type":"error","name":"HookRegistrationFailed"},{"inputs":[],"type":"error","name":"InputLengthMismatch"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientEth"},{"inputs":[],"type":"error","name":"InvalidAddLiquidityKind"},{"inputs":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}],"type":"error","name":"InvalidAmount"},{"inputs":[],"type":"error","name":"InvalidRemoveLiquidityKind"},{"inputs":[],"type":"error","name":"InvalidToken"},{"inputs":[],"type":"error","name":"InvalidTokenConfiguration"},{"inputs":[],"type":"error","name":"InvalidTokenDecimals"},{"inputs":[],"type":"error","name":"InvalidTokenType"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"}],"type":"error","name":"InvalidUnderlyingToken"},{"inputs":[{"internalType":"uint256","name":"issuedShares","type":"uint256"},{"internalType":"uint256","name":"minIssuedShares","type":"uint256"}],"type":"error","name":"IssuedSharesBelowMin"},{"inputs":[],"type":"error","name":"LengthMismatch"},{"inputs":[],"type":"error","name":"MaxTokens"},{"inputs":[],"type":"error","name":"MinTokens"},{"inputs":[],"type":"error","name":"MinWeight"},{"inputs":[],"type":"error","name":"MultipleNonZeroInputs"},{"inputs":[],"type":"error","name":"NormalizedWeightInvariant"},{"inputs":[],"type":"error","name":"NotEnoughBufferShares"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"},{"internalType":"uint256","name":"expectedUnderlyingAmount","type":"uint256"},{"internalType":"uint256","name":"actualUnderlyingAmount","type":"uint256"}],"type":"error","name":"NotEnoughUnderlying"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"},{"internalType":"uint256","name":"expectedWrappedAmount","type":"uint256"},{"internalType":"uint256","name":"actualWrappedAmount","type":"uint256"}],"type":"error","name":"NotEnoughWrapped"},{"inputs":[],"type":"error","name":"NotStaticCall"},{"inputs":[],"type":"error","name":"NotVaultDelegateCall"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"OnlyPauseGuardian"},{"inputs":[],"type":"error","name":"PauseBufferPeriodDurationTooLarge"},{"inputs":[],"type":"error","name":"PercentageAboveMax"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolAddressMismatch"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolAlreadyInitialized"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolAlreadyRegistered"},{"inputs":[],"type":"error","name":"PoolCreatorFeePercentageTooHigh"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolCreatorNotRegistered"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolInRecoveryMode"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolNotInRecoveryMode"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolNotInitialized"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolNotPaused"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolNotRegistered"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolPauseWindowExpired"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"type":"error","name":"PoolPaused"},{"inputs":[],"type":"error","name":"ProtocolFeesExceedTotalCollected"},{"inputs":[],"type":"error","name":"ProtocolSwapFeePercentageTooHigh"},{"inputs":[],"type":"error","name":"ProtocolYieldFeePercentageTooHigh"},{"inputs":[],"type":"error","name":"QueriesDisabled"},{"inputs":[],"type":"error","name":"QueriesDisabledPermanently"},{"inputs":[],"type":"error","name":"QuoteResultSpoofed"},{"inputs":[],"type":"error","name":"RouterNotTrusted"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"SenderIsNotVault"},{"inputs":[],"type":"error","name":"StandardPoolWithCreator"},{"inputs":[],"type":"error","name":"StaticATokenInvalidZeroShares"},{"inputs":[],"type":"error","name":"SwapDeadline"},{"inputs":[],"type":"error","name":"SwapFeePercentageTooHigh"},{"inputs":[],"type":"error","name":"SwapFeePercentageTooLow"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"SwapLimit"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"type":"error","name":"TokenAlreadyRegistered"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"type":"error","name":"TokenNotRegistered"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"expectedToken","type":"address"},{"internalType":"address","name":"actualToken","type":"address"}],"type":"error","name":"TokensMismatch"},{"inputs":[],"type":"error","name":"TokensNotSorted"},{"inputs":[],"type":"error","name":"TradeAmountTooSmall"},{"inputs":[],"type":"error","name":"VaultBuffersArePaused"},{"inputs":[],"type":"error","name":"VaultIsNotUnlocked"},{"inputs":[],"type":"error","name":"VaultNotPaused"},{"inputs":[],"type":"error","name":"VaultPauseWindowDurationTooLarge"},{"inputs":[],"type":"error","name":"VaultPauseWindowExpired"},{"inputs":[],"type":"error","name":"VaultPaused"},{"inputs":[],"type":"error","name":"VaultQueriesDisabled"},{"inputs":[],"type":"error","name":"WeightedPoolBptRateUnsupported"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"}],"type":"error","name":"WrapAmountTooSmall"},{"inputs":[],"type":"error","name":"WrongProtocolFeeControllerDeployment"},{"inputs":[{"internalType":"contract IERC4626","name":"wrappedToken","type":"address"},{"internalType":"address","name":"underlyingToken","type":"address"}],"type":"error","name":"WrongUnderlyingToken"},{"inputs":[],"type":"error","name":"WrongVaultAdminDeployment"},{"inputs":[],"type":"error","name":"WrongVaultExtensionDeployment"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"word","type":"uint256","indexed":false},{"internalType":"uint256","name":"mask","type":"uint256","indexed":false}],"type":"event","name":"UnorderedNonceInvalidation","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/balancer-v3/lib/BalancerV3Errors.sol":"BalancerV3Errors"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/balancer-v3/BalancerV3SwapAdapter.sol":{"keccak256":"0x953286f17c621bef769154e4d735e11350ddf439f4a7bb136b875ef11bcc1abc","urls":["bzz-raw://916037f7d6a973f8ef83f8509e74fc9dcf4dcf34ef74836b8579353b45b4fd0a","dweb:/ipfs/Qma94Vf221Q9BaYuNY2WvKJcaAQ8frZpyf5tH7LBuepfba"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerCustomWrapHelpers.sol":{"keccak256":"0x0f6b335d2add29c075bdf0b4d596dfdfc1d46fd69eafa009b0d9141256ff1a30","urls":["bzz-raw://94a73f885d3a4cf266128dcaf9bd276d80e54ee4fb580741213c58165c844313","dweb:/ipfs/QmX2tRhSy3rYdSzViMgM1X9ResBMALBA21jhN7gTE7g2P8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC20Helpers.sol":{"keccak256":"0x40f4571feb1755549e172a1157af748b724aeff1a62edf118a625afe9651bdbd","urls":["bzz-raw://d9a7bc8172d05945a6262455c12cb8296fbe906ae20018fe2e4646d1051a63ec","dweb:/ipfs/QmTFG25A5NR49dGcRsUkxB4g9PiKcxapPVZGu6GLvMPgb8"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerERC4626Helpers.sol":{"keccak256":"0xf19e1a229b1cb569617e28ba1bc8d1b2cfb403d3164018610040ab439e65c211","urls":["bzz-raw://2493d7748eedfc1ad1bed4bd6b16ede7f5e1b69f1ecf4176851a857f39b018ea","dweb:/ipfs/QmeogRJKPvPGBTdJvciejWGMWy1tik8e817uPcp5Dp2Wn7"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerInterfaces.sol":{"keccak256":"0xff32e4111c1954881e6c503c53c3406ae5b225f54ce0edf633d357a77c5a56c8","urls":["bzz-raw://06ef20a4676393fb14947b7abdc6d06c19ae2249cfb508044e95fbc957c0f701","dweb:/ipfs/QmaCws32eR57w1BmEZDFaV3kbEbyzQta8MP8eSL2EZcvKZ"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerStorage.sol":{"keccak256":"0x16d74f81b9a15386060130b04b8be2aec55fb4ec20233742db16d2d82d6d748b","urls":["bzz-raw://e9455e4e3a1dd98165117502ce53e12ba5787b1d5646df9873b93b1cfe3e1136","dweb:/ipfs/QmQ8VohFLoeGCVziyD3iYr1Gynf52gf9VgEoM97TnyRE48"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerSwapHelpers.sol":{"keccak256":"0x48d7f787de65a4671de1a49208130919b3fc7b17786c6eddf1897af122572f88","urls":["bzz-raw://17ff1db9264aebdae9f74bb587a40870ace02d4d90bb083e128af48af8500b76","dweb:/ipfs/QmPa9t3PmbRYZVzYoHyRVVjBZD9gs55pUNfF9hhuni5AQP"],"license":"AGPL-3.0-or-later"},"src/balancer-v3/lib/BalancerV3Errors.sol":{"keccak256":"0x18480a94df48406540188876ec5381f4e2240013c893df0c4d74d5cfd0e7cbdb","urls":["bzz-raw://ae1e8647ab344c5ebad993497bccd6ad17dcf9533fb3646a333bfe99a66e82a9","dweb:/ipfs/QmS5oeSX7WQttqNc1rZ7MNuA7VkffaFwMZk91j1RNC4ykY"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"},"src/libraries/CustomBytesAppend.sol":{"keccak256":"0x744de639d3f68d46b09e6f5f81ac003f92616f270007cc28778538894723276d","urls":["bzz-raw://9278b5ff65908b5377e7b875151204ca6de587091c7bdd9f2f4f7d75b3d4d9e5","dweb:/ipfs/QmPopj1aEWXtPg6CwKKAeEWBg1FBydPpQUM7VaFSvKvPU5"],"license":"MIT"}},"version":1},"id":49}