@aave/client 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/index.cjs +1 -1
- package/dist/actions/index.cjs.map +1 -1
- package/dist/actions/index.d.cts +28 -2
- package/dist/actions/index.d.ts +28 -2
- package/dist/actions/index.js +1 -1
- package/dist/{chunk-5UVVSXS5.js → chunk-IKLPSB3H.js} +3 -3
- package/dist/{chunk-5UVVSXS5.js.map → chunk-IKLPSB3H.js.map} +1 -1
- package/dist/chunk-KT47UJBO.js +2 -0
- package/dist/chunk-KT47UJBO.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/test-utils.js +1 -1
- package/package.json +2 -2
- package/dist/chunk-XAKMUIVL.js +0 -2
- package/dist/chunk-XAKMUIVL.js.map +0 -1
package/dist/actions/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var graphql=require('@aave/graphql');var r={tokenName:graphql.OrderDirection.Asc};function
|
|
1
|
+
'use strict';var graphql=require('@aave/graphql');var r={tokenName:graphql.OrderDirection.Asc};function X(e,{chainIds:t,borrowsOrderBy:u=r,suppliesOrderBy:s=r,user:n}){return e.query(graphql.MarketsQuery,{request:{chainIds:t,user:n},borrowsOrderBy:u,suppliesOrderBy:s})}function Z(e,{address:t,chainId:u,user:s,borrowsOrderBy:n=r,suppliesOrderBy:o=r}){return e.query(graphql.MarketQuery,{request:{address:t,chainId:u,user:s},borrowsOrderBy:n,suppliesOrderBy:o})}function _(e,t){return e.query(graphql.UserMarketStateQuery,{request:t})}function te(e){return e.query(graphql.HealthQuery,{})}function re(e,t=graphql.ChainsFilter.ALL){return e.query(graphql.ChainsQuery,{filter:t})}function ue(e,t){return e.query(graphql.UsdExchangeRatesQuery,{request:t})}function se(e,t){return e.query(graphql.HasProcessedKnownTransactionQuery,{request:t})}function ne(e,t){return e.query(graphql.HealthFactorPreviewQuery,{request:t})}function ie(e,t){return e.query(graphql.PermitTypedDataQuery,{request:t})}function le(e,t){return e.query(graphql.ReserveQuery,{request:t})}function ce(e,t){return e.query(graphql.BorrowAPYHistoryQuery,{request:t})}function Re(e,t){return e.query(graphql.SupplyAPYHistoryQuery,{request:t})}function Ae(e,t){return e.query(graphql.BorrowQuery,{request:t})}function ve(e,t){return e.query(graphql.SupplyQuery,{request:t})}function xe(e,t){return e.query(graphql.RepayQuery,{request:t})}function me(e,t){return e.query(graphql.WithdrawQuery,{request:t})}function Ue(e,t){return e.query(graphql.UserSetEmodeQuery,{request:t})}function fe(e,t){return e.query(graphql.VaultDepositQuery,{request:t})}function Ee(e,t){return e.query(graphql.VaultRedeemSharesQuery,{request:t})}function we(e,t){return e.query(graphql.VaultDeployQuery,{request:t})}function Ce(e,t){return e.query(graphql.VaultSetFeeQuery,{request:t})}function Pe(e,t){return e.query(graphql.VaultWithdrawFeesQuery,{request:t})}function Ve(e,t){return e.query(graphql.VaultWithdrawQuery,{request:t})}function he(e,t){return e.query(graphql.VaultMintSharesQuery,{request:t})}function Te(e,t){return e.query(graphql.CollateralToggleQuery,{request:t})}function Qe(e,t){return e.query(graphql.LiquidateQuery,{request:t})}function Se(e,t){return e.query(graphql.ApproveBorrowCreditDelegationQuery,{request:t})}function ke(e,t){return e.query(graphql.CreditDelegateeAllowanceQuery,{request:t})}function He(e,t){return e.query(graphql.UserSuppliesQuery,{request:t})}function Be(e,t){return e.query(graphql.UserBorrowsQuery,{request:t})}function De(e,t){return e.query(graphql.UserTransactionHistoryQuery,{request:t})}function Oe(e,t){return e.query(graphql.VaultQuery,{request:t})}function Ye(e,t){return e.query(graphql.VaultsQuery,{request:t})}function be(e,t){return e.query(graphql.UserVaultsQuery,{request:t})}function Ie(e,t){return e.query(graphql.VaultPreviewDepositQuery,{request:t})}function Le(e,t){return e.query(graphql.VaultPreviewMintQuery,{request:t})}function Ke(e,t){return e.query(graphql.VaultPreviewWithdrawQuery,{request:t})}function Ne(e,t){return e.query(graphql.VaultPreviewRedeemQuery,{request:t})}function je(e,t){return e.query(graphql.VaultUserTransactionHistoryQuery,{request:t})}function ze(e,t){return e.query(graphql.VaultUserActivityQuery,{request:t})}exports.approveBorrowCreditDelegation=Se;exports.borrow=Ae;exports.borrowAPYHistory=ce;exports.chains=re;exports.collateralToggle=Te;exports.creditDelegateeAllowance=ke;exports.defaultMarketReservesRequestOrderBy=r;exports.hasProcessedKnownTransaction=se;exports.health=te;exports.healthFactorPreview=ne;exports.liquidate=Qe;exports.market=Z;exports.markets=X;exports.permitTypedData=ie;exports.repay=xe;exports.reserve=le;exports.supply=ve;exports.supplyAPYHistory=Re;exports.usdExchangeRates=ue;exports.userBorrows=Be;exports.userMarketState=_;exports.userSetEmode=Ue;exports.userSupplies=He;exports.userTransactionHistory=De;exports.userVaults=be;exports.vault=Oe;exports.vaultDeploy=we;exports.vaultDeposit=fe;exports.vaultMintShares=he;exports.vaultPreviewDeposit=Ie;exports.vaultPreviewMint=Le;exports.vaultPreviewRedeem=Ne;exports.vaultPreviewWithdraw=Ke;exports.vaultRedeemShares=Ee;exports.vaultSetFee=Ce;exports.vaultUserActivity=ze;exports.vaultUserTransactionHistory=je;exports.vaultWithdraw=Ve;exports.vaultWithdrawFees=Pe;exports.vaults=Ye;exports.withdraw=me;//# sourceMappingURL=index.cjs.map
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/actions/markets.ts","../../src/actions/misc.ts","../../src/actions/permits.ts","../../src/actions/reserve.ts","../../src/actions/transactions.ts","../../src/actions/user.ts","../../src/actions/vaults.ts"],"names":["defaultMarketReservesRequestOrderBy","OrderDirection","markets","client","chainIds","borrowsOrderBy","suppliesOrderBy","user","MarketsQuery","market","address","chainId","MarketQuery","userMarketState","request","UserMarketStateQuery","health","HealthQuery","chains","filter","ChainsFilter","ChainsQuery","usdExchangeRates","UsdExchangeRatesQuery","hasProcessedKnownTransaction","HasProcessedKnownTransactionQuery","healthFactorPreview","HealthFactorPreviewQuery","permitTypedData","PermitTypedDataQuery","reserve","ReserveQuery","borrowAPYHistory","BorrowAPYHistoryQuery","supplyAPYHistory","SupplyAPYHistoryQuery","borrow","BorrowQuery","supply","SupplyQuery","repay","RepayQuery","withdraw","WithdrawQuery","userSetEmode","UserSetEmodeQuery","vaultDeposit","VaultDepositQuery","vaultRedeemShares","VaultRedeemSharesQuery","vaultDeploy","VaultDeployQuery","vaultSetFee","VaultSetFeeQuery","vaultWithdrawFees","VaultWithdrawFeesQuery","vaultWithdraw","VaultWithdrawQuery","vaultMintShares","VaultMintSharesQuery","collateralToggle","CollateralToggleQuery","liquidate","LiquidateQuery","approveBorrowCreditDelegation","ApproveBorrowCreditDelegationQuery","creditDelegateeAllowance","CreditDelegateeAllowanceQuery","userSupplies","UserSuppliesQuery","userBorrows","UserBorrowsQuery","userTransactionHistory","UserTransactionHistoryQuery","vault","VaultQuery","vaults","VaultsQuery","userVaults","UserVaultsQuery","vaultPreviewDeposit","VaultPreviewDepositQuery","vaultPreviewMint","VaultPreviewMintQuery","vaultPreviewWithdraw","VaultPreviewWithdrawQuery","vaultPreviewRedeem","VaultPreviewRedeemQuery","vaultUserTransactionHistory","VaultUserTransactionHistoryQuery"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\n type Market,\n MarketQuery,\n type MarketReservesRequestOrderBy,\n MarketsQuery,\n type MarketUserState,\n OrderDirection,\n UserMarketStateQuery,\n type UserMarketStateRequest,\n} from '@aave/graphql';\nimport type { ChainId, EvmAddress, ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\nexport const defaultMarketReservesRequestOrderBy: MarketReservesRequestOrderBy =\n {\n tokenName: OrderDirection.Asc,\n };\n\nexport type MarketsRequest = {\n /**\n * The markets you want to see based on the chain ids.\n */\n chainIds: ChainId[];\n /**\n * The user viewing the market (e.g., the connected wallet).\n *\n * If not provided, user fields will not be included.\n */\n user?: EvmAddress;\n /**\n * The order by clause for the borrow reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n borrowsOrderBy?: MarketReservesRequestOrderBy;\n /**\n * The order by clause for the supply reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n suppliesOrderBy?: MarketReservesRequestOrderBy;\n};\n\n/**\n * Fetches all markets for the specified chain IDs.\n *\n * ```ts\n * const result = await markets(client, {\n * chainIds: [chainId(1), chainId(8453)],\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The markets request parameters.\n * @returns The list of markets.\n */\nexport function markets(\n client: AaveClient,\n {\n chainIds,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n user,\n }: MarketsRequest,\n): ResultAsync<Market[], UnexpectedError> {\n return client.query(MarketsQuery, {\n request: { chainIds, user },\n borrowsOrderBy,\n suppliesOrderBy,\n });\n}\n\nexport type MarketRequest = {\n /**\n * The pool address for the market.\n */\n address: EvmAddress;\n\n /**\n * The chain id the market pool address is deployed on.\n */\n chainId: ChainId;\n /**\n * The user viewing the market (e.g., the connected wallet).\n *\n * If not provided, user fields will not be included.\n */\n user?: EvmAddress;\n /**\n * The order by clause for the borrow reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n borrowsOrderBy?: MarketReservesRequestOrderBy;\n /**\n * The order by clause for the supply reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n suppliesOrderBy?: MarketReservesRequestOrderBy;\n};\n\n/**\n * Fetches a specific market by address and chain ID.\n *\n * ```ts\n * const result = await market(client, {\n * address: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * chainId: chainId(1),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The market request parameters.\n * @returns The market data, or null if not found.\n */\nexport function market(\n client: AaveClient,\n {\n address,\n chainId,\n user,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n }: MarketRequest,\n): ResultAsync<Market | null, UnexpectedError> {\n return client.query(MarketQuery, {\n request: { address, chainId, user },\n borrowsOrderBy,\n suppliesOrderBy,\n });\n}\n\n/**\n * Fetches user account market data across all reserves.\n *\n * ```ts\n * const result = await userMarketState(client, {\n * market: evmAddress('0x1234…'),\n * user: evmAddress('0x5678…'),\n * chainId: chainId(1)\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user market state request parameters.\n * @returns The user's market state.\n */\nexport function userMarketState(\n client: AaveClient,\n request: UserMarketStateRequest,\n): ResultAsync<MarketUserState, UnexpectedError> {\n return client.query(UserMarketStateQuery, { request });\n}\n","import {\n type Chain,\n ChainsFilter,\n ChainsQuery,\n HasProcessedKnownTransactionQuery,\n type HasProcessedKnownTransactionRequest,\n HealthFactorPreviewQuery,\n type HealthFactorPreviewRequest,\n type HealthFactorPreviewResponse,\n HealthQuery,\n type UsdExchangeRate,\n UsdExchangeRatesQuery,\n type UsdExchangeRatesRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Health check query.\n *\n * ```ts\n * const result = await health(client);\n * ```\n *\n * @param client - Aave client.\n * @returns True or false\n */\nexport function health(\n client: AaveClient,\n): ResultAsync<boolean, UnexpectedError> {\n return client.query(HealthQuery, {});\n}\n\n/**\n * Fetches the list of supported chains.\n *\n * ```ts\n * const result = await chains(client, ChainsFilter.MAINNET_ONLY);\n * ```\n *\n * @param client - Aave client.\n * @param filter - The filter for the chains.\n * @returns The list of supported chains.\n */\nexport function chains(\n client: AaveClient,\n filter: ChainsFilter = ChainsFilter.ALL,\n): ResultAsync<Chain[], UnexpectedError> {\n return client.query(ChainsQuery, { filter });\n}\n\n/**\n * Fetches USD exchange rates for different tokens on a given market.\n *\n * ```ts\n * const result = await usdExchangeRates(client, {\n * market: evmAddress('0x1234…'),\n * underlyingTokens: [evmAddress('0x5678…'), evmAddress('0x90ab…')],\n * chainId: chainId(1),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The USD exchange rates request parameters.\n * @returns The list of USD exchange rates.\n */\nexport function usdExchangeRates(\n client: AaveClient,\n request: UsdExchangeRatesRequest,\n): ResultAsync<UsdExchangeRate[], UnexpectedError> {\n return client.query(UsdExchangeRatesQuery, { request });\n}\n\n/**\n * Checks if the API has processed a known transaction hash.\n *\n * This is useful to know when cached data has been invalidated after\n * a transaction is complete, as the API uses caching and has an\n * invalidation task that may take 100-200ms longer.\n *\n * ```ts\n * const result = await borrow(client, request)\n * .andThen(sendWith(wallet))\n * .andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error\n * return;\n * }\n *\n * // Check if the transaction has been processed by the API\n * const processed = await hasProcessedKnownTransaction(client, {\n * txHash: result.value,\n * operation: OperationType.Borrow\n * });\n *\n * if (processed.isErr()) {\n * // Handle error\n * return;\n * }\n *\n * if (processed.value) {\n * // Transaction processed, cached data is up to date\n * console.log('Transaction processed, data is fresh');\n * } else {\n * // Transaction not yet processed, may need to wait\n * console.log('Transaction not yet processed');\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The request containing transaction hash and operation type to check.\n * @returns True if the transaction has been processed, false otherwise.\n */\nexport function hasProcessedKnownTransaction(\n client: AaveClient,\n request: HasProcessedKnownTransactionRequest,\n): ResultAsync<boolean, UnexpectedError> {\n return client.query(HasProcessedKnownTransactionQuery, { request });\n}\n\n/**\n * Fetches health factor preview for a given market action.\n *\n * ```ts\n * const result = await healthFactorPreview(client, {\n * action: {\n * borrow: {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '1000',\n * },\n * },\n * borrower: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * },\n * },\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The health factor preview request parameters.\n * @returns The health factor preview response with before and after values.\n */\nexport function healthFactorPreview(\n client: AaveClient,\n request: HealthFactorPreviewRequest,\n): ResultAsync<HealthFactorPreviewResponse, UnexpectedError> {\n return client.query(HealthFactorPreviewQuery, { request });\n}\n","import {\n PermitTypedDataQuery,\n type PermitTypedDataRequest,\n type PermitTypedDataResponse,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Generates EIP-712 typed data for ERC-20 permit signature.\n *\n * ```ts\n * const result = await permitTypedData(client, {\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * amount: '1.5',\n * chainId: chainId(1),\n * spender: evmAddress('0x123...'),\n * owner: evmAddress('0x456...'),\n * });\n *\n * if (result.isOk()) {\n * const typedData = result.value;\n * // Use typedData for permit signing\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The permit typed data request parameters.\n * @returns The EIP-712 typed data for permit signature.\n */\nexport function permitTypedData(\n client: AaveClient,\n request: PermitTypedDataRequest,\n): ResultAsync<PermitTypedDataResponse, UnexpectedError> {\n return client.query(PermitTypedDataQuery, { request });\n}\n","import {\n type APYSample,\n BorrowAPYHistoryQuery,\n type BorrowAPYHistoryRequest,\n type Reserve,\n ReserveQuery,\n type ReserveRequest,\n SupplyAPYHistoryQuery,\n type SupplyAPYHistoryRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Fetches a specific reserve by market address, token address, and chain ID.\n *\n * ```ts\n * const result = await reserve(client, {\n * market: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * underlyingToken: evmAddress('0xa0b86a33e6441c8c5f0bb9b7e5e1f8bbf5b78b5c'),\n * chainId: chainId(1),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The reserve request parameters.\n * @returns The reserve data, or null if not found.\n */\nexport function reserve(\n client: AaveClient,\n request: ReserveRequest,\n): ResultAsync<Reserve | null, UnexpectedError> {\n return client.query(ReserveQuery, {\n request,\n });\n}\n\n/**\n * Fetches historical borrow APY data for a given underlying asset on a specific market,\n * within a defined time window.\n *\n * The returned data represents APY samples over time, or `null` if unavailable.\n *\n * @param client - The Aave client instance used to perform the query.\n * @param request - The borrow APY history request parameters.\n * @returns A `ResultAsync` containing an array of APY samples, or `null` if not found.\n */\n\nexport function borrowAPYHistory(\n client: AaveClient,\n request: BorrowAPYHistoryRequest,\n): ResultAsync<APYSample[] | null, UnexpectedError> {\n return client.query(BorrowAPYHistoryQuery, {\n request,\n });\n}\n\n/**\n * Fetches historical supply APY data for a given underlying asset on a specific market,\n * within a defined time window.\n *\n * The returned data represents APY samples over time, or `null` if unavailable.\n *\n * @param client - The Aave client instance used to perform the query.\n * @param request - The supply APY history request parameters.\n * @returns A `ResultAsync` containing an array of APY samples, or `null` if not found.\n */\n\nexport function supplyAPYHistory(\n client: AaveClient,\n request: SupplyAPYHistoryRequest,\n): ResultAsync<APYSample[] | null, UnexpectedError> {\n return client.query(SupplyAPYHistoryQuery, {\n request,\n });\n}\n","import {\n ApproveBorrowCreditDelegationQuery,\n type ApproveBorrowCreditDelegatorRequest,\n BorrowQuery,\n type BorrowRequest,\n CollateralToggleQuery,\n type CollateralToggleRequest,\n CreditDelegateeAllowanceQuery,\n type CreditDelegateeAmountRequest,\n type ExecutionPlan,\n LiquidateQuery,\n type LiquidateRequest,\n RepayQuery,\n type RepayRequest,\n SupplyQuery,\n type SupplyRequest,\n type TokenAmount,\n type TransactionRequest,\n UserSetEmodeQuery,\n type UserSetEmodeRequest,\n VaultDeployQuery,\n type VaultDeployRequest,\n VaultDepositQuery,\n type VaultDepositRequest,\n VaultMintSharesQuery,\n type VaultMintSharesRequest,\n VaultRedeemSharesQuery,\n type VaultRedeemSharesRequest,\n VaultSetFeeQuery,\n type VaultSetFeeRequest,\n VaultWithdrawFeesQuery,\n type VaultWithdrawFeesRequest,\n VaultWithdrawQuery,\n type VaultWithdrawRequest,\n WithdrawQuery,\n type WithdrawRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Creates a transaction to borrow from a market.\n *\n * ```ts\n * const result = await borrow(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '1000',\n * },\n * },\n * borrower: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The borrow request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function borrow(\n client: AaveClient,\n request: BorrowRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(BorrowQuery, { request });\n}\n\n/**\n * Creates a transaction to supply to a market.\n *\n * ```ts\n * const result = await supply(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '1000',\n * },\n * },\n * supplier: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The supply request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function supply(\n client: AaveClient,\n request: SupplyRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(SupplyQuery, { request });\n}\n\n/**\n * Creates a transaction to repay to a market.\n *\n * ```ts\n * const result = await repay(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: {\n * exact: '500',\n * },\n * },\n * },\n * borrower: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The repay request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function repay(\n client: AaveClient,\n request: RepayRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(RepayQuery, { request });\n}\n\n/**\n * Creates a transaction to withdraw from a market.\n *\n * ```ts\n * const result = await withdraw(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: { exact: '750' },\n * },\n * },\n * supplier: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The withdraw request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function withdraw(\n client: AaveClient,\n request: WithdrawRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(WithdrawQuery, { request });\n}\n\n/**\n * Creates a transaction to enable/disable the user's eMode for a market.\n *\n * **Example: Enable a Specific eMode**\n * ```ts\n * const result = await userSetEmode(client, {\n * market: market.address,\n * user: evmAddress('0x5678…'),\n * categoryId: market.eModeCategories[0].id,\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * **Example: Disable eMode**\n * ```ts\n * const result = await userSetEmode(client, {\n * market: market.address,\n * user: evmAddress('0x5678…'),\n * categoryId: null,\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The user set eMode request parameters.\n * @returns The transaction request data to set eMode.\n */\nexport function userSetEmode(\n client: AaveClient,\n request: UserSetEmodeRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(UserSetEmodeQuery, { request });\n}\n\n/**\n * Creates a transaction to deposit assets into a vault and mint shares.\n *\n * ```ts\n * const result = await vaultDeposit(client, {\n * vault: evmAddress('0x1234…'),\n * amount: {\n * value: '1000',\n * },\n * depositor: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault deposit request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function vaultDeposit(\n client: AaveClient,\n request: VaultDepositRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(VaultDepositQuery, { request });\n}\n\n/**\n * Creates a transaction to redeem vault shares for underlying assets.\n *\n * ```ts\n * const result = await vaultRedeemShares(client, {\n * vault: evmAddress('0x1234…'),\n * shares: {\n * amount: '500',\n * asAToken: false,\n * },\n * sharesOwner: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The redeem vault shares request parameters.\n * @returns The transaction request data to redeem shares.\n */\nexport function vaultRedeemShares(\n client: AaveClient,\n request: VaultRedeemSharesRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultRedeemSharesQuery, { request });\n}\n\n/**\n * Creates an execution plan to deploy a new vault.\n *\n * ```ts\n * const result = await vaultDeploy(client, {\n * underlyingToken: evmAddress('0x1234…'),\n * market: evmAddress('0x5678…'),\n * deployer: evmAddress('0x9abc…'),\n * initialFee: '0.1',\n * shareName: 'Aave Vault Shares',\n * shareSymbol: 'avs',\n * initialLockDeposit: '1000',\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, insufficient balance, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The deploy vault request parameters.\n * @returns The execution plan data to deploy a vault. May require approval transactions.\n */\nexport function vaultDeploy(\n client: AaveClient,\n request: VaultDeployRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(VaultDeployQuery, { request });\n}\n\n/**\n * Creates a transaction to set the vault fee (owner only).\n *\n * ```ts\n * const result = await vaultSetFee(client, {\n * vault: evmAddress('0x1234…'),\n * newFee: '0.2',\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The set vault fee request parameters.\n * @returns The transaction request data to set vault fee.\n */\nexport function vaultSetFee(\n client: AaveClient,\n request: VaultSetFeeRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultSetFeeQuery, { request });\n}\n\n/**\n * Creates a transaction to withdraw accumulated fees from a vault (owner only).\n *\n * ```ts\n * const result = await vaultWithdrawFees(client, {\n * vault: evmAddress('0x1234…'),\n * amount: '100',\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The withdraw vault fees request parameters.\n * @returns The transaction request data to withdraw vault fees.\n */\nexport function vaultWithdrawFees(\n client: AaveClient,\n request: VaultWithdrawFeesRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultWithdrawFeesQuery, { request });\n}\n\n/**\n * Creates a transaction to withdraw assets from a vault, burning shares.\n *\n * ```ts\n * const result = await vaultWithdraw(client, {\n * vault: evmAddress('0x1234…'),\n * amount: {\n * value: '500',\n * },\n * sharesOwner: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The withdraw vault request parameters.\n * @returns The transaction request data to withdraw from vault.\n */\nexport function vaultWithdraw(\n client: AaveClient,\n request: VaultWithdrawRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultWithdrawQuery, { request });\n}\n\n/**\n * Creates a transaction to mint exact amount of vault shares by depositing calculated assets.\n *\n * ```ts\n * const result = await vaultMintShares(client, {\n * vault: evmAddress('0x1234…'),\n * shares: {\n * amount: '1000',\n * asAToken: false,\n * },\n * minter: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The mint vault shares request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function vaultMintShares(\n client: AaveClient,\n request: VaultMintSharesRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(VaultMintSharesQuery, { request });\n}\n\n/**\n * Creates a transaction to enable/disable a specific supplied asset as collateral.\n *\n * ```ts\n * const result = await collateralToggle(client, {\n * market: market.address,\n * underlyingToken: market.supplyReserves[n].underlyingToken.address,\n * user: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The collateral toggle request parameters.\n * @returns The transaction request data to toggle collateral.\n */\nexport function collateralToggle(\n client: AaveClient,\n request: CollateralToggleRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(CollateralToggleQuery, { request });\n}\n\n/**\n * Creates a transaction to liquidate a non-healthy position with Health Factor below 1.\n *\n * ```ts\n * const result = await liquidate(client, {\n * collateralToken: evmAddress('0x1234…'),\n * debtToken: evmAddress('0x5678…'),\n * user: evmAddress('0x9abc…'),\n * debtToCover: { max: true },\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The liquidate request parameters.\n * @returns The transaction request data to liquidate position.\n */\nexport function liquidate(\n client: AaveClient,\n request: LiquidateRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(LiquidateQuery, { request });\n}\n\n/**\n * Creates a transaction to approve a credit borrow delegator to be able to borrow on your behalf.\n *\n * ```ts\n * const result = await approveBorrowCreditDelegation(client, {\n * market: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * underlyingToken: evmAddress('0xa0b86a33e6441c8c5f0bb9b7e5e1f8bbf5b78b5c'),\n * amount: '1000',\n * user: evmAddress('0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234'),\n * delegatee: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The approve borrow credit delegation request parameters.\n * @returns The transaction request data to approve credit delegation.\n */\nexport function approveBorrowCreditDelegation(\n client: AaveClient,\n request: ApproveBorrowCreditDelegatorRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(ApproveBorrowCreditDelegationQuery, { request });\n}\n\n/**\n * Gets the amount delegated to the credit delegatee that can borrow on your behalf.\n *\n * ```ts\n * const result = await creditDelegateeAllowance(client, {\n * market: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * underlyingToken: evmAddress('0xa0b86a33e6441c8c5f0bb9b7e5e1f8bbf5b78b5c'),\n * user: evmAddress('0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234'),\n * delegatee: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * });\n *\n * if (result.isErr()) {\n * // Handle error\n * return;\n * }\n *\n * // result.value: TokenAmount with credit delegation allowance\n * ```\n *\n * @param client - Aave client.\n * @param request - The credit delegatee allowance request parameters.\n * @returns The token amount representing the credit delegation allowance.\n */\nexport function creditDelegateeAllowance(\n client: AaveClient,\n request: CreditDelegateeAmountRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(CreditDelegateeAllowanceQuery, { request });\n}\n","import {\n type MarketUserReserveBorrowPosition,\n type MarketUserReserveSupplyPosition,\n type PaginatedUserTransactionHistoryResult,\n UserBorrowsQuery,\n type UserBorrowsRequest,\n UserSuppliesQuery,\n type UserSuppliesRequest,\n UserTransactionHistoryQuery,\n type UserTransactionHistoryRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Fetches all user supply positions across the specified markets.\n *\n * ```ts\n * const result = await userSupplies(client, {\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user supplies request parameters.\n * @returns The user's supply positions.\n */\nexport function userSupplies(\n client: AaveClient,\n request: UserSuppliesRequest,\n): ResultAsync<MarketUserReserveSupplyPosition[], UnexpectedError> {\n return client.query(UserSuppliesQuery, { request });\n}\n\n/**\n * Fetches all user borrow positions.\n *\n * ```ts\n * const result = await userBorrows(client, {\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user borrows request parameters.\n * @returns The user's borrow positions.\n */\nexport function userBorrows(\n client: AaveClient,\n request: UserBorrowsRequest,\n): ResultAsync<MarketUserReserveBorrowPosition[], UnexpectedError> {\n return client.query(UserBorrowsQuery, { request });\n}\n\n/**\n * Fetches the user's transaction history for a given market.\n *\n * ```ts\n * const result = await userTransactionHistory(client, {\n * chainId: chainId(1),\n * market: evmAddress('0x87870bca…'),\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user transaction history request parameters.\n * @returns The user's paginated transaction history.\n */\nexport function userTransactionHistory(\n client: AaveClient,\n request: UserTransactionHistoryRequest,\n): ResultAsync<PaginatedUserTransactionHistoryResult, UnexpectedError> {\n return client.query(UserTransactionHistoryQuery, { request });\n}\n","import {\n type PaginatedVaultsResult,\n type PaginatedVaultUserTransactionHistoryResult,\n type TokenAmount,\n UserVaultsQuery,\n type UserVaultsRequest,\n type Vault,\n VaultPreviewDepositQuery,\n type VaultPreviewDepositRequest,\n VaultPreviewMintQuery,\n type VaultPreviewMintRequest,\n VaultPreviewRedeemQuery,\n type VaultPreviewRedeemRequest,\n VaultPreviewWithdrawQuery,\n type VaultPreviewWithdrawRequest,\n VaultQuery,\n type VaultRequest,\n VaultsQuery,\n type VaultsRequest,\n VaultUserTransactionHistoryQuery,\n type VaultUserTransactionHistoryRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Fetches a specific vault by address and chain ID.\n *\n * **Example: By Address**\n * ```ts\n * const result = await vault(client, {\n * by: {\n * address: evmAddress('0x1234…'),\n * },\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * });\n * ```\n *\n * **Example: Tx Hash**\n * ```ts\n * const result = await vault(client, {\n * by: {\n * txHash: txHash('0x1234…'),\n * },\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault request parameters.\n * @returns The vault data, or null if not found.\n */\nexport function vault(\n client: AaveClient,\n request: VaultRequest,\n): ResultAsync<Vault | null, UnexpectedError> {\n return client.query(VaultQuery, {\n request,\n });\n}\n\n/**\n * Fetches vaults based on filter criteria.\n *\n * ```ts\n * const result = await vaults(client, {\n * criteria: {\n * ownedBy: [evmAddress('0x1234…')]\n * },\n * pageSize: PageSize.Ten,\n * user: evmAddress('0x5678…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The vaults request parameters.\n * @returns The paginated vaults result.\n */\nexport function vaults(\n client: AaveClient,\n request: VaultsRequest,\n): ResultAsync<PaginatedVaultsResult, UnexpectedError> {\n return client.query(VaultsQuery, {\n request,\n });\n}\n\n/**\n * Fetches vaults that a user has shares in.\n *\n * ```ts\n * const result = await userVaults(client, {\n * user: evmAddress('0x1234…'),\n * filters: {\n * markets: [evmAddress('0x5678…')]\n * },\n * orderBy: { shares: OrderDirection.Desc },\n * pageSize: PageSize.Fifty,\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user vaults request parameters.\n * @returns The paginated user vaults result.\n */\nexport function userVaults(\n client: AaveClient,\n request: UserVaultsRequest,\n): ResultAsync<PaginatedVaultsResult, UnexpectedError> {\n return client.query(UserVaultsQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of shares that would be received for a deposit.\n *\n * ```ts\n * const result = await vaultPreviewDeposit(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('1000'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Shares to receive:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview deposit request parameters.\n * @returns The simulated shares amount that would be received.\n */\nexport function vaultPreviewDeposit(\n client: AaveClient,\n request: VaultPreviewDepositRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewDepositQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of assets that would be required to mint a specific amount of vault shares.\n *\n * ```ts\n * const result = await vaultPreviewMint(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('500'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Assets required:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview mint request parameters.\n * @returns The simulated assets amount that would be required.\n */\nexport function vaultPreviewMint(\n client: AaveClient,\n request: VaultPreviewMintRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewMintQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of shares that would be burned for a withdrawal.\n *\n * ```ts\n * const result = await vaultPreviewWithdraw(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('750'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Shares to burn:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview withdraw request parameters.\n * @returns The simulated shares amount that would be burned.\n */\nexport function vaultPreviewWithdraw(\n client: AaveClient,\n request: VaultPreviewWithdrawRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewWithdrawQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of assets that would be received for redeeming a specific amount of vault shares.\n *\n * ```ts\n * const result = await vaultPreviewRedeem(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('200'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Assets to receive:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview redeem request parameters.\n * @returns The simulated assets amount that would be received.\n */\nexport function vaultPreviewRedeem(\n client: AaveClient,\n request: VaultPreviewRedeemRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewRedeemQuery, {\n request,\n });\n}\n\n/**\n * Fetches the user transaction history for a vault.\n *\n * ```ts\n * const result = await vaultUserTransactionHistory(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Transaction count:', result.value.items.length);\n * result.value.items.forEach(tx => {\n * if (tx.__typename === 'VaultUserDepositItem') {\n * console.log('Deposit:', tx.asset.amount.value, 'shares:', tx.shares.amount.value);\n * } else if (tx.__typename === 'VaultUserWithdrawItem') {\n * console.log('Withdraw:', tx.asset.amount.value, 'shares:', tx.shares.amount.value);\n * }\n * });\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault user transaction history request parameters.\n * @returns The paginated vault user transaction history result.\n */\nexport function vaultUserTransactionHistory(\n client: AaveClient,\n request: VaultUserTransactionHistoryRequest,\n): ResultAsync<PaginatedVaultUserTransactionHistoryResult, UnexpectedError> {\n return client.query(VaultUserTransactionHistoryQuery, {\n request,\n });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/actions/markets.ts","../../src/actions/misc.ts","../../src/actions/permits.ts","../../src/actions/reserve.ts","../../src/actions/transactions.ts","../../src/actions/user.ts","../../src/actions/vaults.ts"],"names":["defaultMarketReservesRequestOrderBy","OrderDirection","markets","client","chainIds","borrowsOrderBy","suppliesOrderBy","user","MarketsQuery","market","address","chainId","MarketQuery","userMarketState","request","UserMarketStateQuery","health","HealthQuery","chains","filter","ChainsFilter","ChainsQuery","usdExchangeRates","UsdExchangeRatesQuery","hasProcessedKnownTransaction","HasProcessedKnownTransactionQuery","healthFactorPreview","HealthFactorPreviewQuery","permitTypedData","PermitTypedDataQuery","reserve","ReserveQuery","borrowAPYHistory","BorrowAPYHistoryQuery","supplyAPYHistory","SupplyAPYHistoryQuery","borrow","BorrowQuery","supply","SupplyQuery","repay","RepayQuery","withdraw","WithdrawQuery","userSetEmode","UserSetEmodeQuery","vaultDeposit","VaultDepositQuery","vaultRedeemShares","VaultRedeemSharesQuery","vaultDeploy","VaultDeployQuery","vaultSetFee","VaultSetFeeQuery","vaultWithdrawFees","VaultWithdrawFeesQuery","vaultWithdraw","VaultWithdrawQuery","vaultMintShares","VaultMintSharesQuery","collateralToggle","CollateralToggleQuery","liquidate","LiquidateQuery","approveBorrowCreditDelegation","ApproveBorrowCreditDelegationQuery","creditDelegateeAllowance","CreditDelegateeAllowanceQuery","userSupplies","UserSuppliesQuery","userBorrows","UserBorrowsQuery","userTransactionHistory","UserTransactionHistoryQuery","vault","VaultQuery","vaults","VaultsQuery","userVaults","UserVaultsQuery","vaultPreviewDeposit","VaultPreviewDepositQuery","vaultPreviewMint","VaultPreviewMintQuery","vaultPreviewWithdraw","VaultPreviewWithdrawQuery","vaultPreviewRedeem","VaultPreviewRedeemQuery","vaultUserTransactionHistory","VaultUserTransactionHistoryQuery","vaultUserActivity","VaultUserActivityQuery"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\n type Market,\n MarketQuery,\n type MarketReservesRequestOrderBy,\n MarketsQuery,\n type MarketUserState,\n OrderDirection,\n UserMarketStateQuery,\n type UserMarketStateRequest,\n} from '@aave/graphql';\nimport type { ChainId, EvmAddress, ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\nexport const defaultMarketReservesRequestOrderBy: MarketReservesRequestOrderBy =\n {\n tokenName: OrderDirection.Asc,\n };\n\nexport type MarketsRequest = {\n /**\n * The markets you want to see based on the chain ids.\n */\n chainIds: ChainId[];\n /**\n * The user viewing the market (e.g., the connected wallet).\n *\n * If not provided, user fields will not be included.\n */\n user?: EvmAddress;\n /**\n * The order by clause for the borrow reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n borrowsOrderBy?: MarketReservesRequestOrderBy;\n /**\n * The order by clause for the supply reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n suppliesOrderBy?: MarketReservesRequestOrderBy;\n};\n\n/**\n * Fetches all markets for the specified chain IDs.\n *\n * ```ts\n * const result = await markets(client, {\n * chainIds: [chainId(1), chainId(8453)],\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The markets request parameters.\n * @returns The list of markets.\n */\nexport function markets(\n client: AaveClient,\n {\n chainIds,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n user,\n }: MarketsRequest,\n): ResultAsync<Market[], UnexpectedError> {\n return client.query(MarketsQuery, {\n request: { chainIds, user },\n borrowsOrderBy,\n suppliesOrderBy,\n });\n}\n\nexport type MarketRequest = {\n /**\n * The pool address for the market.\n */\n address: EvmAddress;\n\n /**\n * The chain id the market pool address is deployed on.\n */\n chainId: ChainId;\n /**\n * The user viewing the market (e.g., the connected wallet).\n *\n * If not provided, user fields will not be included.\n */\n user?: EvmAddress;\n /**\n * The order by clause for the borrow reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n borrowsOrderBy?: MarketReservesRequestOrderBy;\n /**\n * The order by clause for the supply reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n suppliesOrderBy?: MarketReservesRequestOrderBy;\n};\n\n/**\n * Fetches a specific market by address and chain ID.\n *\n * ```ts\n * const result = await market(client, {\n * address: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * chainId: chainId(1),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The market request parameters.\n * @returns The market data, or null if not found.\n */\nexport function market(\n client: AaveClient,\n {\n address,\n chainId,\n user,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n }: MarketRequest,\n): ResultAsync<Market | null, UnexpectedError> {\n return client.query(MarketQuery, {\n request: { address, chainId, user },\n borrowsOrderBy,\n suppliesOrderBy,\n });\n}\n\n/**\n * Fetches user account market data across all reserves.\n *\n * ```ts\n * const result = await userMarketState(client, {\n * market: evmAddress('0x1234…'),\n * user: evmAddress('0x5678…'),\n * chainId: chainId(1)\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user market state request parameters.\n * @returns The user's market state.\n */\nexport function userMarketState(\n client: AaveClient,\n request: UserMarketStateRequest,\n): ResultAsync<MarketUserState, UnexpectedError> {\n return client.query(UserMarketStateQuery, { request });\n}\n","import {\n type Chain,\n ChainsFilter,\n ChainsQuery,\n HasProcessedKnownTransactionQuery,\n type HasProcessedKnownTransactionRequest,\n HealthFactorPreviewQuery,\n type HealthFactorPreviewRequest,\n type HealthFactorPreviewResponse,\n HealthQuery,\n type UsdExchangeRate,\n UsdExchangeRatesQuery,\n type UsdExchangeRatesRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Health check query.\n *\n * ```ts\n * const result = await health(client);\n * ```\n *\n * @param client - Aave client.\n * @returns True or false\n */\nexport function health(\n client: AaveClient,\n): ResultAsync<boolean, UnexpectedError> {\n return client.query(HealthQuery, {});\n}\n\n/**\n * Fetches the list of supported chains.\n *\n * ```ts\n * const result = await chains(client, ChainsFilter.MAINNET_ONLY);\n * ```\n *\n * @param client - Aave client.\n * @param filter - The filter for the chains.\n * @returns The list of supported chains.\n */\nexport function chains(\n client: AaveClient,\n filter: ChainsFilter = ChainsFilter.ALL,\n): ResultAsync<Chain[], UnexpectedError> {\n return client.query(ChainsQuery, { filter });\n}\n\n/**\n * Fetches USD exchange rates for different tokens on a given market.\n *\n * ```ts\n * const result = await usdExchangeRates(client, {\n * market: evmAddress('0x1234…'),\n * underlyingTokens: [evmAddress('0x5678…'), evmAddress('0x90ab…')],\n * chainId: chainId(1),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The USD exchange rates request parameters.\n * @returns The list of USD exchange rates.\n */\nexport function usdExchangeRates(\n client: AaveClient,\n request: UsdExchangeRatesRequest,\n): ResultAsync<UsdExchangeRate[], UnexpectedError> {\n return client.query(UsdExchangeRatesQuery, { request });\n}\n\n/**\n * Checks if the API has processed a known transaction hash.\n *\n * This is useful to know when cached data has been invalidated after\n * a transaction is complete, as the API uses caching and has an\n * invalidation task that may take 100-200ms longer.\n *\n * ```ts\n * const result = await borrow(client, request)\n * .andThen(sendWith(wallet))\n * .andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error\n * return;\n * }\n *\n * // Check if the transaction has been processed by the API\n * const processed = await hasProcessedKnownTransaction(client, {\n * txHash: result.value,\n * operation: OperationType.Borrow\n * });\n *\n * if (processed.isErr()) {\n * // Handle error\n * return;\n * }\n *\n * if (processed.value) {\n * // Transaction processed, cached data is up to date\n * console.log('Transaction processed, data is fresh');\n * } else {\n * // Transaction not yet processed, may need to wait\n * console.log('Transaction not yet processed');\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The request containing transaction hash and operation type to check.\n * @returns True if the transaction has been processed, false otherwise.\n */\nexport function hasProcessedKnownTransaction(\n client: AaveClient,\n request: HasProcessedKnownTransactionRequest,\n): ResultAsync<boolean, UnexpectedError> {\n return client.query(HasProcessedKnownTransactionQuery, { request });\n}\n\n/**\n * Fetches health factor preview for a given market action.\n *\n * ```ts\n * const result = await healthFactorPreview(client, {\n * action: {\n * borrow: {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '1000',\n * },\n * },\n * borrower: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * },\n * },\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The health factor preview request parameters.\n * @returns The health factor preview response with before and after values.\n */\nexport function healthFactorPreview(\n client: AaveClient,\n request: HealthFactorPreviewRequest,\n): ResultAsync<HealthFactorPreviewResponse, UnexpectedError> {\n return client.query(HealthFactorPreviewQuery, { request });\n}\n","import {\n PermitTypedDataQuery,\n type PermitTypedDataRequest,\n type PermitTypedDataResponse,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Generates EIP-712 typed data for ERC-20 permit signature.\n *\n * ```ts\n * const result = await permitTypedData(client, {\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * amount: '1.5',\n * chainId: chainId(1),\n * spender: evmAddress('0x123...'),\n * owner: evmAddress('0x456...'),\n * });\n *\n * if (result.isOk()) {\n * const typedData = result.value;\n * // Use typedData for permit signing\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The permit typed data request parameters.\n * @returns The EIP-712 typed data for permit signature.\n */\nexport function permitTypedData(\n client: AaveClient,\n request: PermitTypedDataRequest,\n): ResultAsync<PermitTypedDataResponse, UnexpectedError> {\n return client.query(PermitTypedDataQuery, { request });\n}\n","import {\n type APYSample,\n BorrowAPYHistoryQuery,\n type BorrowAPYHistoryRequest,\n type Reserve,\n ReserveQuery,\n type ReserveRequest,\n SupplyAPYHistoryQuery,\n type SupplyAPYHistoryRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Fetches a specific reserve by market address, token address, and chain ID.\n *\n * ```ts\n * const result = await reserve(client, {\n * market: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * underlyingToken: evmAddress('0xa0b86a33e6441c8c5f0bb9b7e5e1f8bbf5b78b5c'),\n * chainId: chainId(1),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The reserve request parameters.\n * @returns The reserve data, or null if not found.\n */\nexport function reserve(\n client: AaveClient,\n request: ReserveRequest,\n): ResultAsync<Reserve | null, UnexpectedError> {\n return client.query(ReserveQuery, {\n request,\n });\n}\n\n/**\n * Fetches historical borrow APY data for a given underlying asset on a specific market,\n * within a defined time window.\n *\n * The returned data represents APY samples over time, or `null` if unavailable.\n *\n * @param client - The Aave client instance used to perform the query.\n * @param request - The borrow APY history request parameters.\n * @returns A `ResultAsync` containing an array of APY samples, or `null` if not found.\n */\n\nexport function borrowAPYHistory(\n client: AaveClient,\n request: BorrowAPYHistoryRequest,\n): ResultAsync<APYSample[] | null, UnexpectedError> {\n return client.query(BorrowAPYHistoryQuery, {\n request,\n });\n}\n\n/**\n * Fetches historical supply APY data for a given underlying asset on a specific market,\n * within a defined time window.\n *\n * The returned data represents APY samples over time, or `null` if unavailable.\n *\n * @param client - The Aave client instance used to perform the query.\n * @param request - The supply APY history request parameters.\n * @returns A `ResultAsync` containing an array of APY samples, or `null` if not found.\n */\n\nexport function supplyAPYHistory(\n client: AaveClient,\n request: SupplyAPYHistoryRequest,\n): ResultAsync<APYSample[] | null, UnexpectedError> {\n return client.query(SupplyAPYHistoryQuery, {\n request,\n });\n}\n","import {\n ApproveBorrowCreditDelegationQuery,\n type ApproveBorrowCreditDelegatorRequest,\n BorrowQuery,\n type BorrowRequest,\n CollateralToggleQuery,\n type CollateralToggleRequest,\n CreditDelegateeAllowanceQuery,\n type CreditDelegateeAmountRequest,\n type ExecutionPlan,\n LiquidateQuery,\n type LiquidateRequest,\n RepayQuery,\n type RepayRequest,\n SupplyQuery,\n type SupplyRequest,\n type TokenAmount,\n type TransactionRequest,\n UserSetEmodeQuery,\n type UserSetEmodeRequest,\n VaultDeployQuery,\n type VaultDeployRequest,\n VaultDepositQuery,\n type VaultDepositRequest,\n VaultMintSharesQuery,\n type VaultMintSharesRequest,\n VaultRedeemSharesQuery,\n type VaultRedeemSharesRequest,\n VaultSetFeeQuery,\n type VaultSetFeeRequest,\n VaultWithdrawFeesQuery,\n type VaultWithdrawFeesRequest,\n VaultWithdrawQuery,\n type VaultWithdrawRequest,\n WithdrawQuery,\n type WithdrawRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Creates a transaction to borrow from a market.\n *\n * ```ts\n * const result = await borrow(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '1000',\n * },\n * },\n * borrower: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The borrow request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function borrow(\n client: AaveClient,\n request: BorrowRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(BorrowQuery, { request });\n}\n\n/**\n * Creates a transaction to supply to a market.\n *\n * ```ts\n * const result = await supply(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '1000',\n * },\n * },\n * supplier: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The supply request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function supply(\n client: AaveClient,\n request: SupplyRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(SupplyQuery, { request });\n}\n\n/**\n * Creates a transaction to repay to a market.\n *\n * ```ts\n * const result = await repay(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: {\n * exact: '500',\n * },\n * },\n * },\n * borrower: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The repay request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function repay(\n client: AaveClient,\n request: RepayRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(RepayQuery, { request });\n}\n\n/**\n * Creates a transaction to withdraw from a market.\n *\n * ```ts\n * const result = await withdraw(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: { exact: '750' },\n * },\n * },\n * supplier: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The withdraw request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function withdraw(\n client: AaveClient,\n request: WithdrawRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(WithdrawQuery, { request });\n}\n\n/**\n * Creates a transaction to enable/disable the user's eMode for a market.\n *\n * **Example: Enable a Specific eMode**\n * ```ts\n * const result = await userSetEmode(client, {\n * market: market.address,\n * user: evmAddress('0x5678…'),\n * categoryId: market.eModeCategories[0].id,\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * **Example: Disable eMode**\n * ```ts\n * const result = await userSetEmode(client, {\n * market: market.address,\n * user: evmAddress('0x5678…'),\n * categoryId: null,\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The user set eMode request parameters.\n * @returns The transaction request data to set eMode.\n */\nexport function userSetEmode(\n client: AaveClient,\n request: UserSetEmodeRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(UserSetEmodeQuery, { request });\n}\n\n/**\n * Creates a transaction to deposit assets into a vault and mint shares.\n *\n * ```ts\n * const result = await vaultDeposit(client, {\n * vault: evmAddress('0x1234…'),\n * amount: {\n * value: '1000',\n * },\n * depositor: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault deposit request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function vaultDeposit(\n client: AaveClient,\n request: VaultDepositRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(VaultDepositQuery, { request });\n}\n\n/**\n * Creates a transaction to redeem vault shares for underlying assets.\n *\n * ```ts\n * const result = await vaultRedeemShares(client, {\n * vault: evmAddress('0x1234…'),\n * shares: {\n * amount: '500',\n * asAToken: false,\n * },\n * sharesOwner: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The redeem vault shares request parameters.\n * @returns The transaction request data to redeem shares.\n */\nexport function vaultRedeemShares(\n client: AaveClient,\n request: VaultRedeemSharesRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultRedeemSharesQuery, { request });\n}\n\n/**\n * Creates an execution plan to deploy a new vault.\n *\n * ```ts\n * const result = await vaultDeploy(client, {\n * underlyingToken: evmAddress('0x1234…'),\n * market: evmAddress('0x5678…'),\n * deployer: evmAddress('0x9abc…'),\n * initialFee: '0.1',\n * shareName: 'Aave Vault Shares',\n * shareSymbol: 'avs',\n * initialLockDeposit: '1000',\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, insufficient balance, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The deploy vault request parameters.\n * @returns The execution plan data to deploy a vault. May require approval transactions.\n */\nexport function vaultDeploy(\n client: AaveClient,\n request: VaultDeployRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(VaultDeployQuery, { request });\n}\n\n/**\n * Creates a transaction to set the vault fee (owner only).\n *\n * ```ts\n * const result = await vaultSetFee(client, {\n * vault: evmAddress('0x1234…'),\n * newFee: '0.2',\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The set vault fee request parameters.\n * @returns The transaction request data to set vault fee.\n */\nexport function vaultSetFee(\n client: AaveClient,\n request: VaultSetFeeRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultSetFeeQuery, { request });\n}\n\n/**\n * Creates a transaction to withdraw accumulated fees from a vault (owner only).\n *\n * ```ts\n * const result = await vaultWithdrawFees(client, {\n * vault: evmAddress('0x1234…'),\n * amount: '100',\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The withdraw vault fees request parameters.\n * @returns The transaction request data to withdraw vault fees.\n */\nexport function vaultWithdrawFees(\n client: AaveClient,\n request: VaultWithdrawFeesRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultWithdrawFeesQuery, { request });\n}\n\n/**\n * Creates a transaction to withdraw assets from a vault, burning shares.\n *\n * ```ts\n * const result = await vaultWithdraw(client, {\n * vault: evmAddress('0x1234…'),\n * amount: {\n * value: '500',\n * },\n * sharesOwner: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The withdraw vault request parameters.\n * @returns The transaction request data to withdraw from vault.\n */\nexport function vaultWithdraw(\n client: AaveClient,\n request: VaultWithdrawRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultWithdrawQuery, { request });\n}\n\n/**\n * Creates a transaction to mint exact amount of vault shares by depositing calculated assets.\n *\n * ```ts\n * const result = await vaultMintShares(client, {\n * vault: evmAddress('0x1234…'),\n * shares: {\n * amount: '1000',\n * asAToken: false,\n * },\n * minter: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The mint vault shares request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function vaultMintShares(\n client: AaveClient,\n request: VaultMintSharesRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(VaultMintSharesQuery, { request });\n}\n\n/**\n * Creates a transaction to enable/disable a specific supplied asset as collateral.\n *\n * ```ts\n * const result = await collateralToggle(client, {\n * market: market.address,\n * underlyingToken: market.supplyReserves[n].underlyingToken.address,\n * user: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The collateral toggle request parameters.\n * @returns The transaction request data to toggle collateral.\n */\nexport function collateralToggle(\n client: AaveClient,\n request: CollateralToggleRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(CollateralToggleQuery, { request });\n}\n\n/**\n * Creates a transaction to liquidate a non-healthy position with Health Factor below 1.\n *\n * ```ts\n * const result = await liquidate(client, {\n * collateralToken: evmAddress('0x1234…'),\n * debtToken: evmAddress('0x5678…'),\n * user: evmAddress('0x9abc…'),\n * debtToCover: { max: true },\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The liquidate request parameters.\n * @returns The transaction request data to liquidate position.\n */\nexport function liquidate(\n client: AaveClient,\n request: LiquidateRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(LiquidateQuery, { request });\n}\n\n/**\n * Creates a transaction to approve a credit borrow delegator to be able to borrow on your behalf.\n *\n * ```ts\n * const result = await approveBorrowCreditDelegation(client, {\n * market: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * underlyingToken: evmAddress('0xa0b86a33e6441c8c5f0bb9b7e5e1f8bbf5b78b5c'),\n * amount: '1000',\n * user: evmAddress('0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234'),\n * delegatee: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The approve borrow credit delegation request parameters.\n * @returns The transaction request data to approve credit delegation.\n */\nexport function approveBorrowCreditDelegation(\n client: AaveClient,\n request: ApproveBorrowCreditDelegatorRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(ApproveBorrowCreditDelegationQuery, { request });\n}\n\n/**\n * Gets the amount delegated to the credit delegatee that can borrow on your behalf.\n *\n * ```ts\n * const result = await creditDelegateeAllowance(client, {\n * market: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * underlyingToken: evmAddress('0xa0b86a33e6441c8c5f0bb9b7e5e1f8bbf5b78b5c'),\n * user: evmAddress('0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234'),\n * delegatee: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * });\n *\n * if (result.isErr()) {\n * // Handle error\n * return;\n * }\n *\n * // result.value: TokenAmount with credit delegation allowance\n * ```\n *\n * @param client - Aave client.\n * @param request - The credit delegatee allowance request parameters.\n * @returns The token amount representing the credit delegation allowance.\n */\nexport function creditDelegateeAllowance(\n client: AaveClient,\n request: CreditDelegateeAmountRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(CreditDelegateeAllowanceQuery, { request });\n}\n","import {\n type MarketUserReserveBorrowPosition,\n type MarketUserReserveSupplyPosition,\n type PaginatedUserTransactionHistoryResult,\n UserBorrowsQuery,\n type UserBorrowsRequest,\n UserSuppliesQuery,\n type UserSuppliesRequest,\n UserTransactionHistoryQuery,\n type UserTransactionHistoryRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Fetches all user supply positions across the specified markets.\n *\n * ```ts\n * const result = await userSupplies(client, {\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user supplies request parameters.\n * @returns The user's supply positions.\n */\nexport function userSupplies(\n client: AaveClient,\n request: UserSuppliesRequest,\n): ResultAsync<MarketUserReserveSupplyPosition[], UnexpectedError> {\n return client.query(UserSuppliesQuery, { request });\n}\n\n/**\n * Fetches all user borrow positions.\n *\n * ```ts\n * const result = await userBorrows(client, {\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user borrows request parameters.\n * @returns The user's borrow positions.\n */\nexport function userBorrows(\n client: AaveClient,\n request: UserBorrowsRequest,\n): ResultAsync<MarketUserReserveBorrowPosition[], UnexpectedError> {\n return client.query(UserBorrowsQuery, { request });\n}\n\n/**\n * Fetches the user's transaction history for a given market.\n *\n * ```ts\n * const result = await userTransactionHistory(client, {\n * chainId: chainId(1),\n * market: evmAddress('0x87870bca…'),\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user transaction history request parameters.\n * @returns The user's paginated transaction history.\n */\nexport function userTransactionHistory(\n client: AaveClient,\n request: UserTransactionHistoryRequest,\n): ResultAsync<PaginatedUserTransactionHistoryResult, UnexpectedError> {\n return client.query(UserTransactionHistoryQuery, { request });\n}\n","import {\n type PaginatedVaultsResult,\n type PaginatedVaultUserTransactionHistoryResult,\n type TokenAmount,\n UserVaultsQuery,\n type UserVaultsRequest,\n type Vault,\n VaultPreviewDepositQuery,\n type VaultPreviewDepositRequest,\n VaultPreviewMintQuery,\n type VaultPreviewMintRequest,\n VaultPreviewRedeemQuery,\n type VaultPreviewRedeemRequest,\n VaultPreviewWithdrawQuery,\n type VaultPreviewWithdrawRequest,\n VaultQuery,\n type VaultRequest,\n VaultsQuery,\n type VaultsRequest,\n VaultUserActivityQuery,\n type VaultUserActivityRequest,\n type VaultUserActivityResult,\n VaultUserTransactionHistoryQuery,\n type VaultUserTransactionHistoryRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Fetches a specific vault by address and chain ID.\n *\n * **Example: By Address**\n * ```ts\n * const result = await vault(client, {\n * by: {\n * address: evmAddress('0x1234…'),\n * },\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * });\n * ```\n *\n * **Example: Tx Hash**\n * ```ts\n * const result = await vault(client, {\n * by: {\n * txHash: txHash('0x1234…'),\n * },\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault request parameters.\n * @returns The vault data, or null if not found.\n */\nexport function vault(\n client: AaveClient,\n request: VaultRequest,\n): ResultAsync<Vault | null, UnexpectedError> {\n return client.query(VaultQuery, {\n request,\n });\n}\n\n/**\n * Fetches vaults based on filter criteria.\n *\n * ```ts\n * const result = await vaults(client, {\n * criteria: {\n * ownedBy: [evmAddress('0x1234…')]\n * },\n * pageSize: PageSize.Ten,\n * user: evmAddress('0x5678…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The vaults request parameters.\n * @returns The paginated vaults result.\n */\nexport function vaults(\n client: AaveClient,\n request: VaultsRequest,\n): ResultAsync<PaginatedVaultsResult, UnexpectedError> {\n return client.query(VaultsQuery, {\n request,\n });\n}\n\n/**\n * Fetches vaults that a user has shares in.\n *\n * ```ts\n * const result = await userVaults(client, {\n * user: evmAddress('0x1234…'),\n * filters: {\n * markets: [evmAddress('0x5678…')]\n * },\n * orderBy: { shares: OrderDirection.Desc },\n * pageSize: PageSize.Fifty,\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user vaults request parameters.\n * @returns The paginated user vaults result.\n */\nexport function userVaults(\n client: AaveClient,\n request: UserVaultsRequest,\n): ResultAsync<PaginatedVaultsResult, UnexpectedError> {\n return client.query(UserVaultsQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of shares that would be received for a deposit.\n *\n * ```ts\n * const result = await vaultPreviewDeposit(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('1000'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Shares to receive:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview deposit request parameters.\n * @returns The simulated shares amount that would be received.\n */\nexport function vaultPreviewDeposit(\n client: AaveClient,\n request: VaultPreviewDepositRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewDepositQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of assets that would be required to mint a specific amount of vault shares.\n *\n * ```ts\n * const result = await vaultPreviewMint(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('500'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Assets required:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview mint request parameters.\n * @returns The simulated assets amount that would be required.\n */\nexport function vaultPreviewMint(\n client: AaveClient,\n request: VaultPreviewMintRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewMintQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of shares that would be burned for a withdrawal.\n *\n * ```ts\n * const result = await vaultPreviewWithdraw(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('750'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Shares to burn:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview withdraw request parameters.\n * @returns The simulated shares amount that would be burned.\n */\nexport function vaultPreviewWithdraw(\n client: AaveClient,\n request: VaultPreviewWithdrawRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewWithdrawQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of assets that would be received for redeeming a specific amount of vault shares.\n *\n * ```ts\n * const result = await vaultPreviewRedeem(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('200'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Assets to receive:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview redeem request parameters.\n * @returns The simulated assets amount that would be received.\n */\nexport function vaultPreviewRedeem(\n client: AaveClient,\n request: VaultPreviewRedeemRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewRedeemQuery, {\n request,\n });\n}\n\n/**\n * Fetches the user transaction history for a vault.\n *\n * ```ts\n * const result = await vaultUserTransactionHistory(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Transaction count:', result.value.items.length);\n * result.value.items.forEach(tx => {\n * if (tx.__typename === 'VaultUserDepositItem') {\n * console.log('Deposit:', tx.asset.amount.value, 'shares:', tx.shares.amount.value);\n * } else if (tx.__typename === 'VaultUserWithdrawItem') {\n * console.log('Withdraw:', tx.asset.amount.value, 'shares:', tx.shares.amount.value);\n * }\n * });\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault user transaction history request parameters.\n * @returns The paginated vault user transaction history result.\n */\nexport function vaultUserTransactionHistory(\n client: AaveClient,\n request: VaultUserTransactionHistoryRequest,\n): ResultAsync<PaginatedVaultUserTransactionHistoryResult, UnexpectedError> {\n return client.query(VaultUserTransactionHistoryQuery, {\n request,\n });\n}\n\n/**\n * Fetches the user activity data for a vault, including earnings breakdown over time.\n *\n * ```ts\n * const result = await vaultUserActivity(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Total earned:', result.value.earned.amount.value);\n * console.log('Activity breakdown count:', result.value.breakdown.length);\n * result.value.breakdown.forEach(activity => {\n * console.log('Date:', activity.date);\n * console.log('Balance:', activity.balance.amount.value);\n * console.log('Earned:', activity.earned.amount.value);\n * });\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault user activity request parameters.\n * @returns The vault user activity result.\n */\nexport function vaultUserActivity(\n client: AaveClient,\n request: VaultUserActivityRequest,\n): ResultAsync<VaultUserActivityResult, UnexpectedError> {\n return client.query(VaultUserActivityQuery, {\n request,\n });\n}\n"]}
|
package/dist/actions/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MarketReservesRequestOrderBy, Market, UserMarketStateRequest, MarketUserState, ChainsFilter, Chain, UsdExchangeRatesRequest, UsdExchangeRate, HasProcessedKnownTransactionRequest, HealthFactorPreviewRequest, HealthFactorPreviewResponse, PermitTypedDataRequest, PermitTypedDataResponse, ReserveRequest, Reserve, BorrowAPYHistoryRequest, APYSample, SupplyAPYHistoryRequest, BorrowRequest, ExecutionPlan, SupplyRequest, RepayRequest, WithdrawRequest, UserSetEmodeRequest, TransactionRequest, VaultDepositRequest, VaultRedeemSharesRequest, VaultDeployRequest, VaultSetFeeRequest, VaultWithdrawFeesRequest, VaultWithdrawRequest, VaultMintSharesRequest, CollateralToggleRequest, LiquidateRequest, ApproveBorrowCreditDelegatorRequest, CreditDelegateeAmountRequest, TokenAmount, UserSuppliesRequest, MarketUserReserveSupplyPosition, UserBorrowsRequest, MarketUserReserveBorrowPosition, UserTransactionHistoryRequest, PaginatedUserTransactionHistoryResult, VaultRequest, Vault, VaultsRequest, PaginatedVaultsResult, UserVaultsRequest, VaultPreviewDepositRequest, VaultPreviewMintRequest, VaultPreviewWithdrawRequest, VaultPreviewRedeemRequest, VaultUserTransactionHistoryRequest, PaginatedVaultUserTransactionHistoryResult } from '@aave/graphql';
|
|
1
|
+
import { MarketReservesRequestOrderBy, Market, UserMarketStateRequest, MarketUserState, ChainsFilter, Chain, UsdExchangeRatesRequest, UsdExchangeRate, HasProcessedKnownTransactionRequest, HealthFactorPreviewRequest, HealthFactorPreviewResponse, PermitTypedDataRequest, PermitTypedDataResponse, ReserveRequest, Reserve, BorrowAPYHistoryRequest, APYSample, SupplyAPYHistoryRequest, BorrowRequest, ExecutionPlan, SupplyRequest, RepayRequest, WithdrawRequest, UserSetEmodeRequest, TransactionRequest, VaultDepositRequest, VaultRedeemSharesRequest, VaultDeployRequest, VaultSetFeeRequest, VaultWithdrawFeesRequest, VaultWithdrawRequest, VaultMintSharesRequest, CollateralToggleRequest, LiquidateRequest, ApproveBorrowCreditDelegatorRequest, CreditDelegateeAmountRequest, TokenAmount, UserSuppliesRequest, MarketUserReserveSupplyPosition, UserBorrowsRequest, MarketUserReserveBorrowPosition, UserTransactionHistoryRequest, PaginatedUserTransactionHistoryResult, VaultRequest, Vault, VaultsRequest, PaginatedVaultsResult, UserVaultsRequest, VaultPreviewDepositRequest, VaultPreviewMintRequest, VaultPreviewWithdrawRequest, VaultPreviewRedeemRequest, VaultUserTransactionHistoryRequest, PaginatedVaultUserTransactionHistoryResult, VaultUserActivityRequest, VaultUserActivityResult } from '@aave/graphql';
|
|
2
2
|
import { ChainId, EvmAddress, ResultAsync } from '@aave/types';
|
|
3
3
|
import { AaveClient } from '../index.cjs';
|
|
4
4
|
import { U as UnexpectedError } from '../types-DwXCLJq5.cjs';
|
|
@@ -941,5 +941,31 @@ declare function vaultPreviewRedeem(client: AaveClient, request: VaultPreviewRed
|
|
|
941
941
|
* @returns The paginated vault user transaction history result.
|
|
942
942
|
*/
|
|
943
943
|
declare function vaultUserTransactionHistory(client: AaveClient, request: VaultUserTransactionHistoryRequest): ResultAsync<PaginatedVaultUserTransactionHistoryResult, UnexpectedError>;
|
|
944
|
+
/**
|
|
945
|
+
* Fetches the user activity data for a vault, including earnings breakdown over time.
|
|
946
|
+
*
|
|
947
|
+
* ```ts
|
|
948
|
+
* const result = await vaultUserActivity(client, {
|
|
949
|
+
* vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),
|
|
950
|
+
* chainId: chainId(1),
|
|
951
|
+
* user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),
|
|
952
|
+
* });
|
|
953
|
+
*
|
|
954
|
+
* if (result.isOk()) {
|
|
955
|
+
* console.log('Total earned:', result.value.earned.amount.value);
|
|
956
|
+
* console.log('Activity breakdown count:', result.value.breakdown.length);
|
|
957
|
+
* result.value.breakdown.forEach(activity => {
|
|
958
|
+
* console.log('Date:', activity.date);
|
|
959
|
+
* console.log('Balance:', activity.balance.amount.value);
|
|
960
|
+
* console.log('Earned:', activity.earned.amount.value);
|
|
961
|
+
* });
|
|
962
|
+
* }
|
|
963
|
+
* ```
|
|
964
|
+
*
|
|
965
|
+
* @param client - Aave client.
|
|
966
|
+
* @param request - The vault user activity request parameters.
|
|
967
|
+
* @returns The vault user activity result.
|
|
968
|
+
*/
|
|
969
|
+
declare function vaultUserActivity(client: AaveClient, request: VaultUserActivityRequest): ResultAsync<VaultUserActivityResult, UnexpectedError>;
|
|
944
970
|
|
|
945
|
-
export { type MarketRequest, type MarketsRequest, approveBorrowCreditDelegation, borrow, borrowAPYHistory, chains, collateralToggle, creditDelegateeAllowance, defaultMarketReservesRequestOrderBy, hasProcessedKnownTransaction, health, healthFactorPreview, liquidate, market, markets, permitTypedData, repay, reserve, supply, supplyAPYHistory, usdExchangeRates, userBorrows, userMarketState, userSetEmode, userSupplies, userTransactionHistory, userVaults, vault, vaultDeploy, vaultDeposit, vaultMintShares, vaultPreviewDeposit, vaultPreviewMint, vaultPreviewRedeem, vaultPreviewWithdraw, vaultRedeemShares, vaultSetFee, vaultUserTransactionHistory, vaultWithdraw, vaultWithdrawFees, vaults, withdraw };
|
|
971
|
+
export { type MarketRequest, type MarketsRequest, approveBorrowCreditDelegation, borrow, borrowAPYHistory, chains, collateralToggle, creditDelegateeAllowance, defaultMarketReservesRequestOrderBy, hasProcessedKnownTransaction, health, healthFactorPreview, liquidate, market, markets, permitTypedData, repay, reserve, supply, supplyAPYHistory, usdExchangeRates, userBorrows, userMarketState, userSetEmode, userSupplies, userTransactionHistory, userVaults, vault, vaultDeploy, vaultDeposit, vaultMintShares, vaultPreviewDeposit, vaultPreviewMint, vaultPreviewRedeem, vaultPreviewWithdraw, vaultRedeemShares, vaultSetFee, vaultUserActivity, vaultUserTransactionHistory, vaultWithdraw, vaultWithdrawFees, vaults, withdraw };
|
package/dist/actions/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MarketReservesRequestOrderBy, Market, UserMarketStateRequest, MarketUserState, ChainsFilter, Chain, UsdExchangeRatesRequest, UsdExchangeRate, HasProcessedKnownTransactionRequest, HealthFactorPreviewRequest, HealthFactorPreviewResponse, PermitTypedDataRequest, PermitTypedDataResponse, ReserveRequest, Reserve, BorrowAPYHistoryRequest, APYSample, SupplyAPYHistoryRequest, BorrowRequest, ExecutionPlan, SupplyRequest, RepayRequest, WithdrawRequest, UserSetEmodeRequest, TransactionRequest, VaultDepositRequest, VaultRedeemSharesRequest, VaultDeployRequest, VaultSetFeeRequest, VaultWithdrawFeesRequest, VaultWithdrawRequest, VaultMintSharesRequest, CollateralToggleRequest, LiquidateRequest, ApproveBorrowCreditDelegatorRequest, CreditDelegateeAmountRequest, TokenAmount, UserSuppliesRequest, MarketUserReserveSupplyPosition, UserBorrowsRequest, MarketUserReserveBorrowPosition, UserTransactionHistoryRequest, PaginatedUserTransactionHistoryResult, VaultRequest, Vault, VaultsRequest, PaginatedVaultsResult, UserVaultsRequest, VaultPreviewDepositRequest, VaultPreviewMintRequest, VaultPreviewWithdrawRequest, VaultPreviewRedeemRequest, VaultUserTransactionHistoryRequest, PaginatedVaultUserTransactionHistoryResult } from '@aave/graphql';
|
|
1
|
+
import { MarketReservesRequestOrderBy, Market, UserMarketStateRequest, MarketUserState, ChainsFilter, Chain, UsdExchangeRatesRequest, UsdExchangeRate, HasProcessedKnownTransactionRequest, HealthFactorPreviewRequest, HealthFactorPreviewResponse, PermitTypedDataRequest, PermitTypedDataResponse, ReserveRequest, Reserve, BorrowAPYHistoryRequest, APYSample, SupplyAPYHistoryRequest, BorrowRequest, ExecutionPlan, SupplyRequest, RepayRequest, WithdrawRequest, UserSetEmodeRequest, TransactionRequest, VaultDepositRequest, VaultRedeemSharesRequest, VaultDeployRequest, VaultSetFeeRequest, VaultWithdrawFeesRequest, VaultWithdrawRequest, VaultMintSharesRequest, CollateralToggleRequest, LiquidateRequest, ApproveBorrowCreditDelegatorRequest, CreditDelegateeAmountRequest, TokenAmount, UserSuppliesRequest, MarketUserReserveSupplyPosition, UserBorrowsRequest, MarketUserReserveBorrowPosition, UserTransactionHistoryRequest, PaginatedUserTransactionHistoryResult, VaultRequest, Vault, VaultsRequest, PaginatedVaultsResult, UserVaultsRequest, VaultPreviewDepositRequest, VaultPreviewMintRequest, VaultPreviewWithdrawRequest, VaultPreviewRedeemRequest, VaultUserTransactionHistoryRequest, PaginatedVaultUserTransactionHistoryResult, VaultUserActivityRequest, VaultUserActivityResult } from '@aave/graphql';
|
|
2
2
|
import { ChainId, EvmAddress, ResultAsync } from '@aave/types';
|
|
3
3
|
import { AaveClient } from '../index.js';
|
|
4
4
|
import { U as UnexpectedError } from '../types-DwXCLJq5.js';
|
|
@@ -941,5 +941,31 @@ declare function vaultPreviewRedeem(client: AaveClient, request: VaultPreviewRed
|
|
|
941
941
|
* @returns The paginated vault user transaction history result.
|
|
942
942
|
*/
|
|
943
943
|
declare function vaultUserTransactionHistory(client: AaveClient, request: VaultUserTransactionHistoryRequest): ResultAsync<PaginatedVaultUserTransactionHistoryResult, UnexpectedError>;
|
|
944
|
+
/**
|
|
945
|
+
* Fetches the user activity data for a vault, including earnings breakdown over time.
|
|
946
|
+
*
|
|
947
|
+
* ```ts
|
|
948
|
+
* const result = await vaultUserActivity(client, {
|
|
949
|
+
* vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),
|
|
950
|
+
* chainId: chainId(1),
|
|
951
|
+
* user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),
|
|
952
|
+
* });
|
|
953
|
+
*
|
|
954
|
+
* if (result.isOk()) {
|
|
955
|
+
* console.log('Total earned:', result.value.earned.amount.value);
|
|
956
|
+
* console.log('Activity breakdown count:', result.value.breakdown.length);
|
|
957
|
+
* result.value.breakdown.forEach(activity => {
|
|
958
|
+
* console.log('Date:', activity.date);
|
|
959
|
+
* console.log('Balance:', activity.balance.amount.value);
|
|
960
|
+
* console.log('Earned:', activity.earned.amount.value);
|
|
961
|
+
* });
|
|
962
|
+
* }
|
|
963
|
+
* ```
|
|
964
|
+
*
|
|
965
|
+
* @param client - Aave client.
|
|
966
|
+
* @param request - The vault user activity request parameters.
|
|
967
|
+
* @returns The vault user activity result.
|
|
968
|
+
*/
|
|
969
|
+
declare function vaultUserActivity(client: AaveClient, request: VaultUserActivityRequest): ResultAsync<VaultUserActivityResult, UnexpectedError>;
|
|
944
970
|
|
|
945
|
-
export { type MarketRequest, type MarketsRequest, approveBorrowCreditDelegation, borrow, borrowAPYHistory, chains, collateralToggle, creditDelegateeAllowance, defaultMarketReservesRequestOrderBy, hasProcessedKnownTransaction, health, healthFactorPreview, liquidate, market, markets, permitTypedData, repay, reserve, supply, supplyAPYHistory, usdExchangeRates, userBorrows, userMarketState, userSetEmode, userSupplies, userTransactionHistory, userVaults, vault, vaultDeploy, vaultDeposit, vaultMintShares, vaultPreviewDeposit, vaultPreviewMint, vaultPreviewRedeem, vaultPreviewWithdraw, vaultRedeemShares, vaultSetFee, vaultUserTransactionHistory, vaultWithdraw, vaultWithdrawFees, vaults, withdraw };
|
|
971
|
+
export { type MarketRequest, type MarketsRequest, approveBorrowCreditDelegation, borrow, borrowAPYHistory, chains, collateralToggle, creditDelegateeAllowance, defaultMarketReservesRequestOrderBy, hasProcessedKnownTransaction, health, healthFactorPreview, liquidate, market, markets, permitTypedData, repay, reserve, supply, supplyAPYHistory, usdExchangeRates, userBorrows, userMarketState, userSetEmode, userSupplies, userTransactionHistory, userVaults, vault, vaultDeploy, vaultDeposit, vaultMintShares, vaultPreviewDeposit, vaultPreviewMint, vaultPreviewRedeem, vaultPreviewWithdraw, vaultRedeemShares, vaultSetFee, vaultUserActivity, vaultUserTransactionHistory, vaultWithdraw, vaultWithdrawFees, vaults, withdraw };
|
package/dist/actions/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{B as approveBorrowCreditDelegation,n as borrow,l as borrowAPYHistory,f as chains,z as collateralToggle,C as creditDelegateeAllowance,a as defaultMarketReservesRequestOrderBy,h as hasProcessedKnownTransaction,e as health,i as healthFactorPreview,A as liquidate,c as market,b as markets,j as permitTypedData,p as repay,k as reserve,o as supply,m as supplyAPYHistory,g as usdExchangeRates,E as userBorrows,d as userMarketState,r as userSetEmode,D as userSupplies,F as userTransactionHistory,I as userVaults,G as vault,u as vaultDeploy,s as vaultDeposit,y as vaultMintShares,J as vaultPreviewDeposit,K as vaultPreviewMint,M as vaultPreviewRedeem,L as vaultPreviewWithdraw,t as vaultRedeemShares,v as vaultSetFee,N as vaultUserTransactionHistory,x as vaultWithdraw,w as vaultWithdrawFees,H as vaults,q as withdraw}from'../chunk-
|
|
1
|
+
export{B as approveBorrowCreditDelegation,n as borrow,l as borrowAPYHistory,f as chains,z as collateralToggle,C as creditDelegateeAllowance,a as defaultMarketReservesRequestOrderBy,h as hasProcessedKnownTransaction,e as health,i as healthFactorPreview,A as liquidate,c as market,b as markets,j as permitTypedData,p as repay,k as reserve,o as supply,m as supplyAPYHistory,g as usdExchangeRates,E as userBorrows,d as userMarketState,r as userSetEmode,D as userSupplies,F as userTransactionHistory,I as userVaults,G as vault,u as vaultDeploy,s as vaultDeposit,y as vaultMintShares,J as vaultPreviewDeposit,K as vaultPreviewMint,M as vaultPreviewRedeem,L as vaultPreviewWithdraw,t as vaultRedeemShares,v as vaultSetFee,O as vaultUserActivity,N as vaultUserTransactionHistory,x as vaultWithdraw,w as vaultWithdrawFees,H as vaults,q as withdraw}from'../chunk-KT47UJBO.js';import'../chunk-FW4363Y4.js';//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {c,f as f$1}from'./chunk-QYPBLR6B.js';import {h}from'./chunk-
|
|
2
|
-
export{N as a,Y as b,z as c,C as d};//# sourceMappingURL=chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {c,f as f$1}from'./chunk-QYPBLR6B.js';import {h}from'./chunk-KT47UJBO.js';import {ResultAsync,invariant,errAsync,okAsync,Deferred,never}from'@aave/types';import {createClient,fetchExchange}from'@urql/core';import {Kind,visit,OperationTypeNode}from'graphql';var N={name:"production",backend:"https://api.v3.aave.com/graphql",indexingTimeout:6e4,pollingInterval:100},Y={name:"staging",backend:"https://api.v3.staging.aave.com/graphql",indexingTimeout:6e4,pollingInterval:100},z={name:"local",backend:"http://localhost:3011/graphql",indexingTimeout:6e4,pollingInterval:1e3};var p=class{queries=[];addQuery=(t,e)=>{invariant(this.queries.length<10,"Batch queries supports a maximum of 10 queries");let n=`value_${this.queries.length}`,r=new Deferred;return this.queries.push({alias:n,document:t,variables:e,deferred:r}),ResultAsync.fromPromise(r.promise,o=>c.is(o)?o:c.from(o))};build(){let t=new Map,e=[],n=[],r={},o=0;for(let{alias:u,document:y,variables:I}of this.queries){let[b,P]=Q(y);for(let a of P){let c=a.name.value;t.has(c)||t.set(c,a);}let v=new Map,_=b.variableDefinitions?.map(a=>{let c=`${a.variable.name.value}_${o++}`;return v.set(a.variable.name.value,c),r[c]=I[a.variable.name.value]??never(),{...a,variable:{...a.variable,name:{kind:Kind.NAME,value:c}}}})??[];n.push(..._);let H=visit(b.selectionSet,{Variable(a){let c=v.get(a.name.value);return c?{...a,name:{kind:Kind.NAME,value:c}}:a},Field(a){return {...a,alias:{kind:Kind.NAME,value:u}}}});e.push(...H.selections);}let i={kind:Kind.OPERATION_DEFINITION,operation:OperationTypeNode.QUERY,variableDefinitions:n,selectionSet:{kind:Kind.SELECTION_SET,selections:e}};return [{kind:Kind.DOCUMENT,definitions:[i,...t.values()]},r]}resolve(t){for(let{alias:e,deferred:n}of this.queries)Object.hasOwn(t,e)&&t[e]!==void 0?n.resolve(t[e]):n.reject(c.from(`Missing response data for query alias "${e}". Please report this issue to the Avara team.`));}};function Q(s){let t,e=[];for(let n of s.definitions)switch(n.kind){case Kind.OPERATION_DEFINITION:invariant(n.operation===OperationTypeNode.QUERY,"Only query operations are supported"),invariant(t===void 0,"Only one operation definition is supported"),t=n;break;case Kind.FRAGMENT_DEFINITION:e.push(n);break;default:never(`Unexpected definition kind: ${n.kind}`);}return invariant(t,"No operation definition found in the document"),[t,e]}var R=class{constructor(t){this.document=t;this._fragmentSpreads=new Map,this._recursivelyReferencedFragments=new Map;}_fragments;_fragmentSpreads;_recursivelyReferencedFragments;dedupe(){let t=[],e=[],n=[];return visit(this.document,{OperationDefinition:r=>(t.push(r),false),FragmentDefinition:r=>(e.push(r),false),Document:{leave:()=>{let r=Object.create(null);for(let o of t)for(let i of this.getRecursivelyReferencedFragments(o))r[i.name.value]=true;for(let o of e){let i=o.name.value;r[i]!==true&&n.push(o);}}}}),visit(this.document,{FragmentDefinition:r=>n.indexOf(r)!==-1?null:r})}getRecursivelyReferencedFragments(t){let e=this._recursivelyReferencedFragments.get(t);if(!e){e=[];let n=Object.create(null),r=[t.selectionSet],o;for(;o=r.pop();)for(let i of this.getFragmentSpreads(o)){let E=i.name.value;if(n[E]!==true){n[E]=true;let u=this.getFragment(E);u&&(e.push(u),r.push(u.selectionSet));}}this._recursivelyReferencedFragments.set(t,e);}return e}getFragmentSpreads(t){let e=this._fragmentSpreads.get(t);if(!e){e=[];let n=[t],r;for(;r=n.pop();)for(let o of r.selections)o.kind===Kind.FRAGMENT_SPREAD?e.push(o):o.selectionSet&&n.push(o.selectionSet);this._fragmentSpreads.set(t,e);}return e}getFragment(t){let e;if(this._fragments)e=this._fragments;else {e=Object.create(null);for(let n of this.document.definitions)n.kind===Kind.FRAGMENT_DEFINITION&&(e[n.name.value]=n);this._fragments=e;}return e[t]}},m=class s{constructor(t){this.fragments=t;}static from(t){let e=new Map;for(let n of t)for(let r of n.definitions)invariant(r.kind==="FragmentDefinition",`expected a fragment definition, got ${n.definitions[0]?.kind}`),invariant(!e.has(r.name.value),`Duplicate fragment detected. A fragment named "${r.name.value}" has already been provided, either directly or as part of another fragment document.`),e.set(r.name.value,r);return new s(e)}replaceFrom(t){let e=visit(t,{FragmentDefinition:n=>this.fragments.has(n.name.value)?null:n,Document:{leave:n=>({...n,definitions:[...n.definitions,...this.fragments.values()]})}});return new R(e).dedupe()}};function O(s){return {environment:s.environment??N,headers:s.headers,cache:s.cache??false,debug:s.debug??false,fragments:m.from(s.fragments??[])}}var f=class s{level;name;constructor(t,e=3){this.name=t,this.level=e,this.replaceMethods();}static named(t,e=3){return new s(t,e)}trace=()=>{};debug=()=>{};info=()=>{};warn=()=>{};error=()=>{};log=()=>{};replaceMethods(){["trace","debug","info","warn","error"].forEach((t,e)=>{e>=this.level?this[t]=()=>{}:this[t]=(...n)=>console[t==="debug"?"log":t](`[${this.name}]`,...n);}),this.log=this.debug;}};function q(s){return s.operation!==null}function M(s){return new Promise(t=>setTimeout(t,s))}function k({data:s,error:t}){return invariant(s,`Expected a value, got: ${t?.message}`),s.value}var C=class s{constructor(t){this.context=t;this.logger=f.named(this.constructor.name,t.debug?1:5),this.urql=createClient({url:t.environment.backend,fetchOptions:{credentials:"omit",headers:t.headers},exchanges:this.exchanges()});}urql;logger;static create(t){return new s(O(t??{}))}query(t,e){let n=this.context.fragments.replaceFrom(t);return this.resultFrom(this.urql.query(n,e)).map(k)}mutation(t,e){return this.resultFrom(this.urql.mutation(t,e)).map(k)}batch(t){let e=new p,n=Object.create(this,{query:{value:e.addQuery}}),r=ResultAsync.combine(t(n)),[o,i]=e.build(),E=this.context.fragments.replaceFrom(o);return this.resultFrom(this.urql.query(E,i)).andTee(({data:u,error:y})=>{invariant(u,`Expected a value, got: ${y?.message}`),e.resolve(u);}).andThen(()=>r)}waitForTransaction=t=>(invariant(q(t),"Received a transaction result for an untracked operation. Make sure you're following the instructions in the docs."),ResultAsync.fromPromise(this.pollTransactionStatus(t),e=>e instanceof f$1||e instanceof c?e:c.from(e)));async pollTransactionStatus(t){let e=Date.now();for(;Date.now()-e<this.context.environment.indexingTimeout;){if(await h(this,t).match(r=>r,r=>{throw r}))return t.txHash;await M(this.context.environment.pollingInterval);}throw f$1.from(`Timeout waiting for transaction ${t.txHash} to be processed.`)}exchanges(){return [fetchExchange]}resultFrom(t){return ResultAsync.fromPromise(t.toPromise(),e=>(this.logger.error(e),console.log(e),c.from(e))).andThen(e=>e.error?.networkError?errAsync(c.from(e.error.networkError)):okAsync(e))}};
|
|
2
|
+
export{N as a,Y as b,z as c,C as d};//# sourceMappingURL=chunk-IKLPSB3H.js.map
|
|
3
|
+
//# sourceMappingURL=chunk-IKLPSB3H.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/environments.ts","../src/batch.ts","../src/fragments.ts","../src/context.ts","../src/logger.ts","../src/types.ts","../src/utils.ts","../src/client.ts"],"names":["production","staging","local","BatchQueryBuilder","document","variables","invariant","alias","deferred","Deferred","ResultAsync","err","UnexpectedError","allFragments","selections","variableDefinitions","mergedVariables","varId","operation","fragments","extractQueryParts","fragment","name","varMapping","localDefs","v","newVarName","never","Kind","rewritten","visit","node","renamed","mergedOperation","OperationTypeNode","data","definition","FragmentDeduplicator","operationDefs","fragmentDefs","toRemove","fragmentNameUsed","fragmentDef","fragName","collectedNames","nodesToVisit","spread","spreads","setsToVisit","set","selection","defNode","FragmentResolver","_FragmentResolver","nodes","injected","configureContext","from","Logger","_Logger","level","methodName","index","args","isHasProcessedKnownTransactionRequest","result","delay","ms","resolve","takeValue","error","AaveClient","_AaveClient","context","createClient","options","query","cb","builder","client","combined","TimeoutError","request","startedAt","hasProcessedKnownTransaction","ok","fetchExchange","source","errAsync","okAsync"],"mappings":"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","file":"chunk-5UVVSXS5.js","sourcesContent":["/**\n * The environment configuration type.\n */\nexport type EnvironmentConfig = {\n name: string;\n backend: string;\n indexingTimeout: number;\n pollingInterval: number;\n};\n\n/**\n * The production environment configuration.\n */\nexport const production: EnvironmentConfig = {\n name: 'production',\n backend: 'https://api.v3.aave.com/graphql',\n indexingTimeout: 60_000,\n pollingInterval: 100,\n};\n\n/**\n * @internal\n */\nexport const staging: EnvironmentConfig = {\n name: 'staging',\n backend: 'https://api.v3.staging.aave.com/graphql',\n indexingTimeout: 60_000,\n pollingInterval: 100,\n};\n\n/**\n * @internal\n */\nexport const local: EnvironmentConfig = {\n name: 'local',\n backend: 'http://localhost:3011/graphql',\n indexingTimeout: 60_000,\n pollingInterval: 1000,\n};\n","import type { AnyVariables, StandardData } from '@aave/graphql';\nimport { Deferred, invariant, never, ResultAsync } from '@aave/types';\nimport type { TypedDocumentNode } from '@urql/core';\nimport {\n type DocumentNode,\n type FieldNode,\n type FragmentDefinitionNode,\n Kind,\n type OperationDefinitionNode,\n OperationTypeNode,\n type VariableDefinitionNode,\n visit,\n} from 'graphql';\n\nimport { UnexpectedError } from './errors';\n\ninterface StoredQuery<TValue, TVariables extends AnyVariables> {\n alias: string;\n document: TypedDocumentNode<StandardData<TValue>, TVariables>;\n variables: AnyVariables;\n deferred: Deferred<TValue>;\n}\n\nexport type BatchQueryData = Record<string, unknown>;\n\nexport class BatchQueryBuilder {\n // biome-ignore lint/suspicious/noExplicitAny: intentional due to the etherogenous nature of the queries\n private queries: StoredQuery<any, any>[] = [];\n\n addQuery = <TValue, TVariables extends AnyVariables>(\n document: TypedDocumentNode<StandardData<TValue>, TVariables>,\n variables: TVariables,\n ): ResultAsync<TValue, UnexpectedError> => {\n invariant(\n this.queries.length < 10,\n 'Batch queries supports a maximum of 10 queries',\n );\n\n const alias = `value_${this.queries.length}`;\n const deferred = new Deferred<TValue>();\n\n this.queries.push({ alias, document, variables, deferred });\n\n return ResultAsync.fromPromise(deferred.promise, (err) => {\n if (UnexpectedError.is(err)) {\n return err;\n }\n return UnexpectedError.from(err);\n });\n };\n\n build<TVariables extends AnyVariables>(): [\n TypedDocumentNode<BatchQueryData, TVariables>,\n TVariables,\n ] {\n const allFragments: Map<string, FragmentDefinitionNode> = new Map();\n const selections: FieldNode[] = [];\n const variableDefinitions: VariableDefinitionNode[] = [];\n const mergedVariables: AnyVariables = {};\n\n let varId = 0;\n for (const { alias, document, variables } of this.queries) {\n const [operation, fragments] = extractQueryParts(document);\n\n for (const fragment of fragments) {\n const name = fragment.name.value;\n if (!allFragments.has(name)) {\n allFragments.set(name, fragment);\n }\n }\n\n const varMapping = new Map<string, string>();\n const localDefs =\n operation.variableDefinitions?.map((v): VariableDefinitionNode => {\n const newVarName = `${v.variable.name.value}_${varId++}`;\n varMapping.set(v.variable.name.value, newVarName);\n\n mergedVariables[newVarName] =\n variables[v.variable.name.value] ?? never();\n\n return {\n ...v,\n variable: {\n ...v.variable,\n name: { kind: Kind.NAME, value: newVarName },\n },\n };\n }) ?? [];\n\n variableDefinitions.push(...localDefs);\n\n const rewritten = visit(operation.selectionSet, {\n Variable(node) {\n const renamed = varMapping.get(node.name.value);\n if (!renamed) return node;\n return {\n ...node,\n name: { kind: Kind.NAME, value: renamed },\n };\n },\n Field(node) {\n return {\n ...node,\n alias: { kind: Kind.NAME, value: alias },\n };\n },\n });\n\n selections.push(...(rewritten.selections as FieldNode[]));\n }\n\n const mergedOperation: OperationDefinitionNode = {\n kind: Kind.OPERATION_DEFINITION,\n operation: OperationTypeNode.QUERY,\n variableDefinitions,\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections,\n },\n };\n\n const mergedDocument: DocumentNode = {\n kind: Kind.DOCUMENT,\n definitions: [mergedOperation, ...allFragments.values()],\n };\n return [mergedDocument, mergedVariables as TVariables];\n }\n\n resolve(data: BatchQueryData) {\n for (const { alias, deferred } of this.queries) {\n if (Object.hasOwn(data, alias) && data[alias] !== undefined) {\n deferred.resolve(data[alias]);\n } else {\n deferred.reject(\n UnexpectedError.from(\n `Missing response data for query alias \"${alias}\". Please report this issue to the Avara team.`,\n ),\n );\n }\n }\n }\n}\n\nfunction extractQueryParts(\n document: TypedDocumentNode<StandardData<unknown>>,\n): [OperationDefinitionNode, FragmentDefinitionNode[]] {\n let operation: OperationDefinitionNode | undefined;\n const fragments: FragmentDefinitionNode[] = [];\n for (const definition of document.definitions) {\n switch (definition.kind) {\n case Kind.OPERATION_DEFINITION:\n invariant(\n definition.operation === OperationTypeNode.QUERY,\n 'Only query operations are supported',\n );\n invariant(\n operation === undefined,\n 'Only one operation definition is supported',\n );\n\n operation = definition;\n break;\n\n case Kind.FRAGMENT_DEFINITION:\n fragments.push(definition);\n break;\n\n default:\n never(`Unexpected definition kind: ${definition.kind}`);\n }\n }\n\n invariant(operation, 'No operation definition found in the document');\n\n return [operation, fragments];\n}\n","import { invariant } from '@aave/types';\nimport type { AnyVariables, TypedDocumentNode } from '@urql/core';\nimport {\n type FragmentDefinitionNode,\n type FragmentSpreadNode,\n Kind,\n type OperationDefinitionNode,\n type SelectionSetNode,\n visit,\n} from 'graphql';\nimport type { Maybe } from 'graphql/jsutils/Maybe';\nimport type { ObjMap } from 'graphql/jsutils/ObjMap';\n\nclass FragmentDeduplicator<TResult, TVariables extends AnyVariables> {\n private _fragments: ObjMap<FragmentDefinitionNode> | undefined;\n private _fragmentSpreads: Map<SelectionSetNode, Array<FragmentSpreadNode>>;\n private _recursivelyReferencedFragments: Map<\n OperationDefinitionNode,\n Array<FragmentDefinitionNode>\n >;\n\n constructor(\n private readonly document: TypedDocumentNode<TResult, TVariables>,\n ) {\n this._fragmentSpreads = new Map();\n this._recursivelyReferencedFragments = new Map();\n }\n\n dedupe(): TypedDocumentNode<TResult, TVariables> {\n const operationDefs: Array<OperationDefinitionNode> = [];\n const fragmentDefs: Array<FragmentDefinitionNode> = [];\n\n const toRemove: Array<FragmentDefinitionNode> = [];\n\n visit(this.document, {\n OperationDefinition: (node) => {\n operationDefs.push(node);\n return false;\n },\n FragmentDefinition: (node) => {\n fragmentDefs.push(node);\n return false;\n },\n Document: {\n leave: () => {\n const fragmentNameUsed = Object.create(null);\n for (const operation of operationDefs) {\n for (const fragment of this.getRecursivelyReferencedFragments(\n operation,\n )) {\n fragmentNameUsed[fragment.name.value] = true;\n }\n }\n\n for (const fragmentDef of fragmentDefs) {\n const fragName = fragmentDef.name.value;\n if (fragmentNameUsed[fragName] !== true) {\n toRemove.push(fragmentDef);\n }\n }\n },\n },\n });\n\n return visit(this.document, {\n FragmentDefinition: (node) => {\n if (toRemove.indexOf(node) !== -1) {\n return null;\n }\n return node;\n },\n });\n }\n\n private getRecursivelyReferencedFragments(\n operation: OperationDefinitionNode,\n ): ReadonlyArray<FragmentDefinitionNode> {\n let fragments = this._recursivelyReferencedFragments.get(operation);\n if (!fragments) {\n fragments = [];\n const collectedNames = Object.create(null);\n const nodesToVisit: Array<SelectionSetNode> = [operation.selectionSet];\n let node: SelectionSetNode | undefined;\n // biome-ignore lint/suspicious/noAssignInExpressions: for now\n while ((node = nodesToVisit.pop())) {\n for (const spread of this.getFragmentSpreads(node)) {\n const fragName = spread.name.value;\n if (collectedNames[fragName] !== true) {\n collectedNames[fragName] = true;\n const fragment = this.getFragment(fragName);\n if (fragment) {\n fragments.push(fragment);\n nodesToVisit.push(fragment.selectionSet);\n }\n }\n }\n }\n this._recursivelyReferencedFragments.set(operation, fragments);\n }\n return fragments;\n }\n\n private getFragmentSpreads(\n node: SelectionSetNode,\n ): ReadonlyArray<FragmentSpreadNode> {\n let spreads = this._fragmentSpreads.get(node);\n if (!spreads) {\n spreads = [];\n const setsToVisit: Array<SelectionSetNode> = [node];\n let set: SelectionSetNode | undefined;\n // biome-ignore lint/suspicious/noAssignInExpressions: safe\n while ((set = setsToVisit.pop())) {\n for (const selection of set.selections) {\n if (selection.kind === Kind.FRAGMENT_SPREAD) {\n spreads.push(selection);\n } else if (selection.selectionSet) {\n setsToVisit.push(selection.selectionSet);\n }\n }\n }\n this._fragmentSpreads.set(node, spreads);\n }\n return spreads;\n }\n\n private getFragment(name: string): Maybe<FragmentDefinitionNode> {\n let fragments: ObjMap<FragmentDefinitionNode>;\n if (this._fragments) {\n fragments = this._fragments;\n } else {\n fragments = Object.create(null);\n for (const defNode of this.document.definitions) {\n if (defNode.kind === Kind.FRAGMENT_DEFINITION) {\n fragments[defNode.name.value] = defNode;\n }\n }\n this._fragments = fragments;\n }\n return fragments[name];\n }\n}\n\n/**\n * @internal\n */\nexport class FragmentResolver {\n private constructor(\n private readonly fragments: Map<string, FragmentDefinitionNode>,\n ) {}\n\n static from(nodes: TypedDocumentNode[]): FragmentResolver {\n const fragments = new Map<string, FragmentDefinitionNode>();\n\n for (const fragment of nodes) {\n for (const definition of fragment.definitions) {\n invariant(\n definition.kind === 'FragmentDefinition',\n `expected a fragment definition, got ${fragment.definitions[0]?.kind}`,\n );\n invariant(\n !fragments.has(definition.name.value),\n `Duplicate fragment detected. A fragment named \"${definition.name.value}\" has already been provided, either directly or as part of another fragment document.`,\n );\n fragments.set(definition.name.value, definition);\n }\n }\n\n return new FragmentResolver(fragments);\n }\n\n replaceFrom<TResult, TVariables extends AnyVariables>(\n document: TypedDocumentNode<TResult, TVariables>,\n ): TypedDocumentNode<TResult, TVariables> {\n const injected = visit(document, {\n FragmentDefinition: (node) => {\n if (this.fragments.has(node.name.value)) {\n return null;\n }\n return node;\n },\n Document: {\n leave: (node) => {\n return {\n ...node,\n definitions: [...node.definitions, ...this.fragments.values()],\n };\n },\n },\n });\n\n return new FragmentDeduplicator(injected).dedupe();\n }\n}\n","import type { ClientConfig } from './config';\nimport { type EnvironmentConfig, production } from './environments';\nimport { FragmentResolver } from './fragments';\n\n/**\n * @internal\n */\nexport type Context = {\n environment: EnvironmentConfig;\n headers?: Record<string, string>;\n cache: boolean;\n debug: boolean;\n fragments: FragmentResolver;\n};\n\n/**\n * @internal\n */\nexport function configureContext(from: ClientConfig): Context {\n return {\n environment: from.environment ?? production,\n headers: from.headers,\n cache: from.cache ?? false,\n debug: from.debug ?? false,\n fragments: FragmentResolver.from(from.fragments ?? []),\n };\n}\n","type LogMethod = (...args: unknown[]) => void;\n\nexport enum LogLevel {\n TRACE = 0,\n DEBUG = 1,\n INFO = 2,\n WARN = 3,\n ERROR = 4,\n SILENT = 5,\n}\n\nexport class Logger {\n private level: LogLevel;\n private name: string;\n\n private constructor(name: string, level: LogLevel = LogLevel.WARN) {\n this.name = name;\n this.level = level;\n this.replaceMethods();\n }\n\n static named(name: string, level: LogLevel = LogLevel.WARN): Logger {\n return new Logger(name, level);\n }\n\n trace: LogMethod = () => {};\n debug: LogMethod = () => {};\n info: LogMethod = () => {};\n warn: LogMethod = () => {};\n error: LogMethod = () => {};\n log: LogMethod = () => {}; // alias for debug\n\n private replaceMethods() {\n (['trace', 'debug', 'info', 'warn', 'error'] as const).forEach(\n (methodName, index) => {\n if (index >= this.level) {\n this[methodName] = () => {};\n } else {\n this[methodName] = (...args) =>\n console[methodName === 'debug' ? 'log' : methodName](\n `[${this.name}]`,\n ...args,\n );\n }\n },\n );\n this.log = this.debug;\n }\n}\n","import type {\n ERC712Signature,\n ExecutionPlan,\n HasProcessedKnownTransactionRequest,\n InsufficientBalanceError,\n OperationType,\n PermitTypedDataResponse,\n} from '@aave/graphql';\nimport type { ResultAsync, TxHash } from '@aave/types';\nimport type { SigningError, TransactionError, ValidationError } from './errors';\n\nexport type TransactionExecutionResult = {\n txHash: TxHash;\n operation: OperationType | null;\n};\n\n/**\n * @internal\n */\nexport function isHasProcessedKnownTransactionRequest(\n result: TransactionExecutionResult,\n): result is HasProcessedKnownTransactionRequest {\n return result.operation !== null;\n}\n\nexport type ExecutionPlanHandler<T extends ExecutionPlan = ExecutionPlan> = (\n result: T,\n) => ResultAsync<\n TransactionExecutionResult,\n SigningError | TransactionError | ValidationError<InsufficientBalanceError>\n>;\n\nexport type PermitHandler = (\n result: PermitTypedDataResponse,\n) => ResultAsync<ERC712Signature, SigningError>;\n","/**\n * @internal\n */\nexport function delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","import type {\n HasProcessedKnownTransactionRequest,\n StandardData,\n} from '@aave/graphql';\nimport {\n errAsync,\n invariant,\n okAsync,\n ResultAsync,\n type TxHash,\n} from '@aave/types';\nimport {\n type AnyVariables,\n createClient,\n type Exchange,\n fetchExchange,\n type OperationResult,\n type OperationResultSource,\n type TypedDocumentNode,\n type Client as UrqlClient,\n} from '@urql/core';\nimport { hasProcessedKnownTransaction } from './actions';\nimport { BatchQueryBuilder } from './batch';\nimport type { ClientConfig } from './config';\nimport { type Context, configureContext } from './context';\nimport { TimeoutError, UnexpectedError } from './errors';\nimport { Logger, LogLevel } from './logger';\nimport {\n isHasProcessedKnownTransactionRequest,\n type TransactionExecutionResult,\n} from './types';\nimport { delay } from './utils';\n\nfunction takeValue<T>({\n data,\n error,\n}: OperationResult<StandardData<T> | undefined, AnyVariables>): T {\n invariant(data, `Expected a value, got: ${error?.message}`);\n return data.value;\n}\n\nexport class AaveClient {\n /**\n * @internal\n */\n public readonly urql: UrqlClient;\n\n private readonly logger: Logger;\n\n private constructor(private readonly context: Context) {\n this.logger = Logger.named(\n this.constructor.name,\n context.debug ? LogLevel.DEBUG : LogLevel.SILENT,\n );\n\n this.urql = createClient({\n url: context.environment.backend,\n fetchOptions: {\n credentials: 'omit',\n headers: context.headers,\n },\n exchanges: this.exchanges(),\n });\n }\n\n /**\n * Create a new instance of the {@link AaveClient}.\n *\n * ```ts\n * const client = AaveClient.create({\n * environment: production,\n * origin: 'http://example.com',\n * });\n * ```\n *\n * @param options - The options to configure the client.\n * @returns The new instance of the client.\n */\n static create(options?: ClientConfig): AaveClient {\n return new AaveClient(configureContext(options ?? {}));\n }\n\n /**\n * Execute a GraphQL query operation.\n *\n * @param document - The GraphQL document to execute.\n * @param variables - The variables to pass to the operation.\n * @returns The result of the operation.\n */\n public query<TValue, TVariables extends AnyVariables>(\n document: TypedDocumentNode<StandardData<TValue>, TVariables>,\n variables: TVariables,\n ): ResultAsync<TValue, UnexpectedError> {\n const query = this.context.fragments.replaceFrom(document);\n return this.resultFrom(this.urql.query(query, variables)).map(takeValue);\n }\n\n /**\n * Execute a GraphQL mutation operation.\n *\n * @param document - The GraphQL document to execute.\n * @param variables - The variables to pass to the operation.\n * @returns The result of the operation.\n */\n public mutation<TValue, TVariables extends AnyVariables>(\n document: TypedDocumentNode<StandardData<TValue>, TVariables>,\n variables: TVariables,\n ): ResultAsync<TValue, UnexpectedError> {\n return this.resultFrom(this.urql.mutation(document, variables)).map(\n takeValue,\n );\n }\n\n // TODO update example below\n /**\n * Execute a batch of GraphQL query operations.\n *\n * @alpha This is an alpha API and may be subject to breaking changes.\n *\n * ```ts\n * const result = await client.batch((c) => [\n * fetchAccount(c, { address: evmAddress('0x1234…') }).map(nonNullable),\n * fetchBalancesBulk(c, {\n * includeNative: true,\n * tokens: [\n * evmAddress(\"0x5678…\"),\n * evmAddress(\"0x9012…\"),\n * ],\n * }),\n * ]);\n *\n * // const result: Result<\n * // [\n * // Account,\n * // AnyAccountBalance[],\n * // ],\n * // UnauthenticatedError | UnexpectedError\n * // >\n * ```\n *\n * @param cb - The callback with the scoped client to execute the actions with.\n * @returns The results of all queries in the same order as they were added.\n */\n batch<T1, T2, E1 extends Error, E2 extends Error>(\n cb: (client: this) => [ResultAsync<T1, E1>, ResultAsync<T2, E2>],\n ): ResultAsync<[T1, T2], E1 | E2>;\n batch<T1, T2, T3, E1 extends Error, E2 extends Error, E3 extends Error>(\n cb: (\n client: this,\n ) => [ResultAsync<T1, E1>, ResultAsync<T2, E2>, ResultAsync<T3, E3>],\n ): ResultAsync<[T1, T2, T3], E1 | E2 | E3>;\n batch<\n T1,\n T2,\n T3,\n T4,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ],\n ): ResultAsync<[T1, T2, T3, T4], E1 | E2 | E3 | E4>;\n batch<\n T1,\n T2,\n T3,\n T4,\n T5,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n E5 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ResultAsync<T5, E5>,\n ],\n ): ResultAsync<[T1, T2, T3, T4, T5], E1 | E2 | E3 | E4 | E5>;\n batch<\n T1,\n T2,\n T3,\n T4,\n T5,\n T6,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n E5 extends Error,\n E6 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ResultAsync<T5, E5>,\n ResultAsync<T6, E6>,\n ],\n ): ResultAsync<[T1, T2, T3, T4, T5, T6], E1 | E2 | E3 | E4 | E5 | E6>;\n batch<\n T1,\n T2,\n T3,\n T4,\n T5,\n T6,\n T7,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n E5 extends Error,\n E6 extends Error,\n E7 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ResultAsync<T5, E5>,\n ResultAsync<T6, E6>,\n ResultAsync<T7, E7>,\n ],\n ): ResultAsync<\n [T1, T2, T3, T4, T5, T6, T7],\n E1 | E2 | E3 | E4 | E5 | E6 | E7\n >;\n batch<\n T1,\n T2,\n T3,\n T4,\n T5,\n T6,\n T7,\n T8,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n E5 extends Error,\n E6 extends Error,\n E7 extends Error,\n E8 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ResultAsync<T5, E5>,\n ResultAsync<T6, E6>,\n ResultAsync<T7, E7>,\n ResultAsync<T8, E8>,\n ],\n ): ResultAsync<\n [T1, T2, T3, T4, T5, T6, T7, T8],\n E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8\n >;\n batch<\n T1,\n T2,\n T3,\n T4,\n T5,\n T6,\n T7,\n T8,\n T9,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n E5 extends Error,\n E6 extends Error,\n E7 extends Error,\n E8 extends Error,\n E9 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ResultAsync<T5, E5>,\n ResultAsync<T6, E6>,\n ResultAsync<T7, E7>,\n ResultAsync<T8, E8>,\n ResultAsync<T9, E9>,\n ],\n ): ResultAsync<\n [T1, T2, T3, T4, T5, T6, T7, T8, T9],\n E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9\n >;\n batch<\n T1,\n T2,\n T3,\n T4,\n T5,\n T6,\n T7,\n T8,\n T9,\n T10,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n E5 extends Error,\n E6 extends Error,\n E7 extends Error,\n E8 extends Error,\n E9 extends Error,\n E10 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ResultAsync<T5, E5>,\n ResultAsync<T6, E6>,\n ResultAsync<T7, E7>,\n ResultAsync<T8, E8>,\n ResultAsync<T9, E9>,\n ResultAsync<T10, E10>,\n ],\n ): ResultAsync<\n [T1, T2, T3, T4, T5, T6, T7, T8, T9, T10],\n E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10\n >;\n batch<T, E extends Error>(\n cb: (client: this) => ResultAsync<T, E>[],\n ): ResultAsync<T[], E>;\n batch(\n cb: (client: this) => ResultAsync<unknown[], unknown>[],\n ): ResultAsync<unknown[], unknown> {\n const builder = new BatchQueryBuilder();\n\n const client: this = Object.create(this, {\n query: {\n value: builder.addQuery,\n },\n });\n\n const combined = ResultAsync.combine(cb(client));\n const [document, variables] = builder.build();\n\n const query = this.context.fragments.replaceFrom(document);\n\n return this.resultFrom(this.urql.query(query, variables))\n .andTee(({ data, error }) => {\n invariant(data, `Expected a value, got: ${error?.message}`);\n builder.resolve(data);\n })\n .andThen(() => combined);\n }\n\n /**\n * Given the transaction hash of an Aave protocol transaction, wait for the transaction to be\n * processed by the Aave v3 API.\n *\n * Returns a {@link TimeoutError} if the transaction is not processed within the expected timeout period.\n *\n * @param result - The transaction execution result to wait for.\n * @returns The transaction hash or a TimeoutError\n */\n readonly waitForTransaction = (\n result: TransactionExecutionResult,\n ): ResultAsync<TxHash, TimeoutError | UnexpectedError> => {\n invariant(\n isHasProcessedKnownTransactionRequest(result),\n `Received a transaction result for an untracked operation. Make sure you're following the instructions in the docs.`,\n );\n\n return ResultAsync.fromPromise(\n this.pollTransactionStatus(result),\n (err) => {\n if (err instanceof TimeoutError || err instanceof UnexpectedError) {\n return err;\n }\n return UnexpectedError.from(err);\n },\n );\n };\n\n protected async pollTransactionStatus(\n request: HasProcessedKnownTransactionRequest,\n ): Promise<TxHash> {\n const startedAt = Date.now();\n\n while (Date.now() - startedAt < this.context.environment.indexingTimeout) {\n const processed = await hasProcessedKnownTransaction(this, request).match(\n (ok) => ok,\n (err) => {\n throw err;\n },\n );\n\n if (processed) {\n return request.txHash;\n }\n\n await delay(this.context.environment.pollingInterval);\n }\n throw TimeoutError.from(\n `Timeout waiting for transaction ${request.txHash} to be processed.`,\n );\n }\n\n protected exchanges(): Exchange[] {\n return [fetchExchange];\n }\n\n protected resultFrom<TData, TVariables extends AnyVariables>(\n source: OperationResultSource<OperationResult<TData, TVariables>>,\n ): ResultAsync<OperationResult<TData, TVariables>, UnexpectedError> {\n return ResultAsync.fromPromise(source.toPromise(), (err: unknown) => {\n this.logger.error(err);\n console.log(err);\n return UnexpectedError.from(err);\n }).andThen((result) => {\n if (result.error?.networkError) {\n return errAsync(UnexpectedError.from(result.error.networkError));\n }\n return okAsync(result);\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/environments.ts","../src/batch.ts","../src/fragments.ts","../src/context.ts","../src/logger.ts","../src/types.ts","../src/utils.ts","../src/client.ts"],"names":["production","staging","local","BatchQueryBuilder","document","variables","invariant","alias","deferred","Deferred","ResultAsync","err","UnexpectedError","allFragments","selections","variableDefinitions","mergedVariables","varId","operation","fragments","extractQueryParts","fragment","name","varMapping","localDefs","v","newVarName","never","Kind","rewritten","visit","node","renamed","mergedOperation","OperationTypeNode","data","definition","FragmentDeduplicator","operationDefs","fragmentDefs","toRemove","fragmentNameUsed","fragmentDef","fragName","collectedNames","nodesToVisit","spread","spreads","setsToVisit","set","selection","defNode","FragmentResolver","_FragmentResolver","nodes","injected","configureContext","from","Logger","_Logger","level","methodName","index","args","isHasProcessedKnownTransactionRequest","result","delay","ms","resolve","takeValue","error","AaveClient","_AaveClient","context","createClient","options","query","cb","builder","client","combined","TimeoutError","request","startedAt","hasProcessedKnownTransaction","ok","fetchExchange","source","errAsync","okAsync"],"mappings":"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","file":"chunk-IKLPSB3H.js","sourcesContent":["/**\n * The environment configuration type.\n */\nexport type EnvironmentConfig = {\n name: string;\n backend: string;\n indexingTimeout: number;\n pollingInterval: number;\n};\n\n/**\n * The production environment configuration.\n */\nexport const production: EnvironmentConfig = {\n name: 'production',\n backend: 'https://api.v3.aave.com/graphql',\n indexingTimeout: 60_000,\n pollingInterval: 100,\n};\n\n/**\n * @internal\n */\nexport const staging: EnvironmentConfig = {\n name: 'staging',\n backend: 'https://api.v3.staging.aave.com/graphql',\n indexingTimeout: 60_000,\n pollingInterval: 100,\n};\n\n/**\n * @internal\n */\nexport const local: EnvironmentConfig = {\n name: 'local',\n backend: 'http://localhost:3011/graphql',\n indexingTimeout: 60_000,\n pollingInterval: 1000,\n};\n","import type { AnyVariables, StandardData } from '@aave/graphql';\nimport { Deferred, invariant, never, ResultAsync } from '@aave/types';\nimport type { TypedDocumentNode } from '@urql/core';\nimport {\n type DocumentNode,\n type FieldNode,\n type FragmentDefinitionNode,\n Kind,\n type OperationDefinitionNode,\n OperationTypeNode,\n type VariableDefinitionNode,\n visit,\n} from 'graphql';\n\nimport { UnexpectedError } from './errors';\n\ninterface StoredQuery<TValue, TVariables extends AnyVariables> {\n alias: string;\n document: TypedDocumentNode<StandardData<TValue>, TVariables>;\n variables: AnyVariables;\n deferred: Deferred<TValue>;\n}\n\nexport type BatchQueryData = Record<string, unknown>;\n\nexport class BatchQueryBuilder {\n // biome-ignore lint/suspicious/noExplicitAny: intentional due to the etherogenous nature of the queries\n private queries: StoredQuery<any, any>[] = [];\n\n addQuery = <TValue, TVariables extends AnyVariables>(\n document: TypedDocumentNode<StandardData<TValue>, TVariables>,\n variables: TVariables,\n ): ResultAsync<TValue, UnexpectedError> => {\n invariant(\n this.queries.length < 10,\n 'Batch queries supports a maximum of 10 queries',\n );\n\n const alias = `value_${this.queries.length}`;\n const deferred = new Deferred<TValue>();\n\n this.queries.push({ alias, document, variables, deferred });\n\n return ResultAsync.fromPromise(deferred.promise, (err) => {\n if (UnexpectedError.is(err)) {\n return err;\n }\n return UnexpectedError.from(err);\n });\n };\n\n build<TVariables extends AnyVariables>(): [\n TypedDocumentNode<BatchQueryData, TVariables>,\n TVariables,\n ] {\n const allFragments: Map<string, FragmentDefinitionNode> = new Map();\n const selections: FieldNode[] = [];\n const variableDefinitions: VariableDefinitionNode[] = [];\n const mergedVariables: AnyVariables = {};\n\n let varId = 0;\n for (const { alias, document, variables } of this.queries) {\n const [operation, fragments] = extractQueryParts(document);\n\n for (const fragment of fragments) {\n const name = fragment.name.value;\n if (!allFragments.has(name)) {\n allFragments.set(name, fragment);\n }\n }\n\n const varMapping = new Map<string, string>();\n const localDefs =\n operation.variableDefinitions?.map((v): VariableDefinitionNode => {\n const newVarName = `${v.variable.name.value}_${varId++}`;\n varMapping.set(v.variable.name.value, newVarName);\n\n mergedVariables[newVarName] =\n variables[v.variable.name.value] ?? never();\n\n return {\n ...v,\n variable: {\n ...v.variable,\n name: { kind: Kind.NAME, value: newVarName },\n },\n };\n }) ?? [];\n\n variableDefinitions.push(...localDefs);\n\n const rewritten = visit(operation.selectionSet, {\n Variable(node) {\n const renamed = varMapping.get(node.name.value);\n if (!renamed) return node;\n return {\n ...node,\n name: { kind: Kind.NAME, value: renamed },\n };\n },\n Field(node) {\n return {\n ...node,\n alias: { kind: Kind.NAME, value: alias },\n };\n },\n });\n\n selections.push(...(rewritten.selections as FieldNode[]));\n }\n\n const mergedOperation: OperationDefinitionNode = {\n kind: Kind.OPERATION_DEFINITION,\n operation: OperationTypeNode.QUERY,\n variableDefinitions,\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections,\n },\n };\n\n const mergedDocument: DocumentNode = {\n kind: Kind.DOCUMENT,\n definitions: [mergedOperation, ...allFragments.values()],\n };\n return [mergedDocument, mergedVariables as TVariables];\n }\n\n resolve(data: BatchQueryData) {\n for (const { alias, deferred } of this.queries) {\n if (Object.hasOwn(data, alias) && data[alias] !== undefined) {\n deferred.resolve(data[alias]);\n } else {\n deferred.reject(\n UnexpectedError.from(\n `Missing response data for query alias \"${alias}\". Please report this issue to the Avara team.`,\n ),\n );\n }\n }\n }\n}\n\nfunction extractQueryParts(\n document: TypedDocumentNode<StandardData<unknown>>,\n): [OperationDefinitionNode, FragmentDefinitionNode[]] {\n let operation: OperationDefinitionNode | undefined;\n const fragments: FragmentDefinitionNode[] = [];\n for (const definition of document.definitions) {\n switch (definition.kind) {\n case Kind.OPERATION_DEFINITION:\n invariant(\n definition.operation === OperationTypeNode.QUERY,\n 'Only query operations are supported',\n );\n invariant(\n operation === undefined,\n 'Only one operation definition is supported',\n );\n\n operation = definition;\n break;\n\n case Kind.FRAGMENT_DEFINITION:\n fragments.push(definition);\n break;\n\n default:\n never(`Unexpected definition kind: ${definition.kind}`);\n }\n }\n\n invariant(operation, 'No operation definition found in the document');\n\n return [operation, fragments];\n}\n","import { invariant } from '@aave/types';\nimport type { AnyVariables, TypedDocumentNode } from '@urql/core';\nimport {\n type FragmentDefinitionNode,\n type FragmentSpreadNode,\n Kind,\n type OperationDefinitionNode,\n type SelectionSetNode,\n visit,\n} from 'graphql';\nimport type { Maybe } from 'graphql/jsutils/Maybe';\nimport type { ObjMap } from 'graphql/jsutils/ObjMap';\n\nclass FragmentDeduplicator<TResult, TVariables extends AnyVariables> {\n private _fragments: ObjMap<FragmentDefinitionNode> | undefined;\n private _fragmentSpreads: Map<SelectionSetNode, Array<FragmentSpreadNode>>;\n private _recursivelyReferencedFragments: Map<\n OperationDefinitionNode,\n Array<FragmentDefinitionNode>\n >;\n\n constructor(\n private readonly document: TypedDocumentNode<TResult, TVariables>,\n ) {\n this._fragmentSpreads = new Map();\n this._recursivelyReferencedFragments = new Map();\n }\n\n dedupe(): TypedDocumentNode<TResult, TVariables> {\n const operationDefs: Array<OperationDefinitionNode> = [];\n const fragmentDefs: Array<FragmentDefinitionNode> = [];\n\n const toRemove: Array<FragmentDefinitionNode> = [];\n\n visit(this.document, {\n OperationDefinition: (node) => {\n operationDefs.push(node);\n return false;\n },\n FragmentDefinition: (node) => {\n fragmentDefs.push(node);\n return false;\n },\n Document: {\n leave: () => {\n const fragmentNameUsed = Object.create(null);\n for (const operation of operationDefs) {\n for (const fragment of this.getRecursivelyReferencedFragments(\n operation,\n )) {\n fragmentNameUsed[fragment.name.value] = true;\n }\n }\n\n for (const fragmentDef of fragmentDefs) {\n const fragName = fragmentDef.name.value;\n if (fragmentNameUsed[fragName] !== true) {\n toRemove.push(fragmentDef);\n }\n }\n },\n },\n });\n\n return visit(this.document, {\n FragmentDefinition: (node) => {\n if (toRemove.indexOf(node) !== -1) {\n return null;\n }\n return node;\n },\n });\n }\n\n private getRecursivelyReferencedFragments(\n operation: OperationDefinitionNode,\n ): ReadonlyArray<FragmentDefinitionNode> {\n let fragments = this._recursivelyReferencedFragments.get(operation);\n if (!fragments) {\n fragments = [];\n const collectedNames = Object.create(null);\n const nodesToVisit: Array<SelectionSetNode> = [operation.selectionSet];\n let node: SelectionSetNode | undefined;\n // biome-ignore lint/suspicious/noAssignInExpressions: for now\n while ((node = nodesToVisit.pop())) {\n for (const spread of this.getFragmentSpreads(node)) {\n const fragName = spread.name.value;\n if (collectedNames[fragName] !== true) {\n collectedNames[fragName] = true;\n const fragment = this.getFragment(fragName);\n if (fragment) {\n fragments.push(fragment);\n nodesToVisit.push(fragment.selectionSet);\n }\n }\n }\n }\n this._recursivelyReferencedFragments.set(operation, fragments);\n }\n return fragments;\n }\n\n private getFragmentSpreads(\n node: SelectionSetNode,\n ): ReadonlyArray<FragmentSpreadNode> {\n let spreads = this._fragmentSpreads.get(node);\n if (!spreads) {\n spreads = [];\n const setsToVisit: Array<SelectionSetNode> = [node];\n let set: SelectionSetNode | undefined;\n // biome-ignore lint/suspicious/noAssignInExpressions: safe\n while ((set = setsToVisit.pop())) {\n for (const selection of set.selections) {\n if (selection.kind === Kind.FRAGMENT_SPREAD) {\n spreads.push(selection);\n } else if (selection.selectionSet) {\n setsToVisit.push(selection.selectionSet);\n }\n }\n }\n this._fragmentSpreads.set(node, spreads);\n }\n return spreads;\n }\n\n private getFragment(name: string): Maybe<FragmentDefinitionNode> {\n let fragments: ObjMap<FragmentDefinitionNode>;\n if (this._fragments) {\n fragments = this._fragments;\n } else {\n fragments = Object.create(null);\n for (const defNode of this.document.definitions) {\n if (defNode.kind === Kind.FRAGMENT_DEFINITION) {\n fragments[defNode.name.value] = defNode;\n }\n }\n this._fragments = fragments;\n }\n return fragments[name];\n }\n}\n\n/**\n * @internal\n */\nexport class FragmentResolver {\n private constructor(\n private readonly fragments: Map<string, FragmentDefinitionNode>,\n ) {}\n\n static from(nodes: TypedDocumentNode[]): FragmentResolver {\n const fragments = new Map<string, FragmentDefinitionNode>();\n\n for (const fragment of nodes) {\n for (const definition of fragment.definitions) {\n invariant(\n definition.kind === 'FragmentDefinition',\n `expected a fragment definition, got ${fragment.definitions[0]?.kind}`,\n );\n invariant(\n !fragments.has(definition.name.value),\n `Duplicate fragment detected. A fragment named \"${definition.name.value}\" has already been provided, either directly or as part of another fragment document.`,\n );\n fragments.set(definition.name.value, definition);\n }\n }\n\n return new FragmentResolver(fragments);\n }\n\n replaceFrom<TResult, TVariables extends AnyVariables>(\n document: TypedDocumentNode<TResult, TVariables>,\n ): TypedDocumentNode<TResult, TVariables> {\n const injected = visit(document, {\n FragmentDefinition: (node) => {\n if (this.fragments.has(node.name.value)) {\n return null;\n }\n return node;\n },\n Document: {\n leave: (node) => {\n return {\n ...node,\n definitions: [...node.definitions, ...this.fragments.values()],\n };\n },\n },\n });\n\n return new FragmentDeduplicator(injected).dedupe();\n }\n}\n","import type { ClientConfig } from './config';\nimport { type EnvironmentConfig, production } from './environments';\nimport { FragmentResolver } from './fragments';\n\n/**\n * @internal\n */\nexport type Context = {\n environment: EnvironmentConfig;\n headers?: Record<string, string>;\n cache: boolean;\n debug: boolean;\n fragments: FragmentResolver;\n};\n\n/**\n * @internal\n */\nexport function configureContext(from: ClientConfig): Context {\n return {\n environment: from.environment ?? production,\n headers: from.headers,\n cache: from.cache ?? false,\n debug: from.debug ?? false,\n fragments: FragmentResolver.from(from.fragments ?? []),\n };\n}\n","type LogMethod = (...args: unknown[]) => void;\n\nexport enum LogLevel {\n TRACE = 0,\n DEBUG = 1,\n INFO = 2,\n WARN = 3,\n ERROR = 4,\n SILENT = 5,\n}\n\nexport class Logger {\n private level: LogLevel;\n private name: string;\n\n private constructor(name: string, level: LogLevel = LogLevel.WARN) {\n this.name = name;\n this.level = level;\n this.replaceMethods();\n }\n\n static named(name: string, level: LogLevel = LogLevel.WARN): Logger {\n return new Logger(name, level);\n }\n\n trace: LogMethod = () => {};\n debug: LogMethod = () => {};\n info: LogMethod = () => {};\n warn: LogMethod = () => {};\n error: LogMethod = () => {};\n log: LogMethod = () => {}; // alias for debug\n\n private replaceMethods() {\n (['trace', 'debug', 'info', 'warn', 'error'] as const).forEach(\n (methodName, index) => {\n if (index >= this.level) {\n this[methodName] = () => {};\n } else {\n this[methodName] = (...args) =>\n console[methodName === 'debug' ? 'log' : methodName](\n `[${this.name}]`,\n ...args,\n );\n }\n },\n );\n this.log = this.debug;\n }\n}\n","import type {\n ERC712Signature,\n ExecutionPlan,\n HasProcessedKnownTransactionRequest,\n InsufficientBalanceError,\n OperationType,\n PermitTypedDataResponse,\n} from '@aave/graphql';\nimport type { ResultAsync, TxHash } from '@aave/types';\nimport type { SigningError, TransactionError, ValidationError } from './errors';\n\nexport type TransactionExecutionResult = {\n txHash: TxHash;\n operation: OperationType | null;\n};\n\n/**\n * @internal\n */\nexport function isHasProcessedKnownTransactionRequest(\n result: TransactionExecutionResult,\n): result is HasProcessedKnownTransactionRequest {\n return result.operation !== null;\n}\n\nexport type ExecutionPlanHandler<T extends ExecutionPlan = ExecutionPlan> = (\n result: T,\n) => ResultAsync<\n TransactionExecutionResult,\n SigningError | TransactionError | ValidationError<InsufficientBalanceError>\n>;\n\nexport type PermitHandler = (\n result: PermitTypedDataResponse,\n) => ResultAsync<ERC712Signature, SigningError>;\n","/**\n * @internal\n */\nexport function delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","import type {\n HasProcessedKnownTransactionRequest,\n StandardData,\n} from '@aave/graphql';\nimport {\n errAsync,\n invariant,\n okAsync,\n ResultAsync,\n type TxHash,\n} from '@aave/types';\nimport {\n type AnyVariables,\n createClient,\n type Exchange,\n fetchExchange,\n type OperationResult,\n type OperationResultSource,\n type TypedDocumentNode,\n type Client as UrqlClient,\n} from '@urql/core';\nimport { hasProcessedKnownTransaction } from './actions';\nimport { BatchQueryBuilder } from './batch';\nimport type { ClientConfig } from './config';\nimport { type Context, configureContext } from './context';\nimport { TimeoutError, UnexpectedError } from './errors';\nimport { Logger, LogLevel } from './logger';\nimport {\n isHasProcessedKnownTransactionRequest,\n type TransactionExecutionResult,\n} from './types';\nimport { delay } from './utils';\n\nfunction takeValue<T>({\n data,\n error,\n}: OperationResult<StandardData<T> | undefined, AnyVariables>): T {\n invariant(data, `Expected a value, got: ${error?.message}`);\n return data.value;\n}\n\nexport class AaveClient {\n /**\n * @internal\n */\n public readonly urql: UrqlClient;\n\n private readonly logger: Logger;\n\n private constructor(private readonly context: Context) {\n this.logger = Logger.named(\n this.constructor.name,\n context.debug ? LogLevel.DEBUG : LogLevel.SILENT,\n );\n\n this.urql = createClient({\n url: context.environment.backend,\n fetchOptions: {\n credentials: 'omit',\n headers: context.headers,\n },\n exchanges: this.exchanges(),\n });\n }\n\n /**\n * Create a new instance of the {@link AaveClient}.\n *\n * ```ts\n * const client = AaveClient.create({\n * environment: production,\n * origin: 'http://example.com',\n * });\n * ```\n *\n * @param options - The options to configure the client.\n * @returns The new instance of the client.\n */\n static create(options?: ClientConfig): AaveClient {\n return new AaveClient(configureContext(options ?? {}));\n }\n\n /**\n * Execute a GraphQL query operation.\n *\n * @param document - The GraphQL document to execute.\n * @param variables - The variables to pass to the operation.\n * @returns The result of the operation.\n */\n public query<TValue, TVariables extends AnyVariables>(\n document: TypedDocumentNode<StandardData<TValue>, TVariables>,\n variables: TVariables,\n ): ResultAsync<TValue, UnexpectedError> {\n const query = this.context.fragments.replaceFrom(document);\n return this.resultFrom(this.urql.query(query, variables)).map(takeValue);\n }\n\n /**\n * Execute a GraphQL mutation operation.\n *\n * @param document - The GraphQL document to execute.\n * @param variables - The variables to pass to the operation.\n * @returns The result of the operation.\n */\n public mutation<TValue, TVariables extends AnyVariables>(\n document: TypedDocumentNode<StandardData<TValue>, TVariables>,\n variables: TVariables,\n ): ResultAsync<TValue, UnexpectedError> {\n return this.resultFrom(this.urql.mutation(document, variables)).map(\n takeValue,\n );\n }\n\n // TODO update example below\n /**\n * Execute a batch of GraphQL query operations.\n *\n * @alpha This is an alpha API and may be subject to breaking changes.\n *\n * ```ts\n * const result = await client.batch((c) => [\n * fetchAccount(c, { address: evmAddress('0x1234…') }).map(nonNullable),\n * fetchBalancesBulk(c, {\n * includeNative: true,\n * tokens: [\n * evmAddress(\"0x5678…\"),\n * evmAddress(\"0x9012…\"),\n * ],\n * }),\n * ]);\n *\n * // const result: Result<\n * // [\n * // Account,\n * // AnyAccountBalance[],\n * // ],\n * // UnauthenticatedError | UnexpectedError\n * // >\n * ```\n *\n * @param cb - The callback with the scoped client to execute the actions with.\n * @returns The results of all queries in the same order as they were added.\n */\n batch<T1, T2, E1 extends Error, E2 extends Error>(\n cb: (client: this) => [ResultAsync<T1, E1>, ResultAsync<T2, E2>],\n ): ResultAsync<[T1, T2], E1 | E2>;\n batch<T1, T2, T3, E1 extends Error, E2 extends Error, E3 extends Error>(\n cb: (\n client: this,\n ) => [ResultAsync<T1, E1>, ResultAsync<T2, E2>, ResultAsync<T3, E3>],\n ): ResultAsync<[T1, T2, T3], E1 | E2 | E3>;\n batch<\n T1,\n T2,\n T3,\n T4,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ],\n ): ResultAsync<[T1, T2, T3, T4], E1 | E2 | E3 | E4>;\n batch<\n T1,\n T2,\n T3,\n T4,\n T5,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n E5 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ResultAsync<T5, E5>,\n ],\n ): ResultAsync<[T1, T2, T3, T4, T5], E1 | E2 | E3 | E4 | E5>;\n batch<\n T1,\n T2,\n T3,\n T4,\n T5,\n T6,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n E5 extends Error,\n E6 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ResultAsync<T5, E5>,\n ResultAsync<T6, E6>,\n ],\n ): ResultAsync<[T1, T2, T3, T4, T5, T6], E1 | E2 | E3 | E4 | E5 | E6>;\n batch<\n T1,\n T2,\n T3,\n T4,\n T5,\n T6,\n T7,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n E5 extends Error,\n E6 extends Error,\n E7 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ResultAsync<T5, E5>,\n ResultAsync<T6, E6>,\n ResultAsync<T7, E7>,\n ],\n ): ResultAsync<\n [T1, T2, T3, T4, T5, T6, T7],\n E1 | E2 | E3 | E4 | E5 | E6 | E7\n >;\n batch<\n T1,\n T2,\n T3,\n T4,\n T5,\n T6,\n T7,\n T8,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n E5 extends Error,\n E6 extends Error,\n E7 extends Error,\n E8 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ResultAsync<T5, E5>,\n ResultAsync<T6, E6>,\n ResultAsync<T7, E7>,\n ResultAsync<T8, E8>,\n ],\n ): ResultAsync<\n [T1, T2, T3, T4, T5, T6, T7, T8],\n E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8\n >;\n batch<\n T1,\n T2,\n T3,\n T4,\n T5,\n T6,\n T7,\n T8,\n T9,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n E5 extends Error,\n E6 extends Error,\n E7 extends Error,\n E8 extends Error,\n E9 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ResultAsync<T5, E5>,\n ResultAsync<T6, E6>,\n ResultAsync<T7, E7>,\n ResultAsync<T8, E8>,\n ResultAsync<T9, E9>,\n ],\n ): ResultAsync<\n [T1, T2, T3, T4, T5, T6, T7, T8, T9],\n E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9\n >;\n batch<\n T1,\n T2,\n T3,\n T4,\n T5,\n T6,\n T7,\n T8,\n T9,\n T10,\n E1 extends Error,\n E2 extends Error,\n E3 extends Error,\n E4 extends Error,\n E5 extends Error,\n E6 extends Error,\n E7 extends Error,\n E8 extends Error,\n E9 extends Error,\n E10 extends Error,\n >(\n cb: (\n client: this,\n ) => [\n ResultAsync<T1, E1>,\n ResultAsync<T2, E2>,\n ResultAsync<T3, E3>,\n ResultAsync<T4, E4>,\n ResultAsync<T5, E5>,\n ResultAsync<T6, E6>,\n ResultAsync<T7, E7>,\n ResultAsync<T8, E8>,\n ResultAsync<T9, E9>,\n ResultAsync<T10, E10>,\n ],\n ): ResultAsync<\n [T1, T2, T3, T4, T5, T6, T7, T8, T9, T10],\n E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10\n >;\n batch<T, E extends Error>(\n cb: (client: this) => ResultAsync<T, E>[],\n ): ResultAsync<T[], E>;\n batch(\n cb: (client: this) => ResultAsync<unknown[], unknown>[],\n ): ResultAsync<unknown[], unknown> {\n const builder = new BatchQueryBuilder();\n\n const client: this = Object.create(this, {\n query: {\n value: builder.addQuery,\n },\n });\n\n const combined = ResultAsync.combine(cb(client));\n const [document, variables] = builder.build();\n\n const query = this.context.fragments.replaceFrom(document);\n\n return this.resultFrom(this.urql.query(query, variables))\n .andTee(({ data, error }) => {\n invariant(data, `Expected a value, got: ${error?.message}`);\n builder.resolve(data);\n })\n .andThen(() => combined);\n }\n\n /**\n * Given the transaction hash of an Aave protocol transaction, wait for the transaction to be\n * processed by the Aave v3 API.\n *\n * Returns a {@link TimeoutError} if the transaction is not processed within the expected timeout period.\n *\n * @param result - The transaction execution result to wait for.\n * @returns The transaction hash or a TimeoutError\n */\n readonly waitForTransaction = (\n result: TransactionExecutionResult,\n ): ResultAsync<TxHash, TimeoutError | UnexpectedError> => {\n invariant(\n isHasProcessedKnownTransactionRequest(result),\n `Received a transaction result for an untracked operation. Make sure you're following the instructions in the docs.`,\n );\n\n return ResultAsync.fromPromise(\n this.pollTransactionStatus(result),\n (err) => {\n if (err instanceof TimeoutError || err instanceof UnexpectedError) {\n return err;\n }\n return UnexpectedError.from(err);\n },\n );\n };\n\n protected async pollTransactionStatus(\n request: HasProcessedKnownTransactionRequest,\n ): Promise<TxHash> {\n const startedAt = Date.now();\n\n while (Date.now() - startedAt < this.context.environment.indexingTimeout) {\n const processed = await hasProcessedKnownTransaction(this, request).match(\n (ok) => ok,\n (err) => {\n throw err;\n },\n );\n\n if (processed) {\n return request.txHash;\n }\n\n await delay(this.context.environment.pollingInterval);\n }\n throw TimeoutError.from(\n `Timeout waiting for transaction ${request.txHash} to be processed.`,\n );\n }\n\n protected exchanges(): Exchange[] {\n return [fetchExchange];\n }\n\n protected resultFrom<TData, TVariables extends AnyVariables>(\n source: OperationResultSource<OperationResult<TData, TVariables>>,\n ): ResultAsync<OperationResult<TData, TVariables>, UnexpectedError> {\n return ResultAsync.fromPromise(source.toPromise(), (err: unknown) => {\n this.logger.error(err);\n console.log(err);\n return UnexpectedError.from(err);\n }).andThen((result) => {\n if (result.error?.networkError) {\n return errAsync(UnexpectedError.from(result.error.networkError));\n }\n return okAsync(result);\n });\n }\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {OrderDirection,ChainsFilter,MarketsQuery,MarketQuery,UserMarketStateQuery,HealthQuery,ChainsQuery,UsdExchangeRatesQuery,HasProcessedKnownTransactionQuery,HealthFactorPreviewQuery,PermitTypedDataQuery,ReserveQuery,BorrowAPYHistoryQuery,SupplyAPYHistoryQuery,BorrowQuery,SupplyQuery,RepayQuery,WithdrawQuery,UserSetEmodeQuery,VaultDepositQuery,VaultRedeemSharesQuery,VaultDeployQuery,VaultSetFeeQuery,VaultWithdrawFeesQuery,VaultWithdrawQuery,VaultMintSharesQuery,CollateralToggleQuery,LiquidateQuery,ApproveBorrowCreditDelegationQuery,CreditDelegateeAllowanceQuery,UserSuppliesQuery,UserBorrowsQuery,UserTransactionHistoryQuery,VaultQuery,VaultsQuery,UserVaultsQuery,VaultPreviewDepositQuery,VaultPreviewMintQuery,VaultPreviewWithdrawQuery,VaultPreviewRedeemQuery,VaultUserTransactionHistoryQuery,VaultUserActivityQuery}from'@aave/graphql';var r={tokenName:OrderDirection.Asc};function X(e,{chainIds:t,borrowsOrderBy:u=r,suppliesOrderBy:s=r,user:n}){return e.query(MarketsQuery,{request:{chainIds:t,user:n},borrowsOrderBy:u,suppliesOrderBy:s})}function Z(e,{address:t,chainId:u,user:s,borrowsOrderBy:n=r,suppliesOrderBy:o=r}){return e.query(MarketQuery,{request:{address:t,chainId:u,user:s},borrowsOrderBy:n,suppliesOrderBy:o})}function _(e,t){return e.query(UserMarketStateQuery,{request:t})}function te(e){return e.query(HealthQuery,{})}function re(e,t=ChainsFilter.ALL){return e.query(ChainsQuery,{filter:t})}function ue(e,t){return e.query(UsdExchangeRatesQuery,{request:t})}function se(e,t){return e.query(HasProcessedKnownTransactionQuery,{request:t})}function ne(e,t){return e.query(HealthFactorPreviewQuery,{request:t})}function ie(e,t){return e.query(PermitTypedDataQuery,{request:t})}function le(e,t){return e.query(ReserveQuery,{request:t})}function ce(e,t){return e.query(BorrowAPYHistoryQuery,{request:t})}function Re(e,t){return e.query(SupplyAPYHistoryQuery,{request:t})}function Ae(e,t){return e.query(BorrowQuery,{request:t})}function ve(e,t){return e.query(SupplyQuery,{request:t})}function xe(e,t){return e.query(RepayQuery,{request:t})}function me(e,t){return e.query(WithdrawQuery,{request:t})}function Ue(e,t){return e.query(UserSetEmodeQuery,{request:t})}function fe(e,t){return e.query(VaultDepositQuery,{request:t})}function Ee(e,t){return e.query(VaultRedeemSharesQuery,{request:t})}function we(e,t){return e.query(VaultDeployQuery,{request:t})}function Ce(e,t){return e.query(VaultSetFeeQuery,{request:t})}function Pe(e,t){return e.query(VaultWithdrawFeesQuery,{request:t})}function Ve(e,t){return e.query(VaultWithdrawQuery,{request:t})}function he(e,t){return e.query(VaultMintSharesQuery,{request:t})}function Te(e,t){return e.query(CollateralToggleQuery,{request:t})}function Qe(e,t){return e.query(LiquidateQuery,{request:t})}function Se(e,t){return e.query(ApproveBorrowCreditDelegationQuery,{request:t})}function ke(e,t){return e.query(CreditDelegateeAllowanceQuery,{request:t})}function He(e,t){return e.query(UserSuppliesQuery,{request:t})}function Be(e,t){return e.query(UserBorrowsQuery,{request:t})}function De(e,t){return e.query(UserTransactionHistoryQuery,{request:t})}function Oe(e,t){return e.query(VaultQuery,{request:t})}function Ye(e,t){return e.query(VaultsQuery,{request:t})}function be(e,t){return e.query(UserVaultsQuery,{request:t})}function Ie(e,t){return e.query(VaultPreviewDepositQuery,{request:t})}function Le(e,t){return e.query(VaultPreviewMintQuery,{request:t})}function Ke(e,t){return e.query(VaultPreviewWithdrawQuery,{request:t})}function Ne(e,t){return e.query(VaultPreviewRedeemQuery,{request:t})}function je(e,t){return e.query(VaultUserTransactionHistoryQuery,{request:t})}function ze(e,t){return e.query(VaultUserActivityQuery,{request:t})}export{Qe as A,Se as B,ke as C,He as D,Be as E,De as F,Oe as G,Ye as H,be as I,Ie as J,Le as K,Ke as L,Ne as M,je as N,ze as O,r as a,X as b,Z as c,_ as d,te as e,re as f,ue as g,se as h,ne as i,ie as j,le as k,ce as l,Re as m,Ae as n,ve as o,xe as p,me as q,Ue as r,fe as s,Ee as t,we as u,Ce as v,Pe as w,Ve as x,he as y,Te as z};//# sourceMappingURL=chunk-KT47UJBO.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-KT47UJBO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/actions/markets.ts","../src/actions/misc.ts","../src/actions/permits.ts","../src/actions/reserve.ts","../src/actions/transactions.ts","../src/actions/user.ts","../src/actions/vaults.ts"],"names":["defaultMarketReservesRequestOrderBy","OrderDirection","markets","client","chainIds","borrowsOrderBy","suppliesOrderBy","user","MarketsQuery","market","address","chainId","MarketQuery","userMarketState","request","UserMarketStateQuery","health","HealthQuery","chains","filter","ChainsFilter","ChainsQuery","usdExchangeRates","UsdExchangeRatesQuery","hasProcessedKnownTransaction","HasProcessedKnownTransactionQuery","healthFactorPreview","HealthFactorPreviewQuery","permitTypedData","PermitTypedDataQuery","reserve","ReserveQuery","borrowAPYHistory","BorrowAPYHistoryQuery","supplyAPYHistory","SupplyAPYHistoryQuery","borrow","BorrowQuery","supply","SupplyQuery","repay","RepayQuery","withdraw","WithdrawQuery","userSetEmode","UserSetEmodeQuery","vaultDeposit","VaultDepositQuery","vaultRedeemShares","VaultRedeemSharesQuery","vaultDeploy","VaultDeployQuery","vaultSetFee","VaultSetFeeQuery","vaultWithdrawFees","VaultWithdrawFeesQuery","vaultWithdraw","VaultWithdrawQuery","vaultMintShares","VaultMintSharesQuery","collateralToggle","CollateralToggleQuery","liquidate","LiquidateQuery","approveBorrowCreditDelegation","ApproveBorrowCreditDelegationQuery","creditDelegateeAllowance","CreditDelegateeAllowanceQuery","userSupplies","UserSuppliesQuery","userBorrows","UserBorrowsQuery","userTransactionHistory","UserTransactionHistoryQuery","vault","VaultQuery","vaults","VaultsQuery","userVaults","UserVaultsQuery","vaultPreviewDeposit","VaultPreviewDepositQuery","vaultPreviewMint","VaultPreviewMintQuery","vaultPreviewWithdraw","VaultPreviewWithdrawQuery","vaultPreviewRedeem","VaultPreviewRedeemQuery","vaultUserTransactionHistory","VaultUserTransactionHistoryQuery","vaultUserActivity","VaultUserActivityQuery"],"mappings":"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","file":"chunk-KT47UJBO.js","sourcesContent":["import {\n type Market,\n MarketQuery,\n type MarketReservesRequestOrderBy,\n MarketsQuery,\n type MarketUserState,\n OrderDirection,\n UserMarketStateQuery,\n type UserMarketStateRequest,\n} from '@aave/graphql';\nimport type { ChainId, EvmAddress, ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\nexport const defaultMarketReservesRequestOrderBy: MarketReservesRequestOrderBy =\n {\n tokenName: OrderDirection.Asc,\n };\n\nexport type MarketsRequest = {\n /**\n * The markets you want to see based on the chain ids.\n */\n chainIds: ChainId[];\n /**\n * The user viewing the market (e.g., the connected wallet).\n *\n * If not provided, user fields will not be included.\n */\n user?: EvmAddress;\n /**\n * The order by clause for the borrow reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n borrowsOrderBy?: MarketReservesRequestOrderBy;\n /**\n * The order by clause for the supply reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n suppliesOrderBy?: MarketReservesRequestOrderBy;\n};\n\n/**\n * Fetches all markets for the specified chain IDs.\n *\n * ```ts\n * const result = await markets(client, {\n * chainIds: [chainId(1), chainId(8453)],\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The markets request parameters.\n * @returns The list of markets.\n */\nexport function markets(\n client: AaveClient,\n {\n chainIds,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n user,\n }: MarketsRequest,\n): ResultAsync<Market[], UnexpectedError> {\n return client.query(MarketsQuery, {\n request: { chainIds, user },\n borrowsOrderBy,\n suppliesOrderBy,\n });\n}\n\nexport type MarketRequest = {\n /**\n * The pool address for the market.\n */\n address: EvmAddress;\n\n /**\n * The chain id the market pool address is deployed on.\n */\n chainId: ChainId;\n /**\n * The user viewing the market (e.g., the connected wallet).\n *\n * If not provided, user fields will not be included.\n */\n user?: EvmAddress;\n /**\n * The order by clause for the borrow reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n borrowsOrderBy?: MarketReservesRequestOrderBy;\n /**\n * The order by clause for the supply reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n suppliesOrderBy?: MarketReservesRequestOrderBy;\n};\n\n/**\n * Fetches a specific market by address and chain ID.\n *\n * ```ts\n * const result = await market(client, {\n * address: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * chainId: chainId(1),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The market request parameters.\n * @returns The market data, or null if not found.\n */\nexport function market(\n client: AaveClient,\n {\n address,\n chainId,\n user,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n }: MarketRequest,\n): ResultAsync<Market | null, UnexpectedError> {\n return client.query(MarketQuery, {\n request: { address, chainId, user },\n borrowsOrderBy,\n suppliesOrderBy,\n });\n}\n\n/**\n * Fetches user account market data across all reserves.\n *\n * ```ts\n * const result = await userMarketState(client, {\n * market: evmAddress('0x1234…'),\n * user: evmAddress('0x5678…'),\n * chainId: chainId(1)\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user market state request parameters.\n * @returns The user's market state.\n */\nexport function userMarketState(\n client: AaveClient,\n request: UserMarketStateRequest,\n): ResultAsync<MarketUserState, UnexpectedError> {\n return client.query(UserMarketStateQuery, { request });\n}\n","import {\n type Chain,\n ChainsFilter,\n ChainsQuery,\n HasProcessedKnownTransactionQuery,\n type HasProcessedKnownTransactionRequest,\n HealthFactorPreviewQuery,\n type HealthFactorPreviewRequest,\n type HealthFactorPreviewResponse,\n HealthQuery,\n type UsdExchangeRate,\n UsdExchangeRatesQuery,\n type UsdExchangeRatesRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Health check query.\n *\n * ```ts\n * const result = await health(client);\n * ```\n *\n * @param client - Aave client.\n * @returns True or false\n */\nexport function health(\n client: AaveClient,\n): ResultAsync<boolean, UnexpectedError> {\n return client.query(HealthQuery, {});\n}\n\n/**\n * Fetches the list of supported chains.\n *\n * ```ts\n * const result = await chains(client, ChainsFilter.MAINNET_ONLY);\n * ```\n *\n * @param client - Aave client.\n * @param filter - The filter for the chains.\n * @returns The list of supported chains.\n */\nexport function chains(\n client: AaveClient,\n filter: ChainsFilter = ChainsFilter.ALL,\n): ResultAsync<Chain[], UnexpectedError> {\n return client.query(ChainsQuery, { filter });\n}\n\n/**\n * Fetches USD exchange rates for different tokens on a given market.\n *\n * ```ts\n * const result = await usdExchangeRates(client, {\n * market: evmAddress('0x1234…'),\n * underlyingTokens: [evmAddress('0x5678…'), evmAddress('0x90ab…')],\n * chainId: chainId(1),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The USD exchange rates request parameters.\n * @returns The list of USD exchange rates.\n */\nexport function usdExchangeRates(\n client: AaveClient,\n request: UsdExchangeRatesRequest,\n): ResultAsync<UsdExchangeRate[], UnexpectedError> {\n return client.query(UsdExchangeRatesQuery, { request });\n}\n\n/**\n * Checks if the API has processed a known transaction hash.\n *\n * This is useful to know when cached data has been invalidated after\n * a transaction is complete, as the API uses caching and has an\n * invalidation task that may take 100-200ms longer.\n *\n * ```ts\n * const result = await borrow(client, request)\n * .andThen(sendWith(wallet))\n * .andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error\n * return;\n * }\n *\n * // Check if the transaction has been processed by the API\n * const processed = await hasProcessedKnownTransaction(client, {\n * txHash: result.value,\n * operation: OperationType.Borrow\n * });\n *\n * if (processed.isErr()) {\n * // Handle error\n * return;\n * }\n *\n * if (processed.value) {\n * // Transaction processed, cached data is up to date\n * console.log('Transaction processed, data is fresh');\n * } else {\n * // Transaction not yet processed, may need to wait\n * console.log('Transaction not yet processed');\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The request containing transaction hash and operation type to check.\n * @returns True if the transaction has been processed, false otherwise.\n */\nexport function hasProcessedKnownTransaction(\n client: AaveClient,\n request: HasProcessedKnownTransactionRequest,\n): ResultAsync<boolean, UnexpectedError> {\n return client.query(HasProcessedKnownTransactionQuery, { request });\n}\n\n/**\n * Fetches health factor preview for a given market action.\n *\n * ```ts\n * const result = await healthFactorPreview(client, {\n * action: {\n * borrow: {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '1000',\n * },\n * },\n * borrower: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * },\n * },\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The health factor preview request parameters.\n * @returns The health factor preview response with before and after values.\n */\nexport function healthFactorPreview(\n client: AaveClient,\n request: HealthFactorPreviewRequest,\n): ResultAsync<HealthFactorPreviewResponse, UnexpectedError> {\n return client.query(HealthFactorPreviewQuery, { request });\n}\n","import {\n PermitTypedDataQuery,\n type PermitTypedDataRequest,\n type PermitTypedDataResponse,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Generates EIP-712 typed data for ERC-20 permit signature.\n *\n * ```ts\n * const result = await permitTypedData(client, {\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * amount: '1.5',\n * chainId: chainId(1),\n * spender: evmAddress('0x123...'),\n * owner: evmAddress('0x456...'),\n * });\n *\n * if (result.isOk()) {\n * const typedData = result.value;\n * // Use typedData for permit signing\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The permit typed data request parameters.\n * @returns The EIP-712 typed data for permit signature.\n */\nexport function permitTypedData(\n client: AaveClient,\n request: PermitTypedDataRequest,\n): ResultAsync<PermitTypedDataResponse, UnexpectedError> {\n return client.query(PermitTypedDataQuery, { request });\n}\n","import {\n type APYSample,\n BorrowAPYHistoryQuery,\n type BorrowAPYHistoryRequest,\n type Reserve,\n ReserveQuery,\n type ReserveRequest,\n SupplyAPYHistoryQuery,\n type SupplyAPYHistoryRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Fetches a specific reserve by market address, token address, and chain ID.\n *\n * ```ts\n * const result = await reserve(client, {\n * market: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * underlyingToken: evmAddress('0xa0b86a33e6441c8c5f0bb9b7e5e1f8bbf5b78b5c'),\n * chainId: chainId(1),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The reserve request parameters.\n * @returns The reserve data, or null if not found.\n */\nexport function reserve(\n client: AaveClient,\n request: ReserveRequest,\n): ResultAsync<Reserve | null, UnexpectedError> {\n return client.query(ReserveQuery, {\n request,\n });\n}\n\n/**\n * Fetches historical borrow APY data for a given underlying asset on a specific market,\n * within a defined time window.\n *\n * The returned data represents APY samples over time, or `null` if unavailable.\n *\n * @param client - The Aave client instance used to perform the query.\n * @param request - The borrow APY history request parameters.\n * @returns A `ResultAsync` containing an array of APY samples, or `null` if not found.\n */\n\nexport function borrowAPYHistory(\n client: AaveClient,\n request: BorrowAPYHistoryRequest,\n): ResultAsync<APYSample[] | null, UnexpectedError> {\n return client.query(BorrowAPYHistoryQuery, {\n request,\n });\n}\n\n/**\n * Fetches historical supply APY data for a given underlying asset on a specific market,\n * within a defined time window.\n *\n * The returned data represents APY samples over time, or `null` if unavailable.\n *\n * @param client - The Aave client instance used to perform the query.\n * @param request - The supply APY history request parameters.\n * @returns A `ResultAsync` containing an array of APY samples, or `null` if not found.\n */\n\nexport function supplyAPYHistory(\n client: AaveClient,\n request: SupplyAPYHistoryRequest,\n): ResultAsync<APYSample[] | null, UnexpectedError> {\n return client.query(SupplyAPYHistoryQuery, {\n request,\n });\n}\n","import {\n ApproveBorrowCreditDelegationQuery,\n type ApproveBorrowCreditDelegatorRequest,\n BorrowQuery,\n type BorrowRequest,\n CollateralToggleQuery,\n type CollateralToggleRequest,\n CreditDelegateeAllowanceQuery,\n type CreditDelegateeAmountRequest,\n type ExecutionPlan,\n LiquidateQuery,\n type LiquidateRequest,\n RepayQuery,\n type RepayRequest,\n SupplyQuery,\n type SupplyRequest,\n type TokenAmount,\n type TransactionRequest,\n UserSetEmodeQuery,\n type UserSetEmodeRequest,\n VaultDeployQuery,\n type VaultDeployRequest,\n VaultDepositQuery,\n type VaultDepositRequest,\n VaultMintSharesQuery,\n type VaultMintSharesRequest,\n VaultRedeemSharesQuery,\n type VaultRedeemSharesRequest,\n VaultSetFeeQuery,\n type VaultSetFeeRequest,\n VaultWithdrawFeesQuery,\n type VaultWithdrawFeesRequest,\n VaultWithdrawQuery,\n type VaultWithdrawRequest,\n WithdrawQuery,\n type WithdrawRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Creates a transaction to borrow from a market.\n *\n * ```ts\n * const result = await borrow(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '1000',\n * },\n * },\n * borrower: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The borrow request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function borrow(\n client: AaveClient,\n request: BorrowRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(BorrowQuery, { request });\n}\n\n/**\n * Creates a transaction to supply to a market.\n *\n * ```ts\n * const result = await supply(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '1000',\n * },\n * },\n * supplier: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The supply request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function supply(\n client: AaveClient,\n request: SupplyRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(SupplyQuery, { request });\n}\n\n/**\n * Creates a transaction to repay to a market.\n *\n * ```ts\n * const result = await repay(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: {\n * exact: '500',\n * },\n * },\n * },\n * borrower: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The repay request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function repay(\n client: AaveClient,\n request: RepayRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(RepayQuery, { request });\n}\n\n/**\n * Creates a transaction to withdraw from a market.\n *\n * ```ts\n * const result = await withdraw(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: { exact: '750' },\n * },\n * },\n * supplier: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The withdraw request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function withdraw(\n client: AaveClient,\n request: WithdrawRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(WithdrawQuery, { request });\n}\n\n/**\n * Creates a transaction to enable/disable the user's eMode for a market.\n *\n * **Example: Enable a Specific eMode**\n * ```ts\n * const result = await userSetEmode(client, {\n * market: market.address,\n * user: evmAddress('0x5678…'),\n * categoryId: market.eModeCategories[0].id,\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * **Example: Disable eMode**\n * ```ts\n * const result = await userSetEmode(client, {\n * market: market.address,\n * user: evmAddress('0x5678…'),\n * categoryId: null,\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The user set eMode request parameters.\n * @returns The transaction request data to set eMode.\n */\nexport function userSetEmode(\n client: AaveClient,\n request: UserSetEmodeRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(UserSetEmodeQuery, { request });\n}\n\n/**\n * Creates a transaction to deposit assets into a vault and mint shares.\n *\n * ```ts\n * const result = await vaultDeposit(client, {\n * vault: evmAddress('0x1234…'),\n * amount: {\n * value: '1000',\n * },\n * depositor: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault deposit request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function vaultDeposit(\n client: AaveClient,\n request: VaultDepositRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(VaultDepositQuery, { request });\n}\n\n/**\n * Creates a transaction to redeem vault shares for underlying assets.\n *\n * ```ts\n * const result = await vaultRedeemShares(client, {\n * vault: evmAddress('0x1234…'),\n * shares: {\n * amount: '500',\n * asAToken: false,\n * },\n * sharesOwner: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The redeem vault shares request parameters.\n * @returns The transaction request data to redeem shares.\n */\nexport function vaultRedeemShares(\n client: AaveClient,\n request: VaultRedeemSharesRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultRedeemSharesQuery, { request });\n}\n\n/**\n * Creates an execution plan to deploy a new vault.\n *\n * ```ts\n * const result = await vaultDeploy(client, {\n * underlyingToken: evmAddress('0x1234…'),\n * market: evmAddress('0x5678…'),\n * deployer: evmAddress('0x9abc…'),\n * initialFee: '0.1',\n * shareName: 'Aave Vault Shares',\n * shareSymbol: 'avs',\n * initialLockDeposit: '1000',\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, insufficient balance, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The deploy vault request parameters.\n * @returns The execution plan data to deploy a vault. May require approval transactions.\n */\nexport function vaultDeploy(\n client: AaveClient,\n request: VaultDeployRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(VaultDeployQuery, { request });\n}\n\n/**\n * Creates a transaction to set the vault fee (owner only).\n *\n * ```ts\n * const result = await vaultSetFee(client, {\n * vault: evmAddress('0x1234…'),\n * newFee: '0.2',\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The set vault fee request parameters.\n * @returns The transaction request data to set vault fee.\n */\nexport function vaultSetFee(\n client: AaveClient,\n request: VaultSetFeeRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultSetFeeQuery, { request });\n}\n\n/**\n * Creates a transaction to withdraw accumulated fees from a vault (owner only).\n *\n * ```ts\n * const result = await vaultWithdrawFees(client, {\n * vault: evmAddress('0x1234…'),\n * amount: '100',\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The withdraw vault fees request parameters.\n * @returns The transaction request data to withdraw vault fees.\n */\nexport function vaultWithdrawFees(\n client: AaveClient,\n request: VaultWithdrawFeesRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultWithdrawFeesQuery, { request });\n}\n\n/**\n * Creates a transaction to withdraw assets from a vault, burning shares.\n *\n * ```ts\n * const result = await vaultWithdraw(client, {\n * vault: evmAddress('0x1234…'),\n * amount: {\n * value: '500',\n * },\n * sharesOwner: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The withdraw vault request parameters.\n * @returns The transaction request data to withdraw from vault.\n */\nexport function vaultWithdraw(\n client: AaveClient,\n request: VaultWithdrawRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultWithdrawQuery, { request });\n}\n\n/**\n * Creates a transaction to mint exact amount of vault shares by depositing calculated assets.\n *\n * ```ts\n * const result = await vaultMintShares(client, {\n * vault: evmAddress('0x1234…'),\n * shares: {\n * amount: '1000',\n * asAToken: false,\n * },\n * minter: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The mint vault shares request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function vaultMintShares(\n client: AaveClient,\n request: VaultMintSharesRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(VaultMintSharesQuery, { request });\n}\n\n/**\n * Creates a transaction to enable/disable a specific supplied asset as collateral.\n *\n * ```ts\n * const result = await collateralToggle(client, {\n * market: market.address,\n * underlyingToken: market.supplyReserves[n].underlyingToken.address,\n * user: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The collateral toggle request parameters.\n * @returns The transaction request data to toggle collateral.\n */\nexport function collateralToggle(\n client: AaveClient,\n request: CollateralToggleRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(CollateralToggleQuery, { request });\n}\n\n/**\n * Creates a transaction to liquidate a non-healthy position with Health Factor below 1.\n *\n * ```ts\n * const result = await liquidate(client, {\n * collateralToken: evmAddress('0x1234…'),\n * debtToken: evmAddress('0x5678…'),\n * user: evmAddress('0x9abc…'),\n * debtToCover: { max: true },\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The liquidate request parameters.\n * @returns The transaction request data to liquidate position.\n */\nexport function liquidate(\n client: AaveClient,\n request: LiquidateRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(LiquidateQuery, { request });\n}\n\n/**\n * Creates a transaction to approve a credit borrow delegator to be able to borrow on your behalf.\n *\n * ```ts\n * const result = await approveBorrowCreditDelegation(client, {\n * market: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * underlyingToken: evmAddress('0xa0b86a33e6441c8c5f0bb9b7e5e1f8bbf5b78b5c'),\n * amount: '1000',\n * user: evmAddress('0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234'),\n * delegatee: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The approve borrow credit delegation request parameters.\n * @returns The transaction request data to approve credit delegation.\n */\nexport function approveBorrowCreditDelegation(\n client: AaveClient,\n request: ApproveBorrowCreditDelegatorRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(ApproveBorrowCreditDelegationQuery, { request });\n}\n\n/**\n * Gets the amount delegated to the credit delegatee that can borrow on your behalf.\n *\n * ```ts\n * const result = await creditDelegateeAllowance(client, {\n * market: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * underlyingToken: evmAddress('0xa0b86a33e6441c8c5f0bb9b7e5e1f8bbf5b78b5c'),\n * user: evmAddress('0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234'),\n * delegatee: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * });\n *\n * if (result.isErr()) {\n * // Handle error\n * return;\n * }\n *\n * // result.value: TokenAmount with credit delegation allowance\n * ```\n *\n * @param client - Aave client.\n * @param request - The credit delegatee allowance request parameters.\n * @returns The token amount representing the credit delegation allowance.\n */\nexport function creditDelegateeAllowance(\n client: AaveClient,\n request: CreditDelegateeAmountRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(CreditDelegateeAllowanceQuery, { request });\n}\n","import {\n type MarketUserReserveBorrowPosition,\n type MarketUserReserveSupplyPosition,\n type PaginatedUserTransactionHistoryResult,\n UserBorrowsQuery,\n type UserBorrowsRequest,\n UserSuppliesQuery,\n type UserSuppliesRequest,\n UserTransactionHistoryQuery,\n type UserTransactionHistoryRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Fetches all user supply positions across the specified markets.\n *\n * ```ts\n * const result = await userSupplies(client, {\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user supplies request parameters.\n * @returns The user's supply positions.\n */\nexport function userSupplies(\n client: AaveClient,\n request: UserSuppliesRequest,\n): ResultAsync<MarketUserReserveSupplyPosition[], UnexpectedError> {\n return client.query(UserSuppliesQuery, { request });\n}\n\n/**\n * Fetches all user borrow positions.\n *\n * ```ts\n * const result = await userBorrows(client, {\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user borrows request parameters.\n * @returns The user's borrow positions.\n */\nexport function userBorrows(\n client: AaveClient,\n request: UserBorrowsRequest,\n): ResultAsync<MarketUserReserveBorrowPosition[], UnexpectedError> {\n return client.query(UserBorrowsQuery, { request });\n}\n\n/**\n * Fetches the user's transaction history for a given market.\n *\n * ```ts\n * const result = await userTransactionHistory(client, {\n * chainId: chainId(1),\n * market: evmAddress('0x87870bca…'),\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user transaction history request parameters.\n * @returns The user's paginated transaction history.\n */\nexport function userTransactionHistory(\n client: AaveClient,\n request: UserTransactionHistoryRequest,\n): ResultAsync<PaginatedUserTransactionHistoryResult, UnexpectedError> {\n return client.query(UserTransactionHistoryQuery, { request });\n}\n","import {\n type PaginatedVaultsResult,\n type PaginatedVaultUserTransactionHistoryResult,\n type TokenAmount,\n UserVaultsQuery,\n type UserVaultsRequest,\n type Vault,\n VaultPreviewDepositQuery,\n type VaultPreviewDepositRequest,\n VaultPreviewMintQuery,\n type VaultPreviewMintRequest,\n VaultPreviewRedeemQuery,\n type VaultPreviewRedeemRequest,\n VaultPreviewWithdrawQuery,\n type VaultPreviewWithdrawRequest,\n VaultQuery,\n type VaultRequest,\n VaultsQuery,\n type VaultsRequest,\n VaultUserActivityQuery,\n type VaultUserActivityRequest,\n type VaultUserActivityResult,\n VaultUserTransactionHistoryQuery,\n type VaultUserTransactionHistoryRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Fetches a specific vault by address and chain ID.\n *\n * **Example: By Address**\n * ```ts\n * const result = await vault(client, {\n * by: {\n * address: evmAddress('0x1234…'),\n * },\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * });\n * ```\n *\n * **Example: Tx Hash**\n * ```ts\n * const result = await vault(client, {\n * by: {\n * txHash: txHash('0x1234…'),\n * },\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault request parameters.\n * @returns The vault data, or null if not found.\n */\nexport function vault(\n client: AaveClient,\n request: VaultRequest,\n): ResultAsync<Vault | null, UnexpectedError> {\n return client.query(VaultQuery, {\n request,\n });\n}\n\n/**\n * Fetches vaults based on filter criteria.\n *\n * ```ts\n * const result = await vaults(client, {\n * criteria: {\n * ownedBy: [evmAddress('0x1234…')]\n * },\n * pageSize: PageSize.Ten,\n * user: evmAddress('0x5678…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The vaults request parameters.\n * @returns The paginated vaults result.\n */\nexport function vaults(\n client: AaveClient,\n request: VaultsRequest,\n): ResultAsync<PaginatedVaultsResult, UnexpectedError> {\n return client.query(VaultsQuery, {\n request,\n });\n}\n\n/**\n * Fetches vaults that a user has shares in.\n *\n * ```ts\n * const result = await userVaults(client, {\n * user: evmAddress('0x1234…'),\n * filters: {\n * markets: [evmAddress('0x5678…')]\n * },\n * orderBy: { shares: OrderDirection.Desc },\n * pageSize: PageSize.Fifty,\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user vaults request parameters.\n * @returns The paginated user vaults result.\n */\nexport function userVaults(\n client: AaveClient,\n request: UserVaultsRequest,\n): ResultAsync<PaginatedVaultsResult, UnexpectedError> {\n return client.query(UserVaultsQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of shares that would be received for a deposit.\n *\n * ```ts\n * const result = await vaultPreviewDeposit(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('1000'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Shares to receive:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview deposit request parameters.\n * @returns The simulated shares amount that would be received.\n */\nexport function vaultPreviewDeposit(\n client: AaveClient,\n request: VaultPreviewDepositRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewDepositQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of assets that would be required to mint a specific amount of vault shares.\n *\n * ```ts\n * const result = await vaultPreviewMint(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('500'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Assets required:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview mint request parameters.\n * @returns The simulated assets amount that would be required.\n */\nexport function vaultPreviewMint(\n client: AaveClient,\n request: VaultPreviewMintRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewMintQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of shares that would be burned for a withdrawal.\n *\n * ```ts\n * const result = await vaultPreviewWithdraw(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('750'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Shares to burn:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview withdraw request parameters.\n * @returns The simulated shares amount that would be burned.\n */\nexport function vaultPreviewWithdraw(\n client: AaveClient,\n request: VaultPreviewWithdrawRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewWithdrawQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of assets that would be received for redeeming a specific amount of vault shares.\n *\n * ```ts\n * const result = await vaultPreviewRedeem(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('200'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Assets to receive:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview redeem request parameters.\n * @returns The simulated assets amount that would be received.\n */\nexport function vaultPreviewRedeem(\n client: AaveClient,\n request: VaultPreviewRedeemRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewRedeemQuery, {\n request,\n });\n}\n\n/**\n * Fetches the user transaction history for a vault.\n *\n * ```ts\n * const result = await vaultUserTransactionHistory(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Transaction count:', result.value.items.length);\n * result.value.items.forEach(tx => {\n * if (tx.__typename === 'VaultUserDepositItem') {\n * console.log('Deposit:', tx.asset.amount.value, 'shares:', tx.shares.amount.value);\n * } else if (tx.__typename === 'VaultUserWithdrawItem') {\n * console.log('Withdraw:', tx.asset.amount.value, 'shares:', tx.shares.amount.value);\n * }\n * });\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault user transaction history request parameters.\n * @returns The paginated vault user transaction history result.\n */\nexport function vaultUserTransactionHistory(\n client: AaveClient,\n request: VaultUserTransactionHistoryRequest,\n): ResultAsync<PaginatedVaultUserTransactionHistoryResult, UnexpectedError> {\n return client.query(VaultUserTransactionHistoryQuery, {\n request,\n });\n}\n\n/**\n * Fetches the user activity data for a vault, including earnings breakdown over time.\n *\n * ```ts\n * const result = await vaultUserActivity(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Total earned:', result.value.earned.amount.value);\n * console.log('Activity breakdown count:', result.value.breakdown.length);\n * result.value.breakdown.forEach(activity => {\n * console.log('Date:', activity.date);\n * console.log('Balance:', activity.balance.amount.value);\n * console.log('Earned:', activity.earned.amount.value);\n * });\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault user activity request parameters.\n * @returns The vault user activity result.\n */\nexport function vaultUserActivity(\n client: AaveClient,\n request: VaultUserActivityRequest,\n): ResultAsync<VaultUserActivityResult, UnexpectedError> {\n return client.query(VaultUserActivityQuery, {\n request,\n });\n}\n"]}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{d as AaveClient,c as local,a as production,b as staging}from'./chunk-
|
|
1
|
+
export{d as AaveClient,c as local,a as production,b as staging}from'./chunk-IKLPSB3H.js';export{a as GraphQLErrorCode,d as SigningError,f as TimeoutError,e as TransactionError,c as UnexpectedError,g as ValidationError,b as hasExtensionCode}from'./chunk-QYPBLR6B.js';import'./chunk-KT47UJBO.js';import'./chunk-FW4363Y4.js';export*from'@aave/graphql';export*from'@aave/types';//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/test-utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {c,b as b$1,d}from'./chunk-5UVVSXS5.js';import {c as c$1}from'./chunk-QYPBLR6B.js';import {k}from'./chunk-XAKMUIVL.js';import {a,b}from'./chunk-FW4363Y4.js';import {schema}from'@aave/graphql/test-utils';import {chainId,evmAddress,bigDecimal,ResultAsync,nonNullable,assertOk}from'@aave/types';export{bigDecimal}from'@aave/types';import {validate}from'graphql';import {defineChain,createWalletClient,http,createPublicClient,parseEther,parseUnits}from'viem';import {generatePrivateKey,privateKeyToAccount}from'viem/accounts';var pu=a((sS,hu)=>{var lu,Nr,kr,Rr,jr,Fr,wn,ri,Sn,Dr,uu,Lr,vn,qr,Br,zr,Rt,fu,Ur,Wr;qr=/\/(?![*\/])(?:\[(?:[^\]\\\n\r\u2028\u2029]+|\\.)*\]?|[^\/[\\\n\r\u2028\u2029]+|\\.)*(\/[$_\u200C\u200D\p{ID_Continue}]*|\\)?/yu;vn=/--|\+\+|=>|\.{3}|\??\.(?!\d)|(?:&&|\|\||\?\?|[+\-%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2}|\/(?![\/*]))=?|[?~,:;[\](){}]/y;Nr=/(\x23?)(?=[$_\p{ID_Start}\\])(?:[$_\u200C\u200D\p{ID_Continue}]+|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+/yu;zr=/(['"])(?:[^'"\\\n\r]+|(?!\1)['"]|\\(?:\r\n|[^]))*(\1)?/y;Lr=/(?:0[xX][\da-fA-F](?:_?[\da-fA-F])*|0[oO][0-7](?:_?[0-7])*|0[bB][01](?:_?[01])*)n?|0n|[1-9](?:_?\d)*n|(?:(?:0(?!\d)|0\d*[89]\d*|[1-9](?:_?\d)*)(?:\.(?:\d(?:_?\d)*)?)?|\.\d(?:_?\d)*)(?:[eE][+-]?\d(?:_?\d)*)?|0[0-7]+/y;Rt=/[`}](?:[^`\\$]+|\\[^]|\$(?!\{))*(`|\$\{)?/y;Wr=/[\t\v\f\ufeff\p{Zs}]+/yu;Sn=/\r?\n|[\r\u2028\u2029]/y;Dr=/\/\*(?:[^*]+|\*(?!\/))*(\*\/)?/y;Br=/\/\/.*/y;lu=/^#!.*/;Rr=/[<>.:={}]|\/(?![\/*])/y;kr=/[$_\p{ID_Start}][$_\u200C\u200D\p{ID_Continue}-]*/yu;jr=/(['"])(?:[^'"]+|(?!\1)['"])*(\1)?/y;Fr=/[^<>{}]+/y;Ur=/^(?:[\/+-]|\.{3}|\?(?:InterpolationIn(?:JSX|Template)|NoLineTerminatorHere|NonExpressionParenEnd|UnaryIncDec))?$|[{}([,;<>=*%&|^!~?:]$/;fu=/^(?:=>|[;\]){}]|else|\?(?:NoLineTerminatorHere|NonExpressionParenEnd))?$/;wn=/^(?:await|case|default|delete|do|else|instanceof|new|return|throw|typeof|void|yield)$/;ri=/^(?:return|throw|yield)$/;uu=RegExp(Sn.source);hu.exports=function*(e,{jsx:t=false}={}){var n,r,o,s,i,a,c,l,u,f,d,h,m,p;for({length:a}=e,s=0,i="",p=[{tag:"JS"}],n=[],d=0,h=false,(c=lu.exec(e))&&(yield {type:"HashbangComment",value:c[0]},s=c[0].length);s<a;){switch(l=p[p.length-1],l.tag){case "JS":case "JSNonExpressionParen":case "InterpolationInTemplate":case "InterpolationInJSX":if(e[s]==="/"&&(Ur.test(i)||wn.test(i))&&(qr.lastIndex=s,c=qr.exec(e))){s=qr.lastIndex,i=c[0],h=true,yield {type:"RegularExpressionLiteral",value:c[0],closed:c[1]!==void 0&&c[1]!=="\\"};continue}if(vn.lastIndex=s,c=vn.exec(e)){switch(m=c[0],u=vn.lastIndex,f=m,m){case "(":i==="?NonExpressionParenKeyword"&&p.push({tag:"JSNonExpressionParen",nesting:d}),d++,h=false;break;case ")":d--,h=true,l.tag==="JSNonExpressionParen"&&d===l.nesting&&(p.pop(),f="?NonExpressionParenEnd",h=false);break;case "{":vn.lastIndex=0,o=!fu.test(i)&&(Ur.test(i)||wn.test(i)),n.push(o),h=false;break;case "}":switch(l.tag){case "InterpolationInTemplate":if(n.length===l.nesting){Rt.lastIndex=s,c=Rt.exec(e),s=Rt.lastIndex,i=c[0],c[1]==="${"?(i="?InterpolationInTemplate",h=false,yield {type:"TemplateMiddle",value:c[0]}):(p.pop(),h=true,yield {type:"TemplateTail",value:c[0],closed:c[1]==="`"});continue}break;case "InterpolationInJSX":if(n.length===l.nesting){p.pop(),s+=1,i="}",yield {type:"JSXPunctuator",value:"}"};continue}}h=n.pop(),f=h?"?ExpressionBraceEnd":"}";break;case "]":h=true;break;case "++":case "--":f=h?"?PostfixIncDec":"?UnaryIncDec";break;case "<":if(t&&(Ur.test(i)||wn.test(i))){p.push({tag:"JSXTag"}),s+=1,i="<",yield {type:"JSXPunctuator",value:m};continue}h=false;break;default:h=false;}s=u,i=f,yield {type:"Punctuator",value:m};continue}if(Nr.lastIndex=s,c=Nr.exec(e)){switch(s=Nr.lastIndex,f=c[0],c[0]){case "for":case "if":case "while":case "with":i!=="."&&i!=="?."&&(f="?NonExpressionParenKeyword");}i=f,h=!wn.test(c[0]),yield {type:c[1]==="#"?"PrivateIdentifier":"IdentifierName",value:c[0]};continue}if(zr.lastIndex=s,c=zr.exec(e)){s=zr.lastIndex,i=c[0],h=true,yield {type:"StringLiteral",value:c[0],closed:c[2]!==void 0};continue}if(Lr.lastIndex=s,c=Lr.exec(e)){s=Lr.lastIndex,i=c[0],h=true,yield {type:"NumericLiteral",value:c[0]};continue}if(Rt.lastIndex=s,c=Rt.exec(e)){s=Rt.lastIndex,i=c[0],c[1]==="${"?(i="?InterpolationInTemplate",p.push({tag:"InterpolationInTemplate",nesting:n.length}),h=false,yield {type:"TemplateHead",value:c[0]}):(h=true,yield {type:"NoSubstitutionTemplate",value:c[0],closed:c[1]==="`"});continue}break;case "JSXTag":case "JSXTagEnd":if(Rr.lastIndex=s,c=Rr.exec(e)){switch(s=Rr.lastIndex,f=c[0],c[0]){case "<":p.push({tag:"JSXTag"});break;case ">":p.pop(),i==="/"||l.tag==="JSXTagEnd"?(f="?JSX",h=true):p.push({tag:"JSXChildren"});break;case "{":p.push({tag:"InterpolationInJSX",nesting:n.length}),f="?InterpolationInJSX",h=false;break;case "/":i==="<"&&(p.pop(),p[p.length-1].tag==="JSXChildren"&&p.pop(),p.push({tag:"JSXTagEnd"}));}i=f,yield {type:"JSXPunctuator",value:c[0]};continue}if(kr.lastIndex=s,c=kr.exec(e)){s=kr.lastIndex,i=c[0],yield {type:"JSXIdentifier",value:c[0]};continue}if(jr.lastIndex=s,c=jr.exec(e)){s=jr.lastIndex,i=c[0],yield {type:"JSXString",value:c[0],closed:c[2]!==void 0};continue}break;case "JSXChildren":if(Fr.lastIndex=s,c=Fr.exec(e)){s=Fr.lastIndex,i=c[0],yield {type:"JSXText",value:c[0]};continue}switch(e[s]){case "<":p.push({tag:"JSXTag"}),s++,i="<",yield {type:"JSXPunctuator",value:"<"};continue;case "{":p.push({tag:"InterpolationInJSX",nesting:n.length}),s++,i="?InterpolationInJSX",h=false,yield {type:"JSXPunctuator",value:"{"};continue}}if(Wr.lastIndex=s,c=Wr.exec(e)){s=Wr.lastIndex,yield {type:"WhiteSpace",value:c[0]};continue}if(Sn.lastIndex=s,c=Sn.exec(e)){s=Sn.lastIndex,h=false,ri.test(i)&&(i="?NoLineTerminatorHere"),yield {type:"LineTerminatorSequence",value:c[0]};continue}if(Dr.lastIndex=s,c=Dr.exec(e)){s=Dr.lastIndex,uu.test(c[0])&&(h=false,ri.test(i)&&(i="?NoLineTerminatorHere")),yield {type:"MultiLineComment",value:c[0],closed:c[1]!==void 0};continue}if(Br.lastIndex=s,c=Br.exec(e)){s=Br.lastIndex,h=false,yield {type:"SingleLineComment",value:c[0]};continue}r=String.fromCodePoint(e.codePointAt(s)),s+=r.length,i=r,h=false,yield {type:l.tag.startsWith("JSX")?"JSXInvalid":"Invalid",value:r};}};});var Kf=a(Vf=>{Object.defineProperty(Vf,"__esModule",{value:true});});var Hf=a(Xf=>{Object.defineProperty(Xf,"__esModule",{value:true});});var Yf=a(Gf=>{Object.defineProperty(Gf,"__esModule",{value:true});});var Qf=a(Zf=>{Object.defineProperty(Zf,"__esModule",{value:true});});var eh=a(ge=>{var Qb=ge&&ge.__createBinding||(Object.create?function(e,t,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:true,get:function(){return t[n]}}),Object.defineProperty(e,r,o);}:function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n];}),ao=ge&&ge.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&Qb(t,e,n);};Object.defineProperty(ge,"__esModule",{value:true});ge.expectTypeOf=void 0;ao(Kf(),ge);ao(Hf(),ge);ao(Yf(),ge);ao(Qf(),ge);var ye=()=>true,ew=e=>{let t=["parameters","returns","resolves","not","items","constructorParameters","thisParameter","instance","guards","asserts","branded"],n={toBeAny:ye,toBeUnknown:ye,toBeNever:ye,toBeFunction:ye,toBeObject:ye,toBeArray:ye,toBeString:ye,toBeNumber:ye,toBeBoolean:ye,toBeVoid:ye,toBeSymbol:ye,toBeNull:ye,toBeUndefined:ye,toBeNullable:ye,toBeBigInt:ye,toMatchTypeOf:ye,toEqualTypeOf:ye,toBeConstructibleWith:ye,toMatchObjectType:ye,toExtend:ye,map:ge.expectTypeOf,toBeCallableWith:ge.expectTypeOf,extract:ge.expectTypeOf,exclude:ge.expectTypeOf,pick:ge.expectTypeOf,omit:ge.expectTypeOf,toHaveProperty:ge.expectTypeOf,parameter:ge.expectTypeOf};return t.forEach(o=>Object.defineProperty(n,o,{get:()=>(0, ge.expectTypeOf)({})})),n};ge.expectTypeOf=ew;});var sh={reset:[0,0],bold:[1,22,"\x1B[22m\x1B[1m"],dim:[2,22,"\x1B[22m\x1B[2m"],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]},ih=Object.entries(sh);function mo(e){return String(e)}mo.open="";mo.close="";function ia(e=false){let t=typeof process<"u"?process:void 0,n=t?.env||{},r=t?.argv||[];return !("NO_COLOR"in n||r.includes("--no-color"))&&("FORCE_COLOR"in n||r.includes("--color")||t?.platform==="win32"||e&&n.TERM!=="dumb"||"CI"in n)||typeof window<"u"&&!!window.chrome}function aa(e=false){let t=ia(e),n=(i,a,c,l)=>{let u="",f=0;do u+=i.substring(f,l)+c,f=l+a.length,l=i.indexOf(a,f);while(~l);return u+i.substring(f)},r=(i,a,c=i)=>{let l=u=>{let f=String(u),d=f.indexOf(a,i.length);return ~d?i+n(f,a,c,d)+a:i+f+a};return l.open=i,l.close=a,l},o={isColorSupported:t},s=i=>`\x1B[${i}m`;for(let[i,a]of ih)o[i]=t?r(s(a[0]),s(a[1]),a[2]):mo;return o}var le=aa();function Ta(e,t){return t.forEach(function(n){n&&typeof n!="string"&&!Array.isArray(n)&&Object.keys(n).forEach(function(r){if(r!=="default"&&!(r in e)){var o=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(e,r,o.get?o:{enumerable:true,get:function(){return n[r]}});}});}),Object.freeze(e)}function ah(e,t){let n=Object.keys(e),r=t===null?n:n.sort(t);if(Object.getOwnPropertySymbols)for(let o of Object.getOwnPropertySymbols(e))Object.getOwnPropertyDescriptor(e,o).enumerable&&r.push(o);return r}function nn(e,t,n,r,o,s,i=": "){let a="",c=0,l=e.next();if(!l.done){a+=t.spacingOuter;let u=n+t.indent;for(;!l.done;){if(a+=u,c++===t.maxWidth){a+="\u2026";break}let f=s(l.value[0],t,u,r,o),d=s(l.value[1],t,u,r,o);a+=f+i+d,l=e.next(),l.done?t.min||(a+=","):a+=`,${t.spacingInner}`;}a+=t.spacingOuter+n;}return a}function bo(e,t,n,r,o,s){let i="",a=0,c=e.next();if(!c.done){i+=t.spacingOuter;let l=n+t.indent;for(;!c.done;){if(i+=l,a++===t.maxWidth){i+="\u2026";break}i+=s(c.value,t,l,r,o),c=e.next(),c.done?t.min||(i+=","):i+=`,${t.spacingInner}`;}i+=t.spacingOuter+n;}return i}function Nn(e,t,n,r,o,s){let i="";e=e instanceof ArrayBuffer?new DataView(e):e;let a=l=>l instanceof DataView,c=a(e)?e.byteLength:e.length;if(c>0){i+=t.spacingOuter;let l=n+t.indent;for(let u=0;u<c;u++){if(i+=l,u===t.maxWidth){i+="\u2026";break}(a(e)||u in e)&&(i+=s(a(e)?e.getInt8(u):e[u],t,l,r,o)),u<c-1?i+=`,${t.spacingInner}`:t.min||(i+=",");}i+=t.spacingOuter+n;}return i}function wo(e,t,n,r,o,s){let i="",a=ah(e,t.compareKeys);if(a.length>0){i+=t.spacingOuter;let c=n+t.indent;for(let l=0;l<a.length;l++){let u=a[l],f=s(u,t,c,r,o),d=s(e[u],t,c,r,o);i+=`${c+f}: ${d}`,l<a.length-1?i+=`,${t.spacingInner}`:t.min||(i+=",");}i+=t.spacingOuter+n;}return i}var ch=typeof Symbol=="function"&&Symbol.for?Symbol.for("jest.asymmetricMatcher"):1267621,Cn=" ",lh=(e,t,n,r,o,s)=>{let i=e.toString();if(i==="ArrayContaining"||i==="ArrayNotContaining")return ++r>t.maxDepth?`[${i}]`:`${i+Cn}[${Nn(e.sample,t,n,r,o,s)}]`;if(i==="ObjectContaining"||i==="ObjectNotContaining")return ++r>t.maxDepth?`[${i}]`:`${i+Cn}{${wo(e.sample,t,n,r,o,s)}}`;if(i==="StringMatching"||i==="StringNotMatching"||i==="StringContaining"||i==="StringNotContaining")return i+Cn+s(e.sample,t,n,r,o);if(typeof e.toAsymmetricMatcher!="function")throw new TypeError(`Asymmetric matcher ${e.constructor.name} does not implement toAsymmetricMatcher()`);return e.toAsymmetricMatcher()},uh=e=>e&&e.$$typeof===ch,fh={serialize:lh,test:uh},hh=" ",Ea=new Set(["DOMStringMap","NamedNodeMap"]),ph=/^(?:HTML\w*Collection|NodeList)$/;function dh(e){return Ea.has(e)||ph.test(e)}var mh=e=>e&&e.constructor&&!!e.constructor.name&&dh(e.constructor.name);function gh(e){return e.constructor.name==="NamedNodeMap"}var yh=(e,t,n,r,o,s)=>{let i=e.constructor.name;return ++r>t.maxDepth?`[${i}]`:(t.min?"":i+hh)+(Ea.has(i)?`{${wo(gh(e)?[...e].reduce((a,c)=>(a[c.name]=c.value,a),{}):{...e},t,n,r,o,s)}}`:`[${Nn([...e],t,n,r,o,s)}]`)},bh={serialize:yh,test:mh};function xa(e){return e.replaceAll("<","<").replaceAll(">",">")}function vo(e,t,n,r,o,s,i){let a=r+n.indent,c=n.colors;return e.map(l=>{let u=t[l],f=i(u,n,a,o,s);return typeof u!="string"&&(f.includes(`
|
|
1
|
+
import {c,b as b$1,d}from'./chunk-IKLPSB3H.js';import {c as c$1}from'./chunk-QYPBLR6B.js';import {k}from'./chunk-KT47UJBO.js';import {a,b}from'./chunk-FW4363Y4.js';import {schema}from'@aave/graphql/test-utils';import {chainId,evmAddress,bigDecimal,ResultAsync,nonNullable,assertOk}from'@aave/types';export{bigDecimal}from'@aave/types';import {validate}from'graphql';import {defineChain,createWalletClient,http,createPublicClient,parseEther,parseUnits}from'viem';import {generatePrivateKey,privateKeyToAccount}from'viem/accounts';var pu=a((sS,hu)=>{var lu,Nr,kr,Rr,jr,Fr,wn,ri,Sn,Dr,uu,Lr,vn,qr,Br,zr,Rt,fu,Ur,Wr;qr=/\/(?![*\/])(?:\[(?:[^\]\\\n\r\u2028\u2029]+|\\.)*\]?|[^\/[\\\n\r\u2028\u2029]+|\\.)*(\/[$_\u200C\u200D\p{ID_Continue}]*|\\)?/yu;vn=/--|\+\+|=>|\.{3}|\??\.(?!\d)|(?:&&|\|\||\?\?|[+\-%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2}|\/(?![\/*]))=?|[?~,:;[\](){}]/y;Nr=/(\x23?)(?=[$_\p{ID_Start}\\])(?:[$_\u200C\u200D\p{ID_Continue}]+|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+/yu;zr=/(['"])(?:[^'"\\\n\r]+|(?!\1)['"]|\\(?:\r\n|[^]))*(\1)?/y;Lr=/(?:0[xX][\da-fA-F](?:_?[\da-fA-F])*|0[oO][0-7](?:_?[0-7])*|0[bB][01](?:_?[01])*)n?|0n|[1-9](?:_?\d)*n|(?:(?:0(?!\d)|0\d*[89]\d*|[1-9](?:_?\d)*)(?:\.(?:\d(?:_?\d)*)?)?|\.\d(?:_?\d)*)(?:[eE][+-]?\d(?:_?\d)*)?|0[0-7]+/y;Rt=/[`}](?:[^`\\$]+|\\[^]|\$(?!\{))*(`|\$\{)?/y;Wr=/[\t\v\f\ufeff\p{Zs}]+/yu;Sn=/\r?\n|[\r\u2028\u2029]/y;Dr=/\/\*(?:[^*]+|\*(?!\/))*(\*\/)?/y;Br=/\/\/.*/y;lu=/^#!.*/;Rr=/[<>.:={}]|\/(?![\/*])/y;kr=/[$_\p{ID_Start}][$_\u200C\u200D\p{ID_Continue}-]*/yu;jr=/(['"])(?:[^'"]+|(?!\1)['"])*(\1)?/y;Fr=/[^<>{}]+/y;Ur=/^(?:[\/+-]|\.{3}|\?(?:InterpolationIn(?:JSX|Template)|NoLineTerminatorHere|NonExpressionParenEnd|UnaryIncDec))?$|[{}([,;<>=*%&|^!~?:]$/;fu=/^(?:=>|[;\]){}]|else|\?(?:NoLineTerminatorHere|NonExpressionParenEnd))?$/;wn=/^(?:await|case|default|delete|do|else|instanceof|new|return|throw|typeof|void|yield)$/;ri=/^(?:return|throw|yield)$/;uu=RegExp(Sn.source);hu.exports=function*(e,{jsx:t=false}={}){var n,r,o,s,i,a,c,l,u,f,d,h,m,p;for({length:a}=e,s=0,i="",p=[{tag:"JS"}],n=[],d=0,h=false,(c=lu.exec(e))&&(yield {type:"HashbangComment",value:c[0]},s=c[0].length);s<a;){switch(l=p[p.length-1],l.tag){case "JS":case "JSNonExpressionParen":case "InterpolationInTemplate":case "InterpolationInJSX":if(e[s]==="/"&&(Ur.test(i)||wn.test(i))&&(qr.lastIndex=s,c=qr.exec(e))){s=qr.lastIndex,i=c[0],h=true,yield {type:"RegularExpressionLiteral",value:c[0],closed:c[1]!==void 0&&c[1]!=="\\"};continue}if(vn.lastIndex=s,c=vn.exec(e)){switch(m=c[0],u=vn.lastIndex,f=m,m){case "(":i==="?NonExpressionParenKeyword"&&p.push({tag:"JSNonExpressionParen",nesting:d}),d++,h=false;break;case ")":d--,h=true,l.tag==="JSNonExpressionParen"&&d===l.nesting&&(p.pop(),f="?NonExpressionParenEnd",h=false);break;case "{":vn.lastIndex=0,o=!fu.test(i)&&(Ur.test(i)||wn.test(i)),n.push(o),h=false;break;case "}":switch(l.tag){case "InterpolationInTemplate":if(n.length===l.nesting){Rt.lastIndex=s,c=Rt.exec(e),s=Rt.lastIndex,i=c[0],c[1]==="${"?(i="?InterpolationInTemplate",h=false,yield {type:"TemplateMiddle",value:c[0]}):(p.pop(),h=true,yield {type:"TemplateTail",value:c[0],closed:c[1]==="`"});continue}break;case "InterpolationInJSX":if(n.length===l.nesting){p.pop(),s+=1,i="}",yield {type:"JSXPunctuator",value:"}"};continue}}h=n.pop(),f=h?"?ExpressionBraceEnd":"}";break;case "]":h=true;break;case "++":case "--":f=h?"?PostfixIncDec":"?UnaryIncDec";break;case "<":if(t&&(Ur.test(i)||wn.test(i))){p.push({tag:"JSXTag"}),s+=1,i="<",yield {type:"JSXPunctuator",value:m};continue}h=false;break;default:h=false;}s=u,i=f,yield {type:"Punctuator",value:m};continue}if(Nr.lastIndex=s,c=Nr.exec(e)){switch(s=Nr.lastIndex,f=c[0],c[0]){case "for":case "if":case "while":case "with":i!=="."&&i!=="?."&&(f="?NonExpressionParenKeyword");}i=f,h=!wn.test(c[0]),yield {type:c[1]==="#"?"PrivateIdentifier":"IdentifierName",value:c[0]};continue}if(zr.lastIndex=s,c=zr.exec(e)){s=zr.lastIndex,i=c[0],h=true,yield {type:"StringLiteral",value:c[0],closed:c[2]!==void 0};continue}if(Lr.lastIndex=s,c=Lr.exec(e)){s=Lr.lastIndex,i=c[0],h=true,yield {type:"NumericLiteral",value:c[0]};continue}if(Rt.lastIndex=s,c=Rt.exec(e)){s=Rt.lastIndex,i=c[0],c[1]==="${"?(i="?InterpolationInTemplate",p.push({tag:"InterpolationInTemplate",nesting:n.length}),h=false,yield {type:"TemplateHead",value:c[0]}):(h=true,yield {type:"NoSubstitutionTemplate",value:c[0],closed:c[1]==="`"});continue}break;case "JSXTag":case "JSXTagEnd":if(Rr.lastIndex=s,c=Rr.exec(e)){switch(s=Rr.lastIndex,f=c[0],c[0]){case "<":p.push({tag:"JSXTag"});break;case ">":p.pop(),i==="/"||l.tag==="JSXTagEnd"?(f="?JSX",h=true):p.push({tag:"JSXChildren"});break;case "{":p.push({tag:"InterpolationInJSX",nesting:n.length}),f="?InterpolationInJSX",h=false;break;case "/":i==="<"&&(p.pop(),p[p.length-1].tag==="JSXChildren"&&p.pop(),p.push({tag:"JSXTagEnd"}));}i=f,yield {type:"JSXPunctuator",value:c[0]};continue}if(kr.lastIndex=s,c=kr.exec(e)){s=kr.lastIndex,i=c[0],yield {type:"JSXIdentifier",value:c[0]};continue}if(jr.lastIndex=s,c=jr.exec(e)){s=jr.lastIndex,i=c[0],yield {type:"JSXString",value:c[0],closed:c[2]!==void 0};continue}break;case "JSXChildren":if(Fr.lastIndex=s,c=Fr.exec(e)){s=Fr.lastIndex,i=c[0],yield {type:"JSXText",value:c[0]};continue}switch(e[s]){case "<":p.push({tag:"JSXTag"}),s++,i="<",yield {type:"JSXPunctuator",value:"<"};continue;case "{":p.push({tag:"InterpolationInJSX",nesting:n.length}),s++,i="?InterpolationInJSX",h=false,yield {type:"JSXPunctuator",value:"{"};continue}}if(Wr.lastIndex=s,c=Wr.exec(e)){s=Wr.lastIndex,yield {type:"WhiteSpace",value:c[0]};continue}if(Sn.lastIndex=s,c=Sn.exec(e)){s=Sn.lastIndex,h=false,ri.test(i)&&(i="?NoLineTerminatorHere"),yield {type:"LineTerminatorSequence",value:c[0]};continue}if(Dr.lastIndex=s,c=Dr.exec(e)){s=Dr.lastIndex,uu.test(c[0])&&(h=false,ri.test(i)&&(i="?NoLineTerminatorHere")),yield {type:"MultiLineComment",value:c[0],closed:c[1]!==void 0};continue}if(Br.lastIndex=s,c=Br.exec(e)){s=Br.lastIndex,h=false,yield {type:"SingleLineComment",value:c[0]};continue}r=String.fromCodePoint(e.codePointAt(s)),s+=r.length,i=r,h=false,yield {type:l.tag.startsWith("JSX")?"JSXInvalid":"Invalid",value:r};}};});var Kf=a(Vf=>{Object.defineProperty(Vf,"__esModule",{value:true});});var Hf=a(Xf=>{Object.defineProperty(Xf,"__esModule",{value:true});});var Yf=a(Gf=>{Object.defineProperty(Gf,"__esModule",{value:true});});var Qf=a(Zf=>{Object.defineProperty(Zf,"__esModule",{value:true});});var eh=a(ge=>{var Qb=ge&&ge.__createBinding||(Object.create?function(e,t,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:true,get:function(){return t[n]}}),Object.defineProperty(e,r,o);}:function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n];}),ao=ge&&ge.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&Qb(t,e,n);};Object.defineProperty(ge,"__esModule",{value:true});ge.expectTypeOf=void 0;ao(Kf(),ge);ao(Hf(),ge);ao(Yf(),ge);ao(Qf(),ge);var ye=()=>true,ew=e=>{let t=["parameters","returns","resolves","not","items","constructorParameters","thisParameter","instance","guards","asserts","branded"],n={toBeAny:ye,toBeUnknown:ye,toBeNever:ye,toBeFunction:ye,toBeObject:ye,toBeArray:ye,toBeString:ye,toBeNumber:ye,toBeBoolean:ye,toBeVoid:ye,toBeSymbol:ye,toBeNull:ye,toBeUndefined:ye,toBeNullable:ye,toBeBigInt:ye,toMatchTypeOf:ye,toEqualTypeOf:ye,toBeConstructibleWith:ye,toMatchObjectType:ye,toExtend:ye,map:ge.expectTypeOf,toBeCallableWith:ge.expectTypeOf,extract:ge.expectTypeOf,exclude:ge.expectTypeOf,pick:ge.expectTypeOf,omit:ge.expectTypeOf,toHaveProperty:ge.expectTypeOf,parameter:ge.expectTypeOf};return t.forEach(o=>Object.defineProperty(n,o,{get:()=>(0, ge.expectTypeOf)({})})),n};ge.expectTypeOf=ew;});var sh={reset:[0,0],bold:[1,22,"\x1B[22m\x1B[1m"],dim:[2,22,"\x1B[22m\x1B[2m"],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]},ih=Object.entries(sh);function mo(e){return String(e)}mo.open="";mo.close="";function ia(e=false){let t=typeof process<"u"?process:void 0,n=t?.env||{},r=t?.argv||[];return !("NO_COLOR"in n||r.includes("--no-color"))&&("FORCE_COLOR"in n||r.includes("--color")||t?.platform==="win32"||e&&n.TERM!=="dumb"||"CI"in n)||typeof window<"u"&&!!window.chrome}function aa(e=false){let t=ia(e),n=(i,a,c,l)=>{let u="",f=0;do u+=i.substring(f,l)+c,f=l+a.length,l=i.indexOf(a,f);while(~l);return u+i.substring(f)},r=(i,a,c=i)=>{let l=u=>{let f=String(u),d=f.indexOf(a,i.length);return ~d?i+n(f,a,c,d)+a:i+f+a};return l.open=i,l.close=a,l},o={isColorSupported:t},s=i=>`\x1B[${i}m`;for(let[i,a]of ih)o[i]=t?r(s(a[0]),s(a[1]),a[2]):mo;return o}var le=aa();function Ta(e,t){return t.forEach(function(n){n&&typeof n!="string"&&!Array.isArray(n)&&Object.keys(n).forEach(function(r){if(r!=="default"&&!(r in e)){var o=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(e,r,o.get?o:{enumerable:true,get:function(){return n[r]}});}});}),Object.freeze(e)}function ah(e,t){let n=Object.keys(e),r=t===null?n:n.sort(t);if(Object.getOwnPropertySymbols)for(let o of Object.getOwnPropertySymbols(e))Object.getOwnPropertyDescriptor(e,o).enumerable&&r.push(o);return r}function nn(e,t,n,r,o,s,i=": "){let a="",c=0,l=e.next();if(!l.done){a+=t.spacingOuter;let u=n+t.indent;for(;!l.done;){if(a+=u,c++===t.maxWidth){a+="\u2026";break}let f=s(l.value[0],t,u,r,o),d=s(l.value[1],t,u,r,o);a+=f+i+d,l=e.next(),l.done?t.min||(a+=","):a+=`,${t.spacingInner}`;}a+=t.spacingOuter+n;}return a}function bo(e,t,n,r,o,s){let i="",a=0,c=e.next();if(!c.done){i+=t.spacingOuter;let l=n+t.indent;for(;!c.done;){if(i+=l,a++===t.maxWidth){i+="\u2026";break}i+=s(c.value,t,l,r,o),c=e.next(),c.done?t.min||(i+=","):i+=`,${t.spacingInner}`;}i+=t.spacingOuter+n;}return i}function Nn(e,t,n,r,o,s){let i="";e=e instanceof ArrayBuffer?new DataView(e):e;let a=l=>l instanceof DataView,c=a(e)?e.byteLength:e.length;if(c>0){i+=t.spacingOuter;let l=n+t.indent;for(let u=0;u<c;u++){if(i+=l,u===t.maxWidth){i+="\u2026";break}(a(e)||u in e)&&(i+=s(a(e)?e.getInt8(u):e[u],t,l,r,o)),u<c-1?i+=`,${t.spacingInner}`:t.min||(i+=",");}i+=t.spacingOuter+n;}return i}function wo(e,t,n,r,o,s){let i="",a=ah(e,t.compareKeys);if(a.length>0){i+=t.spacingOuter;let c=n+t.indent;for(let l=0;l<a.length;l++){let u=a[l],f=s(u,t,c,r,o),d=s(e[u],t,c,r,o);i+=`${c+f}: ${d}`,l<a.length-1?i+=`,${t.spacingInner}`:t.min||(i+=",");}i+=t.spacingOuter+n;}return i}var ch=typeof Symbol=="function"&&Symbol.for?Symbol.for("jest.asymmetricMatcher"):1267621,Cn=" ",lh=(e,t,n,r,o,s)=>{let i=e.toString();if(i==="ArrayContaining"||i==="ArrayNotContaining")return ++r>t.maxDepth?`[${i}]`:`${i+Cn}[${Nn(e.sample,t,n,r,o,s)}]`;if(i==="ObjectContaining"||i==="ObjectNotContaining")return ++r>t.maxDepth?`[${i}]`:`${i+Cn}{${wo(e.sample,t,n,r,o,s)}}`;if(i==="StringMatching"||i==="StringNotMatching"||i==="StringContaining"||i==="StringNotContaining")return i+Cn+s(e.sample,t,n,r,o);if(typeof e.toAsymmetricMatcher!="function")throw new TypeError(`Asymmetric matcher ${e.constructor.name} does not implement toAsymmetricMatcher()`);return e.toAsymmetricMatcher()},uh=e=>e&&e.$$typeof===ch,fh={serialize:lh,test:uh},hh=" ",Ea=new Set(["DOMStringMap","NamedNodeMap"]),ph=/^(?:HTML\w*Collection|NodeList)$/;function dh(e){return Ea.has(e)||ph.test(e)}var mh=e=>e&&e.constructor&&!!e.constructor.name&&dh(e.constructor.name);function gh(e){return e.constructor.name==="NamedNodeMap"}var yh=(e,t,n,r,o,s)=>{let i=e.constructor.name;return ++r>t.maxDepth?`[${i}]`:(t.min?"":i+hh)+(Ea.has(i)?`{${wo(gh(e)?[...e].reduce((a,c)=>(a[c.name]=c.value,a),{}):{...e},t,n,r,o,s)}}`:`[${Nn([...e],t,n,r,o,s)}]`)},bh={serialize:yh,test:mh};function xa(e){return e.replaceAll("<","<").replaceAll(">",">")}function vo(e,t,n,r,o,s,i){let a=r+n.indent,c=n.colors;return e.map(l=>{let u=t[l],f=i(u,n,a,o,s);return typeof u!="string"&&(f.includes(`
|
|
2
2
|
`)&&(f=n.spacingOuter+a+f+n.spacingOuter+r),f=`{${f}}`),`${n.spacingInner+r+c.prop.open+l+c.prop.close}=${c.value.open}${f}${c.value.close}`}).join("")}function So(e,t,n,r,o,s){return e.map(i=>t.spacingOuter+n+(typeof i=="string"?_a(i,t):s(i,t,n,r,o))).join("")}function _a(e,t){let n=t.colors.content;return n.open+xa(e)+n.close}function wh(e,t){let n=t.colors.comment;return `${n.open}<!--${xa(e)}-->${n.close}`}function To(e,t,n,r,o){let s=r.colors.tag;return `${s.open}<${e}${t&&s.close+t+r.spacingOuter+o+s.open}${n?`>${s.close}${n}${r.spacingOuter}${o}${s.open}</${e}`:`${t&&!r.min?"":" "}/`}>${s.close}`}function Eo(e,t){let n=t.colors.tag;return `${n.open}<${e}${n.close} \u2026${n.open} />${n.close}`}var vh=1,Ia=3,Aa=8,Oa=11,Sh=/^(?:(?:HTML|SVG)\w*)?Element$/;function Th(e){try{return typeof e.hasAttribute=="function"&&e.hasAttribute("is")}catch{return false}}function Eh(e){let t=e.constructor.name,{nodeType:n,tagName:r}=e,o=typeof r=="string"&&r.includes("-")||Th(e);return n===vh&&(Sh.test(t)||o)||n===Ia&&t==="Text"||n===Aa&&t==="Comment"||n===Oa&&t==="DocumentFragment"}var xh=e=>{var t;return (e==null||(t=e.constructor)===null||t===void 0?void 0:t.name)&&Eh(e)};function _h(e){return e.nodeType===Ia}function Ih(e){return e.nodeType===Aa}function go(e){return e.nodeType===Oa}var Ah=(e,t,n,r,o,s)=>{if(_h(e))return _a(e.data,t);if(Ih(e))return wh(e.data,t);let i=go(e)?"DocumentFragment":e.tagName.toLowerCase();return ++r>t.maxDepth?Eo(i,t):To(i,vo(go(e)?[]:Array.from(e.attributes,a=>a.name).sort(),go(e)?{}:[...e.attributes].reduce((a,c)=>(a[c.name]=c.value,a),{}),t,n+t.indent,r,o,s),So(Array.prototype.slice.call(e.childNodes||e.children),t,n+t.indent,r,o,s),t,n)},Oh={serialize:Ah,test:xh},Ch="@@__IMMUTABLE_ITERABLE__@@",$h="@@__IMMUTABLE_LIST__@@",Ph="@@__IMMUTABLE_KEYED__@@",Mh="@@__IMMUTABLE_MAP__@@",ca="@@__IMMUTABLE_ORDERED__@@",Nh="@@__IMMUTABLE_RECORD__@@",kh="@@__IMMUTABLE_SEQ__@@",Rh="@@__IMMUTABLE_SET__@@",jh="@@__IMMUTABLE_STACK__@@",qt=e=>`Immutable.${e}`,Rn=e=>`[${e}]`,tn=" ",la="\u2026";function Fh(e,t,n,r,o,s,i){return ++r>t.maxDepth?Rn(qt(i)):`${qt(i)+tn}{${nn(e.entries(),t,n,r,o,s)}}`}function Dh(e){let t=0;return {next(){if(t<e._keys.length){let n=e._keys[t++];return {done:false,value:[n,e.get(n)]}}return {done:true,value:void 0}}}}function Lh(e,t,n,r,o,s){let i=qt(e._name||"Record");return ++r>t.maxDepth?Rn(i):`${i+tn}{${nn(Dh(e),t,n,r,o,s)}}`}function qh(e,t,n,r,o,s){let i=qt("Seq");return ++r>t.maxDepth?Rn(i):e[Ph]?`${i+tn}{${e._iter||e._object?nn(e.entries(),t,n,r,o,s):la}}`:`${i+tn}[${e._iter||e._array||e._collection||e._iterable?bo(e.values(),t,n,r,o,s):la}]`}function yo(e,t,n,r,o,s,i){return ++r>t.maxDepth?Rn(qt(i)):`${qt(i)+tn}[${bo(e.values(),t,n,r,o,s)}]`}var Bh=(e,t,n,r,o,s)=>e[Mh]?Fh(e,t,n,r,o,s,e[ca]?"OrderedMap":"Map"):e[$h]?yo(e,t,n,r,o,s,"List"):e[Rh]?yo(e,t,n,r,o,s,e[ca]?"OrderedSet":"Set"):e[jh]?yo(e,t,n,r,o,s,"Stack"):e[kh]?qh(e,t,n,r,o,s):Lh(e,t,n,r,o,s),zh=e=>e&&(e[Ch]===true||e[Nh]===true),Uh={serialize:Bh,test:zh};function Ca(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var $n={exports:{}},se={};var ua;function Wh(){if(ua)return se;ua=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),i=Symbol.for("react.context"),a=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),l=Symbol.for("react.suspense_list"),u=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),d=Symbol.for("react.view_transition"),h=Symbol.for("react.client.reference");function m(p){if(typeof p=="object"&&p!==null){var b=p.$$typeof;switch(b){case e:switch(p=p.type,p){case n:case o:case r:case c:case l:case d:return p;default:switch(p=p&&p.$$typeof,p){case i:case a:case f:case u:return p;case s:return p;default:return b}}case t:return b}}}return se.ContextConsumer=s,se.ContextProvider=i,se.Element=e,se.ForwardRef=a,se.Fragment=n,se.Lazy=f,se.Memo=u,se.Portal=t,se.Profiler=o,se.StrictMode=r,se.Suspense=c,se.SuspenseList=l,se.isContextConsumer=function(p){return m(p)===s},se.isContextProvider=function(p){return m(p)===i},se.isElement=function(p){return typeof p=="object"&&p!==null&&p.$$typeof===e},se.isForwardRef=function(p){return m(p)===a},se.isFragment=function(p){return m(p)===n},se.isLazy=function(p){return m(p)===f},se.isMemo=function(p){return m(p)===u},se.isPortal=function(p){return m(p)===t},se.isProfiler=function(p){return m(p)===o},se.isStrictMode=function(p){return m(p)===r},se.isSuspense=function(p){return m(p)===c},se.isSuspenseList=function(p){return m(p)===l},se.isValidElementType=function(p){return typeof p=="string"||typeof p=="function"||p===n||p===o||p===r||p===c||p===l||typeof p=="object"&&p!==null&&(p.$$typeof===f||p.$$typeof===u||p.$$typeof===i||p.$$typeof===s||p.$$typeof===a||p.$$typeof===h||p.getModuleId!==void 0)},se.typeOf=m,se}var ie={};var fa;function Jh(){return fa||(fa=1,process.env.NODE_ENV!=="production"&&function(){function e(p){if(typeof p=="object"&&p!==null){var b=p.$$typeof;switch(b){case t:switch(p=p.type,p){case r:case s:case o:case l:case u:case h:return p;default:switch(p=p&&p.$$typeof,p){case a:case c:case d:case f:return p;case i:return p;default:return b}}case n:return b}}}var t=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),a=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),u=Symbol.for("react.suspense_list"),f=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),h=Symbol.for("react.view_transition"),m=Symbol.for("react.client.reference");ie.ContextConsumer=i,ie.ContextProvider=a,ie.Element=t,ie.ForwardRef=c,ie.Fragment=r,ie.Lazy=d,ie.Memo=f,ie.Portal=n,ie.Profiler=s,ie.StrictMode=o,ie.Suspense=l,ie.SuspenseList=u,ie.isContextConsumer=function(p){return e(p)===i},ie.isContextProvider=function(p){return e(p)===a},ie.isElement=function(p){return typeof p=="object"&&p!==null&&p.$$typeof===t},ie.isForwardRef=function(p){return e(p)===c},ie.isFragment=function(p){return e(p)===r},ie.isLazy=function(p){return e(p)===d},ie.isMemo=function(p){return e(p)===f},ie.isPortal=function(p){return e(p)===n},ie.isProfiler=function(p){return e(p)===s},ie.isStrictMode=function(p){return e(p)===o},ie.isSuspense=function(p){return e(p)===l},ie.isSuspenseList=function(p){return e(p)===u},ie.isValidElementType=function(p){return typeof p=="string"||typeof p=="function"||p===r||p===s||p===o||p===l||p===u||typeof p=="object"&&p!==null&&(p.$$typeof===d||p.$$typeof===f||p.$$typeof===a||p.$$typeof===i||p.$$typeof===c||p.$$typeof===m||p.getModuleId!==void 0)},ie.typeOf=e;}()),ie}var ha;function Vh(){return ha||(ha=1,process.env.NODE_ENV==="production"?$n.exports=Wh():$n.exports=Jh()),$n.exports}var $a=Vh(),Kh=Ca($a),Xh=Ta({__proto__:null,default:Kh},[$a]),Pn={exports:{}},ne={};var pa;function Hh(){if(pa)return ne;pa=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),i=Symbol.for("react.context"),a=Symbol.for("react.server_context"),c=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),u=Symbol.for("react.suspense_list"),f=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),h=Symbol.for("react.offscreen"),m;m=Symbol.for("react.module.reference");function p(b){if(typeof b=="object"&&b!==null){var v=b.$$typeof;switch(v){case e:switch(b=b.type,b){case n:case o:case r:case l:case u:return b;default:switch(b=b&&b.$$typeof,b){case a:case i:case c:case d:case f:case s:return b;default:return v}}case t:return v}}}return ne.ContextConsumer=i,ne.ContextProvider=s,ne.Element=e,ne.ForwardRef=c,ne.Fragment=n,ne.Lazy=d,ne.Memo=f,ne.Portal=t,ne.Profiler=o,ne.StrictMode=r,ne.Suspense=l,ne.SuspenseList=u,ne.isAsyncMode=function(){return false},ne.isConcurrentMode=function(){return false},ne.isContextConsumer=function(b){return p(b)===i},ne.isContextProvider=function(b){return p(b)===s},ne.isElement=function(b){return typeof b=="object"&&b!==null&&b.$$typeof===e},ne.isForwardRef=function(b){return p(b)===c},ne.isFragment=function(b){return p(b)===n},ne.isLazy=function(b){return p(b)===d},ne.isMemo=function(b){return p(b)===f},ne.isPortal=function(b){return p(b)===t},ne.isProfiler=function(b){return p(b)===o},ne.isStrictMode=function(b){return p(b)===r},ne.isSuspense=function(b){return p(b)===l},ne.isSuspenseList=function(b){return p(b)===u},ne.isValidElementType=function(b){return typeof b=="string"||typeof b=="function"||b===n||b===o||b===r||b===l||b===u||b===h||typeof b=="object"&&b!==null&&(b.$$typeof===d||b.$$typeof===f||b.$$typeof===s||b.$$typeof===i||b.$$typeof===c||b.$$typeof===m||b.getModuleId!==void 0)},ne.typeOf=p,ne}var re={};var da;function Gh(){return da||(da=1,process.env.NODE_ENV!=="production"&&function(){var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),i=Symbol.for("react.context"),a=Symbol.for("react.server_context"),c=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),u=Symbol.for("react.suspense_list"),f=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),h=Symbol.for("react.offscreen"),m=false,p=false,b=false,v=false,E=false,A;A=Symbol.for("react.module.reference");function $(q){return !!(typeof q=="string"||typeof q=="function"||q===n||q===o||E||q===r||q===l||q===u||v||q===h||m||p||b||typeof q=="object"&&q!==null&&(q.$$typeof===d||q.$$typeof===f||q.$$typeof===s||q.$$typeof===i||q.$$typeof===c||q.$$typeof===A||q.getModuleId!==void 0))}function C(q){if(typeof q=="object"&&q!==null){var T=q.$$typeof;switch(T){case e:var _=q.type;switch(_){case n:case o:case r:case l:case u:return _;default:var M=_&&_.$$typeof;switch(M){case a:case i:case c:case d:case f:case s:return M;default:return T}}case t:return T}}}var R=i,P=s,O=e,N=c,V=n,I=d,J=f,ce=t,U=o,Y=r,k=l,H=u,F=false,he=false;function ve(q){return F||(F=true,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 18+.")),false}function Fe(q){return he||(he=true,console.warn("The ReactIs.isConcurrentMode() alias has been deprecated, and will be removed in React 18+.")),false}function xe(q){return C(q)===i}function Ae(q){return C(q)===s}function Je(q){return typeof q=="object"&&q!==null&&q.$$typeof===e}function ke(q){return C(q)===c}function Oe(q){return C(q)===n}function Ce(q){return C(q)===d}function ut(q){return C(q)===f}function qe(q){return C(q)===t}function xt(q){return C(q)===o}function Se(q){return C(q)===r}function Ve(q){return C(q)===l}function On(q){return C(q)===u}re.ContextConsumer=R,re.ContextProvider=P,re.Element=O,re.ForwardRef=N,re.Fragment=V,re.Lazy=I,re.Memo=J,re.Portal=ce,re.Profiler=U,re.StrictMode=Y,re.Suspense=k,re.SuspenseList=H,re.isAsyncMode=ve,re.isConcurrentMode=Fe,re.isContextConsumer=xe,re.isContextProvider=Ae,re.isElement=Je,re.isForwardRef=ke,re.isFragment=Oe,re.isLazy=Ce,re.isMemo=ut,re.isPortal=qe,re.isProfiler=xt,re.isStrictMode=Se,re.isSuspense=Ve,re.isSuspenseList=On,re.isValidElementType=$,re.typeOf=C;}()),re}var ma;function Yh(){return ma||(ma=1,process.env.NODE_ENV==="production"?Pn.exports=Hh():Pn.exports=Gh()),Pn.exports}var Pa=Yh(),Zh=Ca(Pa),Qh=Ta({__proto__:null,default:Zh},[Pa]),ep=["isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType"],It=Object.fromEntries(ep.map(e=>[e,t=>Qh[e](t)||Xh[e](t)]));function Ma(e,t=[]){if(Array.isArray(e))for(let n of e)Ma(n,t);else e!=null&&e!==false&&e!==""&&t.push(e);return t}function ga(e){let t=e.type;if(typeof t=="string")return t;if(typeof t=="function")return t.displayName||t.name||"Unknown";if(It.isFragment(e))return "React.Fragment";if(It.isSuspense(e))return "React.Suspense";if(typeof t=="object"&&t!==null){if(It.isContextProvider(e))return "Context.Provider";if(It.isContextConsumer(e))return "Context.Consumer";if(It.isForwardRef(e)){if(t.displayName)return t.displayName;let n=t.render.displayName||t.render.name||"";return n===""?"ForwardRef":`ForwardRef(${n})`}if(It.isMemo(e)){let n=t.displayName||t.type.displayName||t.type.name||"";return n===""?"Memo":`Memo(${n})`}}return "UNDEFINED"}function tp(e){let{props:t}=e;return Object.keys(t).filter(n=>n!=="children"&&t[n]!==void 0).sort()}var np=(e,t,n,r,o,s)=>++r>t.maxDepth?Eo(ga(e),t):To(ga(e),vo(tp(e),e.props,t,n+t.indent,r,o,s),So(Ma(e.props.children),t,n+t.indent,r,o,s),t,n),rp=e=>e!=null&&It.isElement(e),op={serialize:np,test:rp},sp=typeof Symbol=="function"&&Symbol.for?Symbol.for("react.test.json"):245830487;function ip(e){let{props:t}=e;return t?Object.keys(t).filter(n=>t[n]!==void 0).sort():[]}var ap=(e,t,n,r,o,s)=>++r>t.maxDepth?Eo(e.type,t):To(e.type,e.props?vo(ip(e),e.props,t,n+t.indent,r,o,s):"",e.children?So(e.children,t,n+t.indent,r,o,s):"",t,n),cp=e=>e&&e.$$typeof===sp,lp={serialize:ap,test:cp},Na=Object.prototype.toString,up=Date.prototype.toISOString,fp=Error.prototype.toString,ya=RegExp.prototype.toString;function Mn(e){return typeof e.constructor=="function"&&e.constructor.name||"Object"}function hp(e){return typeof window<"u"&&e===window}var pp=/^Symbol\((.*)\)(.*)$/,dp=/\n/g,kn=class extends Error{constructor(t,n){super(t),this.stack=n,this.name=this.constructor.name;}};function mp(e){return e==="[object Array]"||e==="[object ArrayBuffer]"||e==="[object DataView]"||e==="[object Float32Array]"||e==="[object Float64Array]"||e==="[object Int8Array]"||e==="[object Int16Array]"||e==="[object Int32Array]"||e==="[object Uint8Array]"||e==="[object Uint8ClampedArray]"||e==="[object Uint16Array]"||e==="[object Uint32Array]"}function gp(e){return Object.is(e,-0)?"-0":String(e)}function yp(e){return `${e}n`}function ba(e,t){return t?`[Function ${e.name||"anonymous"}]`:"[Function]"}function wa(e){return String(e).replace(pp,"Symbol($1)")}function va(e){return `[${fp.call(e)}]`}function ka(e,t,n,r){if(e===true||e===false)return `${e}`;if(e===void 0)return "undefined";if(e===null)return "null";let o=typeof e;if(o==="number")return gp(e);if(o==="bigint")return yp(e);if(o==="string")return r?`"${e.replaceAll(/"|\\/g,"\\$&")}"`:`"${e}"`;if(o==="function")return ba(e,t);if(o==="symbol")return wa(e);let s=Na.call(e);return s==="[object WeakMap]"?"WeakMap {}":s==="[object WeakSet]"?"WeakSet {}":s==="[object Function]"||s==="[object GeneratorFunction]"?ba(e,t):s==="[object Symbol]"?wa(e):s==="[object Date]"?Number.isNaN(+e)?"Date { NaN }":up.call(e):s==="[object Error]"?va(e):s==="[object RegExp]"?n?ya.call(e).replaceAll(/[$()*+.?[\\\]^{|}]/g,"\\$&"):ya.call(e):e instanceof Error?va(e):null}function Ra(e,t,n,r,o,s){if(o.includes(e))return "[Circular]";o=[...o],o.push(e);let i=++r>t.maxDepth,a=t.min;if(t.callToJSON&&!i&&e.toJSON&&typeof e.toJSON=="function"&&!s)return ht(e.toJSON(),t,n,r,o,true);let c=Na.call(e);return c==="[object Arguments]"?i?"[Arguments]":`${a?"":"Arguments "}[${Nn(e,t,n,r,o,ht)}]`:mp(c)?i?`[${e.constructor.name}]`:`${a||!t.printBasicPrototype&&e.constructor.name==="Array"?"":`${e.constructor.name} `}[${Nn(e,t,n,r,o,ht)}]`:c==="[object Map]"?i?"[Map]":`Map {${nn(e.entries(),t,n,r,o,ht," => ")}}`:c==="[object Set]"?i?"[Set]":`Set {${bo(e.values(),t,n,r,o,ht)}}`:i||hp(e)?`[${Mn(e)}]`:`${a||!t.printBasicPrototype&&Mn(e)==="Object"?"":`${Mn(e)} `}{${wo(e,t,n,r,o,ht)}}`}var bp={test:e=>e&&e instanceof Error,serialize(e,t,n,r,o,s){if(o.includes(e))return "[Circular]";o=[...o,e];let i=++r>t.maxDepth,{message:a,cause:c,...l}=e,u={message:a,...typeof c<"u"?{cause:c}:{},...e instanceof AggregateError?{errors:e.errors}:{},...l},f=e.name!=="Error"?e.name:Mn(e);return i?`[${f}]`:`${f} {${nn(Object.entries(u).values(),t,n,r,o,s)}}`}};function wp(e){return e.serialize!=null}function ja(e,t,n,r,o,s){let i;try{i=wp(e)?e.serialize(t,n,r,o,s,ht):e.print(t,a=>ht(a,n,r,o,s),a=>{let c=r+n.indent;return c+a.replaceAll(dp,`
|
|
3
3
|
${c}`)},{edgeSpacing:n.spacingOuter,min:n.min,spacing:n.spacingInner},n.colors);}catch(a){throw new kn(a.message,a.stack)}if(typeof i!="string")throw new TypeError(`pretty-format: Plugin must return type "string" but instead returned "${typeof i}".`);return i}function Fa(e,t){for(let n of e)try{if(n.test(t))return n}catch(r){throw new kn(r.message,r.stack)}return null}function ht(e,t,n,r,o,s){let i=Fa(t.plugins,e);if(i!==null)return ja(i,e,t,n,r,o);let a=ka(e,t.printFunctionName,t.escapeRegex,t.escapeString);return a!==null?a:Ra(e,t,n,r,o,s)}var xo={comment:"gray",content:"reset",prop:"yellow",tag:"cyan",value:"green"},Da=Object.keys(xo),Ge={callToJSON:true,compareKeys:void 0,escapeRegex:false,escapeString:true,highlight:false,indent:2,maxDepth:Number.POSITIVE_INFINITY,maxWidth:Number.POSITIVE_INFINITY,min:false,plugins:[],printBasicPrototype:true,printFunctionName:true,theme:xo};function vp(e){for(let t of Object.keys(e))if(!Object.prototype.hasOwnProperty.call(Ge,t))throw new Error(`pretty-format: Unknown option "${t}".`);if(e.min&&e.indent!==void 0&&e.indent!==0)throw new Error('pretty-format: Options "min" and "indent" cannot be used together.')}function Sp(){return Da.reduce((e,t)=>{let n=xo[t],r=n&&le[n];if(r&&typeof r.close=="string"&&typeof r.open=="string")e[t]=r;else throw new Error(`pretty-format: Option "theme" has a key "${t}" whose value "${n}" is undefined in ansi-styles.`);return e},Object.create(null))}function Tp(){return Da.reduce((e,t)=>(e[t]={close:"",open:""},e),Object.create(null))}function La(e){return e?.printFunctionName??Ge.printFunctionName}function qa(e){return e?.escapeRegex??Ge.escapeRegex}function Ba(e){return e?.escapeString??Ge.escapeString}function Sa(e){return {callToJSON:e?.callToJSON??Ge.callToJSON,colors:e?.highlight?Sp():Tp(),compareKeys:typeof e?.compareKeys=="function"||e?.compareKeys===null?e.compareKeys:Ge.compareKeys,escapeRegex:qa(e),escapeString:Ba(e),indent:e?.min?"":Ep(e?.indent??Ge.indent),maxDepth:e?.maxDepth??Ge.maxDepth,maxWidth:e?.maxWidth??Ge.maxWidth,min:e?.min??Ge.min,plugins:e?.plugins??Ge.plugins,printBasicPrototype:e?.printBasicPrototype??true,printFunctionName:La(e),spacingInner:e?.min?" ":`
|
|
4
4
|
`,spacingOuter:e?.min?"":`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aave/client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "The official JavaScript client for the Aave API",
|
|
5
5
|
"repository": {
|
|
6
6
|
"directory": "packages/client",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"dependencies": {
|
|
71
71
|
"@urql/core": "^5.2.0",
|
|
72
72
|
"graphql": "^16.11.0",
|
|
73
|
-
"@aave/graphql": "0.
|
|
73
|
+
"@aave/graphql": "0.5.0",
|
|
74
74
|
"@aave/types": "0.1.0"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
package/dist/chunk-XAKMUIVL.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {OrderDirection,ChainsFilter,MarketsQuery,MarketQuery,UserMarketStateQuery,HealthQuery,ChainsQuery,UsdExchangeRatesQuery,HasProcessedKnownTransactionQuery,HealthFactorPreviewQuery,PermitTypedDataQuery,ReserveQuery,BorrowAPYHistoryQuery,SupplyAPYHistoryQuery,BorrowQuery,SupplyQuery,RepayQuery,WithdrawQuery,UserSetEmodeQuery,VaultDepositQuery,VaultRedeemSharesQuery,VaultDeployQuery,VaultSetFeeQuery,VaultWithdrawFeesQuery,VaultWithdrawQuery,VaultMintSharesQuery,CollateralToggleQuery,LiquidateQuery,ApproveBorrowCreditDelegationQuery,CreditDelegateeAllowanceQuery,UserSuppliesQuery,UserBorrowsQuery,UserTransactionHistoryQuery,VaultQuery,VaultsQuery,UserVaultsQuery,VaultPreviewDepositQuery,VaultPreviewMintQuery,VaultPreviewWithdrawQuery,VaultPreviewRedeemQuery,VaultUserTransactionHistoryQuery}from'@aave/graphql';var r={tokenName:OrderDirection.Asc};function J(e,{chainIds:t,borrowsOrderBy:u=r,suppliesOrderBy:s=r,user:n}){return e.query(MarketsQuery,{request:{chainIds:t,user:n},borrowsOrderBy:u,suppliesOrderBy:s})}function X(e,{address:t,chainId:u,user:s,borrowsOrderBy:n=r,suppliesOrderBy:o=r}){return e.query(MarketQuery,{request:{address:t,chainId:u,user:s},borrowsOrderBy:n,suppliesOrderBy:o})}function Z(e,t){return e.query(UserMarketStateQuery,{request:t})}function ee(e){return e.query(HealthQuery,{})}function te(e,t=ChainsFilter.ALL){return e.query(ChainsQuery,{filter:t})}function re(e,t){return e.query(UsdExchangeRatesQuery,{request:t})}function ue(e,t){return e.query(HasProcessedKnownTransactionQuery,{request:t})}function se(e,t){return e.query(HealthFactorPreviewQuery,{request:t})}function ae(e,t){return e.query(PermitTypedDataQuery,{request:t})}function ye(e,t){return e.query(ReserveQuery,{request:t})}function le(e,t){return e.query(BorrowAPYHistoryQuery,{request:t})}function ce(e,t){return e.query(SupplyAPYHistoryQuery,{request:t})}function qe(e,t){return e.query(BorrowQuery,{request:t})}function Ae(e,t){return e.query(SupplyQuery,{request:t})}function ve(e,t){return e.query(RepayQuery,{request:t})}function xe(e,t){return e.query(WithdrawQuery,{request:t})}function me(e,t){return e.query(UserSetEmodeQuery,{request:t})}function Ue(e,t){return e.query(VaultDepositQuery,{request:t})}function fe(e,t){return e.query(VaultRedeemSharesQuery,{request:t})}function Ee(e,t){return e.query(VaultDeployQuery,{request:t})}function we(e,t){return e.query(VaultSetFeeQuery,{request:t})}function Ce(e,t){return e.query(VaultWithdrawFeesQuery,{request:t})}function Pe(e,t){return e.query(VaultWithdrawQuery,{request:t})}function Ve(e,t){return e.query(VaultMintSharesQuery,{request:t})}function he(e,t){return e.query(CollateralToggleQuery,{request:t})}function Te(e,t){return e.query(LiquidateQuery,{request:t})}function Qe(e,t){return e.query(ApproveBorrowCreditDelegationQuery,{request:t})}function Se(e,t){return e.query(CreditDelegateeAllowanceQuery,{request:t})}function ge(e,t){return e.query(UserSuppliesQuery,{request:t})}function He(e,t){return e.query(UserBorrowsQuery,{request:t})}function Be(e,t){return e.query(UserTransactionHistoryQuery,{request:t})}function We(e,t){return e.query(VaultQuery,{request:t})}function Oe(e,t){return e.query(VaultsQuery,{request:t})}function Ye(e,t){return e.query(UserVaultsQuery,{request:t})}function be(e,t){return e.query(VaultPreviewDepositQuery,{request:t})}function Ie(e,t){return e.query(VaultPreviewMintQuery,{request:t})}function Le(e,t){return e.query(VaultPreviewWithdrawQuery,{request:t})}function Ke(e,t){return e.query(VaultPreviewRedeemQuery,{request:t})}function Ne(e,t){return e.query(VaultUserTransactionHistoryQuery,{request:t})}export{Te as A,Qe as B,Se as C,ge as D,He as E,Be as F,We as G,Oe as H,Ye as I,be as J,Ie as K,Le as L,Ke as M,Ne as N,r as a,J as b,X as c,Z as d,ee as e,te as f,re as g,ue as h,se as i,ae as j,ye as k,le as l,ce as m,qe as n,Ae as o,ve as p,xe as q,me as r,Ue as s,fe as t,Ee as u,we as v,Ce as w,Pe as x,Ve as y,he as z};//# sourceMappingURL=chunk-XAKMUIVL.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-XAKMUIVL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/actions/markets.ts","../src/actions/misc.ts","../src/actions/permits.ts","../src/actions/reserve.ts","../src/actions/transactions.ts","../src/actions/user.ts","../src/actions/vaults.ts"],"names":["defaultMarketReservesRequestOrderBy","OrderDirection","markets","client","chainIds","borrowsOrderBy","suppliesOrderBy","user","MarketsQuery","market","address","chainId","MarketQuery","userMarketState","request","UserMarketStateQuery","health","HealthQuery","chains","filter","ChainsFilter","ChainsQuery","usdExchangeRates","UsdExchangeRatesQuery","hasProcessedKnownTransaction","HasProcessedKnownTransactionQuery","healthFactorPreview","HealthFactorPreviewQuery","permitTypedData","PermitTypedDataQuery","reserve","ReserveQuery","borrowAPYHistory","BorrowAPYHistoryQuery","supplyAPYHistory","SupplyAPYHistoryQuery","borrow","BorrowQuery","supply","SupplyQuery","repay","RepayQuery","withdraw","WithdrawQuery","userSetEmode","UserSetEmodeQuery","vaultDeposit","VaultDepositQuery","vaultRedeemShares","VaultRedeemSharesQuery","vaultDeploy","VaultDeployQuery","vaultSetFee","VaultSetFeeQuery","vaultWithdrawFees","VaultWithdrawFeesQuery","vaultWithdraw","VaultWithdrawQuery","vaultMintShares","VaultMintSharesQuery","collateralToggle","CollateralToggleQuery","liquidate","LiquidateQuery","approveBorrowCreditDelegation","ApproveBorrowCreditDelegationQuery","creditDelegateeAllowance","CreditDelegateeAllowanceQuery","userSupplies","UserSuppliesQuery","userBorrows","UserBorrowsQuery","userTransactionHistory","UserTransactionHistoryQuery","vault","VaultQuery","vaults","VaultsQuery","userVaults","UserVaultsQuery","vaultPreviewDeposit","VaultPreviewDepositQuery","vaultPreviewMint","VaultPreviewMintQuery","vaultPreviewWithdraw","VaultPreviewWithdrawQuery","vaultPreviewRedeem","VaultPreviewRedeemQuery","vaultUserTransactionHistory","VaultUserTransactionHistoryQuery"],"mappings":"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","file":"chunk-XAKMUIVL.js","sourcesContent":["import {\n type Market,\n MarketQuery,\n type MarketReservesRequestOrderBy,\n MarketsQuery,\n type MarketUserState,\n OrderDirection,\n UserMarketStateQuery,\n type UserMarketStateRequest,\n} from '@aave/graphql';\nimport type { ChainId, EvmAddress, ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\nexport const defaultMarketReservesRequestOrderBy: MarketReservesRequestOrderBy =\n {\n tokenName: OrderDirection.Asc,\n };\n\nexport type MarketsRequest = {\n /**\n * The markets you want to see based on the chain ids.\n */\n chainIds: ChainId[];\n /**\n * The user viewing the market (e.g., the connected wallet).\n *\n * If not provided, user fields will not be included.\n */\n user?: EvmAddress;\n /**\n * The order by clause for the borrow reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n borrowsOrderBy?: MarketReservesRequestOrderBy;\n /**\n * The order by clause for the supply reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n suppliesOrderBy?: MarketReservesRequestOrderBy;\n};\n\n/**\n * Fetches all markets for the specified chain IDs.\n *\n * ```ts\n * const result = await markets(client, {\n * chainIds: [chainId(1), chainId(8453)],\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The markets request parameters.\n * @returns The list of markets.\n */\nexport function markets(\n client: AaveClient,\n {\n chainIds,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n user,\n }: MarketsRequest,\n): ResultAsync<Market[], UnexpectedError> {\n return client.query(MarketsQuery, {\n request: { chainIds, user },\n borrowsOrderBy,\n suppliesOrderBy,\n });\n}\n\nexport type MarketRequest = {\n /**\n * The pool address for the market.\n */\n address: EvmAddress;\n\n /**\n * The chain id the market pool address is deployed on.\n */\n chainId: ChainId;\n /**\n * The user viewing the market (e.g., the connected wallet).\n *\n * If not provided, user fields will not be included.\n */\n user?: EvmAddress;\n /**\n * The order by clause for the borrow reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n borrowsOrderBy?: MarketReservesRequestOrderBy;\n /**\n * The order by clause for the supply reserves in the market.\n *\n * @defaultValue { tokenName: OrderDirection.Asc }\n */\n suppliesOrderBy?: MarketReservesRequestOrderBy;\n};\n\n/**\n * Fetches a specific market by address and chain ID.\n *\n * ```ts\n * const result = await market(client, {\n * address: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * chainId: chainId(1),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The market request parameters.\n * @returns The market data, or null if not found.\n */\nexport function market(\n client: AaveClient,\n {\n address,\n chainId,\n user,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n }: MarketRequest,\n): ResultAsync<Market | null, UnexpectedError> {\n return client.query(MarketQuery, {\n request: { address, chainId, user },\n borrowsOrderBy,\n suppliesOrderBy,\n });\n}\n\n/**\n * Fetches user account market data across all reserves.\n *\n * ```ts\n * const result = await userMarketState(client, {\n * market: evmAddress('0x1234…'),\n * user: evmAddress('0x5678…'),\n * chainId: chainId(1)\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user market state request parameters.\n * @returns The user's market state.\n */\nexport function userMarketState(\n client: AaveClient,\n request: UserMarketStateRequest,\n): ResultAsync<MarketUserState, UnexpectedError> {\n return client.query(UserMarketStateQuery, { request });\n}\n","import {\n type Chain,\n ChainsFilter,\n ChainsQuery,\n HasProcessedKnownTransactionQuery,\n type HasProcessedKnownTransactionRequest,\n HealthFactorPreviewQuery,\n type HealthFactorPreviewRequest,\n type HealthFactorPreviewResponse,\n HealthQuery,\n type UsdExchangeRate,\n UsdExchangeRatesQuery,\n type UsdExchangeRatesRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Health check query.\n *\n * ```ts\n * const result = await health(client);\n * ```\n *\n * @param client - Aave client.\n * @returns True or false\n */\nexport function health(\n client: AaveClient,\n): ResultAsync<boolean, UnexpectedError> {\n return client.query(HealthQuery, {});\n}\n\n/**\n * Fetches the list of supported chains.\n *\n * ```ts\n * const result = await chains(client, ChainsFilter.MAINNET_ONLY);\n * ```\n *\n * @param client - Aave client.\n * @param filter - The filter for the chains.\n * @returns The list of supported chains.\n */\nexport function chains(\n client: AaveClient,\n filter: ChainsFilter = ChainsFilter.ALL,\n): ResultAsync<Chain[], UnexpectedError> {\n return client.query(ChainsQuery, { filter });\n}\n\n/**\n * Fetches USD exchange rates for different tokens on a given market.\n *\n * ```ts\n * const result = await usdExchangeRates(client, {\n * market: evmAddress('0x1234…'),\n * underlyingTokens: [evmAddress('0x5678…'), evmAddress('0x90ab…')],\n * chainId: chainId(1),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The USD exchange rates request parameters.\n * @returns The list of USD exchange rates.\n */\nexport function usdExchangeRates(\n client: AaveClient,\n request: UsdExchangeRatesRequest,\n): ResultAsync<UsdExchangeRate[], UnexpectedError> {\n return client.query(UsdExchangeRatesQuery, { request });\n}\n\n/**\n * Checks if the API has processed a known transaction hash.\n *\n * This is useful to know when cached data has been invalidated after\n * a transaction is complete, as the API uses caching and has an\n * invalidation task that may take 100-200ms longer.\n *\n * ```ts\n * const result = await borrow(client, request)\n * .andThen(sendWith(wallet))\n * .andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error\n * return;\n * }\n *\n * // Check if the transaction has been processed by the API\n * const processed = await hasProcessedKnownTransaction(client, {\n * txHash: result.value,\n * operation: OperationType.Borrow\n * });\n *\n * if (processed.isErr()) {\n * // Handle error\n * return;\n * }\n *\n * if (processed.value) {\n * // Transaction processed, cached data is up to date\n * console.log('Transaction processed, data is fresh');\n * } else {\n * // Transaction not yet processed, may need to wait\n * console.log('Transaction not yet processed');\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The request containing transaction hash and operation type to check.\n * @returns True if the transaction has been processed, false otherwise.\n */\nexport function hasProcessedKnownTransaction(\n client: AaveClient,\n request: HasProcessedKnownTransactionRequest,\n): ResultAsync<boolean, UnexpectedError> {\n return client.query(HasProcessedKnownTransactionQuery, { request });\n}\n\n/**\n * Fetches health factor preview for a given market action.\n *\n * ```ts\n * const result = await healthFactorPreview(client, {\n * action: {\n * borrow: {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '1000',\n * },\n * },\n * borrower: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * },\n * },\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The health factor preview request parameters.\n * @returns The health factor preview response with before and after values.\n */\nexport function healthFactorPreview(\n client: AaveClient,\n request: HealthFactorPreviewRequest,\n): ResultAsync<HealthFactorPreviewResponse, UnexpectedError> {\n return client.query(HealthFactorPreviewQuery, { request });\n}\n","import {\n PermitTypedDataQuery,\n type PermitTypedDataRequest,\n type PermitTypedDataResponse,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Generates EIP-712 typed data for ERC-20 permit signature.\n *\n * ```ts\n * const result = await permitTypedData(client, {\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * amount: '1.5',\n * chainId: chainId(1),\n * spender: evmAddress('0x123...'),\n * owner: evmAddress('0x456...'),\n * });\n *\n * if (result.isOk()) {\n * const typedData = result.value;\n * // Use typedData for permit signing\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The permit typed data request parameters.\n * @returns The EIP-712 typed data for permit signature.\n */\nexport function permitTypedData(\n client: AaveClient,\n request: PermitTypedDataRequest,\n): ResultAsync<PermitTypedDataResponse, UnexpectedError> {\n return client.query(PermitTypedDataQuery, { request });\n}\n","import {\n type APYSample,\n BorrowAPYHistoryQuery,\n type BorrowAPYHistoryRequest,\n type Reserve,\n ReserveQuery,\n type ReserveRequest,\n SupplyAPYHistoryQuery,\n type SupplyAPYHistoryRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Fetches a specific reserve by market address, token address, and chain ID.\n *\n * ```ts\n * const result = await reserve(client, {\n * market: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * underlyingToken: evmAddress('0xa0b86a33e6441c8c5f0bb9b7e5e1f8bbf5b78b5c'),\n * chainId: chainId(1),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The reserve request parameters.\n * @returns The reserve data, or null if not found.\n */\nexport function reserve(\n client: AaveClient,\n request: ReserveRequest,\n): ResultAsync<Reserve | null, UnexpectedError> {\n return client.query(ReserveQuery, {\n request,\n });\n}\n\n/**\n * Fetches historical borrow APY data for a given underlying asset on a specific market,\n * within a defined time window.\n *\n * The returned data represents APY samples over time, or `null` if unavailable.\n *\n * @param client - The Aave client instance used to perform the query.\n * @param request - The borrow APY history request parameters.\n * @returns A `ResultAsync` containing an array of APY samples, or `null` if not found.\n */\n\nexport function borrowAPYHistory(\n client: AaveClient,\n request: BorrowAPYHistoryRequest,\n): ResultAsync<APYSample[] | null, UnexpectedError> {\n return client.query(BorrowAPYHistoryQuery, {\n request,\n });\n}\n\n/**\n * Fetches historical supply APY data for a given underlying asset on a specific market,\n * within a defined time window.\n *\n * The returned data represents APY samples over time, or `null` if unavailable.\n *\n * @param client - The Aave client instance used to perform the query.\n * @param request - The supply APY history request parameters.\n * @returns A `ResultAsync` containing an array of APY samples, or `null` if not found.\n */\n\nexport function supplyAPYHistory(\n client: AaveClient,\n request: SupplyAPYHistoryRequest,\n): ResultAsync<APYSample[] | null, UnexpectedError> {\n return client.query(SupplyAPYHistoryQuery, {\n request,\n });\n}\n","import {\n ApproveBorrowCreditDelegationQuery,\n type ApproveBorrowCreditDelegatorRequest,\n BorrowQuery,\n type BorrowRequest,\n CollateralToggleQuery,\n type CollateralToggleRequest,\n CreditDelegateeAllowanceQuery,\n type CreditDelegateeAmountRequest,\n type ExecutionPlan,\n LiquidateQuery,\n type LiquidateRequest,\n RepayQuery,\n type RepayRequest,\n SupplyQuery,\n type SupplyRequest,\n type TokenAmount,\n type TransactionRequest,\n UserSetEmodeQuery,\n type UserSetEmodeRequest,\n VaultDeployQuery,\n type VaultDeployRequest,\n VaultDepositQuery,\n type VaultDepositRequest,\n VaultMintSharesQuery,\n type VaultMintSharesRequest,\n VaultRedeemSharesQuery,\n type VaultRedeemSharesRequest,\n VaultSetFeeQuery,\n type VaultSetFeeRequest,\n VaultWithdrawFeesQuery,\n type VaultWithdrawFeesRequest,\n VaultWithdrawQuery,\n type VaultWithdrawRequest,\n WithdrawQuery,\n type WithdrawRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Creates a transaction to borrow from a market.\n *\n * ```ts\n * const result = await borrow(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '1000',\n * },\n * },\n * borrower: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The borrow request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function borrow(\n client: AaveClient,\n request: BorrowRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(BorrowQuery, { request });\n}\n\n/**\n * Creates a transaction to supply to a market.\n *\n * ```ts\n * const result = await supply(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '1000',\n * },\n * },\n * supplier: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The supply request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function supply(\n client: AaveClient,\n request: SupplyRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(SupplyQuery, { request });\n}\n\n/**\n * Creates a transaction to repay to a market.\n *\n * ```ts\n * const result = await repay(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: {\n * exact: '500',\n * },\n * },\n * },\n * borrower: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The repay request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function repay(\n client: AaveClient,\n request: RepayRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(RepayQuery, { request });\n}\n\n/**\n * Creates a transaction to withdraw from a market.\n *\n * ```ts\n * const result = await withdraw(client, {\n * market: market.address,\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: { exact: '750' },\n * },\n * },\n * supplier: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The withdraw request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function withdraw(\n client: AaveClient,\n request: WithdrawRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(WithdrawQuery, { request });\n}\n\n/**\n * Creates a transaction to enable/disable the user's eMode for a market.\n *\n * **Example: Enable a Specific eMode**\n * ```ts\n * const result = await userSetEmode(client, {\n * market: market.address,\n * user: evmAddress('0x5678…'),\n * categoryId: market.eModeCategories[0].id,\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * **Example: Disable eMode**\n * ```ts\n * const result = await userSetEmode(client, {\n * market: market.address,\n * user: evmAddress('0x5678…'),\n * categoryId: null,\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The user set eMode request parameters.\n * @returns The transaction request data to set eMode.\n */\nexport function userSetEmode(\n client: AaveClient,\n request: UserSetEmodeRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(UserSetEmodeQuery, { request });\n}\n\n/**\n * Creates a transaction to deposit assets into a vault and mint shares.\n *\n * ```ts\n * const result = await vaultDeposit(client, {\n * vault: evmAddress('0x1234…'),\n * amount: {\n * value: '1000',\n * },\n * depositor: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault deposit request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function vaultDeposit(\n client: AaveClient,\n request: VaultDepositRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(VaultDepositQuery, { request });\n}\n\n/**\n * Creates a transaction to redeem vault shares for underlying assets.\n *\n * ```ts\n * const result = await vaultRedeemShares(client, {\n * vault: evmAddress('0x1234…'),\n * shares: {\n * amount: '500',\n * asAToken: false,\n * },\n * sharesOwner: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The redeem vault shares request parameters.\n * @returns The transaction request data to redeem shares.\n */\nexport function vaultRedeemShares(\n client: AaveClient,\n request: VaultRedeemSharesRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultRedeemSharesQuery, { request });\n}\n\n/**\n * Creates an execution plan to deploy a new vault.\n *\n * ```ts\n * const result = await vaultDeploy(client, {\n * underlyingToken: evmAddress('0x1234…'),\n * market: evmAddress('0x5678…'),\n * deployer: evmAddress('0x9abc…'),\n * initialFee: '0.1',\n * shareName: 'Aave Vault Shares',\n * shareSymbol: 'avs',\n * initialLockDeposit: '1000',\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, insufficient balance, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The deploy vault request parameters.\n * @returns The execution plan data to deploy a vault. May require approval transactions.\n */\nexport function vaultDeploy(\n client: AaveClient,\n request: VaultDeployRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(VaultDeployQuery, { request });\n}\n\n/**\n * Creates a transaction to set the vault fee (owner only).\n *\n * ```ts\n * const result = await vaultSetFee(client, {\n * vault: evmAddress('0x1234…'),\n * newFee: '0.2',\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The set vault fee request parameters.\n * @returns The transaction request data to set vault fee.\n */\nexport function vaultSetFee(\n client: AaveClient,\n request: VaultSetFeeRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultSetFeeQuery, { request });\n}\n\n/**\n * Creates a transaction to withdraw accumulated fees from a vault (owner only).\n *\n * ```ts\n * const result = await vaultWithdrawFees(client, {\n * vault: evmAddress('0x1234…'),\n * amount: '100',\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The withdraw vault fees request parameters.\n * @returns The transaction request data to withdraw vault fees.\n */\nexport function vaultWithdrawFees(\n client: AaveClient,\n request: VaultWithdrawFeesRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultWithdrawFeesQuery, { request });\n}\n\n/**\n * Creates a transaction to withdraw assets from a vault, burning shares.\n *\n * ```ts\n * const result = await vaultWithdraw(client, {\n * vault: evmAddress('0x1234…'),\n * amount: {\n * value: '500',\n * },\n * sharesOwner: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The withdraw vault request parameters.\n * @returns The transaction request data to withdraw from vault.\n */\nexport function vaultWithdraw(\n client: AaveClient,\n request: VaultWithdrawRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(VaultWithdrawQuery, { request });\n}\n\n/**\n * Creates a transaction to mint exact amount of vault shares by depositing calculated assets.\n *\n * ```ts\n * const result = await vaultMintShares(client, {\n * vault: evmAddress('0x1234…'),\n * shares: {\n * amount: '1000',\n * asAToken: false,\n * },\n * minter: evmAddress('0x9abc…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. insufficient balance, signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The mint vault shares request parameters.\n * @returns The transaction data, approval requirements, or insufficient balance error.\n */\nexport function vaultMintShares(\n client: AaveClient,\n request: VaultMintSharesRequest,\n): ResultAsync<ExecutionPlan, UnexpectedError> {\n return client.query(VaultMintSharesQuery, { request });\n}\n\n/**\n * Creates a transaction to enable/disable a specific supplied asset as collateral.\n *\n * ```ts\n * const result = await collateralToggle(client, {\n * market: market.address,\n * underlyingToken: market.supplyReserves[n].underlyingToken.address,\n * user: evmAddress('0x9abc…'),\n * chainId: market.chain.chainId,\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The collateral toggle request parameters.\n * @returns The transaction request data to toggle collateral.\n */\nexport function collateralToggle(\n client: AaveClient,\n request: CollateralToggleRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(CollateralToggleQuery, { request });\n}\n\n/**\n * Creates a transaction to liquidate a non-healthy position with Health Factor below 1.\n *\n * ```ts\n * const result = await liquidate(client, {\n * collateralToken: evmAddress('0x1234…'),\n * debtToken: evmAddress('0x5678…'),\n * user: evmAddress('0x9abc…'),\n * debtToCover: { max: true },\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The liquidate request parameters.\n * @returns The transaction request data to liquidate position.\n */\nexport function liquidate(\n client: AaveClient,\n request: LiquidateRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(LiquidateQuery, { request });\n}\n\n/**\n * Creates a transaction to approve a credit borrow delegator to be able to borrow on your behalf.\n *\n * ```ts\n * const result = await approveBorrowCreditDelegation(client, {\n * market: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * underlyingToken: evmAddress('0xa0b86a33e6441c8c5f0bb9b7e5e1f8bbf5b78b5c'),\n * amount: '1000',\n * user: evmAddress('0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234'),\n * delegatee: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * }).andThen(sendWith(wallet)).andThen(client.waitForTransaction);\n *\n * if (result.isErr()) {\n * // Handle error, e.g. signing error, etc.\n * return;\n * }\n *\n * // result.value: TxHash\n * ```\n *\n * @param client - Aave client.\n * @param request - The approve borrow credit delegation request parameters.\n * @returns The transaction request data to approve credit delegation.\n */\nexport function approveBorrowCreditDelegation(\n client: AaveClient,\n request: ApproveBorrowCreditDelegatorRequest,\n): ResultAsync<TransactionRequest, UnexpectedError> {\n return client.query(ApproveBorrowCreditDelegationQuery, { request });\n}\n\n/**\n * Gets the amount delegated to the credit delegatee that can borrow on your behalf.\n *\n * ```ts\n * const result = await creditDelegateeAllowance(client, {\n * market: evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2'),\n * underlyingToken: evmAddress('0xa0b86a33e6441c8c5f0bb9b7e5e1f8bbf5b78b5c'),\n * user: evmAddress('0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234'),\n * delegatee: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * });\n *\n * if (result.isErr()) {\n * // Handle error\n * return;\n * }\n *\n * // result.value: TokenAmount with credit delegation allowance\n * ```\n *\n * @param client - Aave client.\n * @param request - The credit delegatee allowance request parameters.\n * @returns The token amount representing the credit delegation allowance.\n */\nexport function creditDelegateeAllowance(\n client: AaveClient,\n request: CreditDelegateeAmountRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(CreditDelegateeAllowanceQuery, { request });\n}\n","import {\n type MarketUserReserveBorrowPosition,\n type MarketUserReserveSupplyPosition,\n type PaginatedUserTransactionHistoryResult,\n UserBorrowsQuery,\n type UserBorrowsRequest,\n UserSuppliesQuery,\n type UserSuppliesRequest,\n UserTransactionHistoryQuery,\n type UserTransactionHistoryRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Fetches all user supply positions across the specified markets.\n *\n * ```ts\n * const result = await userSupplies(client, {\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user supplies request parameters.\n * @returns The user's supply positions.\n */\nexport function userSupplies(\n client: AaveClient,\n request: UserSuppliesRequest,\n): ResultAsync<MarketUserReserveSupplyPosition[], UnexpectedError> {\n return client.query(UserSuppliesQuery, { request });\n}\n\n/**\n * Fetches all user borrow positions.\n *\n * ```ts\n * const result = await userBorrows(client, {\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user borrows request parameters.\n * @returns The user's borrow positions.\n */\nexport function userBorrows(\n client: AaveClient,\n request: UserBorrowsRequest,\n): ResultAsync<MarketUserReserveBorrowPosition[], UnexpectedError> {\n return client.query(UserBorrowsQuery, { request });\n}\n\n/**\n * Fetches the user's transaction history for a given market.\n *\n * ```ts\n * const result = await userTransactionHistory(client, {\n * chainId: chainId(1),\n * market: evmAddress('0x87870bca…'),\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user transaction history request parameters.\n * @returns The user's paginated transaction history.\n */\nexport function userTransactionHistory(\n client: AaveClient,\n request: UserTransactionHistoryRequest,\n): ResultAsync<PaginatedUserTransactionHistoryResult, UnexpectedError> {\n return client.query(UserTransactionHistoryQuery, { request });\n}\n","import {\n type PaginatedVaultsResult,\n type PaginatedVaultUserTransactionHistoryResult,\n type TokenAmount,\n UserVaultsQuery,\n type UserVaultsRequest,\n type Vault,\n VaultPreviewDepositQuery,\n type VaultPreviewDepositRequest,\n VaultPreviewMintQuery,\n type VaultPreviewMintRequest,\n VaultPreviewRedeemQuery,\n type VaultPreviewRedeemRequest,\n VaultPreviewWithdrawQuery,\n type VaultPreviewWithdrawRequest,\n VaultQuery,\n type VaultRequest,\n VaultsQuery,\n type VaultsRequest,\n VaultUserTransactionHistoryQuery,\n type VaultUserTransactionHistoryRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport type { AaveClient } from '../client';\nimport type { UnexpectedError } from '../errors';\n\n/**\n * Fetches a specific vault by address and chain ID.\n *\n * **Example: By Address**\n * ```ts\n * const result = await vault(client, {\n * by: {\n * address: evmAddress('0x1234…'),\n * },\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * });\n * ```\n *\n * **Example: Tx Hash**\n * ```ts\n * const result = await vault(client, {\n * by: {\n * txHash: txHash('0x1234…'),\n * },\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault request parameters.\n * @returns The vault data, or null if not found.\n */\nexport function vault(\n client: AaveClient,\n request: VaultRequest,\n): ResultAsync<Vault | null, UnexpectedError> {\n return client.query(VaultQuery, {\n request,\n });\n}\n\n/**\n * Fetches vaults based on filter criteria.\n *\n * ```ts\n * const result = await vaults(client, {\n * criteria: {\n * ownedBy: [evmAddress('0x1234…')]\n * },\n * pageSize: PageSize.Ten,\n * user: evmAddress('0x5678…'),\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The vaults request parameters.\n * @returns The paginated vaults result.\n */\nexport function vaults(\n client: AaveClient,\n request: VaultsRequest,\n): ResultAsync<PaginatedVaultsResult, UnexpectedError> {\n return client.query(VaultsQuery, {\n request,\n });\n}\n\n/**\n * Fetches vaults that a user has shares in.\n *\n * ```ts\n * const result = await userVaults(client, {\n * user: evmAddress('0x1234…'),\n * filters: {\n * markets: [evmAddress('0x5678…')]\n * },\n * orderBy: { shares: OrderDirection.Desc },\n * pageSize: PageSize.Fifty,\n * });\n * ```\n *\n * @param client - Aave client.\n * @param request - The user vaults request parameters.\n * @returns The paginated user vaults result.\n */\nexport function userVaults(\n client: AaveClient,\n request: UserVaultsRequest,\n): ResultAsync<PaginatedVaultsResult, UnexpectedError> {\n return client.query(UserVaultsQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of shares that would be received for a deposit.\n *\n * ```ts\n * const result = await vaultPreviewDeposit(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('1000'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Shares to receive:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview deposit request parameters.\n * @returns The simulated shares amount that would be received.\n */\nexport function vaultPreviewDeposit(\n client: AaveClient,\n request: VaultPreviewDepositRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewDepositQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of assets that would be required to mint a specific amount of vault shares.\n *\n * ```ts\n * const result = await vaultPreviewMint(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('500'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Assets required:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview mint request parameters.\n * @returns The simulated assets amount that would be required.\n */\nexport function vaultPreviewMint(\n client: AaveClient,\n request: VaultPreviewMintRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewMintQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of shares that would be burned for a withdrawal.\n *\n * ```ts\n * const result = await vaultPreviewWithdraw(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('750'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Shares to burn:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview withdraw request parameters.\n * @returns The simulated shares amount that would be burned.\n */\nexport function vaultPreviewWithdraw(\n client: AaveClient,\n request: VaultPreviewWithdrawRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewWithdrawQuery, {\n request,\n });\n}\n\n/**\n * Determines the amount of assets that would be received for redeeming a specific amount of vault shares.\n *\n * ```ts\n * const result = await vaultPreviewRedeem(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('200'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Assets to receive:', result.value.amount.value);\n * console.log('USD value:', result.value.usd);\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault preview redeem request parameters.\n * @returns The simulated assets amount that would be received.\n */\nexport function vaultPreviewRedeem(\n client: AaveClient,\n request: VaultPreviewRedeemRequest,\n): ResultAsync<TokenAmount, UnexpectedError> {\n return client.query(VaultPreviewRedeemQuery, {\n request,\n });\n}\n\n/**\n * Fetches the user transaction history for a vault.\n *\n * ```ts\n * const result = await vaultUserTransactionHistory(client, {\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n *\n * if (result.isOk()) {\n * console.log('Transaction count:', result.value.items.length);\n * result.value.items.forEach(tx => {\n * if (tx.__typename === 'VaultUserDepositItem') {\n * console.log('Deposit:', tx.asset.amount.value, 'shares:', tx.shares.amount.value);\n * } else if (tx.__typename === 'VaultUserWithdrawItem') {\n * console.log('Withdraw:', tx.asset.amount.value, 'shares:', tx.shares.amount.value);\n * }\n * });\n * }\n * ```\n *\n * @param client - Aave client.\n * @param request - The vault user transaction history request parameters.\n * @returns The paginated vault user transaction history result.\n */\nexport function vaultUserTransactionHistory(\n client: AaveClient,\n request: VaultUserTransactionHistoryRequest,\n): ResultAsync<PaginatedVaultUserTransactionHistoryResult, UnexpectedError> {\n return client.query(VaultUserTransactionHistoryQuery, {\n request,\n });\n}\n"]}
|