UNPKG

@paxoslabs/earn-sdk

Version:
1,565 lines (1,558 loc) 104 kB
import { C as ChainId } from './vault-config-BNzhv3QV.js'; export { g as getBridgeFee, a as getDepositExchangeRate, b as getWithdrawExchangeRate, i as isDepositSpendApproved, c as isWithdrawalSpendApproved } from './exchange-rate-C1sqPUWT.js'; export { getVaultByKey } from './vaults.js'; import { Address, erc20Abi, Hex, TypedDataDomain } from 'viem'; import { B as BridgeData } from './teller-DhrMj3mv.js'; import { V as VaultKey } from './config-BQynVNDC.js'; import { Y as YieldType, E as EarnVault, S as SupportedAsset, A as AssetFilterOptions, V as VaultFilterOptions, W as WithdrawSupportedAsset } from './earn-sdk-api-CAc-JIqW.js'; export { a as APIError } from './earn-sdk-api-CAc-JIqW.js'; declare const TellerAbi: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_owner"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_vault"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_accountant"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_endpoint"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "InvalidDelegate"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidEndpointCall"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "optionType"; readonly type: "uint16"; }]; readonly name: "InvalidOptionType"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LzTokenUnavailable"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "MultiChainLayerZeroTellerWithMultiAssetSupport_InvalidToken"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "MultiChainTellerBase_DestinationChainReceiverIsZeroAddress"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "MultiChainTellerBase_GasLimitExceeded"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "MultiChainTellerBase_GasTooLow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "chainSelector"; readonly type: "uint32"; }]; readonly name: "MultiChainTellerBase_MessagesNotAllowedFrom"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "chainSelector"; readonly type: "uint256"; }]; readonly name: "MultiChainTellerBase_MessagesNotAllowedTo"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "MultiChainTellerBase_TargetTellerIsZeroAddress"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "MultiChainTellerBase_ZeroMessageGasLimit"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "eid"; readonly type: "uint32"; }]; readonly name: "NoPeer"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "msgValue"; readonly type: "uint256"; }]; readonly name: "NotEnoughNative"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "addr"; readonly type: "address"; }]; readonly name: "OnlyEndpoint"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "eid"; readonly type: "uint32"; }, { readonly internalType: "bytes32"; readonly name: "sender"; readonly type: "bytes32"; }]; readonly name: "OnlyPeer"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint8"; readonly name: "bits"; readonly type: "uint8"; }, { readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }]; readonly name: "SafeCastOverflowedUintDowncast"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }]; readonly name: "SafeERC20FailedOperation"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TellerWithMultiAssetSupport__AssetNotSupported"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TellerWithMultiAssetSupport__BadDepositHash"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TellerWithMultiAssetSupport__MinimumAssetsNotMet"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TellerWithMultiAssetSupport__MinimumMintNotMet"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TellerWithMultiAssetSupport__Paused"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TellerWithMultiAssetSupport__PermitFailedAndAllowanceTooLow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TellerWithMultiAssetSupport__ShareLockPeriodTooLong"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TellerWithMultiAssetSupport__SharesAreLocked"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TellerWithMultiAssetSupport__SharesAreUnLocked"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TellerWithMultiAssetSupport__ZeroAssets"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TellerWithMultiAssetSupport__ZeroShares"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "AssetAdded"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "AssetRemoved"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract Authority"; readonly name: "newAuthority"; readonly type: "address"; }]; readonly name: "AuthorityUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "depositAmount"; readonly type: "uint256"; }]; readonly name: "BulkDeposit"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "asset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "shareAmount"; readonly type: "uint256"; }]; readonly name: "BulkWithdraw"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "chainSelector"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "allowMessagesFrom"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "allowMessagesTo"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "targetTeller"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint64"; readonly name: "messageGasLimit"; readonly type: "uint64"; }, { readonly indexed: false; readonly internalType: "uint64"; readonly name: "messageGasMin"; readonly type: "uint64"; }]; readonly name: "ChainAdded"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "chainSelector"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "targetTeller"; readonly type: "address"; }]; readonly name: "ChainAllowMessagesFrom"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "chainSelector"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "targetTeller"; readonly type: "address"; }]; readonly name: "ChainAllowMessagesTo"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "chainSelector"; readonly type: "uint256"; }]; readonly name: "ChainRemoved"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "chainSelector"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint64"; readonly name: "messageGasLimit"; readonly type: "uint64"; }]; readonly name: "ChainSetGasLimit"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "chainSelector"; readonly type: "uint256"; }]; readonly name: "ChainStopMessagesFrom"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "chainSelector"; readonly type: "uint256"; }]; readonly name: "ChainStopMessagesTo"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "nonce"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "depositAsset"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "depositAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "shareAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "depositTimestamp"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "shareLockPeriodAtTimeOfDeposit"; readonly type: "uint256"; }]; readonly name: "Deposit"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "nonce"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "depositHash"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "DepositRefunded"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bytes32"; readonly name: "messageId"; readonly type: "bytes32"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "shareAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "MessageReceived"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bytes32"; readonly name: "messageId"; readonly type: "bytes32"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "shareAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "MessageSent"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly []; readonly name: "Paused"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint32"; readonly name: "eid"; readonly type: "uint32"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "peer"; readonly type: "bytes32"; }]; readonly name: "PeerSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly []; readonly name: "Unpaused"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "accountant"; readonly outputs: readonly [{ readonly internalType: "contract AccountantWithRateProviders"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ERC20"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "addAsset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "chainSelector"; readonly type: "uint32"; }, { readonly internalType: "bool"; readonly name: "allowMessagesFrom"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "allowMessagesTo"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "targetTeller"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "messageGasLimit"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "messageGasMin"; readonly type: "uint64"; }]; readonly name: "addChain"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint32"; readonly name: "srcEid"; readonly type: "uint32"; }, { readonly internalType: "bytes32"; readonly name: "sender"; readonly type: "bytes32"; }, { readonly internalType: "uint64"; readonly name: "nonce"; readonly type: "uint64"; }]; readonly internalType: "struct Origin"; readonly name: "origin"; readonly type: "tuple"; }]; readonly name: "allowInitializePath"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "chainSelector"; readonly type: "uint32"; }, { readonly internalType: "address"; readonly name: "targetTeller"; readonly type: "address"; }]; readonly name: "allowMessagesFromChain"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "chainSelector"; readonly type: "uint32"; }, { readonly internalType: "address"; readonly name: "targetTeller"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "messageGasLimit"; readonly type: "uint64"; }]; readonly name: "allowMessagesToChain"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "authority"; readonly outputs: readonly [{ readonly internalType: "contract Authority"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }]; readonly name: "beforeTransfer"; readonly outputs: readonly []; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "shareAmount"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint32"; readonly name: "chainSelector"; readonly type: "uint32"; }, { readonly internalType: "address"; readonly name: "destinationChainReceiver"; readonly type: "address"; }, { readonly internalType: "contract ERC20"; readonly name: "bridgeFeeToken"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "messageGas"; readonly type: "uint64"; }, { readonly internalType: "bytes"; readonly name: "data"; readonly type: "bytes"; }]; readonly internalType: "struct BridgeData"; readonly name: "data"; readonly type: "tuple"; }]; readonly name: "bridge"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: "messageId"; readonly type: "bytes32"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ERC20"; readonly name: "depositAsset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "depositAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "minimumMint"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "bulkDeposit"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ERC20"; readonly name: "withdrawAsset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "shareAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "minimumAssets"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "bulkWithdraw"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "assetsOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ERC20"; readonly name: "depositAsset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "depositAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "minimumMint"; readonly type: "uint256"; }]; readonly name: "deposit"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ERC20"; readonly name: "depositAsset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "depositAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "minimumMint"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint32"; readonly name: "chainSelector"; readonly type: "uint32"; }, { readonly internalType: "address"; readonly name: "destinationChainReceiver"; readonly type: "address"; }, { readonly internalType: "contract ERC20"; readonly name: "bridgeFeeToken"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "messageGas"; readonly type: "uint64"; }, { readonly internalType: "bytes"; readonly name: "data"; readonly type: "bytes"; }]; readonly internalType: "struct BridgeData"; readonly name: "data"; readonly type: "tuple"; }]; readonly name: "depositAndBridge"; readonly outputs: readonly []; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "depositNonce"; readonly outputs: readonly [{ readonly internalType: "uint96"; readonly name: ""; readonly type: "uint96"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ERC20"; readonly name: "depositAsset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "depositAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "minimumMint"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly internalType: "uint8"; readonly name: "v"; readonly type: "uint8"; }, { readonly internalType: "bytes32"; readonly name: "r"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "s"; readonly type: "bytes32"; }]; readonly name: "depositWithPermit"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "endpoint"; readonly outputs: readonly [{ readonly internalType: "contract ILayerZeroEndpointV2"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint32"; readonly name: "srcEid"; readonly type: "uint32"; }, { readonly internalType: "bytes32"; readonly name: "sender"; readonly type: "bytes32"; }, { readonly internalType: "uint64"; readonly name: "nonce"; readonly type: "uint64"; }]; readonly internalType: "struct Origin"; readonly name: ""; readonly type: "tuple"; }, { readonly internalType: "bytes"; readonly name: ""; readonly type: "bytes"; }, { readonly internalType: "address"; readonly name: "_sender"; readonly type: "address"; }]; readonly name: "isComposeMsgSender"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ERC20"; readonly name: ""; readonly type: "address"; }]; readonly name: "isSupported"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint32"; readonly name: "srcEid"; readonly type: "uint32"; }, { readonly internalType: "bytes32"; readonly name: "sender"; readonly type: "bytes32"; }, { readonly internalType: "uint64"; readonly name: "nonce"; readonly type: "uint64"; }]; readonly internalType: "struct Origin"; readonly name: "_origin"; readonly type: "tuple"; }, { readonly internalType: "bytes32"; readonly name: "_guid"; readonly type: "bytes32"; }, { readonly internalType: "bytes"; readonly name: "_message"; readonly type: "bytes"; }, { readonly internalType: "address"; readonly name: "_executor"; readonly type: "address"; }, { readonly internalType: "bytes"; readonly name: "_extraData"; readonly type: "bytes"; }]; readonly name: "lzReceive"; readonly outputs: readonly []; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: ""; readonly type: "uint32"; }, { readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly name: "nextNonce"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: "nonce"; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "oAppVersion"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: "senderVersion"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "receiverVersion"; readonly type: "uint64"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pause"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "eid"; readonly type: "uint32"; }]; readonly name: "peers"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: "peer"; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "shareAmount"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint32"; readonly name: "chainSelector"; readonly type: "uint32"; }, { readonly internalType: "address"; readonly name: "destinationChainReceiver"; readonly type: "address"; }, { readonly internalType: "contract ERC20"; readonly name: "bridgeFeeToken"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "messageGas"; readonly type: "uint64"; }, { readonly internalType: "bytes"; readonly name: "data"; readonly type: "bytes"; }]; readonly internalType: "struct BridgeData"; readonly name: "data"; readonly type: "tuple"; }]; readonly name: "previewFee"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "fee"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly name: "publicDepositHistory"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "nonce"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "depositAsset"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "depositAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "shareAmount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "depositTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "shareLockUpPeriodAtTimeOfDeposit"; readonly type: "uint256"; }]; readonly name: "refundDeposit"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ERC20"; readonly name: "asset"; readonly type: "address"; }]; readonly name: "removeAsset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "chainSelector"; readonly type: "uint32"; }]; readonly name: "removeChain"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: ""; readonly type: "uint32"; }]; readonly name: "selectorToChains"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "allowMessagesFrom"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "allowMessagesTo"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "targetTeller"; readonly type: "address"; }, { readonly internalType: "uint64"; readonly name: "messageGasLimit"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "minimumMessageGas"; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract Authority"; readonly name: "newAuthority"; readonly type: "address"; }]; readonly name: "setAuthority"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "chainSelector"; readonly type: "uint32"; }, { readonly internalType: "uint64"; readonly name: "messageGasLimit"; readonly type: "uint64"; }]; readonly name: "setChainGasLimit"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_delegate"; readonly type: "address"; }]; readonly name: "setDelegate"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "_eid"; readonly type: "uint32"; }, { readonly internalType: "bytes32"; readonly name: "_peer"; readonly type: "bytes32"; }]; readonly name: "setPeer"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint64"; readonly name: "_shareLockPeriod"; readonly type: "uint64"; }]; readonly name: "setShareLockPeriod"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "shareLockPeriod"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: ""; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "shareUnlockTime"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "chainSelector"; readonly type: "uint32"; }]; readonly name: "stopMessagesFromChain"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint32"; readonly name: "chainSelector"; readonly type: "uint32"; }]; readonly name: "stopMessagesToChain"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "transferOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "unpause"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "vault"; readonly outputs: readonly [{ readonly internalType: "contract BoringVault"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; /** * @file Bridge functionality for cross-chain operations * @module vaults/bridge */ /** * Parameters for preparing a cross-chain bridge transaction * @interface PrepareBridgeTransactionParams * @property {VaultKey} vaultKey - Unique identifier for the vault * @property {bigint} bridgeAmount - Amount of shares to bridge (in base units) * @property {ChainId} sourceChainId - Chain ID where shares currently exist * @property {ChainId} destinationChainId - Chain ID where shares will be bridged to * @property {Address} userAddress - Ethereum address of the user initiating the bridge */ interface PrepareBridgeTransactionParams { vaultKey: VaultKey; bridgeAmount: bigint; sourceChainId: ChainId; destinationChainId: ChainId; userAddress: Address; } /** * Transaction data for executing a cross-chain bridge operation * @interface BridgeTransactionData * @property {typeof TellerAbi} abi - ABI for the CrossChainTeller contract * @property {Address} address - Address of the CrossChainTeller contract * @property {string} functionName - Name of the function to call on the contract * @property {[bigint, BridgeData]} args - Arguments for the bridge function: * [amount, bridgeArgs] * @property {number} chainId - ID of the chain where the transaction should be executed * @property {bigint} value - Amount of native token to send with the transaction */ interface BridgeTransactionData { abi: typeof TellerAbi; address: Address; functionName: "bridge"; args: [bigint, BridgeData]; chainId: number; value: bigint; } declare const prepareBridgeTransactionData: ({ vaultKey, bridgeAmount, sourceChainId, destinationChainId, userAddress, }: PrepareBridgeTransactionParams) => Promise<BridgeTransactionData>; /** * @file Deposit functionality for Nucleus vaults * @module vaults/deposit */ /** * Result object containing transaction data for a deposit operation * @interface DepositTransactionData * @property {typeof TellerAbi} abi - ABI for the Teller contract * @property {Address} address - Address of the Teller contract * @property {'deposit'} functionName - Name of the function to call * @property {[Address, bigint, bigint]} args - Arguments for the deposit function: * [depositAsset, depositAmount, minimumMint] * @property {number} chainId - ID of the chain where the transaction should be executed */ interface DepositTransactionData { abi: typeof TellerAbi; address: Address; functionName: "deposit"; args: [Address, bigint, bigint]; chainId: number; } /** * Parameters for prepareDepositTransactionData() * Accepts yieldType, recipientAddress, depositToken, and chainId for automatic vault resolution * @interface PrepareDepositTransactionDataParams * @property {string} yieldType - Yield strategy type (e.g., "PRIME", "TBILL", "LENDING") * @property {Address} recipientAddress - Ethereum address of the user (recipient of vault shares) * @property {Address} depositToken - Token contract address to deposit (matches vault's baseTokenAddressId) * @property {string} depositAmount - Amount of assets to deposit as a decimal string (e.g., "1.5") * @property {number | string} chainId - ID of the chain where the deposit will occur * @property {number} [slippage] - Maximum acceptable slippage in basis points (e.g., 100 for 1%) */ interface PrepareDepositTransactionDataParams { yieldType: string; recipientAddress: Address; depositToken: Address; depositAmount: string; chainId: ChainId; slippage?: number; } /** * Prepares the transaction data needed to deposit assets into a vault * * This function calculates the minimum amount of vault tokens to be minted based on * the current exchange rate and the specified slippage tolerance. It automatically * resolves the vault from yieldType, depositToken, and chainId parameters. * * ```typescript * const depositData = await prepareDepositTransactionData({ * yieldType: 'PRIME', * recipientAddress: '0x1234...', * depositToken: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC * depositAmount: "1.0", * chainId: 1, * slippage: 100, // 1% slippage (100 bps) * }); * ``` * * @param {PrepareDepositTransactionDataParams} params - Parameters for the deposit operation * @returns {Promise<DepositTransactionData>} Promise resolving to the prepared transaction data * @throws {APIError} If vault cannot be resolved, asset not found, or contracts not configured */ declare function prepareDepositTransactionData(params: PrepareDepositTransactionDataParams): Promise<DepositTransactionData>; /** * Parameters required for preparing an approval transaction * @interface PrepareApproveDepositTokenParams * @property {Address} depositToken - Token contract address to approve * @property {Address} boringVaultAddress - Address of the BoringVault to approve spending * @property {string} [depositAmount] - Optional amount to approve (defaults to maximum approval) * @property {number | string} chainId - ID of the chain where the approval will occur */ interface PrepareApproveDepositTokenParams { depositToken: Address; boringVaultAddress: Address; depositAmount?: string; chainId: ChainId; } /** * Result object containing transaction data for an ERC20 approval operation * @interface ApproveDepositTokenTransactionData * @property {typeof erc20Abi} abi - ABI for the ERC20 token contract * @property {Address} address - Address of the ERC20 token being approved * @property {'approve'} functionName - Name of the function to call * @property {[Address, bigint]} args - Arguments for the approve function: * [spender (boringVault address), amount] */ interface ApproveDepositTokenTransactionData { abi: typeof erc20Abi; address: Address; functionName: "approve"; args: [Address, bigint]; } /** * Prepares the transaction data needed to approve a deposit token for the vault * * This function prepares an ERC20 approval transaction that allows the vault's * BoringVault contract to spend the user's deposit tokens. * * @example * ```typescript * const approveData = await prepareApproveDepositToken({ * depositToken: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC * boringVaultAddress: '0x1234...', * depositAmount: "1000.0", // Approve 1000 USDC * chainId: 1, * }); * ``` * * @param {PrepareApproveDepositTokenParams} params - Parameters for the approval operation * @returns {Promise<ApproveDepositTokenTransactionData>} Promise resolving to the prepared transaction data * @throws {APIError} If parameters are invalid */ declare function prepareApproveDepositToken(params: PrepareApproveDepositTokenParams): Promise<ApproveDepositTokenTransactionData>; /** * @file Deposit with permit functionality for Nucleus vaults * @module vaults/deposit/deposit-with-permit */ /** * T008: EIP-2612 Permit type definition * Standard structure for permit typed data per EIP-2612 specification */ declare const PERMIT_TYPES: { readonly Permit: readonly [{ readonly name: "owner"; readonly type: "address"; }, { readonly name: "spender"; readonly type: "address"; }, { readonly name: "value"; readonly type: "uint256"; }, { readonly name: "nonce"; readonly type: "uint256"; }, { readonly name: "deadline"; readonly type: "uint256"; }]; }; /** * T009: Complete EIP-712 typed data for permit signature * Returned by prepareDepositPermitSignature() ready for wallet signing * * @property domain - EIP-712 domain separator * @property types - EIP-2612 Permit type structure * @property message - Permit message fields * @property primaryType - Always "Permit" for EIP-2612 */ interface PermitSignatureData { domain: TypedDataDomain; types: typeof PERMIT_TYPES; message: { owner: Address; spender: Address; value: bigint; nonce: bigint; deadline: bigint; }; primaryType: "Permit"; } /** * T009: Parsed permit signature components * Returned by parsePermitSignature() after converting hex signature * * @property v - Recovery ID (27 or 28) * @property r - First 32 bytes of signature * @property s - Second 32 bytes of signature */ interface ParsedPermitSignature { v: number; r: Hex; s: Hex; } /** * T009: Parameters for prepareDepositPermitSignature * Input parameters for generating permit typed data * * @property yieldType - Vault yield strategy * @property depositToken - Token contract address to deposit * @property depositAmount - Deposit amount as decimal string * @property recipientAddress - User address (permit owner) * @property chainId - Blockchain network ID * @property deadline - Optional permit expiration (defaults to 1 hour) */ interface PrepareDepositPermitSignatureParams { yieldType: YieldType; depositToken: Address; depositAmount: string; recipientAddress: Address; chainId: number; deadline?: bigint; } /** * T009: Encoded transaction data for permit deposit * Returned by updated prepareDepositWithPermitTransactionData() * * @property data - Hex-encoded function call data * @property address - Teller contract address * @property chainId - Chain ID for transaction */ interface EncodedDepositWithPermitData { data: Hex; address: Address; chainId: number; } /** * T018-T030: Prepare complete EIP-712 typed data for permit signature * * Reads token metadata (name, version, nonce) from the blockchain and * constructs the complete EIP-712 structure for wallet signing. * * @param params - Permit signature parameters * @returns Complete EIP-712 typed data ready for signing * @throws {APIError} If token doesn't support EIP-2612, vault not found, or chain unsupported * * @example * ```typescript * const permitData = await prepareDepositPermitSignature({ * yieldType: 'PRIME', * depositToken: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC * depositAmount: '1000.0', * recipientAddress: userAddress, * chainId: 1, * deadline: BigInt(Math.floor(Date.now() / 1000) + 3600), * }); * * // Sign with wallet * const signature = await signTypedData(permitData); * ``` */ declare function prepareDepositPermitSignature(params: PrepareDepositPermitSignatureParams): Promise<PermitSignatureData>; /** * T036-T040: Parse raw hex signature into v, r, s components * * Handles both v-based and yParity-based signature formats. * Converts yParity to v by adding 27 if needed. * * @param signature - Raw hex signature from wallet * @returns Parsed signature components (v, r, s) * @throws {APIError} If signature format is invalid * * @example * ```typescript * const signature = await signTypedData(permitData); * const { v, r, s } = parsePermitSignature(signature); * // Use v, r, s in smart contract call