export const provisionerAbi = [ { type: 'constructor', inputs: [ { name: 'priceAndFeeCalculator', internalType: 'contract IPriceAndFeeCalculator', type: 'address', }, { name: 'multiDepositorVault', internalType: 'address', type: 'address' }, { name: 'owner_', internalType: 'address', type: 'address' }, { name: 'authority_', internalType: 'contract Authority', type: 'address' }, ], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'MULTI_DEPOSITOR_VAULT', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'PRICE_FEE_CALCULATOR', outputs: [{ name: '', internalType: 'contract IPriceAndFeeCalculator', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'acceptOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'user', internalType: 'address', type: 'address' }], name: 'areUserUnitsLocked', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'asyncDepositHash', internalType: 'bytes32', type: 'bytes32' }], name: 'asyncDepositHashes', outputs: [{ name: 'exists', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'asyncRedeemHash', internalType: 'bytes32', type: 'bytes32' }], name: 'asyncRedeemHashes', outputs: [{ name: 'exists', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'authority', outputs: [{ name: '', internalType: 'contract Authority', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'tokensIn', internalType: 'uint256', type: 'uint256' }, { name: 'minUnitsOut', internalType: 'uint256', type: 'uint256' }, ], name: 'deposit', outputs: [{ name: 'unitsOut', internalType: 'uint256', type: 'uint256' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'depositCap', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'depositRefundTimeout', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'user', internalType: 'address', type: 'address' }, { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'tokenAmount', internalType: 'uint256', type: 'uint256' }, { name: 'unitsAmount', internalType: 'uint256', type: 'uint256' }, { name: 'refundableUntil', internalType: 'uint256', type: 'uint256' }, ], name: 'getDepositHash', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'pure', }, { type: 'function', inputs: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'request', internalType: 'struct Request', type: 'tuple', components: [ { name: 'requestType', internalType: 'enum RequestType', type: 'uint8' }, { name: 'user', internalType: 'address', type: 'address' }, { name: 'units', internalType: 'uint256', type: 'uint256' }, { name: 'tokens', internalType: 'uint256', type: 'uint256' }, { name: 'solverTip', internalType: 'uint256', type: 'uint256' }, { name: 'deadline', internalType: 'uint256', type: 'uint256' }, { name: 'maxPriceAge', internalType: 'uint256', type: 'uint256' }, ], }, ], name: 'getRequestHash', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'pure', }, { type: 'function', inputs: [], name: 'maxDeposit', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'unitsOut', internalType: 'uint256', type: 'uint256' }, { name: 'maxTokensIn', internalType: 'uint256', type: 'uint256' }, ], name: 'mint', outputs: [{ name: 'tokensIn', internalType: 'uint256', type: 'uint256' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'pendingOwner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'sender', internalType: 'address', type: 'address' }, { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'tokenAmount', internalType: 'uint256', type: 'uint256' }, { name: 'unitsAmount', internalType: 'uint256', type: 'uint256' }, { name: 'refundableUntil', internalType: 'uint256', type: 'uint256' }, ], name: 'refundDeposit', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'request', internalType: 'struct Request', type: 'tuple', components: [ { name: 'requestType', internalType: 'enum RequestType', type: 'uint8' }, { name: 'user', internalType: 'address', type: 'address' }, { name: 'units', internalType: 'uint256', type: 'uint256' }, { name: 'tokens', internalType: 'uint256', type: 'uint256' }, { name: 'solverTip', internalType: 'uint256', type: 'uint256' }, { name: 'deadline', internalType: 'uint256', type: 'uint256' }, { name: 'maxPriceAge', internalType: 'uint256', type: 'uint256' }, ], }, ], name: 'refundRequest', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'token', internalType: 'contract IERC20', type: 'address' }], name: 'removeToken', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'tokensIn', internalType: 'uint256', type: 'uint256' }, { name: 'minUnitsOut', internalType: 'uint256', type: 'uint256' }, { name: 'solverTip', internalType: 'uint256', type: 'uint256' }, { name: 'deadline', internalType: 'uint256', type: 'uint256' }, { name: 'maxPriceAge', internalType: 'uint256', type: 'uint256' }, { name: 'isFixedPrice', internalType: 'bool', type: 'bool' }, ], name: 'requestDeposit', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'unitsIn', internalType: 'uint256', type: 'uint256' }, { name: 'minTokensOut', internalType: 'uint256', type: 'uint256' }, { name: 'solverTip', internalType: 'uint256', type: 'uint256' }, { name: 'deadline', internalType: 'uint256', type: 'uint256' }, { name: 'maxPriceAge', internalType: 'uint256', type: 'uint256' }, { name: 'isFixedPrice', internalType: 'bool', type: 'bool' }, ], name: 'requestRedeem', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'newAuthority', internalType: 'contract Authority', type: 'address' }], name: 'setAuthority', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'depositCap_', internalType: 'uint256', type: 'uint256' }, { name: 'depositRefundTimeout_', internalType: 'uint256', type: 'uint256' }, ], name: 'setDepositDetails', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'details', internalType: 'struct TokenDetails', type: 'tuple', components: [ { name: 'asyncDepositEnabled', internalType: 'bool', type: 'bool' }, { name: 'asyncRedeemEnabled', internalType: 'bool', type: 'bool' }, { name: 'syncDepositEnabled', internalType: 'bool', type: 'bool' }, { name: 'depositMultiplier', internalType: 'uint16', type: 'uint16' }, { name: 'redeemMultiplier', internalType: 'uint16', type: 'uint16' }, ], }, ], name: 'setTokenDetails', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'requests', internalType: 'struct Request[]', type: 'tuple[]', components: [ { name: 'requestType', internalType: 'enum RequestType', type: 'uint8' }, { name: 'user', internalType: 'address', type: 'address' }, { name: 'units', internalType: 'uint256', type: 'uint256' }, { name: 'tokens', internalType: 'uint256', type: 'uint256' }, { name: 'solverTip', internalType: 'uint256', type: 'uint256' }, { name: 'deadline', internalType: 'uint256', type: 'uint256' }, { name: 'maxPriceAge', internalType: 'uint256', type: 'uint256' }, ], }, ], name: 'solveRequestsDirect', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'requests', internalType: 'struct Request[]', type: 'tuple[]', components: [ { name: 'requestType', internalType: 'enum RequestType', type: 'uint8' }, { name: 'user', internalType: 'address', type: 'address' }, { name: 'units', internalType: 'uint256', type: 'uint256' }, { name: 'tokens', internalType: 'uint256', type: 'uint256' }, { name: 'solverTip', internalType: 'uint256', type: 'uint256' }, { name: 'deadline', internalType: 'uint256', type: 'uint256' }, { name: 'maxPriceAge', internalType: 'uint256', type: 'uint256' }, ], }, ], name: 'solveRequestsVault', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'syncDepositHash', internalType: 'bytes32', type: 'bytes32' }], name: 'syncDepositHashes', outputs: [{ name: 'exists', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'token', internalType: 'contract IERC20', type: 'address' }], name: 'tokensDetails', outputs: [ { name: 'asyncDepositEnabled', internalType: 'bool', type: 'bool' }, { name: 'asyncRedeemEnabled', internalType: 'bool', type: 'bool' }, { name: 'syncDepositEnabled', internalType: 'bool', type: 'bool' }, { name: 'depositMultiplier', internalType: 'uint16', type: 'uint16' }, { name: 'redeemMultiplier', internalType: 'uint16', type: 'uint16' }, ], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], name: 'transferOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'user', internalType: 'address', type: 'address' }], name: 'userUnitsRefundableUntil', outputs: [{ name: 'unitsLockedUntil', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'event', anonymous: false, inputs: [ { name: 'index', internalType: 'uint256', type: 'uint256', indexed: true }, { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'bound', internalType: 'uint256', type: 'uint256', indexed: false }, ], name: 'AmountBoundExceeded', }, { type: 'event', anonymous: false, inputs: [{ name: 'index', internalType: 'uint256', type: 'uint256', indexed: true }], name: 'AsyncDepositDisabled', }, { type: 'event', anonymous: false, inputs: [{ name: 'index', internalType: 'uint256', type: 'uint256', indexed: true }], name: 'AsyncRedeemDisabled', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newAuthority', internalType: 'contract Authority', type: 'address', indexed: true }, ], name: 'AuthorityUpdated', }, { type: 'event', anonymous: false, inputs: [{ name: 'index', internalType: 'uint256', type: 'uint256', indexed: true }], name: 'DepositCapExceeded', }, { type: 'event', anonymous: false, inputs: [ { name: 'depositCap', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'depositRefundTimeout', internalType: 'uint256', type: 'uint256', indexed: false }, ], name: 'DepositDetailsUpdated', }, { type: 'event', anonymous: false, inputs: [{ name: 'depositHash', internalType: 'bytes32', type: 'bytes32', indexed: true }], name: 'DepositRefunded', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'token', internalType: 'contract IERC20', type: 'address', indexed: true }, { name: 'tokensIn', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'minUnitsOut', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'solverTip', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'deadline', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'maxPriceAge', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'isFixedPrice', internalType: 'bool', type: 'bool', indexed: false }, { name: 'depositRequestHash', internalType: 'bytes32', type: 'bytes32', indexed: false }, ], name: 'DepositRequested', }, { type: 'event', anonymous: false, inputs: [{ name: 'depositHash', internalType: 'bytes32', type: 'bytes32', indexed: true }], name: 'DepositSolved', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'token', internalType: 'contract IERC20', type: 'address', indexed: true }, { name: 'tokensIn', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'unitsOut', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'depositHash', internalType: 'bytes32', type: 'bytes32', indexed: false }, ], name: 'Deposited', }, { type: 'event', anonymous: false, inputs: [{ name: 'depositHash', internalType: 'bytes32', type: 'bytes32', indexed: true }], name: 'DirectDepositRefunded', }, { type: 'event', anonymous: false, inputs: [{ name: 'index', internalType: 'uint256', type: 'uint256', indexed: true }], name: 'InsufficientTokensForTip', }, { type: 'event', anonymous: false, inputs: [{ name: 'depositHash', internalType: 'bytes32', type: 'bytes32', indexed: true }], name: 'InvalidRequestHash', }, { type: 'event', anonymous: false, inputs: [ { name: 'previousOwner', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferStarted', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferred', }, { type: 'event', anonymous: false, inputs: [{ name: 'index', internalType: 'uint256', type: 'uint256', indexed: true }], name: 'PriceAgeExceeded', }, { type: 'event', anonymous: false, inputs: [{ name: 'redeemHash', internalType: 'bytes32', type: 'bytes32', indexed: true }], name: 'RedeemRefunded', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'token', internalType: 'contract IERC20', type: 'address', indexed: true }, { name: 'minTokensOut', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'unitsIn', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'solverTip', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'deadline', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'maxPriceAge', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'isFixedPrice', internalType: 'bool', type: 'bool', indexed: false }, { name: 'redeemRequestHash', internalType: 'bytes32', type: 'bytes32', indexed: false }, ], name: 'RedeemRequested', }, { type: 'event', anonymous: false, inputs: [{ name: 'redeemHash', internalType: 'bytes32', type: 'bytes32', indexed: true }], name: 'RedeemSolved', }, { type: 'event', anonymous: false, inputs: [ { name: 'token', internalType: 'contract IERC20', type: 'address', indexed: true }, { name: 'tokensDetails', internalType: 'struct TokenDetails', type: 'tuple', components: [ { name: 'asyncDepositEnabled', internalType: 'bool', type: 'bool' }, { name: 'asyncRedeemEnabled', internalType: 'bool', type: 'bool' }, { name: 'syncDepositEnabled', internalType: 'bool', type: 'bool' }, { name: 'depositMultiplier', internalType: 'uint16', type: 'uint16' }, { name: 'redeemMultiplier', internalType: 'uint16', type: 'uint16' }, ], indexed: false, }, ], name: 'TokenDetailsSet', }, { type: 'event', anonymous: false, inputs: [{ name: 'token', internalType: 'contract IERC20', type: 'address', indexed: true }], name: 'TokenRemoved', }, { type: 'error', inputs: [], name: 'Aera__AsyncDepositDisabled' }, { type: 'error', inputs: [], name: 'Aera__AsyncRedeemDisabled' }, { type: 'error', inputs: [], name: 'Aera__AutoPriceSolveNotAllowed' }, { type: 'error', inputs: [], name: 'Aera__CallerIsVault' }, { type: 'error', inputs: [], name: 'Aera__DeadlineInFutureAndUnauthorized' }, { type: 'error', inputs: [], name: 'Aera__DeadlineInPast' }, { type: 'error', inputs: [], name: 'Aera__DeadlineTooFarInFuture' }, { type: 'error', inputs: [], name: 'Aera__DepositCapExceeded' }, { type: 'error', inputs: [], name: 'Aera__DepositCapZero' }, { type: 'error', inputs: [], name: 'Aera__DepositHashNotFound' }, { type: 'error', inputs: [], name: 'Aera__DepositMultiplierTooHigh' }, { type: 'error', inputs: [], name: 'Aera__DepositMultiplierTooLow' }, { type: 'error', inputs: [], name: 'Aera__FixedPriceSolverTipNotAllowed' }, { type: 'error', inputs: [], name: 'Aera__HashCollision' }, { type: 'error', inputs: [], name: 'Aera__HashNotFound' }, { type: 'error', inputs: [], name: 'Aera__InvalidToken' }, { type: 'error', inputs: [], name: 'Aera__MaxDepositRefundTimeoutExceeded' }, { type: 'error', inputs: [], name: 'Aera__MaxTokensInExceeded' }, { type: 'error', inputs: [], name: 'Aera__MaxTokensInZero' }, { type: 'error', inputs: [], name: 'Aera__MinTokenOutZero' }, { type: 'error', inputs: [], name: 'Aera__MinUnitsOutNotMet' }, { type: 'error', inputs: [], name: 'Aera__MinUnitsOutZero' }, { type: 'error', inputs: [], name: 'Aera__PriceAndFeeCalculatorVaultPaused' }, { type: 'error', inputs: [], name: 'Aera__RedeemMultiplierTooHigh' }, { type: 'error', inputs: [], name: 'Aera__RedeemMultiplierTooLow' }, { type: 'error', inputs: [], name: 'Aera__RefundPeriodExpired' }, { type: 'error', inputs: [], name: 'Aera__SyncDepositDisabled' }, { type: 'error', inputs: [], name: 'Aera__TokenCantBePriced' }, { type: 'error', inputs: [], name: 'Aera__TokensInZero' }, { type: 'error', inputs: [], name: 'Aera__Unauthorized' }, { type: 'error', inputs: [], name: 'Aera__UnitsInZero' }, { type: 'error', inputs: [], name: 'Aera__UnitsOutZero' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressAuthority' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressMultiDepositorVault' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressPriceAndFeeCalculator' }, { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' }, { type: 'error', inputs: [{ name: 'token', internalType: 'address', type: 'address' }], name: 'SafeERC20FailedOperation', }, ] as const; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ProvisionerFactory ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// export const provisionerFactoryAbi = [ { type: 'constructor', inputs: [ { name: 'initialOwner', internalType: 'address', type: 'address' }, { name: 'initialAuthorityForFactory', internalType: 'contract Authority', type: 'address' }, ], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'acceptOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'authority', outputs: [{ name: '', internalType: 'contract Authority', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: '_priceAndFeeCalculator', internalType: 'contract IPriceAndFeeCalculator', type: 'address', }, { name: '_multiDepositorVault', internalType: 'address', type: 'address' }, { name: '_provisionerOwner', internalType: 'address', type: 'address' }, { name: '_authority', internalType: 'address', type: 'address' }, { name: '_salt', internalType: 'bytes32', type: 'bytes32' }, ], name: 'computeProvisionerExpectedAddress', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: '_priceAndFeeCalculator', internalType: 'contract IPriceAndFeeCalculator', type: 'address', }, { name: '_multiDepositorVault', internalType: 'address', type: 'address' }, { name: '_provisionerOwner', internalType: 'address', type: 'address' }, { name: '_provisionerAuthorityAddress', internalType: 'address', type: 'address' }, { name: '_provisionerSalt', internalType: 'bytes32', type: 'bytes32' }, ], name: 'createProvisioner', outputs: [{ name: 'provisionerAddress', internalType: 'address', type: 'address' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'pendingOwner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'newAuthority', internalType: 'contract Authority', type: 'address' }], name: 'setAuthority', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], name: 'transferOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newAuthority', internalType: 'contract Authority', type: 'address', indexed: true }, ], name: 'AuthorityUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'previousOwner', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferStarted', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferred', }, { type: 'event', anonymous: false, inputs: [ { name: 'provisioner', internalType: 'address', type: 'address', indexed: true }, { name: 'provisionerRolesAuthority', internalType: 'address', type: 'address', indexed: true, }, { name: 'multiDepositorVault', internalType: 'address', type: 'address', indexed: true }, { name: 'provisionerOwner', internalType: 'address', type: 'address', indexed: false }, { name: 'caller', internalType: 'address', type: 'address', indexed: false }, { name: 'provisionerSalt', internalType: 'bytes32', type: 'bytes32', indexed: false }, ], name: 'ProvisionerCreated', }, { type: 'error', inputs: [], name: 'Aera__Unauthorized' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressAuthority' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressMultiDepositorVault' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressPriceAndFeeCalculator' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressProvisionerOwner' }, ] as const; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // RolesAuthority ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// export const rolesAuthorityAbi = [ { type: 'constructor', inputs: [ { name: '_owner', internalType: 'address', type: 'address' }, { name: '_authority', internalType: 'contract Authority', type: 'address' }, ], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'authority', outputs: [{ name: '', internalType: 'contract Authority', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'user', internalType: 'address', type: 'address' }, { name: 'target', internalType: 'address', type: 'address' }, { name: 'functionSig', internalType: 'bytes4', type: 'bytes4' }, ], name: 'canCall', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'role', internalType: 'uint8', type: 'uint8' }, { name: 'target', internalType: 'address', type: 'address' }, { name: 'functionSig', internalType: 'bytes4', type: 'bytes4' }, ], name: 'doesRoleHaveCapability', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'user', internalType: 'address', type: 'address' }, { name: 'role', internalType: 'uint8', type: 'uint8' }, ], name: 'doesUserHaveRole', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: '', internalType: 'address', type: 'address' }, { name: '', internalType: 'bytes4', type: 'bytes4' }, ], name: 'getRolesWithCapability', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: '', internalType: 'address', type: 'address' }], name: 'getUserRoles', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: '', internalType: 'address', type: 'address' }, { name: '', internalType: 'bytes4', type: 'bytes4' }, ], name: 'isCapabilityPublic', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'newAuthority', internalType: 'contract Authority', type: 'address' }], name: 'setAuthority', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'target', internalType: 'address', type: 'address' }, { name: 'functionSig', internalType: 'bytes4', type: 'bytes4' }, { name: 'enabled', internalType: 'bool', type: 'bool' }, ], name: 'setPublicCapability', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'role', internalType: 'uint8', type: 'uint8' }, { name: 'target', internalType: 'address', type: 'address' }, { name: 'functionSig', internalType: 'bytes4', type: 'bytes4' }, { name: 'enabled', internalType: 'bool', type: 'bool' }, ], name: 'setRoleCapability', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'user', internalType: 'address', type: 'address' }, { name: 'role', internalType: 'uint8', type: 'uint8' }, { name: 'enabled', internalType: 'bool', type: 'bool' }, ], name: 'setUserRole', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], name: 'transferOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newAuthority', internalType: 'contract Authority', type: 'address', indexed: true }, ], name: 'AuthorityUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferred', }, { type: 'event', anonymous: false, inputs: [ { name: 'target', internalType: 'address', type: 'address', indexed: true }, { name: 'functionSig', internalType: 'bytes4', type: 'bytes4', indexed: true }, { name: 'enabled', internalType: 'bool', type: 'bool', indexed: false }, ], name: 'PublicCapabilityUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'role', internalType: 'uint8', type: 'uint8', indexed: true }, { name: 'target', internalType: 'address', type: 'address', indexed: true }, { name: 'functionSig', internalType: 'bytes4', type: 'bytes4', indexed: true }, { name: 'enabled', internalType: 'bool', type: 'bool', indexed: false }, ], name: 'RoleCapabilityUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'role', internalType: 'uint8', type: 'uint8', indexed: true }, { name: 'enabled', internalType: 'bool', type: 'bool', indexed: false }, ], name: 'UserRoleUpdated', }, ] as const; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // RolesAuthorityFactory ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// export const rolesAuthorityFactoryAbi = [ { type: 'constructor', inputs: [ { name: 'initialOwner', internalType: 'address', type: 'address' }, { name: 'initialAuthorityForFactory', internalType: 'contract Authority', type: 'address' }, ], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'acceptOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'authority', outputs: [{ name: '', internalType: 'contract Authority', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: '_owner', internalType: 'address', type: 'address' }, { name: '_initialAuthority', internalType: 'address', type: 'address' }, { name: '_salt', internalType: 'bytes32', type: 'bytes32' }, ], name: 'computeRolesAuthorityExpectedAddress', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: '_owner', internalType: 'address', type: 'address' }, { name: '_initialAuthority', internalType: 'address', type: 'address' }, { name: '_salt', internalType: 'bytes32', type: 'bytes32' }, ], name: 'createRolesAuthority', outputs: [{ name: 'rolesAuthorityAddress', internalType: 'address', type: 'address' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'pendingOwner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'newAuthority', internalType: 'contract Authority', type: 'address' }], name: 'setAuthority', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], name: 'transferOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newAuthority', internalType: 'contract Authority', type: 'address', indexed: true }, ], name: 'AuthorityUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'previousOwner', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferStarted', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferred', }, { type: 'event', anonymous: false, inputs: [ { name: 'rolesAuthorityAddress', internalType: 'address', type: 'address', indexed: true }, { name: 'owner', internalType: 'address', type: 'address', indexed: true }, { name: 'initialAuthority', internalType: 'address', type: 'address', indexed: true }, { name: 'creator', internalType: 'address', type: 'address', indexed: false }, { name: 'salt', internalType: 'bytes32', type: 'bytes32', indexed: false }, ], name: 'RolesAuthorityCreated', }, { type: 'error', inputs: [], name: 'Aera__Unauthorized' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressAuthority' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressOwner' }, ] as const; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // SingleDepositorVault ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// export const singleDepositorVaultAbi = [ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'fallback', stateMutability: 'nonpayable' }, { type: 'receive', stateMutability: 'payable' }, { type: 'function', inputs: [], name: 'FEE_TOKEN', outputs: [{ name: '', internalType: 'contract IERC20', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'WHITELIST', outputs: [{ name: '', internalType: 'contract IWhitelist', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'acceptOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'authority', outputs: [{ name: '', internalType: 'contract Authority', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'guardian', internalType: 'address', type: 'address' }], name: 'checkGuardianWhitelist', outputs: [{ name: 'isRemoved', internalType: 'bool', type: 'bool' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'claimFees', outputs: [ { name: 'feeRecipientFees', internalType: 'uint256', type: 'uint256' }, { name: 'protocolFees', internalType: 'uint256', type: 'uint256' }, ], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'claimProtocolFees', outputs: [{ name: 'protocolFees', internalType: 'uint256', type: 'uint256' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'tokenAmounts', internalType: 'struct TokenAmount[]', type: 'tuple[]', components: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'amount', internalType: 'uint256', type: 'uint256' }, ], }, ], name: 'deposit', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'operations', internalType: 'struct OperationPayable[]', type: 'tuple[]', components: [ { name: 'target', internalType: 'address', type: 'address' }, { name: 'data', internalType: 'bytes', type: 'bytes' }, { name: 'value', internalType: 'uint256', type: 'uint256' }, ], }, ], name: 'execute', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'feeCalculator', outputs: [{ name: '', internalType: 'contract IFeeCalculator', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'feeRecipient', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'getActiveGuardians', outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'getCurrentHookCallType', outputs: [{ name: '', internalType: 'enum HookCallType', type: 'uint8' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'guardian', internalType: 'address', type: 'address' }], name: 'getGuardianRoot', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: '', internalType: 'address', type: 'address' }, { name: '', internalType: 'address', type: 'address' }, { name: '', internalType: 'uint256', type: 'uint256' }, { name: '', internalType: 'bytes', type: 'bytes' }, ], name: 'onERC721Received', outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], stateMutability: 'pure', }, { type: 'function', inputs: [], name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'pause', outputs: [], stateMutability: 'nonpayable' }, { type: 'function', inputs: [], name: 'paused', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'pendingOwner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'guardian', internalType: 'address', type: 'address' }], name: 'removeGuardian', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'newAuthority', internalType: 'contract Authority', type: 'address' }], name: 'setAuthority', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'newFeeCalculator', internalType: 'contract IFeeCalculator', type: 'address' }, ], name: 'setFeeCalculator', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'newFeeRecipient', internalType: 'address', type: 'address' }], name: 'setFeeRecipient', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'guardian', internalType: 'address', type: 'address' }, { name: 'root', internalType: 'bytes32', type: 'bytes32' }, ], name: 'setGuardianRoot', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'newSubmitHooks', internalType: 'contract ISubmitHooks', type: 'address' }], name: 'setSubmitHooks', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }], name: 'submit', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'submitHooks', outputs: [{ name: '', internalType: 'contract ISubmitHooks', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], name: 'transferOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'unpause', outputs: [], stateMutability: 'nonpayable' }, { type: 'function', inputs: [ { name: 'tokenAmounts', internalType: 'struct TokenAmount[]', type: 'tuple[]', components: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'amount', internalType: 'uint256', type: 'uint256' }, ], }, ], name: 'withdraw', outputs: [], stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newAuthority', internalType: 'contract Authority', type: 'address', indexed: true }, ], name: 'AuthorityUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'depositor', internalType: 'address', type: 'address', indexed: true }, { name: 'tokenAmounts', internalType: 'struct TokenAmount[]', type: 'tuple[]', components: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'amount', internalType: 'uint256', type: 'uint256' }, ], indexed: false, }, ], name: 'Deposited', }, { type: 'event', anonymous: false, inputs: [ { name: 'executor', internalType: 'address', type: 'address', indexed: true }, { name: 'operations', internalType: 'struct OperationPayable[]', type: 'tuple[]', components: [ { name: 'target', internalType: 'address', type: 'address' }, { name: 'data', internalType: 'bytes', type: 'bytes' }, { name: 'value', internalType: 'uint256', type: 'uint256' }, ], indexed: false, }, ], name: 'Executed', }, { type: 'event', anonymous: false, inputs: [{ name: 'newFeeCalculator', internalType: 'address', type: 'address', indexed: true }], name: 'FeeCalculatorUpdated', }, { type: 'event', anonymous: false, inputs: [{ name: 'newFeeRecipient', internalType: 'address', type: 'address', indexed: true }], name: 'FeeRecipientUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'feeRecipient', internalType: 'address', type: 'address', indexed: true }, { name: 'fees', internalType: 'uint256', type: 'uint256', indexed: false }, ], name: 'FeesClaimed', }, { type: 'event', anonymous: false, inputs: [ { name: 'guardian', internalType: 'address', type: 'address', indexed: true }, { name: 'root', internalType: 'bytes32', type: 'bytes32', indexed: true }, ], name: 'GuardianRootSet', }, { type: 'event', anonymous: false, inputs: [ { name: 'previousOwner', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferStarted', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferred', }, { type: 'event', anonymous: false, inputs: [{ name: 'account', internalType: 'address', type: 'address', indexed: false }], name: 'Paused', }, { type: 'event', anonymous: false, inputs: [ { name: 'protocolFeeRecipient', internalType: 'address', type: 'address', indexed: true }, { name: 'protocolEarnedFees', internalType: 'uint256', type: 'uint256', indexed: false }, ], name: 'ProtocolFeesClaimed', }, { type: 'event', anonymous: false, inputs: [ { name: 'submitHooksAddress', internalType: 'address', type: 'address', indexed: true }, ], name: 'SubmitHooksSet', }, { type: 'event', anonymous: false, inputs: [{ name: 'account', internalType: 'address', type: 'address', indexed: false }], name: 'Unpaused', }, { type: 'event', anonymous: false, inputs: [ { name: 'withdrawer', internalType: 'address', type: 'address', indexed: true }, { name: 'tokenAmounts', internalType: 'struct TokenAmount[]', type: 'tuple[]', components: [ { name: 'token', internalType: 'contract IERC20', type: 'address' }, { name: 'amount', internalType: 'uint256', type: 'uint256' }, ], indexed: false, }, ], name: 'Withdrawn', }, { type: 'error', inputs: [ { name: 'index', internalType: 'uint256', type: 'uint256' }, { name: 'result', internalType: 'bytes', type: 'bytes' }, ], name: 'Aera__AfterOperationHooksFailed', }, { type: 'error', inputs: [{ name: 'result', internalType: 'bytes', type: 'bytes' }], name: 'Aera__AfterSubmitHooksFailed', }, { type: 'error', inputs: [ { name: 'token', internalType: 'address', type: 'address' }, { name: 'spender', internalType: 'address', type: 'address' }, ], name: 'Aera__AllowanceIsNotZero', }, { type: 'error', inputs: [ { name: 'index', internalType: 'uint256', type: 'uint256' }, { name: 'result', internalType: 'bytes', type: 'bytes' }, ], name: 'Aera__BeforeOperationHooksFailed', }, { type: 'error', inputs: [], name: 'Aera__BeforeOperationHooksWithConfigurableHooks' }, { type: 'error', inputs: [{ name: 'result', internalType: 'bytes', type: 'bytes' }], name: 'Aera__BeforeSubmitHooksFailed', }, { type: 'error', inputs: [], name: 'Aera__CalldataTooShort' }, { type: 'error', inputs: [], name: 'Aera__CallerIsNotAuthOrGuardian' }, { type: 'error', inputs: [], name: 'Aera__CallerIsNotFeeRecipient' }, { type: 'error', inputs: [], name: 'Aera__CallerIsNotGuardian' }, { type: 'error', inputs: [], name: 'Aera__CallerIsNotProtocolFeeRecipient' }, { type: 'error', inputs: [], name: 'Aera__CopyOffsetOutOfBounds' }, { type: 'error', inputs: [ { name: 'index', internalType: 'uint256', type: 'uint256' }, { name: 'result', internalType: 'bytes', type: 'bytes' }, ], name: 'Aera__ExecutionFailed', }, { type: 'error', inputs: [], name: 'Aera__ExpectedCallbackNotReceived' }, { type: 'error', inputs: [], name: 'Aera__ExtractionNumberTooLarge' }, { type: 'error', inputs: [], name: 'Aera__GuardianNotWhitelisted' }, { type: 'error', inputs: [], name: 'Aera__InvalidBeforeOperationHooksReturnDataLength' }, { type: 'error', inputs: [], name: 'Aera__NoFeesToClaim' }, { type: 'error', inputs: [], name: 'Aera__NoResults' }, { type: 'error', inputs: [], name: 'Aera__OffsetOutOfBounds' }, { type: 'error', inputs: [], name: 'Aera__PasteOffsetOutOfBounds' }, { type: 'error', inputs: [], name: 'Aera__ProofVerificationFailed' }, { type: 'error', inputs: [ { name: 'index', internalType: 'uint256', type: 'uint256' }, { name: 'result', internalType: 'bytes', type: 'bytes' }, ], name: 'Aera__SubmissionFailed', }, { type: 'error', inputs: [], name: 'Aera__Unauthorized' }, { type: 'error', inputs: [], name: 'Aera__UnauthorizedCallback' }, { type: 'error', inputs: [{ name: 'allowance', internalType: 'uint256', type: 'uint256' }], name: 'Aera__UnexpectedTokenAllowance', }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressAuthority' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressFeeCalculator' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressFeeRecipient' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressFeeToken' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressGuardian' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressMerkleRoot' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressOwner' }, { type: 'error', inputs: [], name: 'EnforcedPause' }, { type: 'error', inputs: [], name: 'ExpectedPause' }, { type: 'error', inputs: [], name: 'ReaderNotAtEnd' }, { type: 'error', inputs: [], name: 'ReentrancyGuardReentrantCall' }, { type: 'error', inputs: [{ name: 'token', internalType: 'address', type: 'address' }], name: 'SafeERC20FailedOperation', }, ] as const; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // SingleDepositorVaultFactory ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// export const singleDepositorVaultFactoryAbi = [ { type: 'constructor', inputs: [ { name: 'initialOwner', internalType: 'address', type: 'address' }, { name: 'initialAuthority', internalType: 'contract Authority', type: 'address' }, { name: 'deployDelegate', internalType: 'address', type: 'address' }, ], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'acceptOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'authority', outputs: [{ name: '', internalType: 'contract Authority', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'baseVaultParameters', outputs: [ { name: 'params', internalType: 'struct BaseVaultParameters', type: 'tuple', components: [ { name: 'owner', internalType: 'address', type: 'address' }, { name: 'authority', internalType: 'contract Authority', type: 'address' }, { name: 'submitHooks', internalType: 'contract ISubmitHooks', type: 'address' }, { name: 'whitelist', internalType: 'contract IWhitelist', type: 'address' }, ], }, ], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, { name: 'description', internalType: 'string', type: 'string' }, { name: 'baseVaultParams', internalType: 'struct BaseVaultParameters', type: 'tuple', components: [ { name: 'owner', internalType: 'address', type: 'address' }, { name: 'authority', internalType: 'contract Authority', type: 'address' }, { name: 'submitHooks', internalType: 'contract ISubmitHooks', type: 'address' }, { name: 'whitelist', internalType: 'contract IWhitelist', type: 'address' }, ], }, { name: 'singleDepositorVaultParams', internalType: 'struct FeeVaultParameters', type: 'tuple', components: [ { name: 'feeCalculator', internalType: 'contract IFeeCalculator', type: 'address' }, { name: 'feeToken', internalType: 'contract IERC20', type: 'address' }, { name: 'feeRecipient', internalType: 'address', type: 'address' }, ], }, { name: 'expectedVaultAddress', internalType: 'address', type: 'address' }, ], name: 'create', outputs: [{ name: 'deployedVault', internalType: 'address', type: 'address' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'feeVaultParameters', outputs: [ { name: 'params', internalType: 'struct FeeVaultParameters', type: 'tuple', components: [ { name: 'feeCalculator', internalType: 'contract IFeeCalculator', type: 'address' }, { name: 'feeToken', internalType: 'contract IERC20', type: 'address' }, { name: 'feeRecipient', internalType: 'address', type: 'address' }, ], }, ], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'pendingOwner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'newAuthority', internalType: 'contract Authority', type: 'address' }], name: 'setAuthority', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'token', internalType: 'address', type: 'address' }, { name: 'amount', internalType: 'uint256', type: 'uint256' }, ], name: 'sweep', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], name: 'transferOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newAuthority', internalType: 'contract Authority', type: 'address', indexed: true }, ], name: 'AuthorityUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'previousOwner', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferStarted', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferred', }, { type: 'event', anonymous: false, inputs: [ { name: 'token', internalType: 'address', type: 'address', indexed: true }, { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false }, ], name: 'Sweep', }, { type: 'event', anonymous: false, inputs: [ { name: 'vault', internalType: 'address', type: 'address', indexed: true }, { name: 'owner', internalType: 'address', type: 'address', indexed: true }, { name: 'submitHooks', internalType: 'address', type: 'address', indexed: false }, { name: 'feeToken', internalType: 'contract IERC20', type: 'address', indexed: false }, { name: 'feeCalculator', internalType: 'contract IFeeCalculator', type: 'address', indexed: false, }, { name: 'feeRecipient', internalType: 'address', type: 'address', indexed: false }, { name: 'description', internalType: 'string', type: 'string', indexed: false }, ], name: 'VaultCreated', }, { type: 'error', inputs: [{ name: 'target', internalType: 'address', type: 'address' }], name: 'AddressEmptyCode', }, { type: 'error', inputs: [], name: 'Aera__DescriptionIsEmpty' }, { type: 'error', inputs: [], name: 'Aera__FailedToSendNativeToken' }, { type: 'error', inputs: [], name: 'Aera__Unauthorized' }, { type: 'error', inputs: [ { name: 'deployed', internalType: 'address', type: 'address' }, { name: 'expected', internalType: 'address', type: 'address' }, ], name: 'Aera__VaultAddressMismatch', }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressAuthority' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressDeployDelegate' }, { type: 'error', inputs: [], name: 'FailedCall' }, { type: 'error', inputs: [{ name: 'token', internalType: 'address', type: 'address' }], name: 'SafeERC20FailedOperation', }, ] as const; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // StablecoinStrategyHooks ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// export const stablecoinStrategyHooksAbi = [ { type: 'constructor', inputs: [{ name: 'numeraire_', internalType: 'address', type: 'address' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'MAX_BPS', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'NUMERAIRE', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'amount', internalType: 'uint256', type: 'uint256' }, { name: 'destinationDomain', internalType: 'uint32', type: 'uint32' }, { name: 'mintRecipient', internalType: 'bytes32', type: 'bytes32' }, { name: 'burnToken', internalType: 'address', type: 'address' }, { name: 'destinationCaller', internalType: 'bytes32', type: 'bytes32' }, { name: 'maxFee', internalType: 'uint256', type: 'uint256' }, { name: '', internalType: 'uint32', type: 'uint32' }, ], name: 'depositForBurn', outputs: [{ name: 'returnData', internalType: 'bytes', type: 'bytes' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'params', internalType: 'struct ISwapRouter.ExactInputParams', type: 'tuple', components: [ { name: 'path', internalType: 'bytes', type: 'bytes' }, { name: 'recipient', internalType: 'address', type: 'address' }, { name: 'deadline', internalType: 'uint256', type: 'uint256' }, { name: 'amountIn', internalType: 'uint256', type: 'uint256' }, { name: 'amountOutMinimum', internalType: 'uint256', type: 'uint256' }, ], }, ], name: 'exactInput', outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'params', internalType: 'struct ISwapRouter.ExactInputSingleParams', type: 'tuple', components: [ { name: 'tokenIn', internalType: 'address', type: 'address' }, { name: 'tokenOut', internalType: 'address', type: 'address' }, { name: 'fee', internalType: 'uint24', type: 'uint24' }, { name: 'recipient', internalType: 'address', type: 'address' }, { name: 'deadline', internalType: 'uint256', type: 'uint256' }, { name: 'amountIn', internalType: 'uint256', type: 'uint256' }, { name: 'amountOutMinimum', internalType: 'uint256', type: 'uint256' }, { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' }, ], }, ], name: 'exactInputSingle', outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'params', internalType: 'struct ISwapRouter.ExactOutputParams', type: 'tuple', components: [ { name: 'path', internalType: 'bytes', type: 'bytes' }, { name: 'recipient', internalType: 'address', type: 'address' }, { name: 'deadline', internalType: 'uint256', type: 'uint256' }, { name: 'amountOut', internalType: 'uint256', type: 'uint256' }, { name: 'amountInMaximum', internalType: 'uint256', type: 'uint256' }, ], }, ], name: 'exactOutput', outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'params', internalType: 'struct ISwapRouter.ExactOutputSingleParams', type: 'tuple', components: [ { name: 'tokenIn', internalType: 'address', type: 'address' }, { name: 'tokenOut', internalType: 'address', type: 'address' }, { name: 'fee', internalType: 'uint24', type: 'uint24' }, { name: 'recipient', internalType: 'address', type: 'address' }, { name: 'deadline', internalType: 'uint256', type: 'uint256' }, { name: 'amountOut', internalType: 'uint256', type: 'uint256' }, { name: 'amountInMaximum', internalType: 'uint256', type: 'uint256' }, { name: 'sqrtPriceLimitX96', internalType: 'uint160', type: 'uint160' }, ], }, ], name: 'exactOutputSingle', outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'vault', internalType: 'address', type: 'address' }, { name: 'maxLoss', internalType: 'uint128', type: 'uint128' }, ], name: 'setMaxDailyLoss', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'vault', internalType: 'address', type: 'address' }, { name: 'newMaxSlippage', internalType: 'uint16', type: 'uint16' }, ], name: 'setMaxSlippagePerTrade', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'vault', internalType: 'address', type: 'address' }, { name: 'oracleRegistry', internalType: 'address', type: 'address' }, ], name: 'setOracleRegistry', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'tokenInfo', internalType: 'struct IOdosRouterV2.SwapTokenInfo', type: 'tuple', components: [ { name: 'inputToken', internalType: 'address', type: 'address' }, { name: 'inputAmount', internalType: 'uint256', type: 'uint256' }, { name: 'inputReceiver', internalType: 'address', type: 'address' }, { name: 'outputToken', internalType: 'address', type: 'address' }, { name: 'outputQuote', internalType: 'uint256', type: 'uint256' }, { name: 'outputMin', internalType: 'uint256', type: 'uint256' }, { name: 'outputReceiver', internalType: 'address', type: 'address' }, ], }, { name: '', internalType: 'bytes', type: 'bytes' }, { name: 'executor', internalType: 'address', type: 'address' }, { name: '', internalType: 'uint32', type: 'uint32' }, ], name: 'swap', outputs: [{ name: 'returnData', internalType: 'bytes', type: 'bytes' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'execution', internalType: 'struct IMetaAggregationRouterV2.SwapExecutionParams', type: 'tuple', components: [ { name: 'callTarget', internalType: 'address', type: 'address' }, { name: 'approveTarget', internalType: 'address', type: 'address' }, { name: 'targetData', internalType: 'bytes', type: 'bytes' }, { name: 'desc', internalType: 'struct IMetaAggregationRouterV2.SwapDescriptionV2', type: 'tuple', components: [ { name: 'srcToken', internalType: 'contract IERC20', type: 'address' }, { name: 'dstToken', internalType: 'contract IERC20', type: 'address' }, { name: 'srcReceivers', internalType: 'address[]', type: 'address[]' }, { name: 'srcAmounts', internalType: 'uint256[]', type: 'uint256[]' }, { name: 'feeReceivers', internalType: 'address[]', type: 'address[]' }, { name: 'feeAmounts', internalType: 'uint256[]', type: 'uint256[]' }, { name: 'dstReceiver', internalType: 'address', type: 'address' }, { name: 'amount', internalType: 'uint256', type: 'uint256' }, { name: 'minReturnAmount', internalType: 'uint256', type: 'uint256' }, { name: 'flags', internalType: 'uint256', type: 'uint256' }, { name: 'permit', internalType: 'bytes', type: 'bytes' }, ], }, { name: 'clientData', internalType: 'bytes', type: 'bytes' }, ], }, ], name: 'swap', outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'caller', internalType: 'contract IAggregationExecutor', type: 'address' }, { name: 'desc', internalType: 'struct IMetaAggregationRouterV2.SwapDescriptionV2', type: 'tuple', components: [ { name: 'srcToken', internalType: 'contract IERC20', type: 'address' }, { name: 'dstToken', internalType: 'contract IERC20', type: 'address' }, { name: 'srcReceivers', internalType: 'address[]', type: 'address[]' }, { name: 'srcAmounts', internalType: 'uint256[]', type: 'uint256[]' }, { name: 'feeReceivers', internalType: 'address[]', type: 'address[]' }, { name: 'feeAmounts', internalType: 'uint256[]', type: 'uint256[]' }, { name: 'dstReceiver', internalType: 'address', type: 'address' }, { name: 'amount', internalType: 'uint256', type: 'uint256' }, { name: 'minReturnAmount', internalType: 'uint256', type: 'uint256' }, { name: 'flags', internalType: 'uint256', type: 'uint256' }, { name: 'permit', internalType: 'bytes', type: 'bytes' }, ], }, { name: '', internalType: 'bytes', type: 'bytes' }, { name: '', internalType: 'bytes', type: 'bytes' }, ], name: 'swapSimpleMode', outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'vault', internalType: 'address', type: 'address' }], name: 'vaultStates', outputs: [ { name: 'state', internalType: 'struct IBaseSlippageHooks.State', type: 'tuple', components: [ { name: 'cumulativeDailyLossInNumeraire', internalType: 'uint128', type: 'uint128' }, { name: 'maxDailyLossInNumeraire', internalType: 'uint128', type: 'uint128' }, { name: 'maxSlippagePerTrade', internalType: 'uint16', type: 'uint16' }, { name: 'currentDay', internalType: 'uint32', type: 'uint32' }, { name: 'oracleRegistry', internalType: 'contract IOracleRegistry', type: 'address' }, ], }, ], stateMutability: 'view', }, { type: 'event', anonymous: false, inputs: [ { name: 'vault', internalType: 'address', type: 'address', indexed: true }, { name: 'tokenIn', internalType: 'address', type: 'address', indexed: true }, { name: 'tokenOut', internalType: 'address', type: 'address', indexed: true }, { name: 'valueBeforeNumeraire', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'valueAfterNumeraire', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'cumulativeDailyLossNumeraire', internalType: 'uint128', type: 'uint128', indexed: false, }, ], name: 'TradeSlippageChecked', }, { type: 'event', anonymous: false, inputs: [ { name: 'vault', internalType: 'address', type: 'address', indexed: true }, { name: 'maxLoss', internalType: 'uint256', type: 'uint256', indexed: false }, ], name: 'UpdateMaxDailyLoss', }, { type: 'event', anonymous: false, inputs: [ { name: 'vault', internalType: 'address', type: 'address', indexed: true }, { name: 'maxSlippage', internalType: 'uint256', type: 'uint256', indexed: false }, ], name: 'UpdateMaxSlippage', }, { type: 'event', anonymous: false, inputs: [ { name: 'vault', internalType: 'address', type: 'address', indexed: true }, { name: 'oracleRegistry', internalType: 'address', type: 'address', indexed: true }, ], name: 'UpdateOracleRegistry', }, { type: 'error', inputs: [], name: 'AeraPeriphery__BadPathFormat' }, { type: 'error', inputs: [], name: 'AeraPeriphery__CallerNotVaultOwner' }, { type: 'error', inputs: [], name: 'AeraPeriphery__DestinationCallerNotZero' }, { type: 'error', inputs: [ { name: 'loss', internalType: 'uint256', type: 'uint256' }, { name: 'maxLoss', internalType: 'uint256', type: 'uint256' }, ], name: 'AeraPeriphery__ExcessiveDailyLoss', }, { type: 'error', inputs: [ { name: 'loss', internalType: 'uint256', type: 'uint256' }, { name: 'valueBefore', internalType: 'uint256', type: 'uint256' }, { name: 'maxSlippage', internalType: 'uint256', type: 'uint256' }, ], name: 'AeraPeriphery__ExcessiveSlippage', }, { type: 'error', inputs: [], name: 'AeraPeriphery__FeeReceiversNotEmpty' }, { type: 'error', inputs: [], name: 'AeraPeriphery__InputAmountIsZero' }, { type: 'error', inputs: [], name: 'AeraPeriphery__InputTokenIsETH' }, { type: 'error', inputs: [{ name: 'maxSlippage', internalType: 'uint256', type: 'uint256' }], name: 'AeraPeriphery__MaxSlippagePerTradeTooHigh', }, { type: 'error', inputs: [], name: 'AeraPeriphery__OutputTokenIsETH' }, { type: 'error', inputs: [], name: 'AeraPeriphery__ZeroAddressOracleRegistry' }, { type: 'error', inputs: [], name: 'Aera__CallerIsNotAuthorized' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressNumeraire' }, ] as const; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // TimelockController ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// export const timelockControllerAbi = [ { type: 'constructor', inputs: [ { name: 'minDelay', internalType: 'uint256', type: 'uint256' }, { name: 'proposers', internalType: 'address[]', type: 'address[]' }, { name: 'executors', internalType: 'address[]', type: 'address[]' }, { name: 'admin', internalType: 'address', type: 'address' }, ], stateMutability: 'nonpayable', }, { type: 'receive', stateMutability: 'payable' }, { type: 'function', inputs: [], name: 'CANCELLER_ROLE', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'DEFAULT_ADMIN_ROLE', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'EXECUTOR_ROLE', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'PROPOSER_ROLE', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], name: 'cancel', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'target', internalType: 'address', type: 'address' }, { name: 'value', internalType: 'uint256', type: 'uint256' }, { name: 'payload', internalType: 'bytes', type: 'bytes' }, { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, ], name: 'execute', outputs: [], stateMutability: 'payable', }, { type: 'function', inputs: [ { name: 'targets', internalType: 'address[]', type: 'address[]' }, { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, { name: 'payloads', internalType: 'bytes[]', type: 'bytes[]' }, { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, ], name: 'executeBatch', outputs: [], stateMutability: 'payable', }, { type: 'function', inputs: [], name: 'getMinDelay', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], name: 'getOperationState', outputs: [{ name: '', internalType: 'enum TimelockController.OperationState', type: 'uint8' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'role', internalType: 'bytes32', type: 'bytes32' }], name: 'getRoleAdmin', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], name: 'getTimestamp', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'role', internalType: 'bytes32', type: 'bytes32' }, { name: 'account', internalType: 'address', type: 'address' }, ], name: 'grantRole', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'role', internalType: 'bytes32', type: 'bytes32' }, { name: 'account', internalType: 'address', type: 'address' }, ], name: 'hasRole', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'target', internalType: 'address', type: 'address' }, { name: 'value', internalType: 'uint256', type: 'uint256' }, { name: 'data', internalType: 'bytes', type: 'bytes' }, { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, ], name: 'hashOperation', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'pure', }, { type: 'function', inputs: [ { name: 'targets', internalType: 'address[]', type: 'address[]' }, { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, { name: 'payloads', internalType: 'bytes[]', type: 'bytes[]' }, { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, ], name: 'hashOperationBatch', outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], stateMutability: 'pure', }, { type: 'function', inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], name: 'isOperation', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], name: 'isOperationDone', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], name: 'isOperationPending', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32' }], name: 'isOperationReady', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: '', internalType: 'address', type: 'address' }, { name: '', internalType: 'address', type: 'address' }, { name: '', internalType: 'uint256[]', type: 'uint256[]' }, { name: '', internalType: 'uint256[]', type: 'uint256[]' }, { name: '', internalType: 'bytes', type: 'bytes' }, ], name: 'onERC1155BatchReceived', outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: '', internalType: 'address', type: 'address' }, { name: '', internalType: 'address', type: 'address' }, { name: '', internalType: 'uint256', type: 'uint256' }, { name: '', internalType: 'uint256', type: 'uint256' }, { name: '', internalType: 'bytes', type: 'bytes' }, ], name: 'onERC1155Received', outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: '', internalType: 'address', type: 'address' }, { name: '', internalType: 'address', type: 'address' }, { name: '', internalType: 'uint256', type: 'uint256' }, { name: '', internalType: 'bytes', type: 'bytes' }, ], name: 'onERC721Received', outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'role', internalType: 'bytes32', type: 'bytes32' }, { name: 'callerConfirmation', internalType: 'address', type: 'address' }, ], name: 'renounceRole', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'role', internalType: 'bytes32', type: 'bytes32' }, { name: 'account', internalType: 'address', type: 'address' }, ], name: 'revokeRole', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'target', internalType: 'address', type: 'address' }, { name: 'value', internalType: 'uint256', type: 'uint256' }, { name: 'data', internalType: 'bytes', type: 'bytes' }, { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, { name: 'delay', internalType: 'uint256', type: 'uint256' }, ], name: 'schedule', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'targets', internalType: 'address[]', type: 'address[]' }, { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, { name: 'payloads', internalType: 'bytes[]', type: 'bytes[]' }, { name: 'predecessor', internalType: 'bytes32', type: 'bytes32' }, { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, { name: 'delay', internalType: 'uint256', type: 'uint256' }, ], name: 'scheduleBatch', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], name: 'supportsInterface', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'newDelay', internalType: 'uint256', type: 'uint256' }], name: 'updateDelay', outputs: [], stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: true }, { name: 'index', internalType: 'uint256', type: 'uint256', indexed: true }, { name: 'target', internalType: 'address', type: 'address', indexed: false }, { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, ], name: 'CallExecuted', }, { type: 'event', anonymous: false, inputs: [ { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: true }, { name: 'salt', internalType: 'bytes32', type: 'bytes32', indexed: false }, ], name: 'CallSalt', }, { type: 'event', anonymous: false, inputs: [ { name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: true }, { name: 'index', internalType: 'uint256', type: 'uint256', indexed: true }, { name: 'target', internalType: 'address', type: 'address', indexed: false }, { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, { name: 'predecessor', internalType: 'bytes32', type: 'bytes32', indexed: false }, { name: 'delay', internalType: 'uint256', type: 'uint256', indexed: false }, ], name: 'CallScheduled', }, { type: 'event', anonymous: false, inputs: [{ name: 'id', internalType: 'bytes32', type: 'bytes32', indexed: true }], name: 'Cancelled', }, { type: 'event', anonymous: false, inputs: [ { name: 'oldDuration', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'newDuration', internalType: 'uint256', type: 'uint256', indexed: false }, ], name: 'MinDelayChange', }, { type: 'event', anonymous: false, inputs: [ { name: 'role', internalType: 'bytes32', type: 'bytes32', indexed: true }, { name: 'previousAdminRole', internalType: 'bytes32', type: 'bytes32', indexed: true }, { name: 'newAdminRole', internalType: 'bytes32', type: 'bytes32', indexed: true }, ], name: 'RoleAdminChanged', }, { type: 'event', anonymous: false, inputs: [ { name: 'role', internalType: 'bytes32', type: 'bytes32', indexed: true }, { name: 'account', internalType: 'address', type: 'address', indexed: true }, { name: 'sender', internalType: 'address', type: 'address', indexed: true }, ], name: 'RoleGranted', }, { type: 'event', anonymous: false, inputs: [ { name: 'role', internalType: 'bytes32', type: 'bytes32', indexed: true }, { name: 'account', internalType: 'address', type: 'address', indexed: true }, { name: 'sender', internalType: 'address', type: 'address', indexed: true }, ], name: 'RoleRevoked', }, { type: 'error', inputs: [], name: 'AccessControlBadConfirmation' }, { type: 'error', inputs: [ { name: 'account', internalType: 'address', type: 'address' }, { name: 'neededRole', internalType: 'bytes32', type: 'bytes32' }, ], name: 'AccessControlUnauthorizedAccount', }, { type: 'error', inputs: [], name: 'FailedCall' }, { type: 'error', inputs: [ { name: 'delay', internalType: 'uint256', type: 'uint256' }, { name: 'minDelay', internalType: 'uint256', type: 'uint256' }, ], name: 'TimelockInsufficientDelay', }, { type: 'error', inputs: [ { name: 'targets', internalType: 'uint256', type: 'uint256' }, { name: 'payloads', internalType: 'uint256', type: 'uint256' }, { name: 'values', internalType: 'uint256', type: 'uint256' }, ], name: 'TimelockInvalidOperationLength', }, { type: 'error', inputs: [{ name: 'caller', internalType: 'address', type: 'address' }], name: 'TimelockUnauthorizedCaller', }, { type: 'error', inputs: [{ name: 'predecessorId', internalType: 'bytes32', type: 'bytes32' }], name: 'TimelockUnexecutedPredecessor', }, { type: 'error', inputs: [ { name: 'operationId', internalType: 'bytes32', type: 'bytes32' }, { name: 'expectedStates', internalType: 'bytes32', type: 'bytes32' }, ], name: 'TimelockUnexpectedOperationState', }, ] as const; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // TimelockControllerFactory ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// export const timelockControllerFactoryAbi = [ { type: 'constructor', inputs: [ { name: 'initialOwner', internalType: 'address', type: 'address' }, { name: 'initialAuthorityForFactory', internalType: 'contract Authority', type: 'address' }, ], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'acceptOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'authority', outputs: [{ name: '', internalType: 'contract Authority', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'minDelay', internalType: 'uint256', type: 'uint256' }, { name: 'proposers', internalType: 'address[]', type: 'address[]' }, { name: 'executors', internalType: 'address[]', type: 'address[]' }, { name: 'admin', internalType: 'address', type: 'address' }, { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, ], name: 'computeTimelockControllerExpectedAddress', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'minDelay', internalType: 'uint256', type: 'uint256' }, { name: 'proposers', internalType: 'address[]', type: 'address[]' }, { name: 'executors', internalType: 'address[]', type: 'address[]' }, { name: 'admin', internalType: 'address', type: 'address' }, { name: 'salt', internalType: 'bytes32', type: 'bytes32' }, ], name: 'createTimelockController', outputs: [{ name: 'timelockAddress', internalType: 'address', type: 'address' }], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'pendingOwner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'newAuthority', internalType: 'contract Authority', type: 'address' }], name: 'setAuthority', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], name: 'transferOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newAuthority', internalType: 'contract Authority', type: 'address', indexed: true }, ], name: 'AuthorityUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'previousOwner', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferStarted', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferred', }, { type: 'event', anonymous: false, inputs: [ { name: 'timelockAddress', internalType: 'address', type: 'address', indexed: true }, { name: 'minDelay', internalType: 'uint256', type: 'uint256', indexed: false }, { name: 'proposers', internalType: 'address[]', type: 'address[]', indexed: false }, { name: 'executors', internalType: 'address[]', type: 'address[]', indexed: false }, { name: 'admin', internalType: 'address', type: 'address', indexed: false }, { name: 'creator', internalType: 'address', type: 'address', indexed: true }, { name: 'salt', internalType: 'bytes32', type: 'bytes32', indexed: false }, ], name: 'TimelockControllerCreated', }, { type: 'error', inputs: [], name: 'Aera__EmptyExecutors' }, { type: 'error', inputs: [], name: 'Aera__EmptyProposers' }, { type: 'error', inputs: [], name: 'Aera__Unauthorized' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressAuthority' }, ] as const; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // TransferBlacklistHook ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// export const transferBlacklistHookAbi = [ { type: 'constructor', inputs: [ { name: 'oracle_', internalType: 'contract IChainalysisSanctionsOracle', type: 'address' }, ], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'BLACKLIST_ORACLE', outputs: [{ name: '', internalType: 'contract IChainalysisSanctionsOracle', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'from', internalType: 'address', type: 'address' }, { name: 'to', internalType: 'address', type: 'address' }, { name: 'transferAgent', internalType: 'address', type: 'address' }, ], name: 'beforeTransfer', outputs: [], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'vault', internalType: 'address', type: 'address' }], name: 'isVaultUnitTransferable', outputs: [{ name: 'isVaultUnitTransferable', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [ { name: 'vault', internalType: 'address', type: 'address' }, { name: 'isTransferable', internalType: 'bool', type: 'bool' }, ], name: 'setIsVaultUnitsTransferable', outputs: [], stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { name: 'vault', internalType: 'address', type: 'address', indexed: true }, { name: 'isTransferable', internalType: 'bool', type: 'bool', indexed: false }, ], name: 'VaultUnitTransferableSet', }, { type: 'error', inputs: [{ name: 'address_', internalType: 'address', type: 'address' }], name: 'AeraPeriphery__BlacklistedAddress', }, { type: 'error', inputs: [], name: 'AeraPeriphery__ZeroAddressBlacklistOracle' }, { type: 'error', inputs: [], name: 'Aera__CallerIsNotAuthorized' }, { type: 'error', inputs: [], name: 'Aera__NotVaultOwner' }, { type: 'error', inputs: [{ name: 'vault', internalType: 'address', type: 'address' }], name: 'Aera__VaultUnitsNotTransferable', }, ] as const; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Whitelist ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// export const whitelistAbi = [ { type: 'constructor', inputs: [ { name: 'initialOwner', internalType: 'address', type: 'address' }, { name: 'initialAuthority', internalType: 'contract Authority', type: 'address' }, ], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'acceptOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [], name: 'authority', outputs: [{ name: '', internalType: 'contract Authority', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'getAllWhitelisted', outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], name: 'isWhitelisted', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [], name: 'pendingOwner', outputs: [{ name: '', internalType: 'address', type: 'address' }], stateMutability: 'view', }, { type: 'function', inputs: [{ name: 'newAuthority', internalType: 'contract Authority', type: 'address' }], name: 'setAuthority', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [ { name: 'addr', internalType: 'address', type: 'address' }, { name: 'isAddressWhitelisted', internalType: 'bool', type: 'bool' }, ], name: 'setWhitelisted', outputs: [], stateMutability: 'nonpayable', }, { type: 'function', inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], name: 'transferOwnership', outputs: [], stateMutability: 'nonpayable', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newAuthority', internalType: 'contract Authority', type: 'address', indexed: true }, ], name: 'AuthorityUpdated', }, { type: 'event', anonymous: false, inputs: [ { name: 'previousOwner', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferStarted', }, { type: 'event', anonymous: false, inputs: [ { name: 'user', internalType: 'address', type: 'address', indexed: true }, { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, ], name: 'OwnershipTransferred', }, { type: 'event', anonymous: false, inputs: [ { name: 'addr', internalType: 'address', type: 'address', indexed: true }, { name: 'isAddressWhitelisted', internalType: 'bool', type: 'bool', indexed: false }, ], name: 'WhitelistSet', }, { type: 'error', inputs: [], name: 'Aera__Unauthorized' }, { type: 'error', inputs: [], name: 'Aera__ZeroAddressAuthority' }, ] as const;