@aave/react 0.6.1 → 0.7.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/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var client=require('@aave/client'),d=require('react'),types=require('@aave/types'),urql=require('urql'),actions=require('@aave/client/actions'),graphql=require('@aave/graphql');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var d__default=/*#__PURE__*/_interopDefault(d);var y=d__default.default.createContext(null);function A({children:e,client:t}){return d__default.default.createElement(y.Provider,{value:t},d__default.default.createElement(urql.Provider,{value:t.urql},e))}function s(){let e=d.useContext(y);return types.invariant(e,"Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>"),e}function me({children:e,client:t}){return d__default.default.createElement(A,{client:t},e)}var i={Initial:()=>({data:void 0,error:void 0,loading:true}),Success:e=>({data:e,error:void 0,loading:false}),Failure:e=>({data:void 0,error:e,loading:false})};function r({document:e,variables:t,suspense:u}){let[{data:o,fetching:c,error:l}]=urql.useQuery({query:e,variables:t,context:d.useMemo(()=>({suspense:u}),[u])});if(c)return i.Initial();if(l){let n=client.UnexpectedError.from(l);if(u)throw n;return i.Failure(n)}return types.invariant(o,"No data returned"),i.Success(o.value)}var R={Idle:()=>({called:false,loading:false,data:void 0,error:void 0}),Loading:e=>({called:true,loading:true,data:e,error:void 0}),Success:e=>({called:true,loading:false,data:e,error:void 0}),Failed:e=>({called:true,loading:false,data:void 0,error:e})};function a(e){let[t,u]=d.useState(R.Idle());return [d.useCallback(c=>{types.invariant(!t.loading,"Cannot execute a task while another is in progress."),u(({data:n})=>({called:true,loading:true,data:n,error:void 0}));let l=e(c);return l.match(n=>u(R.Success(n)),n=>u(R.Failed(n))),l},[e,t]),t]}function Ye({suspense:e=false,...t}){return r({document:graphql.SavingsGhoBalanceQuery,variables:{request:t},suspense:e})}function We(){let e=s();return a(t=>actions.savingsGhoWithdraw(e,t))}function Fe(){let e=s();return a(t=>actions.savingsGhoDeposit(e,t))}function Ne({suspense:e=false,...t}){return r({document:graphql.UserMeritRewardsQuery,variables:{request:t},suspense:e})}function Je({suspense:e=false,borrowsOrderBy:t=actions.defaultMarketReservesRequestOrderBy,suppliesOrderBy:u=actions.defaultMarketReservesRequestOrderBy,...o}){return r({document:graphql.MarketQuery,variables:{request:o,borrowsOrderBy:t,suppliesOrderBy:u},suspense:e})}function Xe({suspense:e=false,borrowsOrderBy:t=actions.defaultMarketReservesRequestOrderBy,suppliesOrderBy:u=actions.defaultMarketReservesRequestOrderBy,...o}){return r({document:graphql.MarketsQuery,variables:{request:o,borrowsOrderBy:t,suppliesOrderBy:u},suspense:e})}function st({suspense:e=false,filter:t=graphql.ChainsFilter.ALL}){return r({document:graphql.ChainsQuery,variables:{filter:t},suspense:e})}function rt({suspense:e=false}={}){return r({document:graphql.HealthQuery,variables:{},suspense:e})}function at({suspense:e=false,...t}){return r({document:graphql.UsdExchangeRatesQuery,variables:{request:t},suspense:e})}function ut(){let e=s();return a(t=>actions.healthFactorPreview(e,t))}function it({suspense:e=false,...t}){return r({document:graphql.ReserveQuery,variables:{request:t},suspense:e})}function pt({suspense:e=false,...t}){return r({document:graphql.BorrowAPYHistoryQuery,variables:{request:t},suspense:e})}function ct({suspense:e=false,...t}){return r({document:graphql.SupplyAPYHistoryQuery,variables:{request:t},suspense:e})}function dt({suspense:e=false,...t}){return r({document:graphql.CreditDelegateeAllowanceQuery,variables:{request:t},suspense:e})}function gt(){let e=s();return a(t=>actions.supply(e,t))}function ft(){let e=s();return a(t=>actions.borrow(e,t))}function vt(){let e=s();return a(t=>actions.repay(e,t))}function xt(){let e=s();return a(t=>actions.withdraw(e,t))}function St(){let e=s();return a(t=>actions.userSetEmode(e,t))}function mt(){let e=s();return a(t=>actions.collateralToggle(e,t))}function Tt(){let e=s();return a(t=>actions.liquidate(e,t))}function Vt(){let e=s();return a(t=>actions.vaultDeposit(e,t))}function bt(){let e=s();return a(t=>actions.vaultMintShares(e,t))}function qt(){let e=s();return a(t=>actions.vaultRedeemShares(e,t))}function kt(){let e=s();return a(t=>actions.vaultWithdraw(e,t))}function wt(){let e=s();return a(t=>actions.vaultDeploy(e,t))}function ht(){let e=s();return a(t=>actions.vaultSetFee(e,t))}function Pt(){let e=s();return a(t=>actions.vaultWithdrawFees(e,t))}function Et(){let e=s();return a(t=>actions.approveBorrowCreditDelegation(e,t))}function Dt({suspense:e=false,...t}){return r({document:graphql.UserSuppliesQuery,variables:{request:t},suspense:e})}function Bt({suspense:e=false,...t}){return r({document:graphql.UserBorrowsQuery,variables:{request:t},suspense:e})}function Qt({suspense:e=false,...t}){return r({document:graphql.UserMarketStateQuery,variables:{request:t},suspense:e})}function Yt({suspense:e=false,...t}){return r({document:graphql.UserTransactionHistoryQuery,variables:{request:t},suspense:e})}function Nt({suspense:e=false,...t}){return r({document:graphql.VaultQuery,variables:{request:t},suspense:e})}function Kt({suspense:e=false,...t}){return r({document:graphql.VaultsQuery,variables:{request:t},suspense:e})}function Ot({suspense:e=false,...t}){return r({document:graphql.UserVaultsQuery,variables:{request:t},suspense:e})}function jt(){let e=s();return a(t=>actions.vaultPreviewDeposit(e,t))}function zt(){let e=s();return a(t=>actions.vaultPreviewMint(e,t))}function Jt(){let e=s();return a(t=>actions.vaultPreviewWithdraw(e,t))}function Xt(){let e=s();return a(t=>actions.vaultPreviewRedeem(e,t))}function Zt({suspense:e=false,...t}){return r({document:graphql.VaultUserTransactionHistoryQuery,variables:{request:t},suspense:e})}function _t({suspense:e=false,...t}){return r({document:graphql.VaultUserActivityQuery,variables:{request:t},suspense:e})}exports.AaveProvider=me;exports.useAaveChains=st;exports.useAaveClient=s;exports.useAaveHealth=rt;exports.useAaveHealthFactorPreview=ut;exports.useAaveMarket=Je;exports.useAaveMarkets=Xe;exports.useAaveReserve=it;exports.useApproveBorrowCreditDelegation=Et;exports.useBorrow=ft;exports.useBorrowAPYHistory=pt;exports.useCollateralToggle=mt;exports.useCreditDelegateeAllowance=dt;exports.useLiquidate=Tt;exports.useRepay=vt;exports.useSavingsGhoBalance=Ye;exports.useSavingsGhoDeposit=Fe;exports.useSavingsGhoWithdraw=We;exports.useSupply=gt;exports.useSupplyAPYHistory=ct;exports.useUsdExchangeRates=at;exports.useUserBorrows=Bt;exports.useUserEMode=St;exports.useUserMarketState=Qt;exports.useUserMeritRewards=Ne;exports.useUserSupplies=Dt;exports.useUserTransactionHistory=Yt;exports.useUserVaults=Ot;exports.useVault=Nt;exports.useVaultDeploy=wt;exports.useVaultDeposit=Vt;exports.useVaultDepositPreview=jt;exports.useVaultMintPreview=zt;exports.useVaultMintShares=bt;exports.useVaultRedeemPreview=Xt;exports.useVaultRedeemShares=qt;exports.useVaultSetFee=ht;exports.useVaultUserActivity=_t;exports.useVaultUserTransactionHistory=Zt;exports.useVaultWithdraw=kt;exports.useVaultWithdrawFees=Pt;exports.useVaultWithdrawPreview=Jt;exports.useVaults=Kt;exports.useWithdraw=xt;Object.keys(client).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return client[k]}})});//# sourceMappingURL=index.cjs.map
1
+ 'use strict';var client=require('@aave/client'),d=require('react'),types=require('@aave/types'),urql=require('urql'),actions=require('@aave/client/actions'),graphql=require('@aave/graphql');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var d__default=/*#__PURE__*/_interopDefault(d);var y=d__default.default.createContext(null);function A({children:e,client:t}){return d__default.default.createElement(y.Provider,{value:t},d__default.default.createElement(urql.Provider,{value:t.urql},e))}function s(){let e=d.useContext(y);return types.invariant(e,"Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>"),e}function Te({children:e,client:t}){return d__default.default.createElement(A,{client:t},e)}var i={Initial:()=>({data:void 0,error:void 0,loading:true}),Success:e=>({data:e,error:void 0,loading:false}),Failure:e=>({data:void 0,error:e,loading:false})};function r({document:e,variables:t,suspense:u}){let[{data:o,fetching:c,error:l}]=urql.useQuery({query:e,variables:t,context:d.useMemo(()=>({suspense:u}),[u])});if(c)return i.Initial();if(l){let n=client.UnexpectedError.from(l);if(u)throw n;return i.Failure(n)}return types.invariant(o,"No data returned"),i.Success(o.value)}var R={Idle:()=>({called:false,loading:false,data:void 0,error:void 0}),Loading:e=>({called:true,loading:true,data:e,error:void 0}),Success:e=>({called:true,loading:false,data:e,error:void 0}),Failed:e=>({called:true,loading:false,data:void 0,error:e})};function a(e){let[t,u]=d.useState(R.Idle());return [d.useCallback(c=>{types.invariant(!t.loading,"Cannot execute a task while another is in progress."),u(({data:n})=>({called:true,loading:true,data:n,error:void 0}));let l=e(c);return l.match(n=>u(R.Success(n)),n=>u(R.Failed(n))),l},[e,t]),t]}function We({suspense:e=false,...t}){return r({document:graphql.SavingsGhoBalanceQuery,variables:{request:t},suspense:e})}function Fe(){let e=s();return a(t=>actions.savingsGhoWithdraw(e,t))}function Ge(){let e=s();return a(t=>actions.savingsGhoDeposit(e,t))}function Oe({suspense:e=false,...t}){return r({document:graphql.UserMeritRewardsQuery,variables:{request:t},suspense:e})}function Xe({suspense:e=false,borrowsOrderBy:t=actions.defaultMarketReservesRequestOrderBy,suppliesOrderBy:u=actions.defaultMarketReservesRequestOrderBy,...o}){return r({document:graphql.MarketQuery,variables:{request:o,borrowsOrderBy:t,suppliesOrderBy:u},suspense:e})}function Ze({suspense:e=false,borrowsOrderBy:t=actions.defaultMarketReservesRequestOrderBy,suppliesOrderBy:u=actions.defaultMarketReservesRequestOrderBy,...o}){return r({document:graphql.MarketsQuery,variables:{request:o,borrowsOrderBy:t,suppliesOrderBy:u},suspense:e})}function rt({suspense:e=false,filter:t=graphql.ChainsFilter.ALL}){return r({document:graphql.ChainsQuery,variables:{filter:t},suspense:e})}function at({suspense:e=false}={}){return r({document:graphql.HealthQuery,variables:{},suspense:e})}function ut({suspense:e=false,...t}){return r({document:graphql.UsdExchangeRatesQuery,variables:{request:t},suspense:e})}function nt(){let e=s();return a(t=>actions.healthFactorPreview(e,t))}function pt({suspense:e=false,...t}){return r({document:graphql.ReserveQuery,variables:{request:t},suspense:e})}function ct({suspense:e=false,...t}){return r({document:graphql.BorrowAPYHistoryQuery,variables:{request:t},suspense:e})}function dt({suspense:e=false,...t}){return r({document:graphql.SupplyAPYHistoryQuery,variables:{request:t},suspense:e})}function Rt({suspense:e=false,...t}){return r({document:graphql.CreditDelegateeAllowanceQuery,variables:{request:t},suspense:e})}function gt(){let e=s();return a(t=>actions.supply(e,t))}function vt(){let e=s();return a(t=>actions.borrow(e,t))}function xt(){let e=s();return a(t=>actions.repay(e,t))}function St(){let e=s();return a(t=>actions.withdraw(e,t))}function mt(){let e=s();return a(t=>actions.userSetEmode(e,t))}function Tt(){let e=s();return a(t=>actions.collateralToggle(e,t))}function Vt(){let e=s();return a(t=>actions.liquidate(e,t))}function bt(){let e=s();return a(t=>actions.vaultDeposit(e,t))}function qt(){let e=s();return a(t=>actions.vaultMintShares(e,t))}function wt(){let e=s();return a(t=>actions.vaultRedeemShares(e,t))}function ht(){let e=s();return a(t=>actions.vaultWithdraw(e,t))}function kt(){let e=s();return a(t=>actions.vaultDeploy(e,t))}function Pt(){let e=s();return a(t=>actions.vaultSetFee(e,t))}function Et(){let e=s();return a(t=>actions.vaultWithdrawFees(e,t))}function Mt(){let e=s();return a(t=>actions.vaultTransferOwnership(e,t))}function Ht(){let e=s();return a(t=>actions.approveBorrowCreditDelegation(e,t))}function Qt({suspense:e=false,...t}){return r({document:graphql.UserSuppliesQuery,variables:{request:t},suspense:e})}function Yt({suspense:e=false,...t}){return r({document:graphql.UserBorrowsQuery,variables:{request:t},suspense:e})}function Wt({suspense:e=false,...t}){return r({document:graphql.UserMarketStateQuery,variables:{request:t},suspense:e})}function Ft({suspense:e=false,...t}){return r({document:graphql.UserTransactionHistoryQuery,variables:{request:t},suspense:e})}function Kt({suspense:e=false,...t}){return r({document:graphql.VaultQuery,variables:{request:t},suspense:e})}function jt({suspense:e=false,...t}){return r({document:graphql.VaultsQuery,variables:{request:t},suspense:e})}function zt({suspense:e=false,...t}){return r({document:graphql.UserVaultsQuery,variables:{request:t},suspense:e})}function Jt(){let e=s();return a(t=>actions.vaultPreviewDeposit(e,t))}function Xt(){let e=s();return a(t=>actions.vaultPreviewMint(e,t))}function Zt(){let e=s();return a(t=>actions.vaultPreviewWithdraw(e,t))}function _t(){let e=s();return a(t=>actions.vaultPreviewRedeem(e,t))}function $t({suspense:e=false,...t}){return r({document:graphql.VaultUserTransactionHistoryQuery,variables:{request:t},suspense:e})}function es({suspense:e=false,...t}){return r({document:graphql.VaultUserActivityQuery,variables:{request:t},suspense:e})}exports.AaveProvider=Te;exports.useAaveChains=rt;exports.useAaveClient=s;exports.useAaveHealth=at;exports.useAaveHealthFactorPreview=nt;exports.useAaveMarket=Xe;exports.useAaveMarkets=Ze;exports.useAaveReserve=pt;exports.useApproveBorrowCreditDelegation=Ht;exports.useBorrow=vt;exports.useBorrowAPYHistory=ct;exports.useCollateralToggle=Tt;exports.useCreditDelegateeAllowance=Rt;exports.useLiquidate=Vt;exports.useRepay=xt;exports.useSavingsGhoBalance=We;exports.useSavingsGhoDeposit=Ge;exports.useSavingsGhoWithdraw=Fe;exports.useSupply=gt;exports.useSupplyAPYHistory=dt;exports.useUsdExchangeRates=ut;exports.useUserBorrows=Yt;exports.useUserEMode=mt;exports.useUserMarketState=Wt;exports.useUserMeritRewards=Oe;exports.useUserSupplies=Qt;exports.useUserTransactionHistory=Ft;exports.useUserVaults=zt;exports.useVault=Kt;exports.useVaultDeploy=kt;exports.useVaultDeposit=bt;exports.useVaultDepositPreview=Jt;exports.useVaultMintPreview=Xt;exports.useVaultMintShares=qt;exports.useVaultRedeemPreview=_t;exports.useVaultRedeemShares=wt;exports.useVaultSetFee=Pt;exports.useVaultTransferOwnership=Mt;exports.useVaultUserActivity=es;exports.useVaultUserTransactionHistory=$t;exports.useVaultWithdraw=ht;exports.useVaultWithdrawFees=Et;exports.useVaultWithdrawPreview=Zt;exports.useVaults=jt;exports.useWithdraw=St;Object.keys(client).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return client[k]}})});//# sourceMappingURL=index.cjs.map
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/context.tsx","../src/AaveProvider.tsx","../src/helpers/results.ts","../src/helpers/reads.ts","../src/helpers/tasks.ts","../src/gho.ts","../src/incentives.ts","../src/markets.ts","../src/misc.ts","../src/reserves.ts","../src/transactions.ts","../src/user.ts","../src/vaults.ts"],"names":["AaveContext","React","AaveContextProvider","children","client","UrqlProvider","useAaveClient","useContext","invariant","AaveProvider","ReadResult","data","error","useSuspendableQuery","document","variables","suspense","fetching","useQuery","useMemo","unexpected","UnexpectedError","AsyncTaskState","useAsyncTask","handler","state","setState","useState","useCallback","input","result","value","useSavingsGhoBalance","request","SavingsGhoBalanceQuery","useSavingsGhoWithdraw","savingsGhoWithdraw","useSavingsGhoDeposit","savingsGhoDeposit","useUserMeritRewards","UserMeritRewardsQuery","useAaveMarket","borrowsOrderBy","defaultMarketReservesRequestOrderBy","suppliesOrderBy","MarketQuery","useAaveMarkets","MarketsQuery","useAaveChains","filter","ChainsFilter","ChainsQuery","useAaveHealth","HealthQuery","useUsdExchangeRates","UsdExchangeRatesQuery","useAaveHealthFactorPreview","healthFactorPreview","useAaveReserve","ReserveQuery","useBorrowAPYHistory","BorrowAPYHistoryQuery","useSupplyAPYHistory","SupplyAPYHistoryQuery","useCreditDelegateeAllowance","CreditDelegateeAllowanceQuery","useSupply","supply","useBorrow","borrow","useRepay","repay","useWithdraw","withdraw","useUserEMode","userSetEmode","useCollateralToggle","collateralToggle","useLiquidate","liquidate","useVaultDeposit","vaultDeposit","useVaultMintShares","vaultMintShares","useVaultRedeemShares","vaultRedeemShares","useVaultWithdraw","vaultWithdraw","useVaultDeploy","vaultDeploy","useVaultSetFee","vaultSetFee","useVaultWithdrawFees","vaultWithdrawFees","useApproveBorrowCreditDelegation","approveBorrowCreditDelegation","useUserSupplies","UserSuppliesQuery","useUserBorrows","UserBorrowsQuery","useUserMarketState","UserMarketStateQuery","useUserTransactionHistory","UserTransactionHistoryQuery","useVault","VaultQuery","useVaults","VaultsQuery","useUserVaults","UserVaultsQuery","useVaultDepositPreview","vaultPreviewDeposit","useVaultMintPreview","vaultPreviewMint","useVaultWithdrawPreview","vaultPreviewWithdraw","useVaultRedeemPreview","vaultPreviewRedeem","useVaultUserTransactionHistory","VaultUserTransactionHistoryQuery","useVaultUserActivity","VaultUserActivityQuery"],"mappings":"8SAKA,IAAMA,CAAAA,CAAcC,kBAAAA,CAAM,cAAiC,IAAI,CAAA,CAaxD,SAASC,CAAAA,CAAoB,CAClC,QAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CACF,EAA6B,CAC3B,OACEH,mBAAA,aAAA,CAACD,CAAAA,CAAY,SAAZ,CAAqB,KAAA,CAAOI,CAAAA,CAAAA,CAC3BH,kBAAAA,CAAA,cAACI,aAAAA,CAAA,CAAa,KAAA,CAAOD,CAAAA,CAAO,MAAOD,CAAS,CAC9C,CAEJ,CAKO,SAASG,CAAAA,EAA4B,CAC1C,IAAMF,CAAAA,CAASG,YAAAA,CAAWP,CAAW,CAAA,CAErC,OAAAQ,eAAAA,CACEJ,CAAAA,CACA,kFACF,CAAA,CAEOA,CACT,CCFO,SAASK,GAAa,CAAE,QAAA,CAAAN,CAAAA,CAAU,MAAA,CAAAC,CAAO,CAAA,CAAsB,CACpE,OAAOH,kBAAAA,CAAA,aAAA,CAACC,EAAA,CAAoB,MAAA,CAAQE,CAAAA,CAAAA,CAASD,CAAS,CACxD,CCZO,IAAMO,CAAAA,CAAa,CACxB,OAAA,CAAS,KAAuC,CAC9C,IAAA,CAAM,MAAA,CACN,MAAO,MAAA,CACP,OAAA,CAAS,IACX,CAAA,CAAA,CACA,QAAwBC,CAAAA,GAA+B,CACrD,IAAA,CAAAA,CAAAA,CACA,MAAO,MAAA,CACP,OAAA,CAAS,KACX,CAAA,CAAA,CACA,QAAwBC,CAAAA,GAAgC,CACtD,KAAM,MAAA,CACN,KAAA,CAAAA,EACA,OAAA,CAAS,KACX,CAAA,CACF,CAAA,CCQO,SAASC,CAAAA,CAA2D,CACzE,QAAA,CAAAC,CAAAA,CACA,UAAAC,CAAAA,CACA,QAAA,CAAAC,CACF,CAAA,CAAwE,CACtE,GAAM,CAAC,CAAE,IAAA,CAAAL,CAAAA,CAAM,SAAAM,CAAAA,CAAU,KAAA,CAAAL,CAAM,CAAC,EAAIM,aAAAA,CAAS,CAC3C,KAAA,CAAOJ,CAAAA,CACP,UAAAC,CAAAA,CACA,OAAA,CAASI,SAAAA,CAAQ,KAAO,CAAE,QAAA,CAAAH,CAAS,CAAA,CAAA,CAAI,CAACA,CAAQ,CAAC,CACnD,CAAC,CAAA,CAED,GAAIC,CAAAA,CACF,OAAOP,CAAAA,CAAW,OAAA,GAGpB,GAAIE,CAAAA,CAAO,CACT,IAAMQ,EAAaC,sBAAAA,CAAgB,IAAA,CAAKT,CAAK,CAAA,CAC7C,GAAII,EACF,MAAMI,CAAAA,CAGR,OAAOV,CAAAA,CAAW,QAAQU,CAAU,CACtC,CAEA,OAAAZ,gBAAUG,CAAAA,CAAM,kBAAkB,CAAA,CAE3BD,CAAAA,CAAW,QAAQC,CAAAA,CAAK,KAAK,CACtC,CCnBA,IAAMW,EAAiB,CACrB,IAAA,CAAM,KAAqD,CACzD,OAAQ,KAAA,CACR,OAAA,CAAS,MACT,IAAA,CAAM,MAAA,CACN,MAAO,MACT,CAAA,CAAA,CACA,OAAA,CAAyBX,CAAAA,GAAiD,CACxE,MAAA,CAAQ,IAAA,CACR,OAAA,CAAS,IAAA,CACT,KAAAA,CAAAA,CACA,KAAA,CAAO,MACT,CAAA,CAAA,CACA,QAAyBA,CAAAA,GAAgD,CACvE,OAAQ,IAAA,CACR,OAAA,CAAS,MACT,IAAA,CAAAA,CAAAA,CACA,KAAA,CAAO,MACT,GACA,MAAA,CAAwBC,CAAAA,GAAkD,CACxE,MAAA,CAAQ,KACR,OAAA,CAAS,KAAA,CACT,IAAA,CAAM,MAAA,CACN,MAAAA,CACF,CAAA,CACF,EA2CO,SAASW,CAAAA,CAKdC,EAA2E,CAC3E,GAAM,CAACC,CAAAA,CAAOC,CAAQ,CAAA,CAAIC,UAAAA,CAASL,CAAAA,CAAe,IAAA,EAAsB,CAAA,CA8BxE,OAAO,CA5BSM,aAAAA,CACbC,GAAkB,CACjBrB,eAAAA,CACE,CAACiB,CAAAA,CAAM,OAAA,CACP,qDACF,CAAA,CAEAC,CAAAA,CAAS,CAAC,CAAE,KAAAf,CAAK,CAAA,IACR,CACL,MAAA,CAAQ,KACR,OAAA,CAAS,IAAA,CACT,IAAA,CAAAA,CAAAA,CACA,MAAO,MACT,CAAA,CACD,EAED,IAAMmB,CAAAA,CAASN,EAAQK,CAAK,CAAA,CAE5B,OAAAC,CAAAA,CAAO,MACJC,CAAAA,EAAUL,CAAAA,CAASJ,CAAAA,CAAe,OAAA,CAAQS,CAAK,CAAC,CAAA,CAChDnB,CAAAA,EAAUc,CAAAA,CAASJ,EAAe,MAAA,CAAOV,CAAK,CAAC,CAClD,EAEOkB,CACT,CAAA,CACA,CAACN,CAAAA,CAASC,CAAK,CACjB,CAAA,CAEiBA,CAAK,CACxB,CChHO,SAASO,EAAAA,CAAqB,CACnC,QAAA,CAAAhB,EAAW,KAAA,CACX,GAAGiB,CACL,CAAA,CAEmC,CACjC,OAAOpB,CAAAA,CAAoB,CACzB,QAAA,CAAUqB,8BAAAA,CACV,UAAW,CACT,OAAA,CAAAD,CACF,CAAA,CACA,SAAAjB,CACF,CAAC,CACH,CAuCO,SAASmB,EAAAA,EAId,CACA,IAAM/B,CAAAA,CAASE,CAAAA,GAEf,OAAOiB,CAAAA,CAAcU,CAAAA,EACnBG,0BAAAA,CAAmBhC,EAAQ6B,CAAO,CACpC,CACF,CAuCO,SAASI,EAAAA,EAId,CACA,IAAMjC,CAAAA,CAASE,GAAc,CAE7B,OAAOiB,EAAcU,CAAAA,EACnBK,yBAAAA,CAAkBlC,EAAQ6B,CAAO,CACnC,CACF,CC1HO,SAASM,GAAoB,CAClC,QAAA,CAAAvB,CAAAA,CAAW,KAAA,CACX,GAAGiB,CACL,CAAA,CAE+C,CAC7C,OAAOpB,CAAAA,CAAoB,CACzB,QAAA,CAAU2B,6BAAAA,CACV,SAAA,CAAW,CACT,QAAAP,CACF,CAAA,CACA,QAAA,CAAAjB,CACF,CAAC,CACH,CCZO,SAASyB,EAAAA,CAAc,CAC5B,SAAAzB,CAAAA,CAAW,KAAA,CACX,cAAA,CAAA0B,CAAAA,CAAiBC,4CACjB,eAAA,CAAAC,CAAAA,CAAkBD,2CAAAA,CAClB,GAAGV,CACL,CAAA,CAEqC,CACnC,OAAOpB,CAAAA,CAAoB,CACzB,SAAUgC,mBAAAA,CACV,SAAA,CAAW,CACT,OAAA,CAAAZ,EACA,cAAA,CAAAS,CAAAA,CACA,eAAA,CAAAE,CACF,EACA,QAAA,CAAA5B,CACF,CAAC,CACH,CAiCO,SAAS8B,EAAAA,CAAe,CAC7B,QAAA,CAAA9B,CAAAA,CAAW,MACX,cAAA,CAAA0B,CAAAA,CAAiBC,2CAAAA,CACjB,eAAA,CAAAC,EAAkBD,2CAAAA,CAClB,GAAGV,CACL,CAAA,CAEgC,CAC9B,OAAOpB,CAAAA,CAAoB,CACzB,QAAA,CAAUkC,qBACV,SAAA,CAAW,CACT,OAAA,CAAAd,CAAAA,CACA,eAAAS,CAAAA,CACA,eAAA,CAAAE,CACF,CAAA,CACA,SAAA5B,CACF,CAAC,CACH,CCzDO,SAASgC,EAAAA,CAAc,CAC5B,QAAA,CAAAhC,CAAAA,CAAW,KAAA,CACX,MAAA,CAAAiC,EAASC,oBAAAA,CAAa,GACxB,CAAA,CAE+B,CAC7B,OAAOrC,CAAAA,CAAoB,CACzB,SAAUsC,mBAAAA,CACV,SAAA,CAAW,CACT,MAAA,CAAAF,CACF,CAAA,CACA,QAAA,CAAAjC,CACF,CAAC,CACH,CAwBO,SAASoC,GAAc,CAC5B,QAAA,CAAApC,CAAAA,CAAW,KACb,EAEI,EAAC,CAA+B,CAClC,OAAOH,CAAAA,CAAoB,CACzB,QAAA,CAAUwC,mBAAAA,CACV,SAAA,CAAW,GACX,QAAA,CAAArC,CACF,CAAC,CACH,CAqCO,SAASsC,EAAAA,CAAoB,CAClC,QAAA,CAAAtC,EAAW,KAAA,CACX,GAAGiB,CACL,CAAA,CAEyC,CACvC,OAAOpB,CAAAA,CAAoB,CACzB,QAAA,CAAU0C,6BAAAA,CACV,UAAW,CACT,OAAA,CAAAtB,CACF,CAAA,CACA,SAAAjB,CACF,CAAC,CACH,CAiCO,SAASwC,EAAAA,EAId,CACA,IAAMpD,CAAAA,CAASE,CAAAA,GAEf,OAAOiB,CAAAA,CAAcU,CAAAA,EACnBwB,2BAAAA,CAAoBrD,EAAQ6B,CAAO,CACrC,CACF,CC1IO,SAASyB,GAAe,CAC7B,QAAA,CAAA1C,CAAAA,CAAW,KAAA,CACX,GAAGiB,CACL,CAAA,CAEsC,CACpC,OAAOpB,EAAoB,CACzB,QAAA,CAAU8C,oBAAAA,CACV,SAAA,CAAW,CACT,OAAA,CAAA1B,CACF,EACA,QAAA,CAAAjB,CACF,CAAC,CACH,CA2CO,SAAS4C,EAAAA,CAAoB,CAClC,QAAA,CAAA5C,CAAAA,CAAW,KAAA,CACX,GAAGiB,CACL,CAAA,CAEmC,CACjC,OAAOpB,CAAAA,CAAoB,CACzB,QAAA,CAAUgD,6BAAAA,CACV,SAAA,CAAW,CACT,QAAA5B,CACF,CAAA,CACA,QAAA,CAAAjB,CACF,CAAC,CACH,CAyCO,SAAS8C,EAAAA,CAAoB,CAClC,QAAA,CAAA9C,CAAAA,CAAW,KAAA,CACX,GAAGiB,CACL,CAAA,CAEmC,CACjC,OAAOpB,CAAAA,CAAoB,CACzB,SAAUkD,6BAAAA,CACV,SAAA,CAAW,CACT,OAAA,CAAA9B,CACF,CAAA,CACA,QAAA,CAAAjB,CACF,CAAC,CACH,CAyCO,SAASgD,EAAAA,CAA4B,CAC1C,SAAAhD,CAAAA,CAAW,KAAA,CACX,GAAGiB,CACL,CAAA,CAEmC,CACjC,OAAOpB,CAAAA,CAAoB,CACzB,QAAA,CAAUoD,sCACV,SAAA,CAAW,CACT,OAAA,CAAAhC,CACF,EACA,QAAA,CAAAjB,CACF,CAAC,CACH,CC5JO,SAASkD,EAAAA,EAId,CACA,IAAM9D,EAASE,CAAAA,EAAc,CAE7B,OAAOiB,CAAAA,CAAcU,GAA2BkC,cAAAA,CAAO/D,CAAAA,CAAQ6B,CAAO,CAAC,CACzE,CAuCO,SAASmC,EAAAA,EAId,CACA,IAAMhE,EAASE,CAAAA,EAAc,CAE7B,OAAOiB,CAAAA,CAAcU,GAA2BoC,cAAAA,CAAOjE,CAAAA,CAAQ6B,CAAO,CAAC,CACzE,CAuCO,SAASqC,IAId,CACA,IAAMlE,EAASE,CAAAA,EAAc,CAE7B,OAAOiB,CAAAA,CAAcU,GAA0BsC,aAAAA,CAAMnE,CAAAA,CAAQ6B,CAAO,CAAC,CACvE,CAuCO,SAASuC,EAAAA,EAId,CACA,IAAMpE,CAAAA,CAASE,CAAAA,GAEf,OAAOiB,CAAAA,CAAcU,GAA6BwC,gBAAAA,CAASrE,CAAAA,CAAQ6B,CAAO,CAAC,CAC7E,CAyBO,SAASyC,EAAAA,EAId,CACA,IAAMtE,CAAAA,CAASE,CAAAA,EAAc,CAE7B,OAAOiB,EAAcU,CAAAA,EACnB0C,oBAAAA,CAAavE,CAAAA,CAAQ6B,CAAO,CAC9B,CACF,CAyBO,SAAS2C,EAAAA,EAId,CACA,IAAMxE,CAAAA,CAASE,CAAAA,EAAc,CAE7B,OAAOiB,CAAAA,CAAcU,CAAAA,EACnB4C,wBAAAA,CAAiBzE,CAAAA,CAAQ6B,CAAO,CAClC,CACF,CAyBO,SAAS6C,EAAAA,EAId,CACA,IAAM1E,CAAAA,CAASE,CAAAA,EAAc,CAE7B,OAAOiB,CAAAA,CAAcU,CAAAA,EACnB8C,iBAAAA,CAAU3E,CAAAA,CAAQ6B,CAAO,CAC3B,CACF,CAuCO,SAAS+C,IAId,CACA,IAAM5E,EAASE,CAAAA,EAAc,CAE7B,OAAOiB,CAAAA,CAAcU,CAAAA,EACnBgD,oBAAAA,CAAa7E,CAAAA,CAAQ6B,CAAO,CAC9B,CACF,CAuCO,SAASiD,IAId,CACA,IAAM9E,CAAAA,CAASE,CAAAA,GAEf,OAAOiB,CAAAA,CAAcU,GACnBkD,uBAAAA,CAAgB/E,CAAAA,CAAQ6B,CAAO,CACjC,CACF,CAyBO,SAASmD,IAId,CACA,IAAMhF,CAAAA,CAASE,CAAAA,GAEf,OAAOiB,CAAAA,CAAcU,CAAAA,EACnBoD,yBAAAA,CAAkBjF,EAAQ6B,CAAO,CACnC,CACF,CAyBO,SAASqD,IAId,CACA,IAAMlF,CAAAA,CAASE,CAAAA,GAEf,OAAOiB,CAAAA,CAAcU,CAAAA,EACnBsD,qBAAAA,CAAcnF,EAAQ6B,CAAO,CAC/B,CACF,CAuCO,SAASuD,EAAAA,EAId,CACA,IAAMpF,CAAAA,CAASE,CAAAA,GAEf,OAAOiB,CAAAA,CAAcU,CAAAA,EACnBwD,mBAAAA,CAAYrF,EAAQ6B,CAAO,CAC7B,CACF,CAyBO,SAASyD,EAAAA,EAId,CACA,IAAMtF,CAAAA,CAASE,GAAc,CAE7B,OAAOiB,EAAcU,CAAAA,EACnB0D,mBAAAA,CAAYvF,EAAQ6B,CAAO,CAC7B,CACF,CAyBO,SAAS2D,EAAAA,EAId,CACA,IAAMxF,CAAAA,CAASE,GAAc,CAE7B,OAAOiB,CAAAA,CAAcU,CAAAA,EACnB4D,0BAAkBzF,CAAAA,CAAQ6B,CAAO,CACnC,CACF,CA+BO,SAAS6D,EAAAA,EAId,CACA,IAAM1F,CAAAA,CAASE,GAAc,CAE7B,OAAOiB,CAAAA,CAAcU,CAAAA,EACnB8D,sCAA8B3F,CAAAA,CAAQ6B,CAAO,CAC/C,CACF,CCxlBO,SAAS+D,EAAAA,CAAgB,CAC9B,QAAA,CAAAhF,EAAW,KAAA,CACX,GAAGiB,CACL,CAAA,CAEyD,CACvD,OAAOpB,CAAAA,CAAoB,CACzB,QAAA,CAAUoF,yBAAAA,CACV,UAAW,CACT,OAAA,CAAAhE,CACF,CAAA,CACA,SAAAjB,CACF,CAAC,CACH,CAqCO,SAASkF,EAAAA,CAAe,CAC7B,QAAA,CAAAlF,CAAAA,CAAW,MACX,GAAGiB,CACL,EAEyD,CACvD,OAAOpB,EAAoB,CACzB,QAAA,CAAUsF,wBAAAA,CACV,SAAA,CAAW,CACT,OAAA,CAAAlE,CACF,CAAA,CACA,QAAA,CAAAjB,CACF,CAAC,CACH,CAqCO,SAASoF,GAAmB,CACjC,QAAA,CAAApF,EAAW,KAAA,CACX,GAAGiB,CACL,CAAA,CAEuC,CACrC,OAAOpB,CAAAA,CAAoB,CACzB,QAAA,CAAUwF,4BAAAA,CACV,SAAA,CAAW,CACT,QAAApE,CACF,CAAA,CACA,QAAA,CAAAjB,CACF,CAAC,CACH,CA8BO,SAASsF,EAAAA,CAA0B,CACxC,SAAAtF,CAAAA,CAAW,KAAA,CACX,GAAGiB,CACL,EAE6D,CAC3D,OAAOpB,CAAAA,CAAoB,CACzB,SAAU0F,mCAAAA,CACV,SAAA,CAAW,CAAE,OAAA,CAAAtE,CAAQ,CAAA,CACrB,QAAA,CAAAjB,CACF,CAAC,CACH,CC5IO,SAASwF,EAAAA,CAAS,CACvB,SAAAxF,CAAAA,CAAW,KAAA,CACX,GAAGiB,CACL,EAEoC,CAClC,OAAOpB,CAAAA,CAAoB,CACzB,SAAU4F,kBAAAA,CACV,SAAA,CAAW,CACT,OAAA,CAAAxE,CACF,EACA,QAAA,CAAAjB,CACF,CAAC,CACH,CAyCO,SAAS0F,EAAAA,CAAU,CACxB,QAAA,CAAA1F,EAAW,KAAA,CACX,GAAGiB,CACL,CAAA,CAE6C,CAC3C,OAAOpB,CAAAA,CAAoB,CACzB,QAAA,CAAU8F,oBACV,SAAA,CAAW,CACT,OAAA,CAAA1E,CACF,EACA,QAAA,CAAAjB,CACF,CAAC,CACH,CA2CO,SAAS4F,EAAAA,CAAc,CAC5B,QAAA,CAAA5F,EAAW,KAAA,CACX,GAAGiB,CACL,CAAA,CAE6C,CAC3C,OAAOpB,CAAAA,CAAoB,CACzB,QAAA,CAAUgG,uBAAAA,CACV,UAAW,CACT,OAAA,CAAA5E,CACF,CAAA,CACA,SAAAjB,CACF,CAAC,CACH,CAuBO,SAAS8F,EAAAA,EAId,CACA,IAAM1G,CAAAA,CAASE,CAAAA,GAEf,OAAOiB,CAAAA,CAAcU,CAAAA,EACnB8E,2BAAAA,CAAoB3G,EAAQ6B,CAAO,CACrC,CACF,CAuBO,SAAS+E,EAAAA,EAId,CACA,IAAM5G,CAAAA,CAASE,GAAc,CAE7B,OAAOiB,EAAcU,CAAAA,EACnBgF,wBAAAA,CAAiB7G,EAAQ6B,CAAO,CAClC,CACF,CAuBO,SAASiF,EAAAA,EAId,CACA,IAAM9G,CAAAA,CAASE,GAAc,CAE7B,OAAOiB,CAAAA,CAAcU,CAAAA,EACnBkF,6BAAqB/G,CAAAA,CAAQ6B,CAAO,CACtC,CACF,CAyBO,SAASmF,EAAAA,EAId,CACA,IAAMhH,CAAAA,CAASE,GAAc,CAE7B,OAAOiB,CAAAA,CAAcU,CAAAA,EACnBoF,2BAAmBjH,CAAAA,CAAQ6B,CAAO,CACpC,CACF,CAsCO,SAASqF,EAAAA,CAA+B,CAC7C,QAAA,CAAAtG,CAAAA,CAAW,MACX,GAAGiB,CACL,CAAA,CAEkE,CAChE,OAAOpB,CAAAA,CAAoB,CACzB,QAAA,CAAU0G,wCAAAA,CACV,UAAW,CACT,OAAA,CAAAtF,CACF,CAAA,CACA,SAAAjB,CACF,CAAC,CACH,CA6CO,SAASwG,GAAqB,CACnC,QAAA,CAAAxG,CAAAA,CAAW,KAAA,CACX,GAAGiB,CACL,CAAA,CAE+C,CAC7C,OAAOpB,EAAoB,CACzB,QAAA,CAAU4G,8BAAAA,CACV,SAAA,CAAW,CACT,OAAA,CAAAxF,CACF,EACA,QAAA,CAAAjB,CACF,CAAC,CACH","file":"index.cjs","sourcesContent":["import type { AaveClient } from '@aave/client';\nimport { invariant } from '@aave/types';\nimport React, { type ReactNode, useContext } from 'react';\nimport { Provider as UrqlProvider } from 'urql';\n\nconst AaveContext = React.createContext<AaveClient | null>(null);\n\n/**\n * @internal\n */\nexport type AaveContextProviderProps = {\n children: ReactNode;\n client: AaveClient;\n};\n\n/**\n * @internal\n */\nexport function AaveContextProvider({\n children,\n client,\n}: AaveContextProviderProps) {\n return (\n <AaveContext.Provider value={client}>\n <UrqlProvider value={client.urql}>{children}</UrqlProvider>\n </AaveContext.Provider>\n );\n}\n\n/**\n * Retrieve the injected {@link AaveClient} from the context.\n */\nexport function useAaveClient(): AaveClient {\n const client = useContext(AaveContext);\n\n invariant(\n client,\n 'Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>',\n );\n\n return client;\n}\n","import type { AaveClient } from '@aave/client';\n// biome-ignore lint/correctness/noUnusedImports: intentional\nimport React, { type ReactNode } from 'react';\n\nimport { AaveContextProvider } from './context';\n\n/**\n * <AaveProvider> props\n */\nexport type AaveProviderProps = {\n /**\n * The children to render\n */\n children: ReactNode;\n /**\n * The Aave client instance to use\n */\n client: AaveClient;\n};\n\n/**\n * Manages the internal state of the Aave SDK.\n *\n * ```tsx\n * import { AaveProvider, AaveClient, production } from '@aave/react';\n *\n * const client = AaveClient.create({\n * environment: production,\n * });\n *\n * function App() {\n * return (\n * <AaveProvider client={client}>\n * // ...\n * </AaveProvider>\n * );\n * }\n * ```\n */\nexport function AaveProvider({ children, client }: AaveProviderProps) {\n return <AaveContextProvider client={client}>{children}</AaveContextProvider>;\n}\n","import type { UnexpectedError } from '@aave/client';\n\n/**\n * A read hook result.\n *\n * It's a discriminated union of the possible results of a read operation:\n * - Rely on the `loading` value to determine if the `data` or `error` can be evaluated.\n * - If `error` is `undefined`, then `data` value will be available.\n */\nexport type ReadResult<T, E = never> =\n | {\n data: undefined;\n error: undefined;\n loading: true;\n }\n | {\n data: T;\n error: undefined;\n loading: false;\n }\n | {\n data: undefined;\n error: E;\n loading: false;\n };\n\n/**\n * @internal\n */\nexport const ReadResult = {\n Initial: <T, E = never>(): ReadResult<T, E> => ({\n data: undefined,\n error: undefined,\n loading: true,\n }),\n Success: <T, E = never>(data: T): ReadResult<T, E> => ({\n data,\n error: undefined,\n loading: false,\n }),\n Failure: <T, E = never>(error: E): ReadResult<T, E> => ({\n data: undefined,\n error,\n loading: false,\n }),\n};\n\n/**\n * A read hook result that supports React Suspense\n */\nexport type SuspenseResult<T> = { data: T };\n\nexport type SuspendableResult<T, E extends UnexpectedError = UnexpectedError> =\n | ReadResult<T, E>\n | SuspenseResult<T>;\n","import { UnexpectedError } from '@aave/client';\nimport type { AnyVariables, StandardData } from '@aave/graphql';\nimport { invariant } from '@aave/types';\nimport { useMemo } from 'react';\nimport { type TypedDocumentNode, useQuery } from 'urql';\nimport {\n ReadResult,\n type SuspendableResult,\n type SuspenseResult,\n} from './results';\n\n/**\n * @internal\n */\nexport type Suspendable = { suspense: true };\n\n/**\n * @internal\n */\nexport type UseSuspendableQueryArgs<\n Value,\n Variables extends AnyVariables,\n Suspense extends boolean = boolean,\n> = {\n document: TypedDocumentNode<StandardData<Value>, Variables>;\n variables: Variables;\n suspense: Suspense;\n};\n\n/**\n * @internal\n */\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables, false>): ReadResult<Value>;\n/**\n * @internal\n */\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables, true>): SuspenseResult<Value>;\n/**\n * @internal\n */\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables>): SuspendableResult<Value>;\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables>): SuspendableResult<Value> {\n const [{ data, fetching, error }] = useQuery({\n query: document,\n variables,\n context: useMemo(() => ({ suspense }), [suspense]),\n });\n\n if (fetching) {\n return ReadResult.Initial();\n }\n\n if (error) {\n const unexpected = UnexpectedError.from(error);\n if (suspense) {\n throw unexpected;\n }\n\n return ReadResult.Failure(unexpected);\n }\n\n invariant(data, 'No data returned');\n\n return ReadResult.Success(data.value);\n}\n","import { invariant, type ResultAsync } from '@aave/types';\nimport { useCallback, useState } from 'react';\n\n/**\n * An async task is a function that can be executed multiple times and that can be in a pending state.\n *\n * @internal\n */\nexport type AsyncTask<TInput, TResult extends ResultAsync<unknown, unknown>> = (\n input: TInput,\n) => TResult;\n\n/**\n * The initial state of a async task.\n */\nexport type AsyncTaskIdle = {\n called: boolean;\n loading: false;\n data: undefined;\n error: undefined;\n};\n\n/**\n * The state of a async task during the loading.\n */\nexport type AsyncTaskLoading<TData> = {\n called: true;\n loading: true;\n data: TData | undefined;\n error: undefined;\n};\n\n/**\n * The state of a async task after a successful call.\n */\nexport type AsyncTaskSuccess<TData> = {\n called: true;\n loading: false;\n data: TData;\n error: undefined;\n};\n\n/**\n * The state of a async task after a failed call.\n */\nexport type AsyncTaskError<TError> = {\n called: true;\n loading: false;\n data: undefined;\n error: TError;\n};\n\n/**\n * The possible statuses of a async task.\n */\nexport type AsyncTaskState<TData, TError> =\n | AsyncTaskIdle\n | AsyncTaskLoading<TData>\n | AsyncTaskSuccess<TData>\n | AsyncTaskError<TError>;\n\nconst AsyncTaskState = {\n Idle: <TData, TError>(): AsyncTaskState<TData, TError> => ({\n called: false,\n loading: false,\n data: undefined,\n error: undefined,\n }),\n Loading: <TData, TError>(data?: TData): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: true,\n data,\n error: undefined,\n }),\n Success: <TData, TError>(data: TData): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: false,\n data,\n error: undefined,\n }),\n Failed: <TData, TError>(error: TError): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: false,\n data: undefined,\n error,\n }),\n};\n\n/**\n * A async task React Hook is a lightweight wrapper for an asynchronous function.\n * It allows tracking of the task's execution status and provides access to the\n * last error that occurred during the task's execution, if any.\n *\n * ```ts\n * const [execute, { called, loading, data, error }]: UseAsyncTask<TData, TError, TInput> = useAnyAsyncTask();\n *\n * if (!called) {\n * // data === undefined\n * // error === undefined\n * return <p>Click the button to execute the task</p>;\n * }\n *\n * if (loading) {\n * // data === undefined on first call\n * // data === TData from previous successful call\n * // error === undefined\n * return <Loader />;\n * }\n *\n * if (error) {\n * // data === undefined\n * // error === TError\n * return <p>Something went wrong: {error.message}</p>;\n * }\n *\n * // called === true\n * // data === TData\n * // error === undefined\n * return <p>Task completed: {data}</p>;\n * ```\n */\nexport type UseAsyncTask<TInput, TValue, TError> = [\n AsyncTask<TInput, ResultAsync<TValue, TError>>,\n AsyncTaskState<TValue, TError>,\n];\n\n/**\n * @internal\n */\nexport function useAsyncTask<\n TInput,\n TValue,\n TError,\n TResult extends ResultAsync<TValue, TError>,\n>(handler: AsyncTask<TInput, TResult>): UseAsyncTask<TInput, TValue, TError> {\n const [state, setState] = useState(AsyncTaskState.Idle<TValue, TError>());\n\n const execute = useCallback(\n (input: TInput) => {\n invariant(\n !state.loading,\n 'Cannot execute a task while another is in progress.',\n );\n\n setState(({ data }) => {\n return {\n called: true,\n loading: true,\n data,\n error: undefined,\n };\n });\n\n const result = handler(input);\n\n result.match(\n (value) => setState(AsyncTaskState.Success(value)),\n (error) => setState(AsyncTaskState.Failed(error)),\n );\n\n return result;\n },\n [handler, state],\n );\n\n return [execute, state];\n}\n","import type { UnexpectedError } from '@aave/client';\nimport { savingsGhoDeposit, savingsGhoWithdraw } from '@aave/client/actions';\nimport type {\n ExecutionPlan,\n SavingsGhoBalanceRequest,\n SavingsGhoDepositRequest,\n SavingsGhoWithdrawRequest,\n TokenAmount,\n} from '@aave/graphql';\nimport { SavingsGhoBalanceQuery } from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport {\n type UseAsyncTask,\n useAsyncTask,\n useSuspendableQuery,\n} from './helpers';\n\nexport type SavingsGhoBalanceArgs = SavingsGhoBalanceRequest;\n\n/**\n * Fetches the current sGHO balance for a user.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useSavingsGhoBalance({\n * user: evmAddress('0x742d35cc…'),\n * suspense: true,\n * });\n * ```\n */\nexport function useSavingsGhoBalance(\n args: SavingsGhoBalanceArgs & Suspendable,\n): SuspenseResult<TokenAmount>;\n\n/**\n * Fetches the current sGHO balance for a user.\n *\n * ```tsx\n * const { data, error, loading } = useSavingsGhoBalance({\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n */\nexport function useSavingsGhoBalance(\n args: SavingsGhoBalanceArgs,\n): ReadResult<TokenAmount>;\n\nexport function useSavingsGhoBalance({\n suspense = false,\n ...request\n}: SavingsGhoBalanceArgs & {\n suspense?: boolean;\n}): SuspendableResult<TokenAmount> {\n return useSuspendableQuery({\n document: SavingsGhoBalanceQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\n/**\n * A hook that provides a way to withdraw sGHO.\n *\n * ```ts\n * const [withdraw, withdrawing] = useSavingsGhoWithdraw();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance to withdraw: ${plan.required.value} is the maximum withdrawal allowed.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useSavingsGhoWithdraw(): UseAsyncTask<\n SavingsGhoWithdrawRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: SavingsGhoWithdrawRequest) =>\n savingsGhoWithdraw(client, request),\n );\n}\n\n/**\n * A hook that provides a way to deposit GHO into sGHO.\n *\n * ```ts\n * const [deposit, depositing] = useSavingsGhoDeposit();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = depositing.loading && sending.loading;\n * const error = depositing.error || sending.error;\n *\n * // …\n *\n * const result = await deposit({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useSavingsGhoDeposit(): UseAsyncTask<\n SavingsGhoDepositRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: SavingsGhoDepositRequest) =>\n savingsGhoDeposit(client, request),\n );\n}\n","import type { UserMeritRewards, UserMeritRewardsRequest } from '@aave/graphql';\nimport { UserMeritRewardsQuery } from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UserMeritRewardsArgs = UserMeritRewardsRequest;\n\n/**\n * Fetches Merit claim rewards for a user with the transaction request to claim them.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserMeritRewards({\n * user: evmAddress('0x742d35cc…'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useUserMeritRewards(\n args: UserMeritRewardsArgs & Suspendable,\n): SuspenseResult<UserMeritRewards | null>;\n\n/**\n * Fetches Merit claim rewards for a user with the transaction request to claim them.\n *\n * ```tsx\n * const { data, loading } = useUserMeritRewards({\n * user: evmAddress('0x742d35cc…'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useUserMeritRewards(\n args: UserMeritRewardsArgs,\n): ReadResult<UserMeritRewards | null>;\n\nexport function useUserMeritRewards({\n suspense = false,\n ...request\n}: UserMeritRewardsArgs & {\n suspense?: boolean;\n}): SuspendableResult<UserMeritRewards | null> {\n return useSuspendableQuery({\n document: UserMeritRewardsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n","import type { MarketRequest, MarketsRequest } from '@aave/client/actions';\nimport { defaultMarketReservesRequestOrderBy } from '@aave/client/actions';\nimport { type Market, MarketQuery, MarketsQuery } from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UseAaveMarketArgs = MarketRequest;\n\n/**\n * Fetch a single Aave Market.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveMarket({\n * address: evmAddress('0x8787…'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveMarket(\n args: UseAaveMarketArgs & Suspendable,\n): SuspenseResult<Market | null>;\n\n/**\n * Fetch a single Aave Market.\n *\n * ```tsx\n * const { data, error, loading } = useAaveMarket({\n * address: evmAddress('0x8787…'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useAaveMarket(\n args: UseAaveMarketArgs,\n): ReadResult<Market | null>;\n\nexport function useAaveMarket({\n suspense = false,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n ...request\n}: UseAaveMarketArgs & {\n suspense?: boolean;\n}): SuspendableResult<Market | null> {\n return useSuspendableQuery({\n document: MarketQuery,\n variables: {\n request,\n borrowsOrderBy,\n suppliesOrderBy,\n },\n suspense,\n });\n}\n\nexport type UseAaveMarketsArgs = MarketsRequest;\n\n/**\n * Fetch all Aave Markets for the specified chains.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveMarkets({\n * chainIds: [chainId(1), chainId(8453)],\n * user: evmAddress('0x742d35cc...'),\n * suspense: true\n * });\n * ```\n */\nexport function useAaveMarkets(\n args: UseAaveMarketsArgs & Suspendable,\n): SuspenseResult<Market[]>;\n\n/**\n * Fetch all Aave Markets for the specified chains.\n *\n * ```tsx\n * const { data, error, loading } = useAaveMarkets({\n * chainIds: [chainId(1), chainId(8453)],\n * user: evmAddress('0x742d35cc...'),\n * });\n * ```\n */\nexport function useAaveMarkets(args: UseAaveMarketsArgs): ReadResult<Market[]>;\n\nexport function useAaveMarkets({\n suspense = false,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n ...request\n}: UseAaveMarketsArgs & {\n suspense?: boolean;\n}): SuspendableResult<Market[]> {\n return useSuspendableQuery({\n document: MarketsQuery,\n variables: {\n request,\n borrowsOrderBy,\n suppliesOrderBy,\n },\n suspense,\n });\n}\n","import type { UnexpectedError } from '@aave/client';\nimport { healthFactorPreview } from '@aave/client/actions';\nimport {\n type Chain,\n ChainsFilter,\n ChainsQuery,\n type HealthFactorPreviewRequest,\n type HealthFactorPreviewResponse,\n HealthQuery,\n type UsdExchangeRate,\n UsdExchangeRatesQuery,\n type UsdExchangeRatesRequest,\n} from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n UseAsyncTask,\n} from './helpers';\nimport { useAsyncTask, useSuspendableQuery } from './helpers';\n\nexport type UseAaveChainsArgs = {\n filter?: ChainsFilter;\n};\n\n/**\n * Fetch all supported Aave chains.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveChains({\n * filter: ChainsFilter.MAINNET_ONLY,\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveChains(\n args: UseAaveChainsArgs & Suspendable,\n): SuspenseResult<Chain[]>;\n\n/**\n * Fetch all supported Aave chains.\n *\n * ```tsx\n * const { data, error, loading } = useAaveChains({\n * filter: ChainsFilter.MAINNET_ONLY,\n * });\n * ```\n */\nexport function useAaveChains(args: UseAaveChainsArgs): ReadResult<Chain[]>;\n\nexport function useAaveChains({\n suspense = false,\n filter = ChainsFilter.ALL,\n}: UseAaveChainsArgs & {\n suspense?: boolean;\n}): SuspendableResult<Chain[]> {\n return useSuspendableQuery({\n document: ChainsQuery,\n variables: {\n filter,\n },\n suspense,\n });\n}\n\n/**\n * Health check query.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveHealth({\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveHealth(args: Suspendable): SuspenseResult<boolean>;\n\n/**\n * Health check query.\n *\n * ```tsx\n * const { data, error, loading } = useAaveHealth();\n * ```\n */\nexport function useAaveHealth(): ReadResult<boolean>;\n\nexport function useAaveHealth({\n suspense = false,\n}: {\n suspense?: boolean;\n} = {}): SuspendableResult<boolean> {\n return useSuspendableQuery({\n document: HealthQuery,\n variables: {},\n suspense,\n });\n}\n\nexport type UseUsdExchangeRatesArgs = UsdExchangeRatesRequest;\n\n/**\n * Fetch USD exchange rates for different tokens on a given market.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUsdExchangeRates({\n * market: evmAddress('0x1234…'),\n * underlyingTokens: [evmAddress('0x5678…'), evmAddress('0x90ab…')],\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useUsdExchangeRates(\n args: UseUsdExchangeRatesArgs & Suspendable,\n): SuspenseResult<UsdExchangeRate[]>;\n\n/**\n * Fetch USD exchange rates for different tokens on a given market.\n *\n * ```tsx\n * const { data, error, loading } = useUsdExchangeRates({\n * market: evmAddress('0x1234…'),\n * underlyingTokens: [evmAddress('0x5678…'), evmAddress('0x90ab…')],\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useUsdExchangeRates(\n args: UseUsdExchangeRatesArgs,\n): ReadResult<UsdExchangeRate[]>;\n\nexport function useUsdExchangeRates({\n suspense = false,\n ...request\n}: UseUsdExchangeRatesArgs & {\n suspense?: boolean;\n}): SuspendableResult<UsdExchangeRate[]> {\n return useSuspendableQuery({\n document: UsdExchangeRatesQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\n/**\n * Determines the health factor after a given action.\n *\n * ```ts\n * const [preview, { loading, error }] = useAaveHealthFactorPreview();\n *\n * // …\n *\n * const result = await preview({\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 * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useAaveHealthFactorPreview(): UseAsyncTask<\n HealthFactorPreviewRequest,\n HealthFactorPreviewResponse,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: HealthFactorPreviewRequest) =>\n healthFactorPreview(client, request),\n );\n}\n","import {\n type APYSample,\n BorrowAPYHistoryQuery,\n type BorrowAPYHistoryRequest,\n CreditDelegateeAllowanceQuery,\n type CreditDelegateeAmountRequest,\n type Reserve,\n ReserveQuery,\n type ReserveRequest,\n SupplyAPYHistoryQuery,\n type SupplyAPYHistoryRequest,\n type TokenAmount,\n} from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UseAaveReserveArgs = ReserveRequest;\n\n/**\n * Fetch a single Aave Reserve.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveReserve({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveReserve(\n args: UseAaveReserveArgs & Suspendable,\n): SuspenseResult<Reserve | null>;\n\n/**\n * Fetch a single Aave Reserve.\n *\n * ```tsx\n * const { data, error, loading } = useAaveReserve({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useAaveReserve(\n args: UseAaveReserveArgs,\n): ReadResult<Reserve | null>;\n\nexport function useAaveReserve({\n suspense = false,\n ...request\n}: UseAaveReserveArgs & {\n suspense?: boolean;\n}): SuspendableResult<Reserve | null> {\n return useSuspendableQuery({\n document: ReserveQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseBorrowAPYHistoryArgs = BorrowAPYHistoryRequest;\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 * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useBorrowAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek\n * suspense: true\n * });\n * ```\n */\n\nexport function useBorrowAPYHistory(\n args: UseBorrowAPYHistoryArgs & Suspendable,\n): SuspenseResult<APYSample[]>;\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 * ```tsx\n * const { data } = useBorrowAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek\n * });\n * ```\n */\n\nexport function useBorrowAPYHistory(\n args: UseBorrowAPYHistoryArgs,\n): ReadResult<APYSample[]>;\n\nexport function useBorrowAPYHistory({\n suspense = false,\n ...request\n}: UseBorrowAPYHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<APYSample[]> {\n return useSuspendableQuery({\n document: BorrowAPYHistoryQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseSupplyAPYHistoryArgs = SupplyAPYHistoryRequest;\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 * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useSupplyAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek,\n * suspense: true\n * });\n * ```\n */\nexport function useSupplyAPYHistory(\n args: UseSupplyAPYHistoryArgs & Suspendable,\n): SuspenseResult<APYSample[]>;\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 * ```tsx\n * const { data } = useSupplyAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek\n * });\n * ```\n */\nexport function useSupplyAPYHistory(\n args: UseSupplyAPYHistoryArgs,\n): ReadResult<APYSample[]>;\n\nexport function useSupplyAPYHistory({\n suspense = false,\n ...request\n}: UseSupplyAPYHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<APYSample[]> {\n return useSuspendableQuery({\n document: SupplyAPYHistoryQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseCreditDelegateeAllowanceArgs = CreditDelegateeAmountRequest;\n\n/**\n * Get the amount delegated to the credit delegatee that can borrow on your behalf.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useCreditDelegateeAllowance({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * user: evmAddress('0x742d35cc...'),\n * delegatee: evmAddress('0x5678...'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useCreditDelegateeAllowance(\n args: UseCreditDelegateeAllowanceArgs & Suspendable,\n): SuspenseResult<TokenAmount>;\n\n/**\n * Get the amount delegated to the credit delegatee that can borrow on your behalf.\n *\n * ```tsx\n * const { data, error, loading } = useCreditDelegateeAllowance({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * user: evmAddress('0x742d35cc...'),\n * delegatee: evmAddress('0x5678...'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useCreditDelegateeAllowance(\n args: UseCreditDelegateeAllowanceArgs,\n): ReadResult<TokenAmount>;\n\nexport function useCreditDelegateeAllowance({\n suspense = false,\n ...request\n}: UseCreditDelegateeAllowanceArgs & {\n suspense?: boolean;\n}): SuspendableResult<TokenAmount> {\n return useSuspendableQuery({\n document: CreditDelegateeAllowanceQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n","import type { UnexpectedError } from '@aave/client';\nimport {\n approveBorrowCreditDelegation,\n borrow,\n collateralToggle,\n liquidate,\n repay,\n supply,\n userSetEmode,\n vaultDeploy,\n vaultDeposit,\n vaultMintShares,\n vaultRedeemShares,\n vaultSetFee,\n vaultWithdraw,\n vaultWithdrawFees,\n withdraw,\n} from '@aave/client/actions';\nimport type {\n ApproveBorrowCreditDelegatorRequest,\n BorrowRequest,\n CollateralToggleRequest,\n ExecutionPlan,\n LiquidateRequest,\n RepayRequest,\n SupplyRequest,\n TransactionRequest,\n UserSetEmodeRequest,\n VaultDeployRequest,\n VaultDepositRequest,\n VaultMintSharesRequest,\n VaultRedeemSharesRequest,\n VaultSetFeeRequest,\n VaultWithdrawFeesRequest,\n VaultWithdrawRequest,\n WithdrawRequest,\n} from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport { type UseAsyncTask, useAsyncTask } from './helpers';\n\n/**\n * A hook that provides a way to supply assets to an Aave market.\n *\n * ```ts\n * const [supply, supplying] = useSupply();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = supplying.loading && sending.loading;\n * const error = supplying.error || sending.error;\n *\n * // …\n *\n * const result = await supply({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useSupply(): UseAsyncTask<\n SupplyRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: SupplyRequest) => supply(client, request));\n}\n\n/**\n * A hook that provides a way to borrow assets from an Aave market.\n *\n * ```ts\n * const [borrow, borrowing] = useBorrow();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = borrowing.loading && sending.loading;\n * const error = borrowing.error || sending.error;\n *\n * // …\n *\n * const result = await borrow({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useBorrow(): UseAsyncTask<\n BorrowRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: BorrowRequest) => borrow(client, request));\n}\n\n/**\n * A hook that provides a way to repay borrowed assets to an Aave market.\n *\n * ```ts\n * const [repay, repaying] = useRepay();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = repaying.loading && sending.loading;\n * const error = repaying.error || sending.error;\n *\n * // …\n *\n * const result = await repay({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useRepay(): UseAsyncTask<\n RepayRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: RepayRequest) => repay(client, request));\n}\n\n/**\n * A hook that provides a way to withdraw supplied assets from an Aave market.\n *\n * ```ts\n * const [withdraw, withdrawing] = useWithdraw();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useWithdraw(): UseAsyncTask<\n WithdrawRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: WithdrawRequest) => withdraw(client, request));\n}\n\n/**\n * A hook that provides a way to set eMode for a user.\n *\n * ```ts\n * const [setUserEMode, setting] = useUserEMode();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = setting.loading && sending.loading;\n * const error = setting.error || sending.error;\n *\n * // …\n *\n * const result = await setUserEMode({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useUserEMode(): UseAsyncTask<\n UserSetEmodeRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: UserSetEmodeRequest) =>\n userSetEmode(client, request),\n );\n}\n\n/**\n * A hook that provides a way to enable/disable a specific supplied asset as collateral.\n *\n * ```ts\n * const [toggle, toggling] = useCollateralToggle();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = toggling.loading && sending.loading;\n * const error = toggling.error || sending.error;\n *\n * // …\n *\n * const result = await toggle({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useCollateralToggle(): UseAsyncTask<\n CollateralToggleRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: CollateralToggleRequest) =>\n collateralToggle(client, request),\n );\n}\n\n/**\n * A hook that provides a way to liquidate a non-healthy position with Health Factor below 1.\n *\n * ```ts\n * const [liquidate, liquidating] = useLiquidate();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = liquidating.loading && sending.loading;\n * const error = liquidating.error || sending.error;\n *\n * // …\n *\n * const result = await liquidate({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useLiquidate(): UseAsyncTask<\n LiquidateRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: LiquidateRequest) =>\n liquidate(client, request),\n );\n}\n\n/**\n * A hook that provides a way to deposit assets into a vault.\n *\n * ```ts\n * const [deposit, depositing] = useVaultDeposit();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = depositing.loading && sending.loading;\n * const error = depositing.error || sending.error;\n *\n * // …\n *\n * const result = await deposit({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultDeposit(): UseAsyncTask<\n VaultDepositRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultDepositRequest) =>\n vaultDeposit(client, request),\n );\n}\n\n/**\n * A hook that provides a way to mint vault shares.\n *\n * ```ts\n * const [mint, minting] = useVaultMintShares();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = minting.loading && sending.loading;\n * const error = minting.error || sending.error;\n *\n * // …\n *\n * const result = await mint({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultMintShares(): UseAsyncTask<\n VaultMintSharesRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultMintSharesRequest) =>\n vaultMintShares(client, request),\n );\n}\n\n/**\n * A hook that provides a way to redeem vault shares.\n *\n * ```ts\n * const [redeem, redeeming] = useVaultRedeemShares();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = redeeming.loading && sending.loading;\n * const error = redeeming.error || sending.error;\n *\n * // …\n *\n * const result = await redeem({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultRedeemShares(): UseAsyncTask<\n VaultRedeemSharesRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultRedeemSharesRequest) =>\n vaultRedeemShares(client, request),\n );\n}\n\n/**\n * A hook that provides a way to withdraw assets from a vault.\n *\n * ```ts\n * const [withdraw, withdrawing] = useVaultWithdraw();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultWithdraw(): UseAsyncTask<\n VaultWithdrawRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultWithdrawRequest) =>\n vaultWithdraw(client, request),\n );\n}\n\n/**\n * A hook that provides a way to deploy a vault.\n *\n * ```ts\n * const [deploy, deploying] = useVaultDeploy();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = deploying.loading && sending.loading;\n * const error = deploying.error || sending.error;\n *\n * // …\n *\n * const result = await deploy({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultDeploy(): UseAsyncTask<\n VaultDeployRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultDeployRequest) =>\n vaultDeploy(client, request),\n );\n}\n\n/**\n * A hook that provides a way to set vault fee.\n *\n * ```ts\n * const [setFee, setting] = useVaultSetFee();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = setting.loading && sending.loading;\n * const error = setting.error || sending.error;\n *\n * // …\n *\n * const result = await setFee({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultSetFee(): UseAsyncTask<\n VaultSetFeeRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultSetFeeRequest) =>\n vaultSetFee(client, request),\n );\n}\n\n/**\n * A hook that provides a way to withdraw vault fees.\n *\n * ```ts\n * const [withdraw, withdrawing] = useVaultWithdrawFees();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultWithdrawFees(): UseAsyncTask<\n VaultWithdrawFeesRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultWithdrawFeesRequest) =>\n vaultWithdrawFees(client, request),\n );\n}\n\n/**\n * A hook that provides a way to approve a credit borrow delegator to be able to borrow on your behalf.\n *\n * ```ts\n * const [approve, approving] = useApproveBorrowCreditDelegation();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = approving.loading && sending.loading;\n * const error = approving.error || sending.error;\n *\n * // …\n *\n * const result = await approve({\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(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useApproveBorrowCreditDelegation(): UseAsyncTask<\n ApproveBorrowCreditDelegatorRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: ApproveBorrowCreditDelegatorRequest) =>\n approveBorrowCreditDelegation(client, request),\n );\n}\n","import type {\n MarketUserReserveBorrowPosition,\n MarketUserReserveSupplyPosition,\n MarketUserState,\n PaginatedUserTransactionHistoryResult,\n UserBorrowsRequest,\n UserMarketStateRequest,\n UserSuppliesRequest,\n UserTransactionHistoryRequest,\n} from '@aave/graphql';\nimport {\n UserBorrowsQuery,\n UserMarketStateQuery,\n UserSuppliesQuery,\n UserTransactionHistoryQuery,\n} from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UseUserSuppliesArgs = UserSuppliesRequest;\n\n/**\n * Fetch all user supply positions.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserSupplies({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * suspense: true,\n * });\n * ```\n */\nexport function useUserSupplies(\n args: UseUserSuppliesArgs & Suspendable,\n): SuspenseResult<MarketUserReserveSupplyPosition[]>;\n\n/**\n * Fetch all user supply positions.\n *\n * ```tsx\n * const { data, error, loading } = useUserSupplies({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * });\n * ```\n */\nexport function useUserSupplies(\n args: UseUserSuppliesArgs,\n): ReadResult<MarketUserReserveSupplyPosition[]>;\n\nexport function useUserSupplies({\n suspense = false,\n ...request\n}: UseUserSuppliesArgs & {\n suspense?: boolean;\n}): SuspendableResult<MarketUserReserveSupplyPosition[]> {\n return useSuspendableQuery({\n document: UserSuppliesQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserBorrowsArgs = UserBorrowsRequest;\n\n/**\n * Fetch all user borrow positions.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserBorrows({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * suspense: true\n * });\n * ```\n */\nexport function useUserBorrows(\n args: UseUserBorrowsArgs & Suspendable,\n): SuspenseResult<MarketUserReserveBorrowPosition[]>;\n\n/**\n * Fetch all user borrow positions.\n *\n * ```tsx\n * const { data, error, loading } = useUserBorrows({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * });\n * ```\n */\nexport function useUserBorrows(\n args: UseUserBorrowsArgs,\n): ReadResult<MarketUserReserveBorrowPosition[]>;\n\nexport function useUserBorrows({\n suspense = false,\n ...request\n}: UseUserBorrowsArgs & {\n suspense?: boolean;\n}): SuspendableResult<MarketUserReserveBorrowPosition[]> {\n return useSuspendableQuery({\n document: UserBorrowsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserStateArgs = UserMarketStateRequest;\n\n/**\n * Fetch user account market data across all reserves.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserMarketState({\n * market: evmAddress('0x1234…'),\n * user: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useUserMarketState(\n args: UseUserStateArgs & Suspendable,\n): SuspenseResult<MarketUserState>;\n\n/**\n * Fetch user account market data across all reserves.\n *\n * ```tsx\n * const { data, error, loading } = useUserMarketState({\n * market: evmAddress('0x1234…'),\n * user: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useUserMarketState(\n args: UseUserStateArgs,\n): ReadResult<MarketUserState>;\n\nexport function useUserMarketState({\n suspense = false,\n ...request\n}: UseUserStateArgs & {\n suspense?: boolean;\n}): SuspendableResult<MarketUserState> {\n return useSuspendableQuery({\n document: UserMarketStateQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserTransactionHistoryArgs = UserTransactionHistoryRequest;\n\n/**\n * Fetch user transaction history.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserTransactionHistory({\n * suspense: true,\n * });\n * ```\n */\nexport function useUserTransactionHistory(\n args: UseUserTransactionHistoryArgs & Suspendable,\n): SuspenseResult<PaginatedUserTransactionHistoryResult>;\n\n/**\n * Fetch user transaction history.\n *\n * ```tsx\n * const { data, error, loading } = useUserTransactionHistory();\n * ```\n */\nexport function useUserTransactionHistory(\n args: UseUserTransactionHistoryArgs,\n): ReadResult<PaginatedUserTransactionHistoryResult>;\n\nexport function useUserTransactionHistory({\n suspense = false,\n ...request\n}: UseUserTransactionHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedUserTransactionHistoryResult> {\n return useSuspendableQuery({\n document: UserTransactionHistoryQuery,\n variables: { request },\n suspense,\n });\n}\n","import type { UnexpectedError } from '@aave/client';\nimport {\n vaultPreviewDeposit,\n vaultPreviewMint,\n vaultPreviewRedeem,\n vaultPreviewWithdraw,\n} from '@aave/client/actions';\nimport {\n type PaginatedVaultsResult,\n type PaginatedVaultUserTransactionHistoryResult,\n type TokenAmount,\n UserVaultsQuery,\n type UserVaultsRequest,\n type Vault,\n type VaultPreviewDepositRequest,\n type VaultPreviewMintRequest,\n type VaultPreviewRedeemRequest,\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 { useAaveClient } from './context';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n UseAsyncTask,\n} from './helpers';\nimport { useAsyncTask, useSuspendableQuery } from './helpers';\n\nexport type UseVaultArgs = VaultRequest;\n\n/**\n * Fetch a single vault by address and chain ID.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVault({\n * by: {\n * address: evmAddress('0x1234…'),\n * },\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVault(\n args: UseVaultArgs & Suspendable,\n): SuspenseResult<Vault | null>;\n\n/**\n * Fetch a single vault by address and chain ID.\n *\n * ```tsx\n * const { data, error, loading } = useVault({\n * address: evmAddress('0x1234…'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * });\n * ```\n */\nexport function useVault(args: UseVaultArgs): ReadResult<Vault | null>;\n\nexport function useVault({\n suspense = false,\n ...request\n}: UseVaultArgs & {\n suspense?: boolean;\n}): SuspendableResult<Vault | null> {\n return useSuspendableQuery({\n document: VaultQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseVaultsArgs = VaultsRequest;\n\n/**\n * Fetch vaults based on filter criteria.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVaults({\n * criteria: {\n * ownedBy: [evmAddress('0x1234…')]\n * },\n * pageSize: PageSize.Ten,\n * user: evmAddress('0x5678…'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVaults(\n args: UseVaultsArgs & Suspendable,\n): SuspenseResult<PaginatedVaultsResult>;\n\n/**\n * Fetch vaults based on filter criteria.\n *\n * ```tsx\n * const { data, error, loading } = useVaults({\n * criteria: {\n * ownedBy: [evmAddress('0x1234…')]\n * },\n * pageSize: PageSize.Ten,\n * user: evmAddress('0x5678…'),\n * });\n * ```\n */\nexport function useVaults(\n args: UseVaultsArgs,\n): ReadResult<PaginatedVaultsResult>;\n\nexport function useVaults({\n suspense = false,\n ...request\n}: UseVaultsArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedVaultsResult> {\n return useSuspendableQuery({\n document: VaultsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserVaultsArgs = UserVaultsRequest;\n\n/**\n * Fetch vaults that a user has shares in.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserVaults({\n * user: evmAddress('0x1234…'),\n * filters: {\n * markets: [evmAddress('0x5678…')]\n * },\n * orderBy: { shares: OrderDirection.Desc },\n * pageSize: PageSize.Fifty,\n * suspense: true,\n * });\n * ```\n */\nexport function useUserVaults(\n args: UseUserVaultsArgs & Suspendable,\n): SuspenseResult<PaginatedVaultsResult>;\n\n/**\n * Fetch vaults that a user has shares in.\n *\n * ```tsx\n * const { data, error, loading } = useUserVaults({\n * user: evmAddress('0x1234…'),\n * filters: {\n * markets: [evmAddress('0x5678…')]\n * },\n * orderBy: { shares: OrderDirection.Desc },\n * pageSize: PageSize.Fifty,\n * });\n * ```\n */\nexport function useUserVaults(\n args: UseUserVaultsArgs,\n): ReadResult<PaginatedVaultsResult>;\n\nexport function useUserVaults({\n suspense = false,\n ...request\n}: UseUserVaultsArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedVaultsResult> {\n return useSuspendableQuery({\n document: UserVaultsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\n/**\n * Determines the amount of shares that would be received for a deposit.\n *\n * ```ts\n * const [preview, { loading, error }] = useVaultDepositPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('1000'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultDepositPreview(): UseAsyncTask<\n VaultPreviewDepositRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewDepositRequest) =>\n vaultPreviewDeposit(client, 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 [preview, { loading, error }] = useVaultMintPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('500'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultMintPreview(): UseAsyncTask<\n VaultPreviewMintRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewMintRequest) =>\n vaultPreviewMint(client, request),\n );\n}\n\n/**\n * Determines the amount of shares that would be burned for a withdrawal.\n *\n * ```ts\n * const [preview, { loading, error }] = useVaultWithdrawPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('750'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultWithdrawPreview(): UseAsyncTask<\n VaultPreviewWithdrawRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewWithdrawRequest) =>\n vaultPreviewWithdraw(client, 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 * This signature supports React Suspense:\n *\n * ```ts\n * const [preview, { loading, error }] = useVaultRedeemPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('200'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultRedeemPreview(): UseAsyncTask<\n VaultPreviewRedeemRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewRedeemRequest) =>\n vaultPreviewRedeem(client, request),\n );\n}\n\nexport type UseVaultUserTransactionHistoryArgs =\n VaultUserTransactionHistoryRequest;\n\n/**\n * Fetch user transaction history for a vault.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVaultUserTransactionHistory({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVaultUserTransactionHistory(\n args: UseVaultUserTransactionHistoryArgs & Suspendable,\n): SuspenseResult<PaginatedVaultUserTransactionHistoryResult>;\n\n/**\n * Fetch user transaction history for a vault.\n *\n * ```tsx\n * const { data, error, loading } = useVaultUserTransactionHistory({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n * ```\n */\nexport function useVaultUserTransactionHistory(\n args: UseVaultUserTransactionHistoryArgs,\n): ReadResult<PaginatedVaultUserTransactionHistoryResult>;\n\nexport function useVaultUserTransactionHistory({\n suspense = false,\n ...request\n}: UseVaultUserTransactionHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedVaultUserTransactionHistoryResult> {\n return useSuspendableQuery({\n document: VaultUserTransactionHistoryQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseVaultUserActivityArgs = VaultUserActivityRequest;\n\n/**\n * Fetch user activity data for a vault, including earnings breakdown over time.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVaultUserActivity({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVaultUserActivity(\n args: UseVaultUserActivityArgs & Suspendable,\n): SuspenseResult<VaultUserActivityResult>;\n\n/**\n * Fetch user activity data for a vault, including earnings breakdown over time.\n *\n * ```tsx\n * const { data, error, loading } = useVaultUserActivity({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n *\n * if (data) {\n * console.log('Total earned:', data.earned.amount.value);\n * data.breakdown.forEach(activity => {\n * console.log('Date:', activity.date);\n * console.log('Balance:', activity.balance.amount.value);\n * });\n * }\n * ```\n */\nexport function useVaultUserActivity(\n args: UseVaultUserActivityArgs,\n): ReadResult<VaultUserActivityResult>;\n\nexport function useVaultUserActivity({\n suspense = false,\n ...request\n}: UseVaultUserActivityArgs & {\n suspense?: boolean;\n}): SuspendableResult<VaultUserActivityResult> {\n return useSuspendableQuery({\n document: VaultUserActivityQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n"]}
1
+ {"version":3,"sources":["../src/context.tsx","../src/AaveProvider.tsx","../src/helpers/results.ts","../src/helpers/reads.ts","../src/helpers/tasks.ts","../src/gho.ts","../src/incentives.ts","../src/markets.ts","../src/misc.ts","../src/reserves.ts","../src/transactions.ts","../src/user.ts","../src/vaults.ts"],"names":["AaveContext","React","AaveContextProvider","children","client","UrqlProvider","useAaveClient","useContext","invariant","AaveProvider","ReadResult","data","error","useSuspendableQuery","document","variables","suspense","fetching","useQuery","useMemo","unexpected","UnexpectedError","AsyncTaskState","useAsyncTask","handler","state","setState","useState","useCallback","input","result","value","useSavingsGhoBalance","request","SavingsGhoBalanceQuery","useSavingsGhoWithdraw","savingsGhoWithdraw","useSavingsGhoDeposit","savingsGhoDeposit","useUserMeritRewards","UserMeritRewardsQuery","useAaveMarket","borrowsOrderBy","defaultMarketReservesRequestOrderBy","suppliesOrderBy","MarketQuery","useAaveMarkets","MarketsQuery","useAaveChains","filter","ChainsFilter","ChainsQuery","useAaveHealth","HealthQuery","useUsdExchangeRates","UsdExchangeRatesQuery","useAaveHealthFactorPreview","healthFactorPreview","useAaveReserve","ReserveQuery","useBorrowAPYHistory","BorrowAPYHistoryQuery","useSupplyAPYHistory","SupplyAPYHistoryQuery","useCreditDelegateeAllowance","CreditDelegateeAllowanceQuery","useSupply","supply","useBorrow","borrow","useRepay","repay","useWithdraw","withdraw","useUserEMode","userSetEmode","useCollateralToggle","collateralToggle","useLiquidate","liquidate","useVaultDeposit","vaultDeposit","useVaultMintShares","vaultMintShares","useVaultRedeemShares","vaultRedeemShares","useVaultWithdraw","vaultWithdraw","useVaultDeploy","vaultDeploy","useVaultSetFee","vaultSetFee","useVaultWithdrawFees","vaultWithdrawFees","useVaultTransferOwnership","vaultTransferOwnership","useApproveBorrowCreditDelegation","approveBorrowCreditDelegation","useUserSupplies","UserSuppliesQuery","useUserBorrows","UserBorrowsQuery","useUserMarketState","UserMarketStateQuery","useUserTransactionHistory","UserTransactionHistoryQuery","useVault","VaultQuery","useVaults","VaultsQuery","useUserVaults","UserVaultsQuery","useVaultDepositPreview","vaultPreviewDeposit","useVaultMintPreview","vaultPreviewMint","useVaultWithdrawPreview","vaultPreviewWithdraw","useVaultRedeemPreview","vaultPreviewRedeem","useVaultUserTransactionHistory","VaultUserTransactionHistoryQuery","useVaultUserActivity","VaultUserActivityQuery"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { AaveClient } from '@aave/client';\nimport { invariant } from '@aave/types';\nimport React, { type ReactNode, useContext } from 'react';\nimport { Provider as UrqlProvider } from 'urql';\n\nconst AaveContext = React.createContext<AaveClient | null>(null);\n\n/**\n * @internal\n */\nexport type AaveContextProviderProps = {\n children: ReactNode;\n client: AaveClient;\n};\n\n/**\n * @internal\n */\nexport function AaveContextProvider({\n children,\n client,\n}: AaveContextProviderProps) {\n return (\n <AaveContext.Provider value={client}>\n <UrqlProvider value={client.urql}>{children}</UrqlProvider>\n </AaveContext.Provider>\n );\n}\n\n/**\n * Retrieve the injected {@link AaveClient} from the context.\n */\nexport function useAaveClient(): AaveClient {\n const client = useContext(AaveContext);\n\n invariant(\n client,\n 'Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>',\n );\n\n return client;\n}\n","import type { AaveClient } from '@aave/client';\n// biome-ignore lint/correctness/noUnusedImports: intentional\nimport React, { type ReactNode } from 'react';\n\nimport { AaveContextProvider } from './context';\n\n/**\n * <AaveProvider> props\n */\nexport type AaveProviderProps = {\n /**\n * The children to render\n */\n children: ReactNode;\n /**\n * The Aave client instance to use\n */\n client: AaveClient;\n};\n\n/**\n * Manages the internal state of the Aave SDK.\n *\n * ```tsx\n * import { AaveProvider, AaveClient, production } from '@aave/react';\n *\n * const client = AaveClient.create({\n * environment: production,\n * });\n *\n * function App() {\n * return (\n * <AaveProvider client={client}>\n * // ...\n * </AaveProvider>\n * );\n * }\n * ```\n */\nexport function AaveProvider({ children, client }: AaveProviderProps) {\n return <AaveContextProvider client={client}>{children}</AaveContextProvider>;\n}\n","import type { UnexpectedError } from '@aave/client';\n\n/**\n * A read hook result.\n *\n * It's a discriminated union of the possible results of a read operation:\n * - Rely on the `loading` value to determine if the `data` or `error` can be evaluated.\n * - If `error` is `undefined`, then `data` value will be available.\n */\nexport type ReadResult<T, E = never> =\n | {\n data: undefined;\n error: undefined;\n loading: true;\n }\n | {\n data: T;\n error: undefined;\n loading: false;\n }\n | {\n data: undefined;\n error: E;\n loading: false;\n };\n\n/**\n * @internal\n */\nexport const ReadResult = {\n Initial: <T, E = never>(): ReadResult<T, E> => ({\n data: undefined,\n error: undefined,\n loading: true,\n }),\n Success: <T, E = never>(data: T): ReadResult<T, E> => ({\n data,\n error: undefined,\n loading: false,\n }),\n Failure: <T, E = never>(error: E): ReadResult<T, E> => ({\n data: undefined,\n error,\n loading: false,\n }),\n};\n\n/**\n * A read hook result that supports React Suspense\n */\nexport type SuspenseResult<T> = { data: T };\n\nexport type SuspendableResult<T, E extends UnexpectedError = UnexpectedError> =\n | ReadResult<T, E>\n | SuspenseResult<T>;\n","import { type StandardData, UnexpectedError } from '@aave/client';\nimport { type AnyVariables, invariant } from '@aave/types';\nimport { useMemo } from 'react';\nimport { type TypedDocumentNode, useQuery } from 'urql';\nimport {\n ReadResult,\n type SuspendableResult,\n type SuspenseResult,\n} from './results';\n\n/**\n * @internal\n */\nexport type Suspendable = { suspense: true };\n\n/**\n * @internal\n */\nexport type UseSuspendableQueryArgs<\n Value,\n Variables extends AnyVariables,\n Suspense extends boolean = boolean,\n> = {\n document: TypedDocumentNode<StandardData<Value>, Variables>;\n variables: Variables;\n suspense: Suspense;\n};\n\n/**\n * @internal\n */\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables, false>): ReadResult<Value>;\n/**\n * @internal\n */\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables, true>): SuspenseResult<Value>;\n/**\n * @internal\n */\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables>): SuspendableResult<Value>;\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables>): SuspendableResult<Value> {\n const [{ data, fetching, error }] = useQuery({\n query: document,\n variables,\n context: useMemo(() => ({ suspense }), [suspense]),\n });\n\n if (fetching) {\n return ReadResult.Initial();\n }\n\n if (error) {\n const unexpected = UnexpectedError.from(error);\n if (suspense) {\n throw unexpected;\n }\n\n return ReadResult.Failure(unexpected);\n }\n\n invariant(data, 'No data returned');\n\n return ReadResult.Success(data.value);\n}\n","import { invariant, type ResultAsync } from '@aave/types';\nimport { useCallback, useState } from 'react';\n\n/**\n * An async task is a function that can be executed multiple times and that can be in a pending state.\n *\n * @internal\n */\nexport type AsyncTask<TInput, TResult extends ResultAsync<unknown, unknown>> = (\n input: TInput,\n) => TResult;\n\n/**\n * The initial state of a async task.\n */\nexport type AsyncTaskIdle = {\n called: boolean;\n loading: false;\n data: undefined;\n error: undefined;\n};\n\n/**\n * The state of a async task during the loading.\n */\nexport type AsyncTaskLoading<TData> = {\n called: true;\n loading: true;\n data: TData | undefined;\n error: undefined;\n};\n\n/**\n * The state of a async task after a successful call.\n */\nexport type AsyncTaskSuccess<TData> = {\n called: true;\n loading: false;\n data: TData;\n error: undefined;\n};\n\n/**\n * The state of a async task after a failed call.\n */\nexport type AsyncTaskError<TError> = {\n called: true;\n loading: false;\n data: undefined;\n error: TError;\n};\n\n/**\n * The possible statuses of a async task.\n */\nexport type AsyncTaskState<TData, TError> =\n | AsyncTaskIdle\n | AsyncTaskLoading<TData>\n | AsyncTaskSuccess<TData>\n | AsyncTaskError<TError>;\n\nconst AsyncTaskState = {\n Idle: <TData, TError>(): AsyncTaskState<TData, TError> => ({\n called: false,\n loading: false,\n data: undefined,\n error: undefined,\n }),\n Loading: <TData, TError>(data?: TData): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: true,\n data,\n error: undefined,\n }),\n Success: <TData, TError>(data: TData): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: false,\n data,\n error: undefined,\n }),\n Failed: <TData, TError>(error: TError): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: false,\n data: undefined,\n error,\n }),\n};\n\n/**\n * A async task React Hook is a lightweight wrapper for an asynchronous function.\n * It allows tracking of the task's execution status and provides access to the\n * last error that occurred during the task's execution, if any.\n *\n * ```ts\n * const [execute, { called, loading, data, error }]: UseAsyncTask<TData, TError, TInput> = useAnyAsyncTask();\n *\n * if (!called) {\n * // data === undefined\n * // error === undefined\n * return <p>Click the button to execute the task</p>;\n * }\n *\n * if (loading) {\n * // data === undefined on first call\n * // data === TData from previous successful call\n * // error === undefined\n * return <Loader />;\n * }\n *\n * if (error) {\n * // data === undefined\n * // error === TError\n * return <p>Something went wrong: {error.message}</p>;\n * }\n *\n * // called === true\n * // data === TData\n * // error === undefined\n * return <p>Task completed: {data}</p>;\n * ```\n */\nexport type UseAsyncTask<TInput, TValue, TError> = [\n AsyncTask<TInput, ResultAsync<TValue, TError>>,\n AsyncTaskState<TValue, TError>,\n];\n\n/**\n * @internal\n */\nexport function useAsyncTask<\n TInput,\n TValue,\n TError,\n TResult extends ResultAsync<TValue, TError>,\n>(handler: AsyncTask<TInput, TResult>): UseAsyncTask<TInput, TValue, TError> {\n const [state, setState] = useState(AsyncTaskState.Idle<TValue, TError>());\n\n const execute = useCallback(\n (input: TInput) => {\n invariant(\n !state.loading,\n 'Cannot execute a task while another is in progress.',\n );\n\n setState(({ data }) => {\n return {\n called: true,\n loading: true,\n data,\n error: undefined,\n };\n });\n\n const result = handler(input);\n\n result.match(\n (value) => setState(AsyncTaskState.Success(value)),\n (error) => setState(AsyncTaskState.Failed(error)),\n );\n\n return result;\n },\n [handler, state],\n );\n\n return [execute, state];\n}\n","import type { UnexpectedError } from '@aave/client';\nimport { savingsGhoDeposit, savingsGhoWithdraw } from '@aave/client/actions';\nimport type {\n ExecutionPlan,\n SavingsGhoBalanceRequest,\n SavingsGhoDepositRequest,\n SavingsGhoWithdrawRequest,\n TokenAmount,\n} from '@aave/graphql';\nimport { SavingsGhoBalanceQuery } from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport {\n type UseAsyncTask,\n useAsyncTask,\n useSuspendableQuery,\n} from './helpers';\n\nexport type SavingsGhoBalanceArgs = SavingsGhoBalanceRequest;\n\n/**\n * Fetches the current sGHO balance for a user.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useSavingsGhoBalance({\n * user: evmAddress('0x742d35cc…'),\n * suspense: true,\n * });\n * ```\n */\nexport function useSavingsGhoBalance(\n args: SavingsGhoBalanceArgs & Suspendable,\n): SuspenseResult<TokenAmount>;\n\n/**\n * Fetches the current sGHO balance for a user.\n *\n * ```tsx\n * const { data, error, loading } = useSavingsGhoBalance({\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n */\nexport function useSavingsGhoBalance(\n args: SavingsGhoBalanceArgs,\n): ReadResult<TokenAmount>;\n\nexport function useSavingsGhoBalance({\n suspense = false,\n ...request\n}: SavingsGhoBalanceArgs & {\n suspense?: boolean;\n}): SuspendableResult<TokenAmount> {\n return useSuspendableQuery({\n document: SavingsGhoBalanceQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\n/**\n * A hook that provides a way to withdraw sGHO.\n *\n * ```ts\n * const [withdraw, withdrawing] = useSavingsGhoWithdraw();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance to withdraw: ${plan.required.value} is the maximum withdrawal allowed.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useSavingsGhoWithdraw(): UseAsyncTask<\n SavingsGhoWithdrawRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: SavingsGhoWithdrawRequest) =>\n savingsGhoWithdraw(client, request),\n );\n}\n\n/**\n * A hook that provides a way to deposit GHO into sGHO.\n *\n * ```ts\n * const [deposit, depositing] = useSavingsGhoDeposit();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = depositing.loading && sending.loading;\n * const error = depositing.error || sending.error;\n *\n * // …\n *\n * const result = await deposit({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useSavingsGhoDeposit(): UseAsyncTask<\n SavingsGhoDepositRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: SavingsGhoDepositRequest) =>\n savingsGhoDeposit(client, request),\n );\n}\n","import type { UserMeritRewards, UserMeritRewardsRequest } from '@aave/graphql';\nimport { UserMeritRewardsQuery } from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UserMeritRewardsArgs = UserMeritRewardsRequest;\n\n/**\n * Fetches Merit claim rewards for a user with the transaction request to claim them.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserMeritRewards({\n * user: evmAddress('0x742d35cc…'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useUserMeritRewards(\n args: UserMeritRewardsArgs & Suspendable,\n): SuspenseResult<UserMeritRewards | null>;\n\n/**\n * Fetches Merit claim rewards for a user with the transaction request to claim them.\n *\n * ```tsx\n * const { data, loading } = useUserMeritRewards({\n * user: evmAddress('0x742d35cc…'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useUserMeritRewards(\n args: UserMeritRewardsArgs,\n): ReadResult<UserMeritRewards | null>;\n\nexport function useUserMeritRewards({\n suspense = false,\n ...request\n}: UserMeritRewardsArgs & {\n suspense?: boolean;\n}): SuspendableResult<UserMeritRewards | null> {\n return useSuspendableQuery({\n document: UserMeritRewardsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n","import type { MarketRequest, MarketsRequest } from '@aave/client/actions';\nimport { defaultMarketReservesRequestOrderBy } from '@aave/client/actions';\nimport { type Market, MarketQuery, MarketsQuery } from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UseAaveMarketArgs = MarketRequest;\n\n/**\n * Fetch a single Aave Market.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveMarket({\n * address: evmAddress('0x8787…'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveMarket(\n args: UseAaveMarketArgs & Suspendable,\n): SuspenseResult<Market | null>;\n\n/**\n * Fetch a single Aave Market.\n *\n * ```tsx\n * const { data, error, loading } = useAaveMarket({\n * address: evmAddress('0x8787…'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useAaveMarket(\n args: UseAaveMarketArgs,\n): ReadResult<Market | null>;\n\nexport function useAaveMarket({\n suspense = false,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n ...request\n}: UseAaveMarketArgs & {\n suspense?: boolean;\n}): SuspendableResult<Market | null> {\n return useSuspendableQuery({\n document: MarketQuery,\n variables: {\n request,\n borrowsOrderBy,\n suppliesOrderBy,\n },\n suspense,\n });\n}\n\nexport type UseAaveMarketsArgs = MarketsRequest;\n\n/**\n * Fetch all Aave Markets for the specified chains.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveMarkets({\n * chainIds: [chainId(1), chainId(8453)],\n * user: evmAddress('0x742d35cc...'),\n * suspense: true\n * });\n * ```\n */\nexport function useAaveMarkets(\n args: UseAaveMarketsArgs & Suspendable,\n): SuspenseResult<Market[]>;\n\n/**\n * Fetch all Aave Markets for the specified chains.\n *\n * ```tsx\n * const { data, error, loading } = useAaveMarkets({\n * chainIds: [chainId(1), chainId(8453)],\n * user: evmAddress('0x742d35cc...'),\n * });\n * ```\n */\nexport function useAaveMarkets(args: UseAaveMarketsArgs): ReadResult<Market[]>;\n\nexport function useAaveMarkets({\n suspense = false,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n ...request\n}: UseAaveMarketsArgs & {\n suspense?: boolean;\n}): SuspendableResult<Market[]> {\n return useSuspendableQuery({\n document: MarketsQuery,\n variables: {\n request,\n borrowsOrderBy,\n suppliesOrderBy,\n },\n suspense,\n });\n}\n","import type { UnexpectedError } from '@aave/client';\nimport { healthFactorPreview } from '@aave/client/actions';\nimport {\n type Chain,\n ChainsFilter,\n ChainsQuery,\n type HealthFactorPreviewRequest,\n type HealthFactorPreviewResponse,\n HealthQuery,\n type UsdExchangeRate,\n UsdExchangeRatesQuery,\n type UsdExchangeRatesRequest,\n} from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n UseAsyncTask,\n} from './helpers';\nimport { useAsyncTask, useSuspendableQuery } from './helpers';\n\nexport type UseAaveChainsArgs = {\n filter?: ChainsFilter;\n};\n\n/**\n * Fetch all supported Aave chains.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveChains({\n * filter: ChainsFilter.MAINNET_ONLY,\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveChains(\n args: UseAaveChainsArgs & Suspendable,\n): SuspenseResult<Chain[]>;\n\n/**\n * Fetch all supported Aave chains.\n *\n * ```tsx\n * const { data, error, loading } = useAaveChains({\n * filter: ChainsFilter.MAINNET_ONLY,\n * });\n * ```\n */\nexport function useAaveChains(args: UseAaveChainsArgs): ReadResult<Chain[]>;\n\nexport function useAaveChains({\n suspense = false,\n filter = ChainsFilter.ALL,\n}: UseAaveChainsArgs & {\n suspense?: boolean;\n}): SuspendableResult<Chain[]> {\n return useSuspendableQuery({\n document: ChainsQuery,\n variables: {\n filter,\n },\n suspense,\n });\n}\n\n/**\n * Health check query.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveHealth({\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveHealth(args: Suspendable): SuspenseResult<boolean>;\n\n/**\n * Health check query.\n *\n * ```tsx\n * const { data, error, loading } = useAaveHealth();\n * ```\n */\nexport function useAaveHealth(): ReadResult<boolean>;\n\nexport function useAaveHealth({\n suspense = false,\n}: {\n suspense?: boolean;\n} = {}): SuspendableResult<boolean> {\n return useSuspendableQuery({\n document: HealthQuery,\n variables: {},\n suspense,\n });\n}\n\nexport type UseUsdExchangeRatesArgs = UsdExchangeRatesRequest;\n\n/**\n * Fetch USD exchange rates for different tokens on a given market.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUsdExchangeRates({\n * market: evmAddress('0x1234…'),\n * underlyingTokens: [evmAddress('0x5678…'), evmAddress('0x90ab…')],\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useUsdExchangeRates(\n args: UseUsdExchangeRatesArgs & Suspendable,\n): SuspenseResult<UsdExchangeRate[]>;\n\n/**\n * Fetch USD exchange rates for different tokens on a given market.\n *\n * ```tsx\n * const { data, error, loading } = useUsdExchangeRates({\n * market: evmAddress('0x1234…'),\n * underlyingTokens: [evmAddress('0x5678…'), evmAddress('0x90ab…')],\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useUsdExchangeRates(\n args: UseUsdExchangeRatesArgs,\n): ReadResult<UsdExchangeRate[]>;\n\nexport function useUsdExchangeRates({\n suspense = false,\n ...request\n}: UseUsdExchangeRatesArgs & {\n suspense?: boolean;\n}): SuspendableResult<UsdExchangeRate[]> {\n return useSuspendableQuery({\n document: UsdExchangeRatesQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\n/**\n * Determines the health factor after a given action.\n *\n * ```ts\n * const [preview, { loading, error }] = useAaveHealthFactorPreview();\n *\n * // …\n *\n * const result = await preview({\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 * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useAaveHealthFactorPreview(): UseAsyncTask<\n HealthFactorPreviewRequest,\n HealthFactorPreviewResponse,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: HealthFactorPreviewRequest) =>\n healthFactorPreview(client, request),\n );\n}\n","import {\n type APYSample,\n BorrowAPYHistoryQuery,\n type BorrowAPYHistoryRequest,\n CreditDelegateeAllowanceQuery,\n type CreditDelegateeAmountRequest,\n type Reserve,\n ReserveQuery,\n type ReserveRequest,\n SupplyAPYHistoryQuery,\n type SupplyAPYHistoryRequest,\n type TokenAmount,\n} from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UseAaveReserveArgs = ReserveRequest;\n\n/**\n * Fetch a single Aave Reserve.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveReserve({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveReserve(\n args: UseAaveReserveArgs & Suspendable,\n): SuspenseResult<Reserve | null>;\n\n/**\n * Fetch a single Aave Reserve.\n *\n * ```tsx\n * const { data, error, loading } = useAaveReserve({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useAaveReserve(\n args: UseAaveReserveArgs,\n): ReadResult<Reserve | null>;\n\nexport function useAaveReserve({\n suspense = false,\n ...request\n}: UseAaveReserveArgs & {\n suspense?: boolean;\n}): SuspendableResult<Reserve | null> {\n return useSuspendableQuery({\n document: ReserveQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseBorrowAPYHistoryArgs = BorrowAPYHistoryRequest;\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 * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useBorrowAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek\n * suspense: true\n * });\n * ```\n */\n\nexport function useBorrowAPYHistory(\n args: UseBorrowAPYHistoryArgs & Suspendable,\n): SuspenseResult<APYSample[]>;\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 * ```tsx\n * const { data } = useBorrowAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek\n * });\n * ```\n */\n\nexport function useBorrowAPYHistory(\n args: UseBorrowAPYHistoryArgs,\n): ReadResult<APYSample[]>;\n\nexport function useBorrowAPYHistory({\n suspense = false,\n ...request\n}: UseBorrowAPYHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<APYSample[]> {\n return useSuspendableQuery({\n document: BorrowAPYHistoryQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseSupplyAPYHistoryArgs = SupplyAPYHistoryRequest;\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 * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useSupplyAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek,\n * suspense: true\n * });\n * ```\n */\nexport function useSupplyAPYHistory(\n args: UseSupplyAPYHistoryArgs & Suspendable,\n): SuspenseResult<APYSample[]>;\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 * ```tsx\n * const { data } = useSupplyAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek\n * });\n * ```\n */\nexport function useSupplyAPYHistory(\n args: UseSupplyAPYHistoryArgs,\n): ReadResult<APYSample[]>;\n\nexport function useSupplyAPYHistory({\n suspense = false,\n ...request\n}: UseSupplyAPYHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<APYSample[]> {\n return useSuspendableQuery({\n document: SupplyAPYHistoryQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseCreditDelegateeAllowanceArgs = CreditDelegateeAmountRequest;\n\n/**\n * Get the amount delegated to the credit delegatee that can borrow on your behalf.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useCreditDelegateeAllowance({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * user: evmAddress('0x742d35cc...'),\n * delegatee: evmAddress('0x5678...'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useCreditDelegateeAllowance(\n args: UseCreditDelegateeAllowanceArgs & Suspendable,\n): SuspenseResult<TokenAmount>;\n\n/**\n * Get the amount delegated to the credit delegatee that can borrow on your behalf.\n *\n * ```tsx\n * const { data, error, loading } = useCreditDelegateeAllowance({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * user: evmAddress('0x742d35cc...'),\n * delegatee: evmAddress('0x5678...'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useCreditDelegateeAllowance(\n args: UseCreditDelegateeAllowanceArgs,\n): ReadResult<TokenAmount>;\n\nexport function useCreditDelegateeAllowance({\n suspense = false,\n ...request\n}: UseCreditDelegateeAllowanceArgs & {\n suspense?: boolean;\n}): SuspendableResult<TokenAmount> {\n return useSuspendableQuery({\n document: CreditDelegateeAllowanceQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n","import type { UnexpectedError } from '@aave/client';\nimport {\n approveBorrowCreditDelegation,\n borrow,\n collateralToggle,\n liquidate,\n repay,\n supply,\n userSetEmode,\n vaultDeploy,\n vaultDeposit,\n vaultMintShares,\n vaultRedeemShares,\n vaultSetFee,\n vaultTransferOwnership,\n vaultWithdraw,\n vaultWithdrawFees,\n withdraw,\n} from '@aave/client/actions';\nimport type {\n ApproveBorrowCreditDelegatorRequest,\n BorrowRequest,\n CollateralToggleRequest,\n ExecutionPlan,\n LiquidateRequest,\n RepayRequest,\n SupplyRequest,\n TransactionRequest,\n UserSetEmodeRequest,\n VaultDeployRequest,\n VaultDepositRequest,\n VaultMintSharesRequest,\n VaultRedeemSharesRequest,\n VaultSetFeeRequest,\n VaultTransferOwnershipRequest,\n VaultWithdrawFeesRequest,\n VaultWithdrawRequest,\n WithdrawRequest,\n} from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport { type UseAsyncTask, useAsyncTask } from './helpers';\n\n/**\n * A hook that provides a way to supply assets to an Aave market.\n *\n * ```ts\n * const [supply, supplying] = useSupply();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = supplying.loading && sending.loading;\n * const error = supplying.error || sending.error;\n *\n * // …\n *\n * const result = await supply({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useSupply(): UseAsyncTask<\n SupplyRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: SupplyRequest) => supply(client, request));\n}\n\n/**\n * A hook that provides a way to borrow assets from an Aave market.\n *\n * ```ts\n * const [borrow, borrowing] = useBorrow();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = borrowing.loading && sending.loading;\n * const error = borrowing.error || sending.error;\n *\n * // …\n *\n * const result = await borrow({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useBorrow(): UseAsyncTask<\n BorrowRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: BorrowRequest) => borrow(client, request));\n}\n\n/**\n * A hook that provides a way to repay borrowed assets to an Aave market.\n *\n * ```ts\n * const [repay, repaying] = useRepay();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = repaying.loading && sending.loading;\n * const error = repaying.error || sending.error;\n *\n * // …\n *\n * const result = await repay({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useRepay(): UseAsyncTask<\n RepayRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: RepayRequest) => repay(client, request));\n}\n\n/**\n * A hook that provides a way to withdraw supplied assets from an Aave market.\n *\n * ```ts\n * const [withdraw, withdrawing] = useWithdraw();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useWithdraw(): UseAsyncTask<\n WithdrawRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: WithdrawRequest) => withdraw(client, request));\n}\n\n/**\n * A hook that provides a way to set eMode for a user.\n *\n * ```ts\n * const [setUserEMode, setting] = useUserEMode();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = setting.loading && sending.loading;\n * const error = setting.error || sending.error;\n *\n * // …\n *\n * const result = await setUserEMode({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useUserEMode(): UseAsyncTask<\n UserSetEmodeRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: UserSetEmodeRequest) =>\n userSetEmode(client, request),\n );\n}\n\n/**\n * A hook that provides a way to enable/disable a specific supplied asset as collateral.\n *\n * ```ts\n * const [toggle, toggling] = useCollateralToggle();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = toggling.loading && sending.loading;\n * const error = toggling.error || sending.error;\n *\n * // …\n *\n * const result = await toggle({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useCollateralToggle(): UseAsyncTask<\n CollateralToggleRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: CollateralToggleRequest) =>\n collateralToggle(client, request),\n );\n}\n\n/**\n * A hook that provides a way to liquidate a non-healthy position with Health Factor below 1.\n *\n * ```ts\n * const [liquidate, liquidating] = useLiquidate();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = liquidating.loading && sending.loading;\n * const error = liquidating.error || sending.error;\n *\n * // …\n *\n * const result = await liquidate({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useLiquidate(): UseAsyncTask<\n LiquidateRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: LiquidateRequest) =>\n liquidate(client, request),\n );\n}\n\n/**\n * A hook that provides a way to deposit assets into a vault.\n *\n * ```ts\n * const [deposit, depositing] = useVaultDeposit();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = depositing.loading && sending.loading;\n * const error = depositing.error || sending.error;\n *\n * // …\n *\n * const result = await deposit({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultDeposit(): UseAsyncTask<\n VaultDepositRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultDepositRequest) =>\n vaultDeposit(client, request),\n );\n}\n\n/**\n * A hook that provides a way to mint vault shares.\n *\n * ```ts\n * const [mint, minting] = useVaultMintShares();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = minting.loading && sending.loading;\n * const error = minting.error || sending.error;\n *\n * // …\n *\n * const result = await mint({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultMintShares(): UseAsyncTask<\n VaultMintSharesRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultMintSharesRequest) =>\n vaultMintShares(client, request),\n );\n}\n\n/**\n * A hook that provides a way to redeem vault shares.\n *\n * ```ts\n * const [redeem, redeeming] = useVaultRedeemShares();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = redeeming.loading && sending.loading;\n * const error = redeeming.error || sending.error;\n *\n * // …\n *\n * const result = await redeem({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultRedeemShares(): UseAsyncTask<\n VaultRedeemSharesRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultRedeemSharesRequest) =>\n vaultRedeemShares(client, request),\n );\n}\n\n/**\n * A hook that provides a way to withdraw assets from a vault.\n *\n * ```ts\n * const [withdraw, withdrawing] = useVaultWithdraw();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultWithdraw(): UseAsyncTask<\n VaultWithdrawRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultWithdrawRequest) =>\n vaultWithdraw(client, request),\n );\n}\n\n/**\n * A hook that provides a way to deploy a vault.\n *\n * ```ts\n * const [deploy, deploying] = useVaultDeploy();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = deploying.loading && sending.loading;\n * const error = deploying.error || sending.error;\n *\n * // …\n *\n * const result = await deploy({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultDeploy(): UseAsyncTask<\n VaultDeployRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultDeployRequest) =>\n vaultDeploy(client, request),\n );\n}\n\n/**\n * A hook that provides a way to set vault fee.\n *\n * ```ts\n * const [setFee, setting] = useVaultSetFee();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = setting.loading && sending.loading;\n * const error = setting.error || sending.error;\n *\n * // …\n *\n * const result = await setFee({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultSetFee(): UseAsyncTask<\n VaultSetFeeRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultSetFeeRequest) =>\n vaultSetFee(client, request),\n );\n}\n\n/**\n * A hook that provides a way to withdraw vault fees.\n *\n * ```ts\n * const [withdraw, withdrawing] = useVaultWithdrawFees();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultWithdrawFees(): UseAsyncTask<\n VaultWithdrawFeesRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultWithdrawFeesRequest) =>\n vaultWithdrawFees(client, request),\n );\n}\n\n/**\n * A hook that provides a way to transfer ownership of a vault.\n *\n * ```ts\n * const [transferOwnership, transferring] = useVaultTransferOwnership();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = transferring.loading && sending.loading;\n * const error = transferring.error || sending.error;\n *\n * // …\n *\n * const result = await transferOwnership({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultTransferOwnership(): UseAsyncTask<\n VaultTransferOwnershipRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultTransferOwnershipRequest) =>\n vaultTransferOwnership(client, request),\n );\n}\n\n/**\n * A hook that provides a way to approve a credit borrow delegator to be able to borrow on your behalf.\n *\n * ```ts\n * const [approve, approving] = useApproveBorrowCreditDelegation();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = approving.loading && sending.loading;\n * const error = approving.error || sending.error;\n *\n * // …\n *\n * const result = await approve({\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(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useApproveBorrowCreditDelegation(): UseAsyncTask<\n ApproveBorrowCreditDelegatorRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: ApproveBorrowCreditDelegatorRequest) =>\n approveBorrowCreditDelegation(client, request),\n );\n}\n","import type {\n MarketUserReserveBorrowPosition,\n MarketUserReserveSupplyPosition,\n MarketUserState,\n PaginatedUserTransactionHistoryResult,\n UserBorrowsRequest,\n UserMarketStateRequest,\n UserSuppliesRequest,\n UserTransactionHistoryRequest,\n} from '@aave/graphql';\nimport {\n UserBorrowsQuery,\n UserMarketStateQuery,\n UserSuppliesQuery,\n UserTransactionHistoryQuery,\n} from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UseUserSuppliesArgs = UserSuppliesRequest;\n\n/**\n * Fetch all user supply positions.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserSupplies({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * suspense: true,\n * });\n * ```\n */\nexport function useUserSupplies(\n args: UseUserSuppliesArgs & Suspendable,\n): SuspenseResult<MarketUserReserveSupplyPosition[]>;\n\n/**\n * Fetch all user supply positions.\n *\n * ```tsx\n * const { data, error, loading } = useUserSupplies({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * });\n * ```\n */\nexport function useUserSupplies(\n args: UseUserSuppliesArgs,\n): ReadResult<MarketUserReserveSupplyPosition[]>;\n\nexport function useUserSupplies({\n suspense = false,\n ...request\n}: UseUserSuppliesArgs & {\n suspense?: boolean;\n}): SuspendableResult<MarketUserReserveSupplyPosition[]> {\n return useSuspendableQuery({\n document: UserSuppliesQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserBorrowsArgs = UserBorrowsRequest;\n\n/**\n * Fetch all user borrow positions.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserBorrows({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * suspense: true\n * });\n * ```\n */\nexport function useUserBorrows(\n args: UseUserBorrowsArgs & Suspendable,\n): SuspenseResult<MarketUserReserveBorrowPosition[]>;\n\n/**\n * Fetch all user borrow positions.\n *\n * ```tsx\n * const { data, error, loading } = useUserBorrows({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * });\n * ```\n */\nexport function useUserBorrows(\n args: UseUserBorrowsArgs,\n): ReadResult<MarketUserReserveBorrowPosition[]>;\n\nexport function useUserBorrows({\n suspense = false,\n ...request\n}: UseUserBorrowsArgs & {\n suspense?: boolean;\n}): SuspendableResult<MarketUserReserveBorrowPosition[]> {\n return useSuspendableQuery({\n document: UserBorrowsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserStateArgs = UserMarketStateRequest;\n\n/**\n * Fetch user account market data across all reserves.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserMarketState({\n * market: evmAddress('0x1234…'),\n * user: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useUserMarketState(\n args: UseUserStateArgs & Suspendable,\n): SuspenseResult<MarketUserState>;\n\n/**\n * Fetch user account market data across all reserves.\n *\n * ```tsx\n * const { data, error, loading } = useUserMarketState({\n * market: evmAddress('0x1234…'),\n * user: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useUserMarketState(\n args: UseUserStateArgs,\n): ReadResult<MarketUserState>;\n\nexport function useUserMarketState({\n suspense = false,\n ...request\n}: UseUserStateArgs & {\n suspense?: boolean;\n}): SuspendableResult<MarketUserState> {\n return useSuspendableQuery({\n document: UserMarketStateQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserTransactionHistoryArgs = UserTransactionHistoryRequest;\n\n/**\n * Fetch user transaction history.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserTransactionHistory({\n * suspense: true,\n * });\n * ```\n */\nexport function useUserTransactionHistory(\n args: UseUserTransactionHistoryArgs & Suspendable,\n): SuspenseResult<PaginatedUserTransactionHistoryResult>;\n\n/**\n * Fetch user transaction history.\n *\n * ```tsx\n * const { data, error, loading } = useUserTransactionHistory();\n * ```\n */\nexport function useUserTransactionHistory(\n args: UseUserTransactionHistoryArgs,\n): ReadResult<PaginatedUserTransactionHistoryResult>;\n\nexport function useUserTransactionHistory({\n suspense = false,\n ...request\n}: UseUserTransactionHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedUserTransactionHistoryResult> {\n return useSuspendableQuery({\n document: UserTransactionHistoryQuery,\n variables: { request },\n suspense,\n });\n}\n","import type { UnexpectedError } from '@aave/client';\nimport {\n vaultPreviewDeposit,\n vaultPreviewMint,\n vaultPreviewRedeem,\n vaultPreviewWithdraw,\n} from '@aave/client/actions';\nimport {\n type PaginatedVaultsResult,\n type PaginatedVaultUserTransactionHistoryResult,\n type TokenAmount,\n UserVaultsQuery,\n type UserVaultsRequest,\n type Vault,\n type VaultPreviewDepositRequest,\n type VaultPreviewMintRequest,\n type VaultPreviewRedeemRequest,\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 { useAaveClient } from './context';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n UseAsyncTask,\n} from './helpers';\nimport { useAsyncTask, useSuspendableQuery } from './helpers';\n\nexport type UseVaultArgs = VaultRequest;\n\n/**\n * Fetch a single vault by address and chain ID.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVault({\n * by: {\n * address: evmAddress('0x1234…'),\n * },\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVault(\n args: UseVaultArgs & Suspendable,\n): SuspenseResult<Vault | null>;\n\n/**\n * Fetch a single vault by address and chain ID.\n *\n * ```tsx\n * const { data, error, loading } = useVault({\n * address: evmAddress('0x1234…'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * });\n * ```\n */\nexport function useVault(args: UseVaultArgs): ReadResult<Vault | null>;\n\nexport function useVault({\n suspense = false,\n ...request\n}: UseVaultArgs & {\n suspense?: boolean;\n}): SuspendableResult<Vault | null> {\n return useSuspendableQuery({\n document: VaultQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseVaultsArgs = VaultsRequest;\n\n/**\n * Fetch vaults based on filter criteria.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVaults({\n * criteria: {\n * ownedBy: [evmAddress('0x1234…')]\n * },\n * pageSize: PageSize.Ten,\n * user: evmAddress('0x5678…'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVaults(\n args: UseVaultsArgs & Suspendable,\n): SuspenseResult<PaginatedVaultsResult>;\n\n/**\n * Fetch vaults based on filter criteria.\n *\n * ```tsx\n * const { data, error, loading } = useVaults({\n * criteria: {\n * ownedBy: [evmAddress('0x1234…')]\n * },\n * pageSize: PageSize.Ten,\n * user: evmAddress('0x5678…'),\n * });\n * ```\n */\nexport function useVaults(\n args: UseVaultsArgs,\n): ReadResult<PaginatedVaultsResult>;\n\nexport function useVaults({\n suspense = false,\n ...request\n}: UseVaultsArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedVaultsResult> {\n return useSuspendableQuery({\n document: VaultsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserVaultsArgs = UserVaultsRequest;\n\n/**\n * Fetch vaults that a user has shares in.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserVaults({\n * user: evmAddress('0x1234…'),\n * filters: {\n * markets: [evmAddress('0x5678…')]\n * },\n * orderBy: { shares: OrderDirection.Desc },\n * pageSize: PageSize.Fifty,\n * suspense: true,\n * });\n * ```\n */\nexport function useUserVaults(\n args: UseUserVaultsArgs & Suspendable,\n): SuspenseResult<PaginatedVaultsResult>;\n\n/**\n * Fetch vaults that a user has shares in.\n *\n * ```tsx\n * const { data, error, loading } = useUserVaults({\n * user: evmAddress('0x1234…'),\n * filters: {\n * markets: [evmAddress('0x5678…')]\n * },\n * orderBy: { shares: OrderDirection.Desc },\n * pageSize: PageSize.Fifty,\n * });\n * ```\n */\nexport function useUserVaults(\n args: UseUserVaultsArgs,\n): ReadResult<PaginatedVaultsResult>;\n\nexport function useUserVaults({\n suspense = false,\n ...request\n}: UseUserVaultsArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedVaultsResult> {\n return useSuspendableQuery({\n document: UserVaultsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\n/**\n * Determines the amount of shares that would be received for a deposit.\n *\n * ```ts\n * const [preview, { loading, error }] = useVaultDepositPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('1000'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultDepositPreview(): UseAsyncTask<\n VaultPreviewDepositRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewDepositRequest) =>\n vaultPreviewDeposit(client, 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 [preview, { loading, error }] = useVaultMintPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('500'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultMintPreview(): UseAsyncTask<\n VaultPreviewMintRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewMintRequest) =>\n vaultPreviewMint(client, request),\n );\n}\n\n/**\n * Determines the amount of shares that would be burned for a withdrawal.\n *\n * ```ts\n * const [preview, { loading, error }] = useVaultWithdrawPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('750'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultWithdrawPreview(): UseAsyncTask<\n VaultPreviewWithdrawRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewWithdrawRequest) =>\n vaultPreviewWithdraw(client, 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 * This signature supports React Suspense:\n *\n * ```ts\n * const [preview, { loading, error }] = useVaultRedeemPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('200'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultRedeemPreview(): UseAsyncTask<\n VaultPreviewRedeemRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewRedeemRequest) =>\n vaultPreviewRedeem(client, request),\n );\n}\n\nexport type UseVaultUserTransactionHistoryArgs =\n VaultUserTransactionHistoryRequest;\n\n/**\n * Fetch user transaction history for a vault.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVaultUserTransactionHistory({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVaultUserTransactionHistory(\n args: UseVaultUserTransactionHistoryArgs & Suspendable,\n): SuspenseResult<PaginatedVaultUserTransactionHistoryResult>;\n\n/**\n * Fetch user transaction history for a vault.\n *\n * ```tsx\n * const { data, error, loading } = useVaultUserTransactionHistory({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n * ```\n */\nexport function useVaultUserTransactionHistory(\n args: UseVaultUserTransactionHistoryArgs,\n): ReadResult<PaginatedVaultUserTransactionHistoryResult>;\n\nexport function useVaultUserTransactionHistory({\n suspense = false,\n ...request\n}: UseVaultUserTransactionHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedVaultUserTransactionHistoryResult> {\n return useSuspendableQuery({\n document: VaultUserTransactionHistoryQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseVaultUserActivityArgs = VaultUserActivityRequest;\n\n/**\n * Fetch user activity data for a vault, including earnings breakdown over time.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVaultUserActivity({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVaultUserActivity(\n args: UseVaultUserActivityArgs & Suspendable,\n): SuspenseResult<VaultUserActivityResult>;\n\n/**\n * Fetch user activity data for a vault, including earnings breakdown over time.\n *\n * ```tsx\n * const { data, error, loading } = useVaultUserActivity({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n *\n * if (data) {\n * console.log('Total earned:', data.earned.amount.value);\n * data.breakdown.forEach(activity => {\n * console.log('Date:', activity.date);\n * console.log('Balance:', activity.balance.amount.value);\n * });\n * }\n * ```\n */\nexport function useVaultUserActivity(\n args: UseVaultUserActivityArgs,\n): ReadResult<VaultUserActivityResult>;\n\nexport function useVaultUserActivity({\n suspense = false,\n ...request\n}: UseVaultUserActivityArgs & {\n suspense?: boolean;\n}): SuspendableResult<VaultUserActivityResult> {\n return useSuspendableQuery({\n document: VaultUserActivityQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n"]}
package/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AaveClient, UnexpectedError } from '@aave/client';
2
2
  export * from '@aave/client';
3
3
  import React, { ReactNode } from 'react';
4
- import { SavingsGhoBalanceRequest, TokenAmount, SavingsGhoWithdrawRequest, ExecutionPlan, SavingsGhoDepositRequest, UserMeritRewardsRequest, UserMeritRewards, Market, ChainsFilter, Chain, UsdExchangeRatesRequest, UsdExchangeRate, HealthFactorPreviewRequest, HealthFactorPreviewResponse, ReserveRequest, Reserve, BorrowAPYHistoryRequest, APYSample, SupplyAPYHistoryRequest, CreditDelegateeAmountRequest, SupplyRequest, BorrowRequest, RepayRequest, WithdrawRequest, UserSetEmodeRequest, TransactionRequest, CollateralToggleRequest, LiquidateRequest, VaultDepositRequest, VaultMintSharesRequest, VaultRedeemSharesRequest, VaultWithdrawRequest, VaultDeployRequest, VaultSetFeeRequest, VaultWithdrawFeesRequest, ApproveBorrowCreditDelegatorRequest, UserSuppliesRequest, MarketUserReserveSupplyPosition, UserBorrowsRequest, MarketUserReserveBorrowPosition, UserMarketStateRequest, MarketUserState, UserTransactionHistoryRequest, PaginatedUserTransactionHistoryResult, VaultRequest, Vault, VaultsRequest, PaginatedVaultsResult, UserVaultsRequest, VaultPreviewDepositRequest, VaultPreviewMintRequest, VaultPreviewWithdrawRequest, VaultPreviewRedeemRequest, VaultUserTransactionHistoryRequest, PaginatedVaultUserTransactionHistoryResult, VaultUserActivityRequest, VaultUserActivityResult } from '@aave/graphql';
4
+ import { SavingsGhoBalanceRequest, TokenAmount, SavingsGhoWithdrawRequest, ExecutionPlan, SavingsGhoDepositRequest, UserMeritRewardsRequest, UserMeritRewards, Market, ChainsFilter, Chain, UsdExchangeRatesRequest, UsdExchangeRate, HealthFactorPreviewRequest, HealthFactorPreviewResponse, ReserveRequest, Reserve, BorrowAPYHistoryRequest, APYSample, SupplyAPYHistoryRequest, CreditDelegateeAmountRequest, SupplyRequest, BorrowRequest, RepayRequest, WithdrawRequest, UserSetEmodeRequest, TransactionRequest, CollateralToggleRequest, LiquidateRequest, VaultDepositRequest, VaultMintSharesRequest, VaultRedeemSharesRequest, VaultWithdrawRequest, VaultDeployRequest, VaultSetFeeRequest, VaultWithdrawFeesRequest, VaultTransferOwnershipRequest, ApproveBorrowCreditDelegatorRequest, UserSuppliesRequest, MarketUserReserveSupplyPosition, UserBorrowsRequest, MarketUserReserveBorrowPosition, UserMarketStateRequest, MarketUserState, UserTransactionHistoryRequest, PaginatedUserTransactionHistoryResult, VaultRequest, Vault, VaultsRequest, PaginatedVaultsResult, UserVaultsRequest, VaultPreviewDepositRequest, VaultPreviewMintRequest, VaultPreviewWithdrawRequest, VaultPreviewRedeemRequest, VaultUserTransactionHistoryRequest, PaginatedVaultUserTransactionHistoryResult, VaultUserActivityRequest, VaultUserActivityResult } from '@aave/graphql';
5
5
  import { U as UseAsyncTask } from './tasks-DUn7x8pK.cjs';
6
6
  import { MarketRequest, MarketsRequest } from '@aave/client/actions';
7
7
  import '@aave/types';
@@ -934,6 +934,30 @@ declare function useVaultSetFee(): UseAsyncTask<VaultSetFeeRequest, TransactionR
934
934
  * ```
935
935
  */
936
936
  declare function useVaultWithdrawFees(): UseAsyncTask<VaultWithdrawFeesRequest, TransactionRequest, UnexpectedError>;
937
+ /**
938
+ * A hook that provides a way to transfer ownership of a vault.
939
+ *
940
+ * ```ts
941
+ * const [transferOwnership, transferring] = useVaultTransferOwnership();
942
+ * const [sendTransaction, sending] = useSendTransaction(wallet);
943
+ *
944
+ * const loading = transferring.loading && sending.loading;
945
+ * const error = transferring.error || sending.error;
946
+ *
947
+ * // …
948
+ *
949
+ * const result = await transferOwnership({ ... })
950
+ * .andThen(sendTransaction);
951
+ *
952
+ * if (result.isErr()) {
953
+ * console.error(result.error);
954
+ * return;
955
+ * }
956
+ *
957
+ * console.log('Transaction sent with hash:', result.value);
958
+ * ```
959
+ */
960
+ declare function useVaultTransferOwnership(): UseAsyncTask<VaultTransferOwnershipRequest, TransactionRequest, UnexpectedError>;
937
961
  /**
938
962
  * A hook that provides a way to approve a credit borrow delegator to be able to borrow on your behalf.
939
963
  *
@@ -1322,4 +1346,4 @@ declare function useVaultUserActivity(args: UseVaultUserActivityArgs & Suspendab
1322
1346
  */
1323
1347
  declare function useVaultUserActivity(args: UseVaultUserActivityArgs): ReadResult<VaultUserActivityResult>;
1324
1348
 
1325
- export { AaveProvider, type AaveProviderProps, type SavingsGhoBalanceArgs, type UseAaveChainsArgs, type UseAaveMarketArgs, type UseAaveMarketsArgs, type UseAaveReserveArgs, type UseBorrowAPYHistoryArgs, type UseCreditDelegateeAllowanceArgs, type UseSupplyAPYHistoryArgs, type UseUsdExchangeRatesArgs, type UseUserBorrowsArgs, type UseUserStateArgs, type UseUserSuppliesArgs, type UseUserTransactionHistoryArgs, type UseUserVaultsArgs, type UseVaultArgs, type UseVaultUserActivityArgs, type UseVaultUserTransactionHistoryArgs, type UseVaultsArgs, type UserMeritRewardsArgs, useAaveChains, useAaveClient, useAaveHealth, useAaveHealthFactorPreview, useAaveMarket, useAaveMarkets, useAaveReserve, useApproveBorrowCreditDelegation, useBorrow, useBorrowAPYHistory, useCollateralToggle, useCreditDelegateeAllowance, useLiquidate, useRepay, useSavingsGhoBalance, useSavingsGhoDeposit, useSavingsGhoWithdraw, useSupply, useSupplyAPYHistory, useUsdExchangeRates, useUserBorrows, useUserEMode, useUserMarketState, useUserMeritRewards, useUserSupplies, useUserTransactionHistory, useUserVaults, useVault, useVaultDeploy, useVaultDeposit, useVaultDepositPreview, useVaultMintPreview, useVaultMintShares, useVaultRedeemPreview, useVaultRedeemShares, useVaultSetFee, useVaultUserActivity, useVaultUserTransactionHistory, useVaultWithdraw, useVaultWithdrawFees, useVaultWithdrawPreview, useVaults, useWithdraw };
1349
+ export { AaveProvider, type AaveProviderProps, type SavingsGhoBalanceArgs, type UseAaveChainsArgs, type UseAaveMarketArgs, type UseAaveMarketsArgs, type UseAaveReserveArgs, type UseBorrowAPYHistoryArgs, type UseCreditDelegateeAllowanceArgs, type UseSupplyAPYHistoryArgs, type UseUsdExchangeRatesArgs, type UseUserBorrowsArgs, type UseUserStateArgs, type UseUserSuppliesArgs, type UseUserTransactionHistoryArgs, type UseUserVaultsArgs, type UseVaultArgs, type UseVaultUserActivityArgs, type UseVaultUserTransactionHistoryArgs, type UseVaultsArgs, type UserMeritRewardsArgs, useAaveChains, useAaveClient, useAaveHealth, useAaveHealthFactorPreview, useAaveMarket, useAaveMarkets, useAaveReserve, useApproveBorrowCreditDelegation, useBorrow, useBorrowAPYHistory, useCollateralToggle, useCreditDelegateeAllowance, useLiquidate, useRepay, useSavingsGhoBalance, useSavingsGhoDeposit, useSavingsGhoWithdraw, useSupply, useSupplyAPYHistory, useUsdExchangeRates, useUserBorrows, useUserEMode, useUserMarketState, useUserMeritRewards, useUserSupplies, useUserTransactionHistory, useUserVaults, useVault, useVaultDeploy, useVaultDeposit, useVaultDepositPreview, useVaultMintPreview, useVaultMintShares, useVaultRedeemPreview, useVaultRedeemShares, useVaultSetFee, useVaultTransferOwnership, useVaultUserActivity, useVaultUserTransactionHistory, useVaultWithdraw, useVaultWithdrawFees, useVaultWithdrawPreview, useVaults, useWithdraw };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AaveClient, UnexpectedError } from '@aave/client';
2
2
  export * from '@aave/client';
3
3
  import React, { ReactNode } from 'react';
4
- import { SavingsGhoBalanceRequest, TokenAmount, SavingsGhoWithdrawRequest, ExecutionPlan, SavingsGhoDepositRequest, UserMeritRewardsRequest, UserMeritRewards, Market, ChainsFilter, Chain, UsdExchangeRatesRequest, UsdExchangeRate, HealthFactorPreviewRequest, HealthFactorPreviewResponse, ReserveRequest, Reserve, BorrowAPYHistoryRequest, APYSample, SupplyAPYHistoryRequest, CreditDelegateeAmountRequest, SupplyRequest, BorrowRequest, RepayRequest, WithdrawRequest, UserSetEmodeRequest, TransactionRequest, CollateralToggleRequest, LiquidateRequest, VaultDepositRequest, VaultMintSharesRequest, VaultRedeemSharesRequest, VaultWithdrawRequest, VaultDeployRequest, VaultSetFeeRequest, VaultWithdrawFeesRequest, ApproveBorrowCreditDelegatorRequest, UserSuppliesRequest, MarketUserReserveSupplyPosition, UserBorrowsRequest, MarketUserReserveBorrowPosition, UserMarketStateRequest, MarketUserState, UserTransactionHistoryRequest, PaginatedUserTransactionHistoryResult, VaultRequest, Vault, VaultsRequest, PaginatedVaultsResult, UserVaultsRequest, VaultPreviewDepositRequest, VaultPreviewMintRequest, VaultPreviewWithdrawRequest, VaultPreviewRedeemRequest, VaultUserTransactionHistoryRequest, PaginatedVaultUserTransactionHistoryResult, VaultUserActivityRequest, VaultUserActivityResult } from '@aave/graphql';
4
+ import { SavingsGhoBalanceRequest, TokenAmount, SavingsGhoWithdrawRequest, ExecutionPlan, SavingsGhoDepositRequest, UserMeritRewardsRequest, UserMeritRewards, Market, ChainsFilter, Chain, UsdExchangeRatesRequest, UsdExchangeRate, HealthFactorPreviewRequest, HealthFactorPreviewResponse, ReserveRequest, Reserve, BorrowAPYHistoryRequest, APYSample, SupplyAPYHistoryRequest, CreditDelegateeAmountRequest, SupplyRequest, BorrowRequest, RepayRequest, WithdrawRequest, UserSetEmodeRequest, TransactionRequest, CollateralToggleRequest, LiquidateRequest, VaultDepositRequest, VaultMintSharesRequest, VaultRedeemSharesRequest, VaultWithdrawRequest, VaultDeployRequest, VaultSetFeeRequest, VaultWithdrawFeesRequest, VaultTransferOwnershipRequest, ApproveBorrowCreditDelegatorRequest, UserSuppliesRequest, MarketUserReserveSupplyPosition, UserBorrowsRequest, MarketUserReserveBorrowPosition, UserMarketStateRequest, MarketUserState, UserTransactionHistoryRequest, PaginatedUserTransactionHistoryResult, VaultRequest, Vault, VaultsRequest, PaginatedVaultsResult, UserVaultsRequest, VaultPreviewDepositRequest, VaultPreviewMintRequest, VaultPreviewWithdrawRequest, VaultPreviewRedeemRequest, VaultUserTransactionHistoryRequest, PaginatedVaultUserTransactionHistoryResult, VaultUserActivityRequest, VaultUserActivityResult } from '@aave/graphql';
5
5
  import { U as UseAsyncTask } from './tasks-DUn7x8pK.js';
6
6
  import { MarketRequest, MarketsRequest } from '@aave/client/actions';
7
7
  import '@aave/types';
@@ -934,6 +934,30 @@ declare function useVaultSetFee(): UseAsyncTask<VaultSetFeeRequest, TransactionR
934
934
  * ```
935
935
  */
936
936
  declare function useVaultWithdrawFees(): UseAsyncTask<VaultWithdrawFeesRequest, TransactionRequest, UnexpectedError>;
937
+ /**
938
+ * A hook that provides a way to transfer ownership of a vault.
939
+ *
940
+ * ```ts
941
+ * const [transferOwnership, transferring] = useVaultTransferOwnership();
942
+ * const [sendTransaction, sending] = useSendTransaction(wallet);
943
+ *
944
+ * const loading = transferring.loading && sending.loading;
945
+ * const error = transferring.error || sending.error;
946
+ *
947
+ * // …
948
+ *
949
+ * const result = await transferOwnership({ ... })
950
+ * .andThen(sendTransaction);
951
+ *
952
+ * if (result.isErr()) {
953
+ * console.error(result.error);
954
+ * return;
955
+ * }
956
+ *
957
+ * console.log('Transaction sent with hash:', result.value);
958
+ * ```
959
+ */
960
+ declare function useVaultTransferOwnership(): UseAsyncTask<VaultTransferOwnershipRequest, TransactionRequest, UnexpectedError>;
937
961
  /**
938
962
  * A hook that provides a way to approve a credit borrow delegator to be able to borrow on your behalf.
939
963
  *
@@ -1322,4 +1346,4 @@ declare function useVaultUserActivity(args: UseVaultUserActivityArgs & Suspendab
1322
1346
  */
1323
1347
  declare function useVaultUserActivity(args: UseVaultUserActivityArgs): ReadResult<VaultUserActivityResult>;
1324
1348
 
1325
- export { AaveProvider, type AaveProviderProps, type SavingsGhoBalanceArgs, type UseAaveChainsArgs, type UseAaveMarketArgs, type UseAaveMarketsArgs, type UseAaveReserveArgs, type UseBorrowAPYHistoryArgs, type UseCreditDelegateeAllowanceArgs, type UseSupplyAPYHistoryArgs, type UseUsdExchangeRatesArgs, type UseUserBorrowsArgs, type UseUserStateArgs, type UseUserSuppliesArgs, type UseUserTransactionHistoryArgs, type UseUserVaultsArgs, type UseVaultArgs, type UseVaultUserActivityArgs, type UseVaultUserTransactionHistoryArgs, type UseVaultsArgs, type UserMeritRewardsArgs, useAaveChains, useAaveClient, useAaveHealth, useAaveHealthFactorPreview, useAaveMarket, useAaveMarkets, useAaveReserve, useApproveBorrowCreditDelegation, useBorrow, useBorrowAPYHistory, useCollateralToggle, useCreditDelegateeAllowance, useLiquidate, useRepay, useSavingsGhoBalance, useSavingsGhoDeposit, useSavingsGhoWithdraw, useSupply, useSupplyAPYHistory, useUsdExchangeRates, useUserBorrows, useUserEMode, useUserMarketState, useUserMeritRewards, useUserSupplies, useUserTransactionHistory, useUserVaults, useVault, useVaultDeploy, useVaultDeposit, useVaultDepositPreview, useVaultMintPreview, useVaultMintShares, useVaultRedeemPreview, useVaultRedeemShares, useVaultSetFee, useVaultUserActivity, useVaultUserTransactionHistory, useVaultWithdraw, useVaultWithdrawFees, useVaultWithdrawPreview, useVaults, useWithdraw };
1349
+ export { AaveProvider, type AaveProviderProps, type SavingsGhoBalanceArgs, type UseAaveChainsArgs, type UseAaveMarketArgs, type UseAaveMarketsArgs, type UseAaveReserveArgs, type UseBorrowAPYHistoryArgs, type UseCreditDelegateeAllowanceArgs, type UseSupplyAPYHistoryArgs, type UseUsdExchangeRatesArgs, type UseUserBorrowsArgs, type UseUserStateArgs, type UseUserSuppliesArgs, type UseUserTransactionHistoryArgs, type UseUserVaultsArgs, type UseVaultArgs, type UseVaultUserActivityArgs, type UseVaultUserTransactionHistoryArgs, type UseVaultsArgs, type UserMeritRewardsArgs, useAaveChains, useAaveClient, useAaveHealth, useAaveHealthFactorPreview, useAaveMarket, useAaveMarkets, useAaveReserve, useApproveBorrowCreditDelegation, useBorrow, useBorrowAPYHistory, useCollateralToggle, useCreditDelegateeAllowance, useLiquidate, useRepay, useSavingsGhoBalance, useSavingsGhoDeposit, useSavingsGhoWithdraw, useSupply, useSupplyAPYHistory, useUsdExchangeRates, useUserBorrows, useUserEMode, useUserMarketState, useUserMeritRewards, useUserSupplies, useUserTransactionHistory, useUserVaults, useVault, useVaultDeploy, useVaultDeposit, useVaultDepositPreview, useVaultMintPreview, useVaultMintShares, useVaultRedeemPreview, useVaultRedeemShares, useVaultSetFee, useVaultTransferOwnership, useVaultUserActivity, useVaultUserTransactionHistory, useVaultWithdraw, useVaultWithdrawFees, useVaultWithdrawPreview, useVaults, useWithdraw };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import {a,b,c}from'./chunk-SECI6TSB.js';export{b as useAaveClient}from'./chunk-SECI6TSB.js';import {UnexpectedError}from'@aave/client';export*from'@aave/client';import d,{useMemo}from'react';import {savingsGhoWithdraw,savingsGhoDeposit,defaultMarketReservesRequestOrderBy,healthFactorPreview,supply,borrow,repay,withdraw,userSetEmode,collateralToggle,liquidate,vaultDeposit,vaultMintShares,vaultRedeemShares,vaultWithdraw,vaultDeploy,vaultSetFee,vaultWithdrawFees,approveBorrowCreditDelegation,vaultPreviewDeposit,vaultPreviewMint,vaultPreviewWithdraw,vaultPreviewRedeem}from'@aave/client/actions';import {ChainsFilter,SavingsGhoBalanceQuery,UserMeritRewardsQuery,MarketQuery,MarketsQuery,ChainsQuery,HealthQuery,UsdExchangeRatesQuery,ReserveQuery,BorrowAPYHistoryQuery,SupplyAPYHistoryQuery,CreditDelegateeAllowanceQuery,UserSuppliesQuery,UserBorrowsQuery,UserMarketStateQuery,UserTransactionHistoryQuery,VaultQuery,VaultsQuery,UserVaultsQuery,VaultUserTransactionHistoryQuery,VaultUserActivityQuery}from'@aave/graphql';import {invariant}from'@aave/types';import {useQuery}from'urql';function ie({children:e,client:s}){return d.createElement(a,{client:s},e)}var o={Initial:()=>({data:void 0,error:void 0,loading:true}),Success:e=>({data:e,error:void 0,loading:false}),Failure:e=>({data:void 0,error:e,loading:false})};function r({document:e,variables:s,suspense:u}){let[{data:n,fetching:R,error:i}]=useQuery({query:e,variables:s,context:useMemo(()=>({suspense:u}),[u])});if(R)return o.Initial();if(i){let p=UnexpectedError.from(i);if(u)throw p;return o.Failure(p)}return invariant(n,"No data returned"),o.Success(n.value)}function me({suspense:e=false,...s}){return r({document:SavingsGhoBalanceQuery,variables:{request:s},suspense:e})}function Ve(){let e=b();return c(s=>savingsGhoWithdraw(e,s))}function be(){let e=b();return c(s=>savingsGhoDeposit(e,s))}function Te({suspense:e=false,...s}){return r({document:UserMeritRewardsQuery,variables:{request:s},suspense:e})}function He({suspense:e=false,borrowsOrderBy:s=defaultMarketReservesRequestOrderBy,suppliesOrderBy:u=defaultMarketReservesRequestOrderBy,...n}){return r({document:MarketQuery,variables:{request:n,borrowsOrderBy:s,suppliesOrderBy:u},suspense:e})}function Be({suspense:e=false,borrowsOrderBy:s=defaultMarketReservesRequestOrderBy,suppliesOrderBy:u=defaultMarketReservesRequestOrderBy,...n}){return r({document:MarketsQuery,variables:{request:n,borrowsOrderBy:s,suppliesOrderBy:u},suspense:e})}function Fe({suspense:e=false,filter:s=ChainsFilter.ALL}){return r({document:ChainsQuery,variables:{filter:s},suspense:e})}function Ge({suspense:e=false}={}){return r({document:HealthQuery,variables:{},suspense:e})}function Le({suspense:e=false,...s}){return r({document:UsdExchangeRatesQuery,variables:{request:s},suspense:e})}function Ne(){let e=b();return c(s=>healthFactorPreview(e,s))}function ze({suspense:e=false,...s}){return r({document:ReserveQuery,variables:{request:s},suspense:e})}function Je({suspense:e=false,...s}){return r({document:BorrowAPYHistoryQuery,variables:{request:s},suspense:e})}function Ke({suspense:e=false,...s}){return r({document:SupplyAPYHistoryQuery,variables:{request:s},suspense:e})}function Xe({suspense:e=false,...s}){return r({document:CreditDelegateeAllowanceQuery,variables:{request:s},suspense:e})}function ss(){let e=b();return c(s=>supply(e,s))}function ts(){let e=b();return c(s=>borrow(e,s))}function rs(){let e=b();return c(s=>repay(e,s))}function as(){let e=b();return c(s=>withdraw(e,s))}function us(){let e=b();return c(s=>userSetEmode(e,s))}function ns(){let e=b();return c(s=>collateralToggle(e,s))}function os(){let e=b();return c(s=>liquidate(e,s))}function ls(){let e=b();return c(s=>vaultDeposit(e,s))}function is(){let e=b();return c(s=>vaultMintShares(e,s))}function ps(){let e=b();return c(s=>vaultRedeemShares(e,s))}function cs(){let e=b();return c(s=>vaultWithdraw(e,s))}function Rs(){let e=b();return c(s=>vaultDeploy(e,s))}function ds(){let e=b();return c(s=>vaultSetFee(e,s))}function Us(){let e=b();return c(s=>vaultWithdrawFees(e,s))}function ys(){let e=b();return c(s=>approveBorrowCreditDelegation(e,s))}function vs({suspense:e=false,...s}){return r({document:UserSuppliesQuery,variables:{request:s},suspense:e})}function xs({suspense:e=false,...s}){return r({document:UserBorrowsQuery,variables:{request:s},suspense:e})}function fs({suspense:e=false,...s}){return r({document:UserMarketStateQuery,variables:{request:s},suspense:e})}function ms({suspense:e=false,...s}){return r({document:UserTransactionHistoryQuery,variables:{request:s},suspense:e})}function Ts({suspense:e=false,...s}){return r({document:VaultQuery,variables:{request:s},suspense:e})}function Ps({suspense:e=false,...s}){return r({document:VaultsQuery,variables:{request:s},suspense:e})}function ks({suspense:e=false,...s}){return r({document:UserVaultsQuery,variables:{request:s},suspense:e})}function Ms(){let e=b();return c(s=>vaultPreviewDeposit(e,s))}function Es(){let e=b();return c(s=>vaultPreviewMint(e,s))}function Hs(){let e=b();return c(s=>vaultPreviewWithdraw(e,s))}function Bs(){let e=b();return c(s=>vaultPreviewRedeem(e,s))}function Cs({suspense:e=false,...s}){return r({document:VaultUserTransactionHistoryQuery,variables:{request:s},suspense:e})}function Ds({suspense:e=false,...s}){return r({document:VaultUserActivityQuery,variables:{request:s},suspense:e})}export{ie as AaveProvider,Fe as useAaveChains,Ge as useAaveHealth,Ne as useAaveHealthFactorPreview,He as useAaveMarket,Be as useAaveMarkets,ze as useAaveReserve,ys as useApproveBorrowCreditDelegation,ts as useBorrow,Je as useBorrowAPYHistory,ns as useCollateralToggle,Xe as useCreditDelegateeAllowance,os as useLiquidate,rs as useRepay,me as useSavingsGhoBalance,be as useSavingsGhoDeposit,Ve as useSavingsGhoWithdraw,ss as useSupply,Ke as useSupplyAPYHistory,Le as useUsdExchangeRates,xs as useUserBorrows,us as useUserEMode,fs as useUserMarketState,Te as useUserMeritRewards,vs as useUserSupplies,ms as useUserTransactionHistory,ks as useUserVaults,Ts as useVault,Rs as useVaultDeploy,ls as useVaultDeposit,Ms as useVaultDepositPreview,Es as useVaultMintPreview,is as useVaultMintShares,Bs as useVaultRedeemPreview,ps as useVaultRedeemShares,ds as useVaultSetFee,Ds as useVaultUserActivity,Cs as useVaultUserTransactionHistory,cs as useVaultWithdraw,Us as useVaultWithdrawFees,Hs as useVaultWithdrawPreview,Ps as useVaults,as as useWithdraw};//# sourceMappingURL=index.js.map
1
+ import {a as a$1,b,c}from'./chunk-SECI6TSB.js';export{b as useAaveClient}from'./chunk-SECI6TSB.js';import {UnexpectedError}from'@aave/client';export*from'@aave/client';import d,{useMemo}from'react';import {savingsGhoWithdraw,savingsGhoDeposit,defaultMarketReservesRequestOrderBy,healthFactorPreview,supply,borrow,repay,withdraw,userSetEmode,collateralToggle,liquidate,vaultDeposit,vaultMintShares,vaultRedeemShares,vaultWithdraw,vaultDeploy,vaultSetFee,vaultWithdrawFees,vaultTransferOwnership,approveBorrowCreditDelegation,vaultPreviewDeposit,vaultPreviewMint,vaultPreviewWithdraw,vaultPreviewRedeem}from'@aave/client/actions';import {ChainsFilter,SavingsGhoBalanceQuery,UserMeritRewardsQuery,MarketQuery,MarketsQuery,ChainsQuery,HealthQuery,UsdExchangeRatesQuery,ReserveQuery,BorrowAPYHistoryQuery,SupplyAPYHistoryQuery,CreditDelegateeAllowanceQuery,UserSuppliesQuery,UserBorrowsQuery,UserMarketStateQuery,UserTransactionHistoryQuery,VaultQuery,VaultsQuery,UserVaultsQuery,VaultUserTransactionHistoryQuery,VaultUserActivityQuery}from'@aave/graphql';import {invariant}from'@aave/types';import {useQuery}from'urql';function pe({children:e,client:s}){return d.createElement(a$1,{client:s},e)}var o={Initial:()=>({data:void 0,error:void 0,loading:true}),Success:e=>({data:e,error:void 0,loading:false}),Failure:e=>({data:void 0,error:e,loading:false})};function a({document:e,variables:s,suspense:u}){let[{data:n,fetching:R,error:i}]=useQuery({query:e,variables:s,context:useMemo(()=>({suspense:u}),[u])});if(R)return o.Initial();if(i){let p=UnexpectedError.from(i);if(u)throw p;return o.Failure(p)}return invariant(n,"No data returned"),o.Success(n.value)}function Ve({suspense:e=false,...s}){return a({document:SavingsGhoBalanceQuery,variables:{request:s},suspense:e})}function be(){let e=b();return c(s=>savingsGhoWithdraw(e,s))}function qe(){let e=b();return c(s=>savingsGhoDeposit(e,s))}function Pe({suspense:e=false,...s}){return a({document:UserMeritRewardsQuery,variables:{request:s},suspense:e})}function Be({suspense:e=false,borrowsOrderBy:s=defaultMarketReservesRequestOrderBy,suppliesOrderBy:u=defaultMarketReservesRequestOrderBy,...n}){return a({document:MarketQuery,variables:{request:n,borrowsOrderBy:s,suppliesOrderBy:u},suspense:e})}function Ce({suspense:e=false,borrowsOrderBy:s=defaultMarketReservesRequestOrderBy,suppliesOrderBy:u=defaultMarketReservesRequestOrderBy,...n}){return a({document:MarketsQuery,variables:{request:n,borrowsOrderBy:s,suppliesOrderBy:u},suspense:e})}function Ge({suspense:e=false,filter:s=ChainsFilter.ALL}){return a({document:ChainsQuery,variables:{filter:s},suspense:e})}function Le({suspense:e=false}={}){return a({document:HealthQuery,variables:{},suspense:e})}function Oe({suspense:e=false,...s}){return a({document:UsdExchangeRatesQuery,variables:{request:s},suspense:e})}function Ne(){let e=b();return c(s=>healthFactorPreview(e,s))}function Je({suspense:e=false,...s}){return a({document:ReserveQuery,variables:{request:s},suspense:e})}function Ke({suspense:e=false,...s}){return a({document:BorrowAPYHistoryQuery,variables:{request:s},suspense:e})}function Xe({suspense:e=false,...s}){return a({document:SupplyAPYHistoryQuery,variables:{request:s},suspense:e})}function Ze({suspense:e=false,...s}){return a({document:CreditDelegateeAllowanceQuery,variables:{request:s},suspense:e})}function ts(){let e=b();return c(s=>supply(e,s))}function rs(){let e=b();return c(s=>borrow(e,s))}function as(){let e=b();return c(s=>repay(e,s))}function us(){let e=b();return c(s=>withdraw(e,s))}function ns(){let e=b();return c(s=>userSetEmode(e,s))}function os(){let e=b();return c(s=>collateralToggle(e,s))}function ls(){let e=b();return c(s=>liquidate(e,s))}function is(){let e=b();return c(s=>vaultDeposit(e,s))}function ps(){let e=b();return c(s=>vaultMintShares(e,s))}function cs(){let e=b();return c(s=>vaultRedeemShares(e,s))}function Rs(){let e=b();return c(s=>vaultWithdraw(e,s))}function ds(){let e=b();return c(s=>vaultDeploy(e,s))}function Us(){let e=b();return c(s=>vaultSetFee(e,s))}function ys(){let e=b();return c(s=>vaultWithdrawFees(e,s))}function As(){let e=b();return c(s=>vaultTransferOwnership(e,s))}function gs(){let e=b();return c(s=>approveBorrowCreditDelegation(e,s))}function vs({suspense:e=false,...s}){return a({document:UserSuppliesQuery,variables:{request:s},suspense:e})}function ms({suspense:e=false,...s}){return a({document:UserBorrowsQuery,variables:{request:s},suspense:e})}function Vs({suspense:e=false,...s}){return a({document:UserMarketStateQuery,variables:{request:s},suspense:e})}function bs({suspense:e=false,...s}){return a({document:UserTransactionHistoryQuery,variables:{request:s},suspense:e})}function ks({suspense:e=false,...s}){return a({document:VaultQuery,variables:{request:s},suspense:e})}function Es({suspense:e=false,...s}){return a({document:VaultsQuery,variables:{request:s},suspense:e})}function Ms({suspense:e=false,...s}){return a({document:UserVaultsQuery,variables:{request:s},suspense:e})}function Hs(){let e=b();return c(s=>vaultPreviewDeposit(e,s))}function Bs(){let e=b();return c(s=>vaultPreviewMint(e,s))}function Cs(){let e=b();return c(s=>vaultPreviewWithdraw(e,s))}function Ds(){let e=b();return c(s=>vaultPreviewRedeem(e,s))}function Qs({suspense:e=false,...s}){return a({document:VaultUserTransactionHistoryQuery,variables:{request:s},suspense:e})}function Ys({suspense:e=false,...s}){return a({document:VaultUserActivityQuery,variables:{request:s},suspense:e})}export{pe as AaveProvider,Ge as useAaveChains,Le as useAaveHealth,Ne as useAaveHealthFactorPreview,Be as useAaveMarket,Ce as useAaveMarkets,Je as useAaveReserve,gs as useApproveBorrowCreditDelegation,rs as useBorrow,Ke as useBorrowAPYHistory,os as useCollateralToggle,Ze as useCreditDelegateeAllowance,ls as useLiquidate,as as useRepay,Ve as useSavingsGhoBalance,qe as useSavingsGhoDeposit,be as useSavingsGhoWithdraw,ts as useSupply,Xe as useSupplyAPYHistory,Oe as useUsdExchangeRates,ms as useUserBorrows,ns as useUserEMode,Vs as useUserMarketState,Pe as useUserMeritRewards,vs as useUserSupplies,bs as useUserTransactionHistory,Ms as useUserVaults,ks as useVault,ds as useVaultDeploy,is as useVaultDeposit,Hs as useVaultDepositPreview,Bs as useVaultMintPreview,ps as useVaultMintShares,Ds as useVaultRedeemPreview,cs as useVaultRedeemShares,Us as useVaultSetFee,As as useVaultTransferOwnership,Ys as useVaultUserActivity,Qs as useVaultUserTransactionHistory,Rs as useVaultWithdraw,ys as useVaultWithdrawFees,Cs as useVaultWithdrawPreview,Es as useVaults,us as useWithdraw};//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/AaveProvider.tsx","../src/helpers/results.ts","../src/helpers/reads.ts","../src/gho.ts","../src/incentives.ts","../src/markets.ts","../src/misc.ts","../src/reserves.ts","../src/transactions.ts","../src/user.ts","../src/vaults.ts"],"names":["AaveProvider","children","client","React","AaveContextProvider","ReadResult","data","error","useSuspendableQuery","document","variables","suspense","fetching","useQuery","useMemo","unexpected","UnexpectedError","invariant","useSavingsGhoBalance","request","SavingsGhoBalanceQuery","useSavingsGhoWithdraw","useAaveClient","useAsyncTask","savingsGhoWithdraw","useSavingsGhoDeposit","savingsGhoDeposit","useUserMeritRewards","UserMeritRewardsQuery","useAaveMarket","borrowsOrderBy","defaultMarketReservesRequestOrderBy","suppliesOrderBy","MarketQuery","useAaveMarkets","MarketsQuery","useAaveChains","filter","ChainsFilter","ChainsQuery","useAaveHealth","HealthQuery","useUsdExchangeRates","UsdExchangeRatesQuery","useAaveHealthFactorPreview","healthFactorPreview","useAaveReserve","ReserveQuery","useBorrowAPYHistory","BorrowAPYHistoryQuery","useSupplyAPYHistory","SupplyAPYHistoryQuery","useCreditDelegateeAllowance","CreditDelegateeAllowanceQuery","useSupply","supply","useBorrow","borrow","useRepay","repay","useWithdraw","withdraw","useUserEMode","userSetEmode","useCollateralToggle","collateralToggle","useLiquidate","liquidate","useVaultDeposit","vaultDeposit","useVaultMintShares","vaultMintShares","useVaultRedeemShares","vaultRedeemShares","useVaultWithdraw","vaultWithdraw","useVaultDeploy","vaultDeploy","useVaultSetFee","vaultSetFee","useVaultWithdrawFees","vaultWithdrawFees","useApproveBorrowCreditDelegation","approveBorrowCreditDelegation","useUserSupplies","UserSuppliesQuery","useUserBorrows","UserBorrowsQuery","useUserMarketState","UserMarketStateQuery","useUserTransactionHistory","UserTransactionHistoryQuery","useVault","VaultQuery","useVaults","VaultsQuery","useUserVaults","UserVaultsQuery","useVaultDepositPreview","vaultPreviewDeposit","useVaultMintPreview","vaultPreviewMint","useVaultWithdrawPreview","vaultPreviewWithdraw","useVaultRedeemPreview","vaultPreviewRedeem","useVaultUserTransactionHistory","VaultUserTransactionHistoryQuery","useVaultUserActivity","VaultUserActivityQuery"],"mappings":"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","file":"index.js","sourcesContent":["import type { AaveClient } from '@aave/client';\n// biome-ignore lint/correctness/noUnusedImports: intentional\nimport React, { type ReactNode } from 'react';\n\nimport { AaveContextProvider } from './context';\n\n/**\n * <AaveProvider> props\n */\nexport type AaveProviderProps = {\n /**\n * The children to render\n */\n children: ReactNode;\n /**\n * The Aave client instance to use\n */\n client: AaveClient;\n};\n\n/**\n * Manages the internal state of the Aave SDK.\n *\n * ```tsx\n * import { AaveProvider, AaveClient, production } from '@aave/react';\n *\n * const client = AaveClient.create({\n * environment: production,\n * });\n *\n * function App() {\n * return (\n * <AaveProvider client={client}>\n * // ...\n * </AaveProvider>\n * );\n * }\n * ```\n */\nexport function AaveProvider({ children, client }: AaveProviderProps) {\n return <AaveContextProvider client={client}>{children}</AaveContextProvider>;\n}\n","import type { UnexpectedError } from '@aave/client';\n\n/**\n * A read hook result.\n *\n * It's a discriminated union of the possible results of a read operation:\n * - Rely on the `loading` value to determine if the `data` or `error` can be evaluated.\n * - If `error` is `undefined`, then `data` value will be available.\n */\nexport type ReadResult<T, E = never> =\n | {\n data: undefined;\n error: undefined;\n loading: true;\n }\n | {\n data: T;\n error: undefined;\n loading: false;\n }\n | {\n data: undefined;\n error: E;\n loading: false;\n };\n\n/**\n * @internal\n */\nexport const ReadResult = {\n Initial: <T, E = never>(): ReadResult<T, E> => ({\n data: undefined,\n error: undefined,\n loading: true,\n }),\n Success: <T, E = never>(data: T): ReadResult<T, E> => ({\n data,\n error: undefined,\n loading: false,\n }),\n Failure: <T, E = never>(error: E): ReadResult<T, E> => ({\n data: undefined,\n error,\n loading: false,\n }),\n};\n\n/**\n * A read hook result that supports React Suspense\n */\nexport type SuspenseResult<T> = { data: T };\n\nexport type SuspendableResult<T, E extends UnexpectedError = UnexpectedError> =\n | ReadResult<T, E>\n | SuspenseResult<T>;\n","import { UnexpectedError } from '@aave/client';\nimport type { AnyVariables, StandardData } from '@aave/graphql';\nimport { invariant } from '@aave/types';\nimport { useMemo } from 'react';\nimport { type TypedDocumentNode, useQuery } from 'urql';\nimport {\n ReadResult,\n type SuspendableResult,\n type SuspenseResult,\n} from './results';\n\n/**\n * @internal\n */\nexport type Suspendable = { suspense: true };\n\n/**\n * @internal\n */\nexport type UseSuspendableQueryArgs<\n Value,\n Variables extends AnyVariables,\n Suspense extends boolean = boolean,\n> = {\n document: TypedDocumentNode<StandardData<Value>, Variables>;\n variables: Variables;\n suspense: Suspense;\n};\n\n/**\n * @internal\n */\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables, false>): ReadResult<Value>;\n/**\n * @internal\n */\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables, true>): SuspenseResult<Value>;\n/**\n * @internal\n */\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables>): SuspendableResult<Value>;\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables>): SuspendableResult<Value> {\n const [{ data, fetching, error }] = useQuery({\n query: document,\n variables,\n context: useMemo(() => ({ suspense }), [suspense]),\n });\n\n if (fetching) {\n return ReadResult.Initial();\n }\n\n if (error) {\n const unexpected = UnexpectedError.from(error);\n if (suspense) {\n throw unexpected;\n }\n\n return ReadResult.Failure(unexpected);\n }\n\n invariant(data, 'No data returned');\n\n return ReadResult.Success(data.value);\n}\n","import type { UnexpectedError } from '@aave/client';\nimport { savingsGhoDeposit, savingsGhoWithdraw } from '@aave/client/actions';\nimport type {\n ExecutionPlan,\n SavingsGhoBalanceRequest,\n SavingsGhoDepositRequest,\n SavingsGhoWithdrawRequest,\n TokenAmount,\n} from '@aave/graphql';\nimport { SavingsGhoBalanceQuery } from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport {\n type UseAsyncTask,\n useAsyncTask,\n useSuspendableQuery,\n} from './helpers';\n\nexport type SavingsGhoBalanceArgs = SavingsGhoBalanceRequest;\n\n/**\n * Fetches the current sGHO balance for a user.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useSavingsGhoBalance({\n * user: evmAddress('0x742d35cc…'),\n * suspense: true,\n * });\n * ```\n */\nexport function useSavingsGhoBalance(\n args: SavingsGhoBalanceArgs & Suspendable,\n): SuspenseResult<TokenAmount>;\n\n/**\n * Fetches the current sGHO balance for a user.\n *\n * ```tsx\n * const { data, error, loading } = useSavingsGhoBalance({\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n */\nexport function useSavingsGhoBalance(\n args: SavingsGhoBalanceArgs,\n): ReadResult<TokenAmount>;\n\nexport function useSavingsGhoBalance({\n suspense = false,\n ...request\n}: SavingsGhoBalanceArgs & {\n suspense?: boolean;\n}): SuspendableResult<TokenAmount> {\n return useSuspendableQuery({\n document: SavingsGhoBalanceQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\n/**\n * A hook that provides a way to withdraw sGHO.\n *\n * ```ts\n * const [withdraw, withdrawing] = useSavingsGhoWithdraw();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance to withdraw: ${plan.required.value} is the maximum withdrawal allowed.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useSavingsGhoWithdraw(): UseAsyncTask<\n SavingsGhoWithdrawRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: SavingsGhoWithdrawRequest) =>\n savingsGhoWithdraw(client, request),\n );\n}\n\n/**\n * A hook that provides a way to deposit GHO into sGHO.\n *\n * ```ts\n * const [deposit, depositing] = useSavingsGhoDeposit();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = depositing.loading && sending.loading;\n * const error = depositing.error || sending.error;\n *\n * // …\n *\n * const result = await deposit({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useSavingsGhoDeposit(): UseAsyncTask<\n SavingsGhoDepositRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: SavingsGhoDepositRequest) =>\n savingsGhoDeposit(client, request),\n );\n}\n","import type { UserMeritRewards, UserMeritRewardsRequest } from '@aave/graphql';\nimport { UserMeritRewardsQuery } from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UserMeritRewardsArgs = UserMeritRewardsRequest;\n\n/**\n * Fetches Merit claim rewards for a user with the transaction request to claim them.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserMeritRewards({\n * user: evmAddress('0x742d35cc…'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useUserMeritRewards(\n args: UserMeritRewardsArgs & Suspendable,\n): SuspenseResult<UserMeritRewards | null>;\n\n/**\n * Fetches Merit claim rewards for a user with the transaction request to claim them.\n *\n * ```tsx\n * const { data, loading } = useUserMeritRewards({\n * user: evmAddress('0x742d35cc…'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useUserMeritRewards(\n args: UserMeritRewardsArgs,\n): ReadResult<UserMeritRewards | null>;\n\nexport function useUserMeritRewards({\n suspense = false,\n ...request\n}: UserMeritRewardsArgs & {\n suspense?: boolean;\n}): SuspendableResult<UserMeritRewards | null> {\n return useSuspendableQuery({\n document: UserMeritRewardsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n","import type { MarketRequest, MarketsRequest } from '@aave/client/actions';\nimport { defaultMarketReservesRequestOrderBy } from '@aave/client/actions';\nimport { type Market, MarketQuery, MarketsQuery } from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UseAaveMarketArgs = MarketRequest;\n\n/**\n * Fetch a single Aave Market.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveMarket({\n * address: evmAddress('0x8787…'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveMarket(\n args: UseAaveMarketArgs & Suspendable,\n): SuspenseResult<Market | null>;\n\n/**\n * Fetch a single Aave Market.\n *\n * ```tsx\n * const { data, error, loading } = useAaveMarket({\n * address: evmAddress('0x8787…'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useAaveMarket(\n args: UseAaveMarketArgs,\n): ReadResult<Market | null>;\n\nexport function useAaveMarket({\n suspense = false,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n ...request\n}: UseAaveMarketArgs & {\n suspense?: boolean;\n}): SuspendableResult<Market | null> {\n return useSuspendableQuery({\n document: MarketQuery,\n variables: {\n request,\n borrowsOrderBy,\n suppliesOrderBy,\n },\n suspense,\n });\n}\n\nexport type UseAaveMarketsArgs = MarketsRequest;\n\n/**\n * Fetch all Aave Markets for the specified chains.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveMarkets({\n * chainIds: [chainId(1), chainId(8453)],\n * user: evmAddress('0x742d35cc...'),\n * suspense: true\n * });\n * ```\n */\nexport function useAaveMarkets(\n args: UseAaveMarketsArgs & Suspendable,\n): SuspenseResult<Market[]>;\n\n/**\n * Fetch all Aave Markets for the specified chains.\n *\n * ```tsx\n * const { data, error, loading } = useAaveMarkets({\n * chainIds: [chainId(1), chainId(8453)],\n * user: evmAddress('0x742d35cc...'),\n * });\n * ```\n */\nexport function useAaveMarkets(args: UseAaveMarketsArgs): ReadResult<Market[]>;\n\nexport function useAaveMarkets({\n suspense = false,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n ...request\n}: UseAaveMarketsArgs & {\n suspense?: boolean;\n}): SuspendableResult<Market[]> {\n return useSuspendableQuery({\n document: MarketsQuery,\n variables: {\n request,\n borrowsOrderBy,\n suppliesOrderBy,\n },\n suspense,\n });\n}\n","import type { UnexpectedError } from '@aave/client';\nimport { healthFactorPreview } from '@aave/client/actions';\nimport {\n type Chain,\n ChainsFilter,\n ChainsQuery,\n type HealthFactorPreviewRequest,\n type HealthFactorPreviewResponse,\n HealthQuery,\n type UsdExchangeRate,\n UsdExchangeRatesQuery,\n type UsdExchangeRatesRequest,\n} from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n UseAsyncTask,\n} from './helpers';\nimport { useAsyncTask, useSuspendableQuery } from './helpers';\n\nexport type UseAaveChainsArgs = {\n filter?: ChainsFilter;\n};\n\n/**\n * Fetch all supported Aave chains.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveChains({\n * filter: ChainsFilter.MAINNET_ONLY,\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveChains(\n args: UseAaveChainsArgs & Suspendable,\n): SuspenseResult<Chain[]>;\n\n/**\n * Fetch all supported Aave chains.\n *\n * ```tsx\n * const { data, error, loading } = useAaveChains({\n * filter: ChainsFilter.MAINNET_ONLY,\n * });\n * ```\n */\nexport function useAaveChains(args: UseAaveChainsArgs): ReadResult<Chain[]>;\n\nexport function useAaveChains({\n suspense = false,\n filter = ChainsFilter.ALL,\n}: UseAaveChainsArgs & {\n suspense?: boolean;\n}): SuspendableResult<Chain[]> {\n return useSuspendableQuery({\n document: ChainsQuery,\n variables: {\n filter,\n },\n suspense,\n });\n}\n\n/**\n * Health check query.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveHealth({\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveHealth(args: Suspendable): SuspenseResult<boolean>;\n\n/**\n * Health check query.\n *\n * ```tsx\n * const { data, error, loading } = useAaveHealth();\n * ```\n */\nexport function useAaveHealth(): ReadResult<boolean>;\n\nexport function useAaveHealth({\n suspense = false,\n}: {\n suspense?: boolean;\n} = {}): SuspendableResult<boolean> {\n return useSuspendableQuery({\n document: HealthQuery,\n variables: {},\n suspense,\n });\n}\n\nexport type UseUsdExchangeRatesArgs = UsdExchangeRatesRequest;\n\n/**\n * Fetch USD exchange rates for different tokens on a given market.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUsdExchangeRates({\n * market: evmAddress('0x1234…'),\n * underlyingTokens: [evmAddress('0x5678…'), evmAddress('0x90ab…')],\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useUsdExchangeRates(\n args: UseUsdExchangeRatesArgs & Suspendable,\n): SuspenseResult<UsdExchangeRate[]>;\n\n/**\n * Fetch USD exchange rates for different tokens on a given market.\n *\n * ```tsx\n * const { data, error, loading } = useUsdExchangeRates({\n * market: evmAddress('0x1234…'),\n * underlyingTokens: [evmAddress('0x5678…'), evmAddress('0x90ab…')],\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useUsdExchangeRates(\n args: UseUsdExchangeRatesArgs,\n): ReadResult<UsdExchangeRate[]>;\n\nexport function useUsdExchangeRates({\n suspense = false,\n ...request\n}: UseUsdExchangeRatesArgs & {\n suspense?: boolean;\n}): SuspendableResult<UsdExchangeRate[]> {\n return useSuspendableQuery({\n document: UsdExchangeRatesQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\n/**\n * Determines the health factor after a given action.\n *\n * ```ts\n * const [preview, { loading, error }] = useAaveHealthFactorPreview();\n *\n * // …\n *\n * const result = await preview({\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 * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useAaveHealthFactorPreview(): UseAsyncTask<\n HealthFactorPreviewRequest,\n HealthFactorPreviewResponse,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: HealthFactorPreviewRequest) =>\n healthFactorPreview(client, request),\n );\n}\n","import {\n type APYSample,\n BorrowAPYHistoryQuery,\n type BorrowAPYHistoryRequest,\n CreditDelegateeAllowanceQuery,\n type CreditDelegateeAmountRequest,\n type Reserve,\n ReserveQuery,\n type ReserveRequest,\n SupplyAPYHistoryQuery,\n type SupplyAPYHistoryRequest,\n type TokenAmount,\n} from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UseAaveReserveArgs = ReserveRequest;\n\n/**\n * Fetch a single Aave Reserve.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveReserve({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveReserve(\n args: UseAaveReserveArgs & Suspendable,\n): SuspenseResult<Reserve | null>;\n\n/**\n * Fetch a single Aave Reserve.\n *\n * ```tsx\n * const { data, error, loading } = useAaveReserve({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useAaveReserve(\n args: UseAaveReserveArgs,\n): ReadResult<Reserve | null>;\n\nexport function useAaveReserve({\n suspense = false,\n ...request\n}: UseAaveReserveArgs & {\n suspense?: boolean;\n}): SuspendableResult<Reserve | null> {\n return useSuspendableQuery({\n document: ReserveQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseBorrowAPYHistoryArgs = BorrowAPYHistoryRequest;\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 * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useBorrowAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek\n * suspense: true\n * });\n * ```\n */\n\nexport function useBorrowAPYHistory(\n args: UseBorrowAPYHistoryArgs & Suspendable,\n): SuspenseResult<APYSample[]>;\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 * ```tsx\n * const { data } = useBorrowAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek\n * });\n * ```\n */\n\nexport function useBorrowAPYHistory(\n args: UseBorrowAPYHistoryArgs,\n): ReadResult<APYSample[]>;\n\nexport function useBorrowAPYHistory({\n suspense = false,\n ...request\n}: UseBorrowAPYHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<APYSample[]> {\n return useSuspendableQuery({\n document: BorrowAPYHistoryQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseSupplyAPYHistoryArgs = SupplyAPYHistoryRequest;\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 * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useSupplyAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek,\n * suspense: true\n * });\n * ```\n */\nexport function useSupplyAPYHistory(\n args: UseSupplyAPYHistoryArgs & Suspendable,\n): SuspenseResult<APYSample[]>;\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 * ```tsx\n * const { data } = useSupplyAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek\n * });\n * ```\n */\nexport function useSupplyAPYHistory(\n args: UseSupplyAPYHistoryArgs,\n): ReadResult<APYSample[]>;\n\nexport function useSupplyAPYHistory({\n suspense = false,\n ...request\n}: UseSupplyAPYHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<APYSample[]> {\n return useSuspendableQuery({\n document: SupplyAPYHistoryQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseCreditDelegateeAllowanceArgs = CreditDelegateeAmountRequest;\n\n/**\n * Get the amount delegated to the credit delegatee that can borrow on your behalf.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useCreditDelegateeAllowance({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * user: evmAddress('0x742d35cc...'),\n * delegatee: evmAddress('0x5678...'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useCreditDelegateeAllowance(\n args: UseCreditDelegateeAllowanceArgs & Suspendable,\n): SuspenseResult<TokenAmount>;\n\n/**\n * Get the amount delegated to the credit delegatee that can borrow on your behalf.\n *\n * ```tsx\n * const { data, error, loading } = useCreditDelegateeAllowance({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * user: evmAddress('0x742d35cc...'),\n * delegatee: evmAddress('0x5678...'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useCreditDelegateeAllowance(\n args: UseCreditDelegateeAllowanceArgs,\n): ReadResult<TokenAmount>;\n\nexport function useCreditDelegateeAllowance({\n suspense = false,\n ...request\n}: UseCreditDelegateeAllowanceArgs & {\n suspense?: boolean;\n}): SuspendableResult<TokenAmount> {\n return useSuspendableQuery({\n document: CreditDelegateeAllowanceQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n","import type { UnexpectedError } from '@aave/client';\nimport {\n approveBorrowCreditDelegation,\n borrow,\n collateralToggle,\n liquidate,\n repay,\n supply,\n userSetEmode,\n vaultDeploy,\n vaultDeposit,\n vaultMintShares,\n vaultRedeemShares,\n vaultSetFee,\n vaultWithdraw,\n vaultWithdrawFees,\n withdraw,\n} from '@aave/client/actions';\nimport type {\n ApproveBorrowCreditDelegatorRequest,\n BorrowRequest,\n CollateralToggleRequest,\n ExecutionPlan,\n LiquidateRequest,\n RepayRequest,\n SupplyRequest,\n TransactionRequest,\n UserSetEmodeRequest,\n VaultDeployRequest,\n VaultDepositRequest,\n VaultMintSharesRequest,\n VaultRedeemSharesRequest,\n VaultSetFeeRequest,\n VaultWithdrawFeesRequest,\n VaultWithdrawRequest,\n WithdrawRequest,\n} from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport { type UseAsyncTask, useAsyncTask } from './helpers';\n\n/**\n * A hook that provides a way to supply assets to an Aave market.\n *\n * ```ts\n * const [supply, supplying] = useSupply();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = supplying.loading && sending.loading;\n * const error = supplying.error || sending.error;\n *\n * // …\n *\n * const result = await supply({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useSupply(): UseAsyncTask<\n SupplyRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: SupplyRequest) => supply(client, request));\n}\n\n/**\n * A hook that provides a way to borrow assets from an Aave market.\n *\n * ```ts\n * const [borrow, borrowing] = useBorrow();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = borrowing.loading && sending.loading;\n * const error = borrowing.error || sending.error;\n *\n * // …\n *\n * const result = await borrow({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useBorrow(): UseAsyncTask<\n BorrowRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: BorrowRequest) => borrow(client, request));\n}\n\n/**\n * A hook that provides a way to repay borrowed assets to an Aave market.\n *\n * ```ts\n * const [repay, repaying] = useRepay();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = repaying.loading && sending.loading;\n * const error = repaying.error || sending.error;\n *\n * // …\n *\n * const result = await repay({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useRepay(): UseAsyncTask<\n RepayRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: RepayRequest) => repay(client, request));\n}\n\n/**\n * A hook that provides a way to withdraw supplied assets from an Aave market.\n *\n * ```ts\n * const [withdraw, withdrawing] = useWithdraw();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useWithdraw(): UseAsyncTask<\n WithdrawRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: WithdrawRequest) => withdraw(client, request));\n}\n\n/**\n * A hook that provides a way to set eMode for a user.\n *\n * ```ts\n * const [setUserEMode, setting] = useUserEMode();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = setting.loading && sending.loading;\n * const error = setting.error || sending.error;\n *\n * // …\n *\n * const result = await setUserEMode({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useUserEMode(): UseAsyncTask<\n UserSetEmodeRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: UserSetEmodeRequest) =>\n userSetEmode(client, request),\n );\n}\n\n/**\n * A hook that provides a way to enable/disable a specific supplied asset as collateral.\n *\n * ```ts\n * const [toggle, toggling] = useCollateralToggle();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = toggling.loading && sending.loading;\n * const error = toggling.error || sending.error;\n *\n * // …\n *\n * const result = await toggle({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useCollateralToggle(): UseAsyncTask<\n CollateralToggleRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: CollateralToggleRequest) =>\n collateralToggle(client, request),\n );\n}\n\n/**\n * A hook that provides a way to liquidate a non-healthy position with Health Factor below 1.\n *\n * ```ts\n * const [liquidate, liquidating] = useLiquidate();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = liquidating.loading && sending.loading;\n * const error = liquidating.error || sending.error;\n *\n * // …\n *\n * const result = await liquidate({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useLiquidate(): UseAsyncTask<\n LiquidateRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: LiquidateRequest) =>\n liquidate(client, request),\n );\n}\n\n/**\n * A hook that provides a way to deposit assets into a vault.\n *\n * ```ts\n * const [deposit, depositing] = useVaultDeposit();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = depositing.loading && sending.loading;\n * const error = depositing.error || sending.error;\n *\n * // …\n *\n * const result = await deposit({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultDeposit(): UseAsyncTask<\n VaultDepositRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultDepositRequest) =>\n vaultDeposit(client, request),\n );\n}\n\n/**\n * A hook that provides a way to mint vault shares.\n *\n * ```ts\n * const [mint, minting] = useVaultMintShares();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = minting.loading && sending.loading;\n * const error = minting.error || sending.error;\n *\n * // …\n *\n * const result = await mint({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultMintShares(): UseAsyncTask<\n VaultMintSharesRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultMintSharesRequest) =>\n vaultMintShares(client, request),\n );\n}\n\n/**\n * A hook that provides a way to redeem vault shares.\n *\n * ```ts\n * const [redeem, redeeming] = useVaultRedeemShares();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = redeeming.loading && sending.loading;\n * const error = redeeming.error || sending.error;\n *\n * // …\n *\n * const result = await redeem({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultRedeemShares(): UseAsyncTask<\n VaultRedeemSharesRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultRedeemSharesRequest) =>\n vaultRedeemShares(client, request),\n );\n}\n\n/**\n * A hook that provides a way to withdraw assets from a vault.\n *\n * ```ts\n * const [withdraw, withdrawing] = useVaultWithdraw();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultWithdraw(): UseAsyncTask<\n VaultWithdrawRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultWithdrawRequest) =>\n vaultWithdraw(client, request),\n );\n}\n\n/**\n * A hook that provides a way to deploy a vault.\n *\n * ```ts\n * const [deploy, deploying] = useVaultDeploy();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = deploying.loading && sending.loading;\n * const error = deploying.error || sending.error;\n *\n * // …\n *\n * const result = await deploy({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultDeploy(): UseAsyncTask<\n VaultDeployRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultDeployRequest) =>\n vaultDeploy(client, request),\n );\n}\n\n/**\n * A hook that provides a way to set vault fee.\n *\n * ```ts\n * const [setFee, setting] = useVaultSetFee();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = setting.loading && sending.loading;\n * const error = setting.error || sending.error;\n *\n * // …\n *\n * const result = await setFee({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultSetFee(): UseAsyncTask<\n VaultSetFeeRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultSetFeeRequest) =>\n vaultSetFee(client, request),\n );\n}\n\n/**\n * A hook that provides a way to withdraw vault fees.\n *\n * ```ts\n * const [withdraw, withdrawing] = useVaultWithdrawFees();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultWithdrawFees(): UseAsyncTask<\n VaultWithdrawFeesRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultWithdrawFeesRequest) =>\n vaultWithdrawFees(client, request),\n );\n}\n\n/**\n * A hook that provides a way to approve a credit borrow delegator to be able to borrow on your behalf.\n *\n * ```ts\n * const [approve, approving] = useApproveBorrowCreditDelegation();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = approving.loading && sending.loading;\n * const error = approving.error || sending.error;\n *\n * // …\n *\n * const result = await approve({\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(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useApproveBorrowCreditDelegation(): UseAsyncTask<\n ApproveBorrowCreditDelegatorRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: ApproveBorrowCreditDelegatorRequest) =>\n approveBorrowCreditDelegation(client, request),\n );\n}\n","import type {\n MarketUserReserveBorrowPosition,\n MarketUserReserveSupplyPosition,\n MarketUserState,\n PaginatedUserTransactionHistoryResult,\n UserBorrowsRequest,\n UserMarketStateRequest,\n UserSuppliesRequest,\n UserTransactionHistoryRequest,\n} from '@aave/graphql';\nimport {\n UserBorrowsQuery,\n UserMarketStateQuery,\n UserSuppliesQuery,\n UserTransactionHistoryQuery,\n} from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UseUserSuppliesArgs = UserSuppliesRequest;\n\n/**\n * Fetch all user supply positions.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserSupplies({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * suspense: true,\n * });\n * ```\n */\nexport function useUserSupplies(\n args: UseUserSuppliesArgs & Suspendable,\n): SuspenseResult<MarketUserReserveSupplyPosition[]>;\n\n/**\n * Fetch all user supply positions.\n *\n * ```tsx\n * const { data, error, loading } = useUserSupplies({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * });\n * ```\n */\nexport function useUserSupplies(\n args: UseUserSuppliesArgs,\n): ReadResult<MarketUserReserveSupplyPosition[]>;\n\nexport function useUserSupplies({\n suspense = false,\n ...request\n}: UseUserSuppliesArgs & {\n suspense?: boolean;\n}): SuspendableResult<MarketUserReserveSupplyPosition[]> {\n return useSuspendableQuery({\n document: UserSuppliesQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserBorrowsArgs = UserBorrowsRequest;\n\n/**\n * Fetch all user borrow positions.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserBorrows({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * suspense: true\n * });\n * ```\n */\nexport function useUserBorrows(\n args: UseUserBorrowsArgs & Suspendable,\n): SuspenseResult<MarketUserReserveBorrowPosition[]>;\n\n/**\n * Fetch all user borrow positions.\n *\n * ```tsx\n * const { data, error, loading } = useUserBorrows({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * });\n * ```\n */\nexport function useUserBorrows(\n args: UseUserBorrowsArgs,\n): ReadResult<MarketUserReserveBorrowPosition[]>;\n\nexport function useUserBorrows({\n suspense = false,\n ...request\n}: UseUserBorrowsArgs & {\n suspense?: boolean;\n}): SuspendableResult<MarketUserReserveBorrowPosition[]> {\n return useSuspendableQuery({\n document: UserBorrowsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserStateArgs = UserMarketStateRequest;\n\n/**\n * Fetch user account market data across all reserves.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserMarketState({\n * market: evmAddress('0x1234…'),\n * user: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useUserMarketState(\n args: UseUserStateArgs & Suspendable,\n): SuspenseResult<MarketUserState>;\n\n/**\n * Fetch user account market data across all reserves.\n *\n * ```tsx\n * const { data, error, loading } = useUserMarketState({\n * market: evmAddress('0x1234…'),\n * user: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useUserMarketState(\n args: UseUserStateArgs,\n): ReadResult<MarketUserState>;\n\nexport function useUserMarketState({\n suspense = false,\n ...request\n}: UseUserStateArgs & {\n suspense?: boolean;\n}): SuspendableResult<MarketUserState> {\n return useSuspendableQuery({\n document: UserMarketStateQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserTransactionHistoryArgs = UserTransactionHistoryRequest;\n\n/**\n * Fetch user transaction history.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserTransactionHistory({\n * suspense: true,\n * });\n * ```\n */\nexport function useUserTransactionHistory(\n args: UseUserTransactionHistoryArgs & Suspendable,\n): SuspenseResult<PaginatedUserTransactionHistoryResult>;\n\n/**\n * Fetch user transaction history.\n *\n * ```tsx\n * const { data, error, loading } = useUserTransactionHistory();\n * ```\n */\nexport function useUserTransactionHistory(\n args: UseUserTransactionHistoryArgs,\n): ReadResult<PaginatedUserTransactionHistoryResult>;\n\nexport function useUserTransactionHistory({\n suspense = false,\n ...request\n}: UseUserTransactionHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedUserTransactionHistoryResult> {\n return useSuspendableQuery({\n document: UserTransactionHistoryQuery,\n variables: { request },\n suspense,\n });\n}\n","import type { UnexpectedError } from '@aave/client';\nimport {\n vaultPreviewDeposit,\n vaultPreviewMint,\n vaultPreviewRedeem,\n vaultPreviewWithdraw,\n} from '@aave/client/actions';\nimport {\n type PaginatedVaultsResult,\n type PaginatedVaultUserTransactionHistoryResult,\n type TokenAmount,\n UserVaultsQuery,\n type UserVaultsRequest,\n type Vault,\n type VaultPreviewDepositRequest,\n type VaultPreviewMintRequest,\n type VaultPreviewRedeemRequest,\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 { useAaveClient } from './context';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n UseAsyncTask,\n} from './helpers';\nimport { useAsyncTask, useSuspendableQuery } from './helpers';\n\nexport type UseVaultArgs = VaultRequest;\n\n/**\n * Fetch a single vault by address and chain ID.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVault({\n * by: {\n * address: evmAddress('0x1234…'),\n * },\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVault(\n args: UseVaultArgs & Suspendable,\n): SuspenseResult<Vault | null>;\n\n/**\n * Fetch a single vault by address and chain ID.\n *\n * ```tsx\n * const { data, error, loading } = useVault({\n * address: evmAddress('0x1234…'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * });\n * ```\n */\nexport function useVault(args: UseVaultArgs): ReadResult<Vault | null>;\n\nexport function useVault({\n suspense = false,\n ...request\n}: UseVaultArgs & {\n suspense?: boolean;\n}): SuspendableResult<Vault | null> {\n return useSuspendableQuery({\n document: VaultQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseVaultsArgs = VaultsRequest;\n\n/**\n * Fetch vaults based on filter criteria.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVaults({\n * criteria: {\n * ownedBy: [evmAddress('0x1234…')]\n * },\n * pageSize: PageSize.Ten,\n * user: evmAddress('0x5678…'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVaults(\n args: UseVaultsArgs & Suspendable,\n): SuspenseResult<PaginatedVaultsResult>;\n\n/**\n * Fetch vaults based on filter criteria.\n *\n * ```tsx\n * const { data, error, loading } = useVaults({\n * criteria: {\n * ownedBy: [evmAddress('0x1234…')]\n * },\n * pageSize: PageSize.Ten,\n * user: evmAddress('0x5678…'),\n * });\n * ```\n */\nexport function useVaults(\n args: UseVaultsArgs,\n): ReadResult<PaginatedVaultsResult>;\n\nexport function useVaults({\n suspense = false,\n ...request\n}: UseVaultsArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedVaultsResult> {\n return useSuspendableQuery({\n document: VaultsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserVaultsArgs = UserVaultsRequest;\n\n/**\n * Fetch vaults that a user has shares in.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserVaults({\n * user: evmAddress('0x1234…'),\n * filters: {\n * markets: [evmAddress('0x5678…')]\n * },\n * orderBy: { shares: OrderDirection.Desc },\n * pageSize: PageSize.Fifty,\n * suspense: true,\n * });\n * ```\n */\nexport function useUserVaults(\n args: UseUserVaultsArgs & Suspendable,\n): SuspenseResult<PaginatedVaultsResult>;\n\n/**\n * Fetch vaults that a user has shares in.\n *\n * ```tsx\n * const { data, error, loading } = useUserVaults({\n * user: evmAddress('0x1234…'),\n * filters: {\n * markets: [evmAddress('0x5678…')]\n * },\n * orderBy: { shares: OrderDirection.Desc },\n * pageSize: PageSize.Fifty,\n * });\n * ```\n */\nexport function useUserVaults(\n args: UseUserVaultsArgs,\n): ReadResult<PaginatedVaultsResult>;\n\nexport function useUserVaults({\n suspense = false,\n ...request\n}: UseUserVaultsArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedVaultsResult> {\n return useSuspendableQuery({\n document: UserVaultsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\n/**\n * Determines the amount of shares that would be received for a deposit.\n *\n * ```ts\n * const [preview, { loading, error }] = useVaultDepositPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('1000'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultDepositPreview(): UseAsyncTask<\n VaultPreviewDepositRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewDepositRequest) =>\n vaultPreviewDeposit(client, 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 [preview, { loading, error }] = useVaultMintPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('500'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultMintPreview(): UseAsyncTask<\n VaultPreviewMintRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewMintRequest) =>\n vaultPreviewMint(client, request),\n );\n}\n\n/**\n * Determines the amount of shares that would be burned for a withdrawal.\n *\n * ```ts\n * const [preview, { loading, error }] = useVaultWithdrawPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('750'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultWithdrawPreview(): UseAsyncTask<\n VaultPreviewWithdrawRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewWithdrawRequest) =>\n vaultPreviewWithdraw(client, 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 * This signature supports React Suspense:\n *\n * ```ts\n * const [preview, { loading, error }] = useVaultRedeemPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('200'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultRedeemPreview(): UseAsyncTask<\n VaultPreviewRedeemRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewRedeemRequest) =>\n vaultPreviewRedeem(client, request),\n );\n}\n\nexport type UseVaultUserTransactionHistoryArgs =\n VaultUserTransactionHistoryRequest;\n\n/**\n * Fetch user transaction history for a vault.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVaultUserTransactionHistory({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVaultUserTransactionHistory(\n args: UseVaultUserTransactionHistoryArgs & Suspendable,\n): SuspenseResult<PaginatedVaultUserTransactionHistoryResult>;\n\n/**\n * Fetch user transaction history for a vault.\n *\n * ```tsx\n * const { data, error, loading } = useVaultUserTransactionHistory({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n * ```\n */\nexport function useVaultUserTransactionHistory(\n args: UseVaultUserTransactionHistoryArgs,\n): ReadResult<PaginatedVaultUserTransactionHistoryResult>;\n\nexport function useVaultUserTransactionHistory({\n suspense = false,\n ...request\n}: UseVaultUserTransactionHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedVaultUserTransactionHistoryResult> {\n return useSuspendableQuery({\n document: VaultUserTransactionHistoryQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseVaultUserActivityArgs = VaultUserActivityRequest;\n\n/**\n * Fetch user activity data for a vault, including earnings breakdown over time.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVaultUserActivity({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVaultUserActivity(\n args: UseVaultUserActivityArgs & Suspendable,\n): SuspenseResult<VaultUserActivityResult>;\n\n/**\n * Fetch user activity data for a vault, including earnings breakdown over time.\n *\n * ```tsx\n * const { data, error, loading } = useVaultUserActivity({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n *\n * if (data) {\n * console.log('Total earned:', data.earned.amount.value);\n * data.breakdown.forEach(activity => {\n * console.log('Date:', activity.date);\n * console.log('Balance:', activity.balance.amount.value);\n * });\n * }\n * ```\n */\nexport function useVaultUserActivity(\n args: UseVaultUserActivityArgs,\n): ReadResult<VaultUserActivityResult>;\n\nexport function useVaultUserActivity({\n suspense = false,\n ...request\n}: UseVaultUserActivityArgs & {\n suspense?: boolean;\n}): SuspendableResult<VaultUserActivityResult> {\n return useSuspendableQuery({\n document: VaultUserActivityQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n"]}
1
+ {"version":3,"sources":["../src/AaveProvider.tsx","../src/helpers/results.ts","../src/helpers/reads.ts","../src/gho.ts","../src/incentives.ts","../src/markets.ts","../src/misc.ts","../src/reserves.ts","../src/transactions.ts","../src/user.ts","../src/vaults.ts"],"names":["AaveProvider","children","client","React","AaveContextProvider","ReadResult","data","error","useSuspendableQuery","document","variables","suspense","fetching","useQuery","useMemo","unexpected","UnexpectedError","invariant","useSavingsGhoBalance","request","SavingsGhoBalanceQuery","useSavingsGhoWithdraw","useAaveClient","useAsyncTask","savingsGhoWithdraw","useSavingsGhoDeposit","savingsGhoDeposit","useUserMeritRewards","UserMeritRewardsQuery","useAaveMarket","borrowsOrderBy","defaultMarketReservesRequestOrderBy","suppliesOrderBy","MarketQuery","useAaveMarkets","MarketsQuery","useAaveChains","filter","ChainsFilter","ChainsQuery","useAaveHealth","HealthQuery","useUsdExchangeRates","UsdExchangeRatesQuery","useAaveHealthFactorPreview","healthFactorPreview","useAaveReserve","ReserveQuery","useBorrowAPYHistory","BorrowAPYHistoryQuery","useSupplyAPYHistory","SupplyAPYHistoryQuery","useCreditDelegateeAllowance","CreditDelegateeAllowanceQuery","useSupply","supply","useBorrow","borrow","useRepay","repay","useWithdraw","withdraw","useUserEMode","userSetEmode","useCollateralToggle","collateralToggle","useLiquidate","liquidate","useVaultDeposit","vaultDeposit","useVaultMintShares","vaultMintShares","useVaultRedeemShares","vaultRedeemShares","useVaultWithdraw","vaultWithdraw","useVaultDeploy","vaultDeploy","useVaultSetFee","vaultSetFee","useVaultWithdrawFees","vaultWithdrawFees","useVaultTransferOwnership","vaultTransferOwnership","useApproveBorrowCreditDelegation","approveBorrowCreditDelegation","useUserSupplies","UserSuppliesQuery","useUserBorrows","UserBorrowsQuery","useUserMarketState","UserMarketStateQuery","useUserTransactionHistory","UserTransactionHistoryQuery","useVault","VaultQuery","useVaults","VaultsQuery","useUserVaults","UserVaultsQuery","useVaultDepositPreview","vaultPreviewDeposit","useVaultMintPreview","vaultPreviewMint","useVaultWithdrawPreview","vaultPreviewWithdraw","useVaultRedeemPreview","vaultPreviewRedeem","useVaultUserTransactionHistory","VaultUserTransactionHistoryQuery","useVaultUserActivity","VaultUserActivityQuery"],"mappings":"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","file":"index.js","sourcesContent":["import type { AaveClient } from '@aave/client';\n// biome-ignore lint/correctness/noUnusedImports: intentional\nimport React, { type ReactNode } from 'react';\n\nimport { AaveContextProvider } from './context';\n\n/**\n * <AaveProvider> props\n */\nexport type AaveProviderProps = {\n /**\n * The children to render\n */\n children: ReactNode;\n /**\n * The Aave client instance to use\n */\n client: AaveClient;\n};\n\n/**\n * Manages the internal state of the Aave SDK.\n *\n * ```tsx\n * import { AaveProvider, AaveClient, production } from '@aave/react';\n *\n * const client = AaveClient.create({\n * environment: production,\n * });\n *\n * function App() {\n * return (\n * <AaveProvider client={client}>\n * // ...\n * </AaveProvider>\n * );\n * }\n * ```\n */\nexport function AaveProvider({ children, client }: AaveProviderProps) {\n return <AaveContextProvider client={client}>{children}</AaveContextProvider>;\n}\n","import type { UnexpectedError } from '@aave/client';\n\n/**\n * A read hook result.\n *\n * It's a discriminated union of the possible results of a read operation:\n * - Rely on the `loading` value to determine if the `data` or `error` can be evaluated.\n * - If `error` is `undefined`, then `data` value will be available.\n */\nexport type ReadResult<T, E = never> =\n | {\n data: undefined;\n error: undefined;\n loading: true;\n }\n | {\n data: T;\n error: undefined;\n loading: false;\n }\n | {\n data: undefined;\n error: E;\n loading: false;\n };\n\n/**\n * @internal\n */\nexport const ReadResult = {\n Initial: <T, E = never>(): ReadResult<T, E> => ({\n data: undefined,\n error: undefined,\n loading: true,\n }),\n Success: <T, E = never>(data: T): ReadResult<T, E> => ({\n data,\n error: undefined,\n loading: false,\n }),\n Failure: <T, E = never>(error: E): ReadResult<T, E> => ({\n data: undefined,\n error,\n loading: false,\n }),\n};\n\n/**\n * A read hook result that supports React Suspense\n */\nexport type SuspenseResult<T> = { data: T };\n\nexport type SuspendableResult<T, E extends UnexpectedError = UnexpectedError> =\n | ReadResult<T, E>\n | SuspenseResult<T>;\n","import { type StandardData, UnexpectedError } from '@aave/client';\nimport { type AnyVariables, invariant } from '@aave/types';\nimport { useMemo } from 'react';\nimport { type TypedDocumentNode, useQuery } from 'urql';\nimport {\n ReadResult,\n type SuspendableResult,\n type SuspenseResult,\n} from './results';\n\n/**\n * @internal\n */\nexport type Suspendable = { suspense: true };\n\n/**\n * @internal\n */\nexport type UseSuspendableQueryArgs<\n Value,\n Variables extends AnyVariables,\n Suspense extends boolean = boolean,\n> = {\n document: TypedDocumentNode<StandardData<Value>, Variables>;\n variables: Variables;\n suspense: Suspense;\n};\n\n/**\n * @internal\n */\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables, false>): ReadResult<Value>;\n/**\n * @internal\n */\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables, true>): SuspenseResult<Value>;\n/**\n * @internal\n */\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables>): SuspendableResult<Value>;\nexport function useSuspendableQuery<Value, Variables extends AnyVariables>({\n document,\n variables,\n suspense,\n}: UseSuspendableQueryArgs<Value, Variables>): SuspendableResult<Value> {\n const [{ data, fetching, error }] = useQuery({\n query: document,\n variables,\n context: useMemo(() => ({ suspense }), [suspense]),\n });\n\n if (fetching) {\n return ReadResult.Initial();\n }\n\n if (error) {\n const unexpected = UnexpectedError.from(error);\n if (suspense) {\n throw unexpected;\n }\n\n return ReadResult.Failure(unexpected);\n }\n\n invariant(data, 'No data returned');\n\n return ReadResult.Success(data.value);\n}\n","import type { UnexpectedError } from '@aave/client';\nimport { savingsGhoDeposit, savingsGhoWithdraw } from '@aave/client/actions';\nimport type {\n ExecutionPlan,\n SavingsGhoBalanceRequest,\n SavingsGhoDepositRequest,\n SavingsGhoWithdrawRequest,\n TokenAmount,\n} from '@aave/graphql';\nimport { SavingsGhoBalanceQuery } from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport {\n type UseAsyncTask,\n useAsyncTask,\n useSuspendableQuery,\n} from './helpers';\n\nexport type SavingsGhoBalanceArgs = SavingsGhoBalanceRequest;\n\n/**\n * Fetches the current sGHO balance for a user.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useSavingsGhoBalance({\n * user: evmAddress('0x742d35cc…'),\n * suspense: true,\n * });\n * ```\n */\nexport function useSavingsGhoBalance(\n args: SavingsGhoBalanceArgs & Suspendable,\n): SuspenseResult<TokenAmount>;\n\n/**\n * Fetches the current sGHO balance for a user.\n *\n * ```tsx\n * const { data, error, loading } = useSavingsGhoBalance({\n * user: evmAddress('0x742d35cc…'),\n * });\n * ```\n */\nexport function useSavingsGhoBalance(\n args: SavingsGhoBalanceArgs,\n): ReadResult<TokenAmount>;\n\nexport function useSavingsGhoBalance({\n suspense = false,\n ...request\n}: SavingsGhoBalanceArgs & {\n suspense?: boolean;\n}): SuspendableResult<TokenAmount> {\n return useSuspendableQuery({\n document: SavingsGhoBalanceQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\n/**\n * A hook that provides a way to withdraw sGHO.\n *\n * ```ts\n * const [withdraw, withdrawing] = useSavingsGhoWithdraw();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance to withdraw: ${plan.required.value} is the maximum withdrawal allowed.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useSavingsGhoWithdraw(): UseAsyncTask<\n SavingsGhoWithdrawRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: SavingsGhoWithdrawRequest) =>\n savingsGhoWithdraw(client, request),\n );\n}\n\n/**\n * A hook that provides a way to deposit GHO into sGHO.\n *\n * ```ts\n * const [deposit, depositing] = useSavingsGhoDeposit();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = depositing.loading && sending.loading;\n * const error = depositing.error || sending.error;\n *\n * // …\n *\n * const result = await deposit({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useSavingsGhoDeposit(): UseAsyncTask<\n SavingsGhoDepositRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: SavingsGhoDepositRequest) =>\n savingsGhoDeposit(client, request),\n );\n}\n","import type { UserMeritRewards, UserMeritRewardsRequest } from '@aave/graphql';\nimport { UserMeritRewardsQuery } from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UserMeritRewardsArgs = UserMeritRewardsRequest;\n\n/**\n * Fetches Merit claim rewards for a user with the transaction request to claim them.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserMeritRewards({\n * user: evmAddress('0x742d35cc…'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useUserMeritRewards(\n args: UserMeritRewardsArgs & Suspendable,\n): SuspenseResult<UserMeritRewards | null>;\n\n/**\n * Fetches Merit claim rewards for a user with the transaction request to claim them.\n *\n * ```tsx\n * const { data, loading } = useUserMeritRewards({\n * user: evmAddress('0x742d35cc…'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useUserMeritRewards(\n args: UserMeritRewardsArgs,\n): ReadResult<UserMeritRewards | null>;\n\nexport function useUserMeritRewards({\n suspense = false,\n ...request\n}: UserMeritRewardsArgs & {\n suspense?: boolean;\n}): SuspendableResult<UserMeritRewards | null> {\n return useSuspendableQuery({\n document: UserMeritRewardsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n","import type { MarketRequest, MarketsRequest } from '@aave/client/actions';\nimport { defaultMarketReservesRequestOrderBy } from '@aave/client/actions';\nimport { type Market, MarketQuery, MarketsQuery } from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UseAaveMarketArgs = MarketRequest;\n\n/**\n * Fetch a single Aave Market.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveMarket({\n * address: evmAddress('0x8787…'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveMarket(\n args: UseAaveMarketArgs & Suspendable,\n): SuspenseResult<Market | null>;\n\n/**\n * Fetch a single Aave Market.\n *\n * ```tsx\n * const { data, error, loading } = useAaveMarket({\n * address: evmAddress('0x8787…'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useAaveMarket(\n args: UseAaveMarketArgs,\n): ReadResult<Market | null>;\n\nexport function useAaveMarket({\n suspense = false,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n ...request\n}: UseAaveMarketArgs & {\n suspense?: boolean;\n}): SuspendableResult<Market | null> {\n return useSuspendableQuery({\n document: MarketQuery,\n variables: {\n request,\n borrowsOrderBy,\n suppliesOrderBy,\n },\n suspense,\n });\n}\n\nexport type UseAaveMarketsArgs = MarketsRequest;\n\n/**\n * Fetch all Aave Markets for the specified chains.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveMarkets({\n * chainIds: [chainId(1), chainId(8453)],\n * user: evmAddress('0x742d35cc...'),\n * suspense: true\n * });\n * ```\n */\nexport function useAaveMarkets(\n args: UseAaveMarketsArgs & Suspendable,\n): SuspenseResult<Market[]>;\n\n/**\n * Fetch all Aave Markets for the specified chains.\n *\n * ```tsx\n * const { data, error, loading } = useAaveMarkets({\n * chainIds: [chainId(1), chainId(8453)],\n * user: evmAddress('0x742d35cc...'),\n * });\n * ```\n */\nexport function useAaveMarkets(args: UseAaveMarketsArgs): ReadResult<Market[]>;\n\nexport function useAaveMarkets({\n suspense = false,\n borrowsOrderBy = defaultMarketReservesRequestOrderBy,\n suppliesOrderBy = defaultMarketReservesRequestOrderBy,\n ...request\n}: UseAaveMarketsArgs & {\n suspense?: boolean;\n}): SuspendableResult<Market[]> {\n return useSuspendableQuery({\n document: MarketsQuery,\n variables: {\n request,\n borrowsOrderBy,\n suppliesOrderBy,\n },\n suspense,\n });\n}\n","import type { UnexpectedError } from '@aave/client';\nimport { healthFactorPreview } from '@aave/client/actions';\nimport {\n type Chain,\n ChainsFilter,\n ChainsQuery,\n type HealthFactorPreviewRequest,\n type HealthFactorPreviewResponse,\n HealthQuery,\n type UsdExchangeRate,\n UsdExchangeRatesQuery,\n type UsdExchangeRatesRequest,\n} from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n UseAsyncTask,\n} from './helpers';\nimport { useAsyncTask, useSuspendableQuery } from './helpers';\n\nexport type UseAaveChainsArgs = {\n filter?: ChainsFilter;\n};\n\n/**\n * Fetch all supported Aave chains.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveChains({\n * filter: ChainsFilter.MAINNET_ONLY,\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveChains(\n args: UseAaveChainsArgs & Suspendable,\n): SuspenseResult<Chain[]>;\n\n/**\n * Fetch all supported Aave chains.\n *\n * ```tsx\n * const { data, error, loading } = useAaveChains({\n * filter: ChainsFilter.MAINNET_ONLY,\n * });\n * ```\n */\nexport function useAaveChains(args: UseAaveChainsArgs): ReadResult<Chain[]>;\n\nexport function useAaveChains({\n suspense = false,\n filter = ChainsFilter.ALL,\n}: UseAaveChainsArgs & {\n suspense?: boolean;\n}): SuspendableResult<Chain[]> {\n return useSuspendableQuery({\n document: ChainsQuery,\n variables: {\n filter,\n },\n suspense,\n });\n}\n\n/**\n * Health check query.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveHealth({\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveHealth(args: Suspendable): SuspenseResult<boolean>;\n\n/**\n * Health check query.\n *\n * ```tsx\n * const { data, error, loading } = useAaveHealth();\n * ```\n */\nexport function useAaveHealth(): ReadResult<boolean>;\n\nexport function useAaveHealth({\n suspense = false,\n}: {\n suspense?: boolean;\n} = {}): SuspendableResult<boolean> {\n return useSuspendableQuery({\n document: HealthQuery,\n variables: {},\n suspense,\n });\n}\n\nexport type UseUsdExchangeRatesArgs = UsdExchangeRatesRequest;\n\n/**\n * Fetch USD exchange rates for different tokens on a given market.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUsdExchangeRates({\n * market: evmAddress('0x1234…'),\n * underlyingTokens: [evmAddress('0x5678…'), evmAddress('0x90ab…')],\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useUsdExchangeRates(\n args: UseUsdExchangeRatesArgs & Suspendable,\n): SuspenseResult<UsdExchangeRate[]>;\n\n/**\n * Fetch USD exchange rates for different tokens on a given market.\n *\n * ```tsx\n * const { data, error, loading } = useUsdExchangeRates({\n * market: evmAddress('0x1234…'),\n * underlyingTokens: [evmAddress('0x5678…'), evmAddress('0x90ab…')],\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useUsdExchangeRates(\n args: UseUsdExchangeRatesArgs,\n): ReadResult<UsdExchangeRate[]>;\n\nexport function useUsdExchangeRates({\n suspense = false,\n ...request\n}: UseUsdExchangeRatesArgs & {\n suspense?: boolean;\n}): SuspendableResult<UsdExchangeRate[]> {\n return useSuspendableQuery({\n document: UsdExchangeRatesQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\n/**\n * Determines the health factor after a given action.\n *\n * ```ts\n * const [preview, { loading, error }] = useAaveHealthFactorPreview();\n *\n * // …\n *\n * const result = await preview({\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 * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useAaveHealthFactorPreview(): UseAsyncTask<\n HealthFactorPreviewRequest,\n HealthFactorPreviewResponse,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: HealthFactorPreviewRequest) =>\n healthFactorPreview(client, request),\n );\n}\n","import {\n type APYSample,\n BorrowAPYHistoryQuery,\n type BorrowAPYHistoryRequest,\n CreditDelegateeAllowanceQuery,\n type CreditDelegateeAmountRequest,\n type Reserve,\n ReserveQuery,\n type ReserveRequest,\n SupplyAPYHistoryQuery,\n type SupplyAPYHistoryRequest,\n type TokenAmount,\n} from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UseAaveReserveArgs = ReserveRequest;\n\n/**\n * Fetch a single Aave Reserve.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useAaveReserve({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useAaveReserve(\n args: UseAaveReserveArgs & Suspendable,\n): SuspenseResult<Reserve | null>;\n\n/**\n * Fetch a single Aave Reserve.\n *\n * ```tsx\n * const { data, error, loading } = useAaveReserve({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useAaveReserve(\n args: UseAaveReserveArgs,\n): ReadResult<Reserve | null>;\n\nexport function useAaveReserve({\n suspense = false,\n ...request\n}: UseAaveReserveArgs & {\n suspense?: boolean;\n}): SuspendableResult<Reserve | null> {\n return useSuspendableQuery({\n document: ReserveQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseBorrowAPYHistoryArgs = BorrowAPYHistoryRequest;\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 * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useBorrowAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek\n * suspense: true\n * });\n * ```\n */\n\nexport function useBorrowAPYHistory(\n args: UseBorrowAPYHistoryArgs & Suspendable,\n): SuspenseResult<APYSample[]>;\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 * ```tsx\n * const { data } = useBorrowAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek\n * });\n * ```\n */\n\nexport function useBorrowAPYHistory(\n args: UseBorrowAPYHistoryArgs,\n): ReadResult<APYSample[]>;\n\nexport function useBorrowAPYHistory({\n suspense = false,\n ...request\n}: UseBorrowAPYHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<APYSample[]> {\n return useSuspendableQuery({\n document: BorrowAPYHistoryQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseSupplyAPYHistoryArgs = SupplyAPYHistoryRequest;\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 * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useSupplyAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek,\n * suspense: true\n * });\n * ```\n */\nexport function useSupplyAPYHistory(\n args: UseSupplyAPYHistoryArgs & Suspendable,\n): SuspenseResult<APYSample[]>;\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 * ```tsx\n * const { data } = useSupplyAPYHistory({\n * chainId: chainId(1),\n * underlyingToken: evmAddress('0x742d35cc…'),\n * market: evmAddress('0x24dc35d3c…'),\n * window: TimeWindow.LastWeek\n * });\n * ```\n */\nexport function useSupplyAPYHistory(\n args: UseSupplyAPYHistoryArgs,\n): ReadResult<APYSample[]>;\n\nexport function useSupplyAPYHistory({\n suspense = false,\n ...request\n}: UseSupplyAPYHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<APYSample[]> {\n return useSuspendableQuery({\n document: SupplyAPYHistoryQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseCreditDelegateeAllowanceArgs = CreditDelegateeAmountRequest;\n\n/**\n * Get the amount delegated to the credit delegatee that can borrow on your behalf.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useCreditDelegateeAllowance({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * user: evmAddress('0x742d35cc...'),\n * delegatee: evmAddress('0x5678...'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useCreditDelegateeAllowance(\n args: UseCreditDelegateeAllowanceArgs & Suspendable,\n): SuspenseResult<TokenAmount>;\n\n/**\n * Get the amount delegated to the credit delegatee that can borrow on your behalf.\n *\n * ```tsx\n * const { data, error, loading } = useCreditDelegateeAllowance({\n * market: evmAddress('0x87870bca...'),\n * underlyingToken: evmAddress('0xa0b86a33...'),\n * user: evmAddress('0x742d35cc...'),\n * delegatee: evmAddress('0x5678...'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useCreditDelegateeAllowance(\n args: UseCreditDelegateeAllowanceArgs,\n): ReadResult<TokenAmount>;\n\nexport function useCreditDelegateeAllowance({\n suspense = false,\n ...request\n}: UseCreditDelegateeAllowanceArgs & {\n suspense?: boolean;\n}): SuspendableResult<TokenAmount> {\n return useSuspendableQuery({\n document: CreditDelegateeAllowanceQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n","import type { UnexpectedError } from '@aave/client';\nimport {\n approveBorrowCreditDelegation,\n borrow,\n collateralToggle,\n liquidate,\n repay,\n supply,\n userSetEmode,\n vaultDeploy,\n vaultDeposit,\n vaultMintShares,\n vaultRedeemShares,\n vaultSetFee,\n vaultTransferOwnership,\n vaultWithdraw,\n vaultWithdrawFees,\n withdraw,\n} from '@aave/client/actions';\nimport type {\n ApproveBorrowCreditDelegatorRequest,\n BorrowRequest,\n CollateralToggleRequest,\n ExecutionPlan,\n LiquidateRequest,\n RepayRequest,\n SupplyRequest,\n TransactionRequest,\n UserSetEmodeRequest,\n VaultDeployRequest,\n VaultDepositRequest,\n VaultMintSharesRequest,\n VaultRedeemSharesRequest,\n VaultSetFeeRequest,\n VaultTransferOwnershipRequest,\n VaultWithdrawFeesRequest,\n VaultWithdrawRequest,\n WithdrawRequest,\n} from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport { type UseAsyncTask, useAsyncTask } from './helpers';\n\n/**\n * A hook that provides a way to supply assets to an Aave market.\n *\n * ```ts\n * const [supply, supplying] = useSupply();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = supplying.loading && sending.loading;\n * const error = supplying.error || sending.error;\n *\n * // …\n *\n * const result = await supply({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useSupply(): UseAsyncTask<\n SupplyRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: SupplyRequest) => supply(client, request));\n}\n\n/**\n * A hook that provides a way to borrow assets from an Aave market.\n *\n * ```ts\n * const [borrow, borrowing] = useBorrow();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = borrowing.loading && sending.loading;\n * const error = borrowing.error || sending.error;\n *\n * // …\n *\n * const result = await borrow({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useBorrow(): UseAsyncTask<\n BorrowRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: BorrowRequest) => borrow(client, request));\n}\n\n/**\n * A hook that provides a way to repay borrowed assets to an Aave market.\n *\n * ```ts\n * const [repay, repaying] = useRepay();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = repaying.loading && sending.loading;\n * const error = repaying.error || sending.error;\n *\n * // …\n *\n * const result = await repay({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useRepay(): UseAsyncTask<\n RepayRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: RepayRequest) => repay(client, request));\n}\n\n/**\n * A hook that provides a way to withdraw supplied assets from an Aave market.\n *\n * ```ts\n * const [withdraw, withdrawing] = useWithdraw();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useWithdraw(): UseAsyncTask<\n WithdrawRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: WithdrawRequest) => withdraw(client, request));\n}\n\n/**\n * A hook that provides a way to set eMode for a user.\n *\n * ```ts\n * const [setUserEMode, setting] = useUserEMode();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = setting.loading && sending.loading;\n * const error = setting.error || sending.error;\n *\n * // …\n *\n * const result = await setUserEMode({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useUserEMode(): UseAsyncTask<\n UserSetEmodeRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: UserSetEmodeRequest) =>\n userSetEmode(client, request),\n );\n}\n\n/**\n * A hook that provides a way to enable/disable a specific supplied asset as collateral.\n *\n * ```ts\n * const [toggle, toggling] = useCollateralToggle();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = toggling.loading && sending.loading;\n * const error = toggling.error || sending.error;\n *\n * // …\n *\n * const result = await toggle({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useCollateralToggle(): UseAsyncTask<\n CollateralToggleRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: CollateralToggleRequest) =>\n collateralToggle(client, request),\n );\n}\n\n/**\n * A hook that provides a way to liquidate a non-healthy position with Health Factor below 1.\n *\n * ```ts\n * const [liquidate, liquidating] = useLiquidate();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = liquidating.loading && sending.loading;\n * const error = liquidating.error || sending.error;\n *\n * // …\n *\n * const result = await liquidate({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useLiquidate(): UseAsyncTask<\n LiquidateRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: LiquidateRequest) =>\n liquidate(client, request),\n );\n}\n\n/**\n * A hook that provides a way to deposit assets into a vault.\n *\n * ```ts\n * const [deposit, depositing] = useVaultDeposit();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = depositing.loading && sending.loading;\n * const error = depositing.error || sending.error;\n *\n * // …\n *\n * const result = await deposit({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultDeposit(): UseAsyncTask<\n VaultDepositRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultDepositRequest) =>\n vaultDeposit(client, request),\n );\n}\n\n/**\n * A hook that provides a way to mint vault shares.\n *\n * ```ts\n * const [mint, minting] = useVaultMintShares();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = minting.loading && sending.loading;\n * const error = minting.error || sending.error;\n *\n * // …\n *\n * const result = await mint({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultMintShares(): UseAsyncTask<\n VaultMintSharesRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultMintSharesRequest) =>\n vaultMintShares(client, request),\n );\n}\n\n/**\n * A hook that provides a way to redeem vault shares.\n *\n * ```ts\n * const [redeem, redeeming] = useVaultRedeemShares();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = redeeming.loading && sending.loading;\n * const error = redeeming.error || sending.error;\n *\n * // …\n *\n * const result = await redeem({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultRedeemShares(): UseAsyncTask<\n VaultRedeemSharesRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultRedeemSharesRequest) =>\n vaultRedeemShares(client, request),\n );\n}\n\n/**\n * A hook that provides a way to withdraw assets from a vault.\n *\n * ```ts\n * const [withdraw, withdrawing] = useVaultWithdraw();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultWithdraw(): UseAsyncTask<\n VaultWithdrawRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultWithdrawRequest) =>\n vaultWithdraw(client, request),\n );\n}\n\n/**\n * A hook that provides a way to deploy a vault.\n *\n * ```ts\n * const [deploy, deploying] = useVaultDeploy();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = deploying.loading && sending.loading;\n * const error = deploying.error || sending.error;\n *\n * // …\n *\n * const result = await deploy({ ... })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval)\n * .andThen(() => sendTransaction(plan.originalTransaction));\n *\n * case 'InsufficientBalanceError':\n * return errAsync(\n * new Error(`Insufficient balance: ${plan.required.value} required.`)\n * );\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultDeploy(): UseAsyncTask<\n VaultDeployRequest,\n ExecutionPlan,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultDeployRequest) =>\n vaultDeploy(client, request),\n );\n}\n\n/**\n * A hook that provides a way to set vault fee.\n *\n * ```ts\n * const [setFee, setting] = useVaultSetFee();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = setting.loading && sending.loading;\n * const error = setting.error || sending.error;\n *\n * // …\n *\n * const result = await setFee({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultSetFee(): UseAsyncTask<\n VaultSetFeeRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultSetFeeRequest) =>\n vaultSetFee(client, request),\n );\n}\n\n/**\n * A hook that provides a way to withdraw vault fees.\n *\n * ```ts\n * const [withdraw, withdrawing] = useVaultWithdrawFees();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = withdrawing.loading && sending.loading;\n * const error = withdrawing.error || sending.error;\n *\n * // …\n *\n * const result = await withdraw({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultWithdrawFees(): UseAsyncTask<\n VaultWithdrawFeesRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultWithdrawFeesRequest) =>\n vaultWithdrawFees(client, request),\n );\n}\n\n/**\n * A hook that provides a way to transfer ownership of a vault.\n *\n * ```ts\n * const [transferOwnership, transferring] = useVaultTransferOwnership();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = transferring.loading && sending.loading;\n * const error = transferring.error || sending.error;\n *\n * // …\n *\n * const result = await transferOwnership({ ... })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useVaultTransferOwnership(): UseAsyncTask<\n VaultTransferOwnershipRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultTransferOwnershipRequest) =>\n vaultTransferOwnership(client, request),\n );\n}\n\n/**\n * A hook that provides a way to approve a credit borrow delegator to be able to borrow on your behalf.\n *\n * ```ts\n * const [approve, approving] = useApproveBorrowCreditDelegation();\n * const [sendTransaction, sending] = useSendTransaction(wallet);\n *\n * const loading = approving.loading && sending.loading;\n * const error = approving.error || sending.error;\n *\n * // …\n *\n * const result = await approve({\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(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * ```\n */\nexport function useApproveBorrowCreditDelegation(): UseAsyncTask<\n ApproveBorrowCreditDelegatorRequest,\n TransactionRequest,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: ApproveBorrowCreditDelegatorRequest) =>\n approveBorrowCreditDelegation(client, request),\n );\n}\n","import type {\n MarketUserReserveBorrowPosition,\n MarketUserReserveSupplyPosition,\n MarketUserState,\n PaginatedUserTransactionHistoryResult,\n UserBorrowsRequest,\n UserMarketStateRequest,\n UserSuppliesRequest,\n UserTransactionHistoryRequest,\n} from '@aave/graphql';\nimport {\n UserBorrowsQuery,\n UserMarketStateQuery,\n UserSuppliesQuery,\n UserTransactionHistoryQuery,\n} from '@aave/graphql';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n} from './helpers';\nimport { useSuspendableQuery } from './helpers';\n\nexport type UseUserSuppliesArgs = UserSuppliesRequest;\n\n/**\n * Fetch all user supply positions.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserSupplies({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * suspense: true,\n * });\n * ```\n */\nexport function useUserSupplies(\n args: UseUserSuppliesArgs & Suspendable,\n): SuspenseResult<MarketUserReserveSupplyPosition[]>;\n\n/**\n * Fetch all user supply positions.\n *\n * ```tsx\n * const { data, error, loading } = useUserSupplies({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * });\n * ```\n */\nexport function useUserSupplies(\n args: UseUserSuppliesArgs,\n): ReadResult<MarketUserReserveSupplyPosition[]>;\n\nexport function useUserSupplies({\n suspense = false,\n ...request\n}: UseUserSuppliesArgs & {\n suspense?: boolean;\n}): SuspendableResult<MarketUserReserveSupplyPosition[]> {\n return useSuspendableQuery({\n document: UserSuppliesQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserBorrowsArgs = UserBorrowsRequest;\n\n/**\n * Fetch all user borrow positions.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserBorrows({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * suspense: true\n * });\n * ```\n */\nexport function useUserBorrows(\n args: UseUserBorrowsArgs & Suspendable,\n): SuspenseResult<MarketUserReserveBorrowPosition[]>;\n\n/**\n * Fetch all user borrow positions.\n *\n * ```tsx\n * const { data, error, loading } = useUserBorrows({\n * markets: [{ address: evmAddress('0x87870bca…'), chainId: chainId(1) }],\n * user: evmAddress('0x742d35cc…'),\n * orderBy: { name: OrderDirection.ASC },\n * });\n * ```\n */\nexport function useUserBorrows(\n args: UseUserBorrowsArgs,\n): ReadResult<MarketUserReserveBorrowPosition[]>;\n\nexport function useUserBorrows({\n suspense = false,\n ...request\n}: UseUserBorrowsArgs & {\n suspense?: boolean;\n}): SuspendableResult<MarketUserReserveBorrowPosition[]> {\n return useSuspendableQuery({\n document: UserBorrowsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserStateArgs = UserMarketStateRequest;\n\n/**\n * Fetch user account market data across all reserves.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserMarketState({\n * market: evmAddress('0x1234…'),\n * user: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * suspense: true,\n * });\n * ```\n */\nexport function useUserMarketState(\n args: UseUserStateArgs & Suspendable,\n): SuspenseResult<MarketUserState>;\n\n/**\n * Fetch user account market data across all reserves.\n *\n * ```tsx\n * const { data, error, loading } = useUserMarketState({\n * market: evmAddress('0x1234…'),\n * user: evmAddress('0x5678…'),\n * chainId: chainId(1),\n * });\n * ```\n */\nexport function useUserMarketState(\n args: UseUserStateArgs,\n): ReadResult<MarketUserState>;\n\nexport function useUserMarketState({\n suspense = false,\n ...request\n}: UseUserStateArgs & {\n suspense?: boolean;\n}): SuspendableResult<MarketUserState> {\n return useSuspendableQuery({\n document: UserMarketStateQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserTransactionHistoryArgs = UserTransactionHistoryRequest;\n\n/**\n * Fetch user transaction history.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserTransactionHistory({\n * suspense: true,\n * });\n * ```\n */\nexport function useUserTransactionHistory(\n args: UseUserTransactionHistoryArgs & Suspendable,\n): SuspenseResult<PaginatedUserTransactionHistoryResult>;\n\n/**\n * Fetch user transaction history.\n *\n * ```tsx\n * const { data, error, loading } = useUserTransactionHistory();\n * ```\n */\nexport function useUserTransactionHistory(\n args: UseUserTransactionHistoryArgs,\n): ReadResult<PaginatedUserTransactionHistoryResult>;\n\nexport function useUserTransactionHistory({\n suspense = false,\n ...request\n}: UseUserTransactionHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedUserTransactionHistoryResult> {\n return useSuspendableQuery({\n document: UserTransactionHistoryQuery,\n variables: { request },\n suspense,\n });\n}\n","import type { UnexpectedError } from '@aave/client';\nimport {\n vaultPreviewDeposit,\n vaultPreviewMint,\n vaultPreviewRedeem,\n vaultPreviewWithdraw,\n} from '@aave/client/actions';\nimport {\n type PaginatedVaultsResult,\n type PaginatedVaultUserTransactionHistoryResult,\n type TokenAmount,\n UserVaultsQuery,\n type UserVaultsRequest,\n type Vault,\n type VaultPreviewDepositRequest,\n type VaultPreviewMintRequest,\n type VaultPreviewRedeemRequest,\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 { useAaveClient } from './context';\nimport type {\n ReadResult,\n Suspendable,\n SuspendableResult,\n SuspenseResult,\n UseAsyncTask,\n} from './helpers';\nimport { useAsyncTask, useSuspendableQuery } from './helpers';\n\nexport type UseVaultArgs = VaultRequest;\n\n/**\n * Fetch a single vault by address and chain ID.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVault({\n * by: {\n * address: evmAddress('0x1234…'),\n * },\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVault(\n args: UseVaultArgs & Suspendable,\n): SuspenseResult<Vault | null>;\n\n/**\n * Fetch a single vault by address and chain ID.\n *\n * ```tsx\n * const { data, error, loading } = useVault({\n * address: evmAddress('0x1234…'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678…'),\n * });\n * ```\n */\nexport function useVault(args: UseVaultArgs): ReadResult<Vault | null>;\n\nexport function useVault({\n suspense = false,\n ...request\n}: UseVaultArgs & {\n suspense?: boolean;\n}): SuspendableResult<Vault | null> {\n return useSuspendableQuery({\n document: VaultQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseVaultsArgs = VaultsRequest;\n\n/**\n * Fetch vaults based on filter criteria.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVaults({\n * criteria: {\n * ownedBy: [evmAddress('0x1234…')]\n * },\n * pageSize: PageSize.Ten,\n * user: evmAddress('0x5678…'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVaults(\n args: UseVaultsArgs & Suspendable,\n): SuspenseResult<PaginatedVaultsResult>;\n\n/**\n * Fetch vaults based on filter criteria.\n *\n * ```tsx\n * const { data, error, loading } = useVaults({\n * criteria: {\n * ownedBy: [evmAddress('0x1234…')]\n * },\n * pageSize: PageSize.Ten,\n * user: evmAddress('0x5678…'),\n * });\n * ```\n */\nexport function useVaults(\n args: UseVaultsArgs,\n): ReadResult<PaginatedVaultsResult>;\n\nexport function useVaults({\n suspense = false,\n ...request\n}: UseVaultsArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedVaultsResult> {\n return useSuspendableQuery({\n document: VaultsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseUserVaultsArgs = UserVaultsRequest;\n\n/**\n * Fetch vaults that a user has shares in.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useUserVaults({\n * user: evmAddress('0x1234…'),\n * filters: {\n * markets: [evmAddress('0x5678…')]\n * },\n * orderBy: { shares: OrderDirection.Desc },\n * pageSize: PageSize.Fifty,\n * suspense: true,\n * });\n * ```\n */\nexport function useUserVaults(\n args: UseUserVaultsArgs & Suspendable,\n): SuspenseResult<PaginatedVaultsResult>;\n\n/**\n * Fetch vaults that a user has shares in.\n *\n * ```tsx\n * const { data, error, loading } = useUserVaults({\n * user: evmAddress('0x1234…'),\n * filters: {\n * markets: [evmAddress('0x5678…')]\n * },\n * orderBy: { shares: OrderDirection.Desc },\n * pageSize: PageSize.Fifty,\n * });\n * ```\n */\nexport function useUserVaults(\n args: UseUserVaultsArgs,\n): ReadResult<PaginatedVaultsResult>;\n\nexport function useUserVaults({\n suspense = false,\n ...request\n}: UseUserVaultsArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedVaultsResult> {\n return useSuspendableQuery({\n document: UserVaultsQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\n/**\n * Determines the amount of shares that would be received for a deposit.\n *\n * ```ts\n * const [preview, { loading, error }] = useVaultDepositPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('1000'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultDepositPreview(): UseAsyncTask<\n VaultPreviewDepositRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewDepositRequest) =>\n vaultPreviewDeposit(client, 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 [preview, { loading, error }] = useVaultMintPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('500'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultMintPreview(): UseAsyncTask<\n VaultPreviewMintRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewMintRequest) =>\n vaultPreviewMint(client, request),\n );\n}\n\n/**\n * Determines the amount of shares that would be burned for a withdrawal.\n *\n * ```ts\n * const [preview, { loading, error }] = useVaultWithdrawPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('750'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultWithdrawPreview(): UseAsyncTask<\n VaultPreviewWithdrawRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewWithdrawRequest) =>\n vaultPreviewWithdraw(client, 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 * This signature supports React Suspense:\n *\n * ```ts\n * const [preview, { loading, error }] = useVaultRedeemPreview();\n *\n * // …\n *\n * const result = await preview({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * amount: bigDecimal('200'),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * } else {\n * console.log(result.value);\n * }\n * ```\n */\nexport function useVaultRedeemPreview(): UseAsyncTask<\n VaultPreviewRedeemRequest,\n TokenAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask((request: VaultPreviewRedeemRequest) =>\n vaultPreviewRedeem(client, request),\n );\n}\n\nexport type UseVaultUserTransactionHistoryArgs =\n VaultUserTransactionHistoryRequest;\n\n/**\n * Fetch user transaction history for a vault.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVaultUserTransactionHistory({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVaultUserTransactionHistory(\n args: UseVaultUserTransactionHistoryArgs & Suspendable,\n): SuspenseResult<PaginatedVaultUserTransactionHistoryResult>;\n\n/**\n * Fetch user transaction history for a vault.\n *\n * ```tsx\n * const { data, error, loading } = useVaultUserTransactionHistory({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n * ```\n */\nexport function useVaultUserTransactionHistory(\n args: UseVaultUserTransactionHistoryArgs,\n): ReadResult<PaginatedVaultUserTransactionHistoryResult>;\n\nexport function useVaultUserTransactionHistory({\n suspense = false,\n ...request\n}: UseVaultUserTransactionHistoryArgs & {\n suspense?: boolean;\n}): SuspendableResult<PaginatedVaultUserTransactionHistoryResult> {\n return useSuspendableQuery({\n document: VaultUserTransactionHistoryQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n\nexport type UseVaultUserActivityArgs = VaultUserActivityRequest;\n\n/**\n * Fetch user activity data for a vault, including earnings breakdown over time.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useVaultUserActivity({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * suspense: true,\n * });\n * ```\n */\nexport function useVaultUserActivity(\n args: UseVaultUserActivityArgs & Suspendable,\n): SuspenseResult<VaultUserActivityResult>;\n\n/**\n * Fetch user activity data for a vault, including earnings breakdown over time.\n *\n * ```tsx\n * const { data, error, loading } = useVaultUserActivity({\n * vault: evmAddress('0x1234567890abcdef1234567890abcdef12345678'),\n * chainId: chainId(1),\n * user: evmAddress('0x5678901234567890abcdef1234567890abcdef12'),\n * });\n *\n * if (data) {\n * console.log('Total earned:', data.earned.amount.value);\n * data.breakdown.forEach(activity => {\n * console.log('Date:', activity.date);\n * console.log('Balance:', activity.balance.amount.value);\n * });\n * }\n * ```\n */\nexport function useVaultUserActivity(\n args: UseVaultUserActivityArgs,\n): ReadResult<VaultUserActivityResult>;\n\nexport function useVaultUserActivity({\n suspense = false,\n ...request\n}: UseVaultUserActivityArgs & {\n suspense?: boolean;\n}): SuspendableResult<VaultUserActivityResult> {\n return useSuspendableQuery({\n document: VaultUserActivityQuery,\n variables: {\n request,\n },\n suspense,\n });\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aave/react",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "The official React bindings for the Aave Protocol",
5
5
  "repository": {
6
6
  "directory": "packages/react",
@@ -55,9 +55,9 @@
55
55
  "sideEffects": false,
56
56
  "dependencies": {
57
57
  "urql": "^4.2.2",
58
- "@aave/client": "0.6.1",
59
- "@aave/graphql": "0.6.1",
60
- "@aave/types": "0.1.1"
58
+ "@aave/client": "0.7.0",
59
+ "@aave/graphql": "0.7.0",
60
+ "@aave/types": "0.2.0"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@privy-io/react-auth": "^2.20.0",