@aave/react 4.0.0-next.2 → 4.0.0-next.20
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/README.md +8 -4
- package/dist/chunk-YGW2LSLM.js +2 -0
- package/dist/chunk-YGW2LSLM.js.map +1 -0
- package/dist/chunk-YPQBKWEA.js +2 -0
- package/dist/chunk-YPQBKWEA.js.map +1 -0
- package/dist/ethers.cjs +1 -1
- package/dist/ethers.cjs.map +1 -1
- package/dist/ethers.d.cts +6 -6
- package/dist/ethers.d.ts +6 -6
- package/dist/ethers.js +1 -1
- package/dist/ethers.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +707 -155
- package/dist/index.d.ts +707 -155
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{misc-gmAnSdm5.d.ts → misc-Bqd-LTM7.d.cts} +12 -14
- package/dist/{misc-BkG5G4yl.d.cts → misc-DrMxWliM.d.ts} +12 -14
- package/dist/privy.cjs +1 -1
- package/dist/privy.cjs.map +1 -1
- package/dist/privy.d.cts +6 -6
- package/dist/privy.d.ts +6 -6
- package/dist/privy.js +1 -1
- package/dist/privy.js.map +1 -1
- package/dist/thirdweb.cjs +1 -2
- package/dist/thirdweb.cjs.map +1 -1
- package/dist/thirdweb.d.cts +6 -6
- package/dist/thirdweb.d.ts +6 -6
- package/dist/thirdweb.js +1 -2
- package/dist/thirdweb.js.map +1 -1
- package/dist/viem/index.cjs +1 -1
- package/dist/viem/index.cjs.map +1 -1
- package/dist/viem/index.d.cts +11 -21
- package/dist/viem/index.d.ts +11 -21
- package/dist/viem/index.js +1 -1
- package/dist/viem/index.js.map +1 -1
- package/dist/{writes-BXnwYgAQ.d.cts → writes-YQQTp7E5.d.cts} +5 -1
- package/dist/{writes-BXnwYgAQ.d.ts → writes-YQQTp7E5.d.ts} +5 -1
- package/package.json +7 -7
- package/dist/chunk-GTUQRT5Q.js +0 -2
- package/dist/chunk-GTUQRT5Q.js.map +0 -1
- package/dist/chunk-XIDOSID3.js +0 -2
- package/dist/chunk-XIDOSID3.js.map +0 -1
package/README.md
CHANGED
|
@@ -57,9 +57,13 @@ export function App() {
|
|
|
57
57
|
That's it—you can now start using AaveKit React hooks.
|
|
58
58
|
|
|
59
59
|
```tsx
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
import { useChains } from '@aave/react';
|
|
61
|
+
import { ChainsFilter } from '@aave/react';
|
|
62
62
|
|
|
63
|
+
function ChainsList() {
|
|
64
|
+
const { data, error, loading } = useChains({
|
|
65
|
+
query: { filter: ChainsFilter.ALL },
|
|
66
|
+
});
|
|
63
67
|
|
|
64
68
|
if (loading) return <div>Loading…</div>;
|
|
65
69
|
|
|
@@ -67,8 +71,8 @@ function ChainsList() {
|
|
|
67
71
|
|
|
68
72
|
return (
|
|
69
73
|
<div>
|
|
70
|
-
{
|
|
71
|
-
<div key={chain.
|
|
74
|
+
{data?.map((chain) => (
|
|
75
|
+
<div key={chain.chainId}>{chain.name}</div>
|
|
72
76
|
))}
|
|
73
77
|
</div>
|
|
74
78
|
);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {e,a}from'./chunk-YPQBKWEA.js';import {exchangeRate}from'@aave/client/actions';import {ChainsFilter,ChainQuery,ChainsQuery,ExchangeRateQuery}from'@aave/graphql';import {UnexpectedError}from'@aave/client';import {identity,invariant}from'@aave/types';import {useState,useMemo,useEffect}from'react';import {useQuery}from'urql';var u={Loading:()=>({data:void 0,error:void 0,loading:true,paused:false}),Success:e=>({data:e,error:void 0,loading:false,paused:false}),Failure:e=>({data:void 0,error:e,loading:false,paused:false}),Paused:(e,a)=>({data:e,error:a,loading:false,paused:true})};function p({document:e,variables:a,suspense:s,pause:t,selector:c=identity,pollInterval:d=0,batch:b=true}){let[g,h]=useState(true),[{fetching:n,data:r,error:l},x]=useQuery({query:e,variables:a,pause:t,context:useMemo(()=>({batch:b,suspense:s}),[b,s])});if(useEffect(()=>{t||n||h(false);},[n,t]),useEffect(()=>{if(d<=0||n||t)return;let o=setTimeout(()=>{x({requestPolicy:"network-only",batch:false});},d);return ()=>clearTimeout(o)},[n,x,d,t]),t)return u.Paused(r?c(r.value):void 0,l?UnexpectedError.from(l):void 0);if(!s&&g)return u.Loading();if(l){let o=UnexpectedError.from(l);if(s)throw o;return u.Failure(o)}return invariant(r,"No data returned"),u.Success(c(r.value))}function j({suspense:e=false,pause:a=false,...s}){return p({document:ChainQuery,variables:{request:s},suspense:e,pause:a})}function z({suspense:e=false,pause:a=false,...s}={query:{filter:ChainsFilter.ALL}}){return p({document:ChainsQuery,variables:{request:s},suspense:e,pause:a})}function B(){let e$1=e();return a(a=>exchangeRate(e$1,a),[e$1])}function G({suspense:e$1=false,pause:a=false,...s}){let t=e();return p({document:ExchangeRateQuery,variables:{request:s},suspense:e$1,pause:a,pollInterval:s.at?0:t.context.environment.exchangeRateInterval})}export{u as a,p as b,j as c,z as d,B as e,G as f};//# sourceMappingURL=chunk-YGW2LSLM.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-YGW2LSLM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/helpers/results.ts","../src/helpers/reads.ts","../src/misc.ts"],"names":["ReadResult","data","error","useSuspendableQuery","document","variables","suspense","pause","selector","identity","pollInterval","batch","loading","setLoading","useState","fetching","executeQuery","useQuery","useMemo","useEffect","timerId","UnexpectedError","unexpected","invariant","useChain","request","ChainQuery","useChains","ChainsFilter","ChainsQuery","useExchangeRateAction","client","useAaveClient","useAsyncTask","exchangeRate","useExchangeRate","ExchangeRateQuery"],"mappings":"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","file":"chunk-YGW2LSLM.js","sourcesContent":["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 extends UnexpectedError = UnexpectedError> =\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 * A read hook result that supports pausing.\n */\nexport type PausableReadResult<T, E extends UnexpectedError = UnexpectedError> =\n | {\n data: T | undefined;\n error: E | undefined;\n loading: false;\n paused: true;\n }\n | {\n data: undefined;\n error: undefined;\n loading: true;\n paused: false;\n }\n | {\n data: T;\n error: undefined;\n loading: false;\n paused: false;\n }\n | {\n data: undefined;\n error: E;\n loading: false;\n paused: false;\n };\n\n/**\n * @internal\n */\nexport const ReadResult = {\n Loading: <\n T,\n E extends UnexpectedError = UnexpectedError,\n >(): PausableReadResult<T, E> => ({\n data: undefined,\n error: undefined,\n loading: true,\n paused: false,\n }),\n Success: <T, E extends UnexpectedError = UnexpectedError>(\n data: T,\n ): PausableReadResult<T, E> => ({\n data,\n error: undefined,\n loading: false,\n paused: false,\n }),\n Failure: <T, E extends UnexpectedError = UnexpectedError>(\n error: E,\n ): PausableReadResult<T, E> => ({\n data: undefined,\n error,\n loading: false,\n paused: false,\n }),\n Paused: <T, E extends UnexpectedError = UnexpectedError>(\n data: T | undefined,\n error: E | undefined,\n ): PausableReadResult<T, E> => ({\n data,\n error,\n loading: false,\n paused: true,\n }),\n};\n\n/**\n * A read hook result that supports React Suspense.\n */\nexport type SuspenseResult<T> = {\n data: T;\n};\n\n/**\n * A read hook result that supports React Suspense and can be paused.\n */\nexport type PausableSuspenseResult<T> =\n | {\n paused: true;\n data: undefined;\n }\n | {\n paused: false;\n data: T;\n };\n\nexport type SuspendableResult<T, E extends UnexpectedError = UnexpectedError> =\n | ReadResult<T, E>\n | SuspenseResult<T>\n | PausableReadResult<T, E>\n | PausableSuspenseResult<T>;\n","import { type StandardData, UnexpectedError } from '@aave/client';\nimport {\n type AnyVariables,\n identity,\n invariant,\n type NullishDeep,\n type Prettify,\n} from '@aave/types';\nimport { useEffect, useMemo, useState } from 'react';\nimport { type TypedDocumentNode, useQuery } from 'urql';\nimport {\n type PausableReadResult,\n type PausableSuspenseResult,\n ReadResult,\n type SuspendableResult,\n type SuspenseResult,\n} from './results';\n\nexport type Selector<T, V> = (data: T) => V;\n\nexport type Pausable<T, WhenPaused = NullishDeep<T>> = Prettify<\n WhenPaused & {\n /**\n * Prevents the hook from automatically executing GraphQL query operations.\n *\n * @experimental This is an experimental feature and may change in the future.\n *\n * @remarks\n * `pause` may be set to `true` to stop the query operation from executing\n * automatically. The hook will stop receiving updates and won’t execute the query\n * operation until it’s set to `false`.\n */\n pause: boolean;\n }\n>;\n\nexport type Suspendable = { suspense: true };\n\n/**\n * @internal\n */\nexport type UseSuspendableQueryArgs<\n Value,\n Output,\n Variables extends AnyVariables,\n Suspense extends boolean,\n Pause extends boolean = never,\n> = {\n document: TypedDocumentNode<StandardData<Value>, Variables>;\n variables?: Pause extends boolean ? NullishDeep<Variables> : Variables;\n suspense: Suspense;\n selector?: Selector<Value, Output>;\n pollInterval?: number;\n batch?: boolean;\n pause?: Pause;\n};\n\n/**\n * @internal\n */\nexport function useSuspendableQuery<\n Value,\n Output,\n Variables extends AnyVariables,\n Pausable extends boolean = never,\n>({\n document,\n variables,\n suspense,\n pause,\n}: UseSuspendableQueryArgs<Value, Output, Variables, false, Pausable>):\n | ReadResult<Output>\n | PausableReadResult<Output>;\n/**\n * @internal\n */\nexport function useSuspendableQuery<\n Value,\n Output,\n Variables extends AnyVariables,\n Pausable extends boolean = never,\n>({\n document,\n variables,\n suspense,\n pause,\n}: UseSuspendableQueryArgs<Value, Output, Variables, true, Pausable>):\n | SuspenseResult<Output>\n | PausableSuspenseResult<Output>;\n/**\n * @internal\n */\nexport function useSuspendableQuery<\n Value,\n Output,\n Variables extends AnyVariables,\n Pausable extends boolean = never,\n>({\n document,\n variables,\n suspense,\n pause,\n}: UseSuspendableQueryArgs<\n Value,\n Output,\n Variables,\n boolean,\n Pausable\n>): SuspendableResult<Output, UnexpectedError>;\n/**\n * Implementation.\n */\nexport function useSuspendableQuery<\n Value,\n Output,\n Variables extends AnyVariables,\n>({\n document,\n variables,\n suspense,\n pause,\n selector = identity as Selector<Value, Output>,\n pollInterval = 0,\n batch = true,\n}: UseSuspendableQueryArgs<\n Value,\n Output,\n Variables,\n boolean,\n boolean\n>): SuspendableResult<Output, UnexpectedError> {\n const [loading, setLoading] = useState(true);\n const [{ fetching, data, error }, executeQuery] = useQuery({\n query: document,\n variables: variables as Variables,\n pause,\n context: useMemo(\n () => ({\n batch,\n suspense,\n }),\n [batch, suspense],\n ),\n });\n\n useEffect(() => {\n if (pause) return;\n\n if (!fetching) {\n setLoading(false);\n }\n }, [fetching, pause]);\n\n useEffect(() => {\n if (pollInterval <= 0 || fetching || pause) return undefined;\n\n const timerId = setTimeout(() => {\n executeQuery({\n requestPolicy: 'network-only',\n batch: false, // never batch, run now!\n });\n }, pollInterval);\n\n return () => clearTimeout(timerId);\n }, [fetching, executeQuery, pollInterval, pause]);\n\n if (pause) {\n return ReadResult.Paused(\n data ? selector(data.value) : undefined,\n error ? UnexpectedError.from(error) : undefined,\n );\n }\n\n if (!suspense && loading) {\n return ReadResult.Loading();\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(selector(data.value));\n}\n","import type { CurrencyQueryOptions } from '@aave/client';\nimport { exchangeRate } from '@aave/client/actions';\nimport type { UnexpectedError } from '@aave/core';\nimport type { Chain, ExchangeAmount, ExchangeRateRequest } from '@aave/graphql';\nimport {\n type ActivityItem,\n ChainQuery,\n type ChainRequest,\n ChainsFilter,\n ChainsQuery,\n type ChainsRequest,\n ExchangeRateQuery,\n type NativeAmount,\n type PreviewAction,\n} from '@aave/graphql';\nimport type { NullishDeep, Prettify } from '@aave/types';\nimport { useAaveClient } from './context';\nimport {\n type Pausable,\n type PausableReadResult,\n type PausableSuspenseResult,\n type ReadResult,\n type Suspendable,\n type SuspendableResult,\n type SuspenseResult,\n useSuspendableQuery,\n} from './helpers';\nimport { type UseAsyncTask, useAsyncTask } from './helpers/tasks';\n\nexport type UseChainArgs = ChainRequest;\n\n/**\n * Fetch a specific chain by chain ID.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useChain({\n * chainId: chainId(1),\n * suspense: true,\n * });\n * // data will be Chain | null\n * ```\n */\nexport function useChain(\n args: UseChainArgs & Suspendable,\n): SuspenseResult<Chain | null>;\n/**\n * Fetch a specific chain by chain ID.\n *\n * Pausable suspense mode.\n *\n * ```tsx\n * const { data } = useChain({\n * chainId: chainId(1),\n * suspense: true,\n * pause: true,\n * });\n * ```\n */\nexport function useChain(\n args: Pausable<UseChainArgs> & Suspendable,\n): PausableSuspenseResult<Chain | null>;\n/**\n * Fetch a specific chain by chain ID.\n *\n * ```tsx\n * const { data, error, loading } = useChain({\n * chainId: chainId(1),\n * });\n * // data will be Chain | null\n * ```\n */\nexport function useChain(args: UseChainArgs): ReadResult<Chain | null>;\n/**\n * Fetch a specific chain by chain ID.\n *\n * Pausable loading state mode.\n *\n * ```tsx\n * const { data, error, loading, paused } = useChain({\n * chainId: chainId(1),\n * pause: true,\n * });\n * ```\n */\nexport function useChain(\n args: Pausable<UseChainArgs>,\n): PausableReadResult<Chain | null>;\n\nexport function useChain({\n suspense = false,\n pause = false,\n ...request\n}: NullishDeep<UseChainArgs> & {\n suspense?: boolean;\n pause?: boolean;\n}): SuspendableResult<Chain | null, UnexpectedError> {\n return useSuspendableQuery({\n document: ChainQuery,\n variables: {\n request,\n },\n suspense,\n pause,\n });\n}\n\nexport type UseChainsArgs = ChainsRequest;\n/**\n * Fetches the list of supported chains.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useChains({\n * query: { filter: ChainsFilter.ALL },\n * suspense: true,\n * });\n * ```\n */\nexport function useChains(\n args: UseChainsArgs & Suspendable,\n): SuspenseResult<Chain[]>;\n/**\n * Fetches the list of supported chains.\n *\n * Pausable suspense mode.\n *\n * ```tsx\n * const { data } = useChains({\n * query: { filter: ChainsFilter.ALL },\n * suspense: true,\n * pause: true,\n * });\n * ```\n */\nexport function useChains(\n args: Pausable<UseChainsArgs> & Suspendable,\n): PausableSuspenseResult<Chain[]>;\n/**\n * Fetches the list of supported chains.\n *\n * ```tsx\n * const { data, error, loading } = useChains({\n * query: { filter: ChainsFilter.ALL },\n * });\n * ```\n */\nexport function useChains(args?: UseChainsArgs): ReadResult<Chain[]>;\n/**\n * Fetches the list of supported chains.\n *\n * Pausable loading state mode.\n *\n * ```tsx\n * const { data, error, loading, paused } = useChains({\n * query: { filter: ChainsFilter.ALL },\n * pause: true,\n * });\n * ```\n */\nexport function useChains(\n args?: Pausable<UseChainsArgs>,\n): PausableReadResult<Chain[]>;\n\nexport function useChains(\n {\n suspense = false,\n pause = false,\n ...request\n }: NullishDeep<UseChainsArgs> & {\n suspense?: boolean;\n pause?: boolean;\n } = { query: { filter: ChainsFilter.ALL } },\n): SuspendableResult<Chain[], UnexpectedError> {\n return useSuspendableQuery({\n document: ChainsQuery,\n variables: { request },\n suspense,\n pause,\n });\n}\n\n/**\n * Fetches exchange rates between tokens and fiat currencies.\n *\n * ```tsx\n * const [getExchangeRate, gettingRate] = useExchangeRateAction();\n *\n * const loading = gettingRate.loading;\n * const error = gettingRate.error;\n *\n * // …\n *\n * const result = await getExchangeRate({\n * from: { erc20: { chainId: chainId(1), address: evmAddress('0xA0b86a33E6...') } },\n * to: Currency.Usd,\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Exchange rate:', result.value);\n * ```\n */\nexport function useExchangeRateAction(): UseAsyncTask<\n ExchangeRateRequest,\n ExchangeAmount,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask(\n (request: ExchangeRateRequest) => exchangeRate(client, request),\n [client],\n );\n}\n\nexport type UseExchangeRateArgs = ExchangeRateRequest;\n\n/**\n * Fetches exchange rates between tokens and fiat currencies with automatic polling.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useExchangeRate({\n * from: {\n * erc20: {\n * chainId: chainId(1),\n * address: evmAddress('0xA0b86a33E6...')\n * }\n * },\n * to: Currency.Usd,\n * suspense: true,\n * });\n * ```\n */\nexport function useExchangeRate(\n args: UseExchangeRateArgs & Suspendable,\n): SuspenseResult<ExchangeAmount>;\n/**\n * Fetches exchange rates between tokens and fiat currencies with automatic polling.\n *\n * Pausable suspense mode.\n *\n * ```tsx\n * const { data } = useExchangeRate({\n * from: {\n * erc20: {\n * chainId: chainId(1),\n * address: evmAddress('0xA0b86a33E6...')\n * }\n * },\n * to: Currency.Usd,\n * suspense: true,\n * pause: true,\n * });\n * ```\n */\nexport function useExchangeRate(\n args: Pausable<UseExchangeRateArgs> & Suspendable,\n): PausableSuspenseResult<ExchangeAmount>;\n/**\n * Fetches exchange rates between tokens and fiat currencies with automatic polling.\n *\n * ```tsx\n * const { data, error, loading } = useExchangeRate({\n * from: {\n * erc20: {\n * chainId: chainId(1),\n * address: evmAddress('0xA0b86a33E6...')\n * }\n * },\n * to: Currency.Usd,\n * });\n *\n * <Component value={somewhere} fxRate={data} />\n * ```\n */\nexport function useExchangeRate(\n args: UseExchangeRateArgs,\n): ReadResult<ExchangeAmount>;\n/**\n * Fetches exchange rates between tokens and fiat currencies with automatic polling.\n *\n * Pausable loading state mode.\n *\n * ```tsx\n * const { data, error, loading, paused } = useExchangeRate({\n * from: {\n * erc20: {\n * chainId: chainId(1),\n * address: evmAddress('0xA0b86a33E6...')\n * }\n * },\n * to: Currency.Usd,\n * pause: true,\n * });\n * ```\n */\nexport function useExchangeRate(\n args: Pausable<UseExchangeRateArgs>,\n): PausableReadResult<ExchangeAmount>;\n\nexport function useExchangeRate({\n suspense = false,\n pause = false,\n ...request\n}: NullishDeep<UseExchangeRateArgs> & {\n suspense?: boolean;\n pause?: boolean;\n}): SuspendableResult<ExchangeAmount, UnexpectedError> {\n const client = useAaveClient();\n\n return useSuspendableQuery({\n document: ExchangeRateQuery,\n variables: { request },\n suspense,\n pause,\n pollInterval: request.at\n ? 0\n : client.context.environment.exchangeRateInterval,\n });\n}\n\nexport type UseNetworkFeeRequestQuery =\n | {\n activity: ActivityItem;\n }\n | {\n estimate: PreviewAction;\n };\n\nexport type UseNetworkFeeArgs = Prettify<\n {\n query: UseNetworkFeeRequestQuery;\n } & CurrencyQueryOptions\n>;\n\ntype PausableUseNetworkFeeArgs = Partial<\n {\n query: Partial<UseNetworkFeeRequestQuery>;\n } & CurrencyQueryOptions\n>;\n\n/**\n * Fetch the network fee for an ActivityItem.\n *\n * @experimental This hook is experimental and may be subject to breaking changes.\n */\nexport type UseNetworkFee<T extends NativeAmount = NativeAmount> =\n /**\n * Fetches the network fee for a past ActivityItem.\n *\n * This signature supports React Suspense:\n *\n * ```tsx\n * const { data } = useNetworkFee({\n * query: { activity },\n * suspense: true,\n * });\n *\n * data: NativeAmount\n * ```\n */\n ((args: UseNetworkFeeArgs & Suspendable) => SuspenseResult<T>) &\n /**\n * Fetches the network fee for a past ActivityItem.\n *\n * Pausable suspense mode.\n *\n * ```tsx\n * const { data, paused } = useNetworkFee({\n * query: { activity },\n * suspense: true,\n * pause: true,\n * });\n *\n * data: NativeAmount | undefined\n * ```\n */\n ((\n args: Pausable<UseNetworkFeeArgs, PausableUseNetworkFeeArgs> &\n Suspendable,\n ) => PausableSuspenseResult<T>) &\n /**\n * Fetches the network fee for a past ActivityItem.\n *\n * ```tsx\n * const { data, error, loading } = useNetworkFee({\n * query: { activity },\n * });\n * ```\n */\n ((args: UseNetworkFeeArgs) => ReadResult<T>) &\n /**\n * Fetches the network fee for a past ActivityItem.\n *\n * Pausable loading state mode.\n *\n * ```tsx\n * const { data, error, loading, paused } = useNetworkFee({\n * query: { activity },\n * pause: true,\n * });\n *\n * data: NativeAmount | undefined\n * ```\n */\n ((\n args: Pausable<UseNetworkFeeArgs, PausableUseNetworkFeeArgs>,\n ) => PausableReadResult<T>);\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {invariant,nonNullable}from'@aave/types';import i,{useState,useRef,useCallback,useContext}from'react';import {CancelError}from'@aave/core';import {Provider}from'urql';import {permitTypedData}from'@aave/client/actions';var s={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 T(e,r){let[A,a]=useState(s.Idle()),n=useRef(false),c=useCallback(e,r);return [useCallback(f=>{invariant(!n.current,"Cannot execute a task while another is in progress."),n.current=true;let l;a(t=>(l=t,{called:true,loading:true,data:t.data,error:void 0}));try{let t=c(f);return t.match(o=>{n.current=!1,a(s.Success(o));},o=>{n.current=!1,a(s.Failed(o));}),t}catch(t){throw n.current=false,a(nonNullable(l)),t}},[c]),A]}var w=e=>CancelError.from(e).asResultAsync(),d=class e{constructor(r){this.wait=r;}static isInstanceOf(r){return r instanceof e}static ensure(r){return invariant(e.isInstanceOf(r),"Expected PendingTransaction"),r}};var p=i.createContext(null);function N({children:e,client:r}){return i.createElement(p.Provider,{value:r},i.createElement(Provider,{value:r.urql},e))}function y(){let e=useContext(p);return invariant(e,"Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>"),e}function B(){let e=y();return T(r=>permitTypedData(e,r),[e])}export{T as a,w as b,d as c,N as d,y as e,B as f};//# sourceMappingURL=chunk-YPQBKWEA.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-YPQBKWEA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/helpers/tasks.ts","../src/helpers/writes.ts","../src/context.tsx","../src/permits.ts"],"names":["AsyncTaskState","data","error","useAsyncTask","handler","deps","state","setState","useState","loadingRef","useRef","handle","useCallback","input","invariant","previousState","result","value","nonNullable","cancel","message","CancelError","PendingTransaction","_PendingTransaction","wait","AaveContext","React","AaveContextProvider","children","client","UrqlProvider","useAaveClient","useContext","usePermitTypedDataAction","request","permitTypedData"],"mappings":"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","file":"chunk-YPQBKWEA.js","sourcesContent":["import { invariant, nonNullable, type ResultAsync } from '@aave/types';\nimport { type DependencyList, useCallback, useRef, 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>(\n handler: AsyncTask<TInput, TResult>,\n deps: DependencyList,\n): UseAsyncTask<TInput, TValue, TError> {\n const [state, setState] = useState(AsyncTaskState.Idle<TValue, TError>());\n const loadingRef = useRef(false);\n // biome-ignore lint/correctness/useExhaustiveDependencies: useAsyncTask is a low-level hook\n const handle = useCallback(handler, deps);\n\n const execute = useCallback(\n (input: TInput) => {\n invariant(\n !loadingRef.current,\n 'Cannot execute a task while another is in progress.',\n );\n\n loadingRef.current = true;\n\n let previousState: AsyncTaskState<TValue, TError> | undefined;\n setState((state) => {\n previousState = state;\n return {\n called: true,\n loading: true,\n data: state.data,\n error: undefined,\n };\n });\n\n try {\n const result = handle(input);\n\n result.match(\n (value) => {\n loadingRef.current = false;\n setState(AsyncTaskState.Success(value));\n },\n (error) => {\n loadingRef.current = false;\n setState(AsyncTaskState.Failed(error));\n },\n );\n\n return result;\n } catch (error) {\n loadingRef.current = false;\n setState(nonNullable(previousState));\n throw error;\n }\n },\n [handle],\n );\n\n return [execute, state];\n}\n","import type { TransactionResult } from '@aave/client';\nimport {\n CancelError,\n type SigningError,\n type TimeoutError,\n type TransactionError,\n type UnexpectedError,\n} from '@aave/core';\nimport type {\n Erc20ApprovalRequired,\n PreContractActionRequired,\n TransactionRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport { invariant } from '@aave/types';\nimport type { UseAsyncTask } from './tasks';\n\n/**\n * The errors that could occur in the early stage of sending a transaction.\n */\nexport type SendTransactionError = CancelError | SigningError | UnexpectedError;\n\nexport type CancelOperation = (\n message: string,\n) => ResultAsync<never, CancelError>;\n\n/**\n * @internal\n */\nexport const cancel: CancelOperation = (message: string) =>\n CancelError.from(message).asResultAsync();\n\nexport type TransactionHandlerOptions = {\n cancel: CancelOperation;\n};\n\n/**\n * The errors that could occur in the late stages of a transaction.\n */\nexport type PendingTransactionError =\n | CancelError\n | TimeoutError\n | TransactionError\n | UnexpectedError;\n\nexport class PendingTransaction {\n constructor(\n /**\n * @internal Do NOT rely on this method. It's used internally by the SDK and may be subject to breaking changes.\n */\n public readonly wait: () => ResultAsync<\n TransactionResult,\n PendingTransactionError\n >,\n ) {}\n\n /**\n * @internal\n */\n static isInstanceOf(value: unknown): value is PendingTransaction {\n return value instanceof PendingTransaction;\n }\n\n /**\n * @internal\n */\n static ensure<T>(value: T): PendingTransaction & T {\n invariant(\n PendingTransaction.isInstanceOf(value),\n 'Expected PendingTransaction',\n );\n return value as PendingTransaction & T;\n }\n}\n\nexport type UseSendTransactionResult = UseAsyncTask<\n TransactionRequest,\n PendingTransaction,\n SendTransactionError\n>;\n\n/**\n * The handler for sending Aave transactions.\n */\nexport type TransactionHandler = (\n result:\n | TransactionRequest\n | Erc20ApprovalRequired\n | PreContractActionRequired,\n options: TransactionHandlerOptions,\n) => ResultAsync<PendingTransaction, SendTransactionError>;\n","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 * @internal\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 { UnexpectedError } from '@aave/client';\nimport { permitTypedData } from '@aave/client/actions';\nimport type { PermitRequest, PermitTypedDataResponse } from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport { type UseAsyncTask, useAsyncTask } from './helpers';\n\n/**\n * @internal\n */\nexport function usePermitTypedDataAction(): UseAsyncTask<\n PermitRequest,\n PermitTypedDataResponse,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask(\n (request: PermitRequest) => permitTypedData(client, request),\n [client],\n );\n}\n"]}
|
package/dist/ethers.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var ethers=require('@aave/client/ethers'),types=require('@aave/types'),
|
|
1
|
+
'use strict';var ethers=require('@aave/client/ethers'),types=require('@aave/types'),R=require('react');require('@aave/core');var actions=require('@aave/client/actions');require('urql');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var R__default=/*#__PURE__*/_interopDefault(R);var p={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 n(e,r){let[a,s]=R.useState(p.Idle()),o=R.useRef(false),u=R.useCallback(e,r);return [R.useCallback(m=>{types.invariant(!o.current,"Cannot execute a task while another is in progress."),o.current=true;let T;s(t=>(T=t,{called:true,loading:true,data:t.data,error:void 0}));try{let t=u(m);return t.match(c=>{o.current=!1,s(p.Success(c));},c=>{o.current=!1,s(p.Failed(c));}),t}catch(t){throw o.current=false,s(types.nonNullable(T)),t}},[u]),a]}var i=class e{constructor(r){this.wait=r;}static isInstanceOf(r){return r instanceof e}static ensure(r){return types.invariant(e.isInstanceOf(r),"Expected PendingTransaction"),r}};var k=R__default.default.createContext(null);function l(){let e=R.useContext(k);return types.invariant(e,"Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>"),e}function y(){let e=l();return n(r=>actions.permitTypedData(e,r),[e])}function $(e){return n(r=>ethers.sendTransaction(e,r).map(a=>new i(()=>ethers.waitForTransactionResult(r,a))),[e])}function _(e){let[r]=y();return n(a=>r(a).andThen(ethers.signERC20PermitWith(e)),[r,e])}function ee(e){return n(r=>(types.invariant(e,"Expected a Signer to sign swap typed data"),ethers.signSwapTypedDataWith(e)(r)),[e])}exports.useERC20Permit=_;exports.useSendTransaction=$;exports.useSignSwapTypedData=ee;//# sourceMappingURL=ethers.cjs.map
|
|
2
2
|
//# sourceMappingURL=ethers.cjs.map
|
package/dist/ethers.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/helpers/tasks.ts","../src/helpers/writes.ts","../src/context.tsx","../src/permits.ts","../src/ethers.ts"],"names":["AsyncTaskState","data","error","useAsyncTask","handler","deps","state","setState","useState","loadingRef","useRef","handle","useCallback","input","invariant","result","value","PendingTransaction","_PendingTransaction","wait","AaveContext","React","useAaveClient","client","useContext","usePermitTypedDataAction","request","permitTypedData","useSendTransaction","signer","sendTransaction","response","waitForTransactionResult","useERC20Permit","signERC20PermitWith","useSignSwapTypedDataWith","typedData","signSwapTypedDataWith"],"mappings":"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","file":"ethers.cjs","sourcesContent":["import { invariant, type ResultAsync } from '@aave/types';\nimport { type DependencyList, useCallback, useRef, 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>(\n handler: AsyncTask<TInput, TResult>,\n deps: DependencyList,\n): UseAsyncTask<TInput, TValue, TError> {\n const [state, setState] = useState(AsyncTaskState.Idle<TValue, TError>());\n const loadingRef = useRef(false);\n // biome-ignore lint/correctness/useExhaustiveDependencies: useAsyncTask is a low-level hook\n const handle = useCallback(handler, deps);\n\n const execute = useCallback(\n (input: TInput) => {\n invariant(\n !loadingRef.current,\n 'Cannot execute a task while another is in progress.',\n );\n\n loadingRef.current = true;\n setState(({ data }) => {\n return {\n called: true,\n loading: true,\n data,\n error: undefined,\n };\n });\n\n const result = handle(input);\n\n result.match(\n (value) => {\n loadingRef.current = false;\n setState(AsyncTaskState.Success(value));\n },\n (error) => {\n loadingRef.current = false;\n setState(AsyncTaskState.Failed(error));\n },\n );\n\n return result;\n },\n [handle],\n );\n\n return [execute, state];\n}\n","import type { TransactionResult } from '@aave/client';\nimport {\n CancelError,\n type SigningError,\n type TimeoutError,\n type TransactionError,\n type UnexpectedError,\n} from '@aave/core';\nimport type {\n Erc20ApprovalRequired,\n PreContractActionRequired,\n TransactionRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport { invariant } from '@aave/types';\nimport type { UseAsyncTask } from './tasks';\n\n/**\n * The errors that could occur in the early stage of sending a transaction.\n */\nexport type SendTransactionError = CancelError | SigningError | UnexpectedError;\n\nexport type CancelOperation = (\n message: string,\n) => ResultAsync<never, CancelError>;\n\n/**\n * @internal\n */\nexport const cancel: CancelOperation = (message: string) =>\n CancelError.from(message).asResultAsync();\n\nexport type TransactionHandlerOptions = {\n cancel: CancelOperation;\n};\n\n/**\n * The errors that could occur in the late stages of a transaction.\n */\nexport type PendingTransactionError =\n | CancelError\n | TimeoutError\n | TransactionError\n | UnexpectedError;\n\nexport class PendingTransaction {\n constructor(\n /**\n * @internal Do NOT rely on this method. It's used internally by the SDK and may be subject to breaking changes.\n */\n public readonly wait: () => ResultAsync<\n TransactionResult,\n PendingTransactionError\n >,\n ) {}\n\n /**\n * @internal\n */\n static ensure<T>(value: T): PendingTransaction & T {\n invariant(\n value instanceof PendingTransaction,\n 'Expected PendingTransaction',\n );\n return value as PendingTransaction & T;\n }\n}\n\nexport type UseSendTransactionResult = UseAsyncTask<\n TransactionRequest,\n PendingTransaction,\n SendTransactionError\n>;\n\n/**\n * The handler for sending Aave transactions.\n */\nexport type TransactionHandler = (\n result:\n | TransactionRequest\n | Erc20ApprovalRequired\n | PreContractActionRequired,\n options: TransactionHandlerOptions,\n) => ResultAsync<PendingTransaction, SendTransactionError>;\n","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 * @internal\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 { UnexpectedError } from '@aave/client';\nimport { permitTypedData } from '@aave/client/actions';\nimport type { PermitRequest, PermitTypedDataResponse } from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport { type UseAsyncTask, useAsyncTask } from './helpers';\n\n/**\n * @internal\n */\nexport function usePermitTypedDataAction(): UseAsyncTask<\n PermitRequest,\n PermitTypedDataResponse,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask(\n (request: PermitRequest) => permitTypedData(client, request),\n [client],\n );\n}\n","import type { SigningError, UnexpectedError } from '@aave/client';\nimport {\n sendTransaction,\n signERC20PermitWith,\n signSwapTypedDataWith,\n waitForTransactionResult,\n} from '@aave/client/ethers';\nimport type {\n CancelSwapTypedData,\n ERC20PermitSignature,\n PermitRequest,\n SwapByIntentTypedData,\n TransactionRequest,\n} from '@aave/graphql';\n\nimport { invariant } from '@aave/types';\nimport type { Signer } from 'ethers';\nimport {\n PendingTransaction,\n type UseAsyncTask,\n type UseSendTransactionResult,\n useAsyncTask,\n} from './helpers';\nimport { usePermitTypedDataAction } from './permits';\n\n/**\n * A hook that provides a way to send Aave transactions using an ethers Signer instance.\n *\n * Retrieve the `Signer` instance from your ethers provider, then pass it to this hook to create a function that can be used to send transactions.\n *\n * ```ts\n * const provider = new ethers.providers.Web3Provider(window.ethereum);\n * const signer = provider.getSigner();\n *\n * // …\n *\n * const [sendTransaction, { loading, error, data }] = useSendTransaction(signer);\n * ```\n *\n * @param signer - The ethers Signer to use for sending transactions.\n */\nexport function useSendTransaction(signer: Signer): UseSendTransactionResult {\n return useAsyncTask(\n (request: TransactionRequest) => {\n return sendTransaction(signer, request).map(\n (response) =>\n new PendingTransaction(() =>\n waitForTransactionResult(request, response),\n ),\n );\n },\n [signer],\n );\n}\n\nexport type SignERC20PermitError = SigningError | UnexpectedError;\n\n/**\n * A hook that provides a way to sign ERC20 permits using an ethers Signer instance.\n *\n * ```ts\n * const provider = new ethers.providers.Web3Provider(window.ethereum);\n * const signer = provider.getSigner();\n *\n * // …\n *\n * const [signERC20Permit, { loading, error, data }] = useERC20Permit(signer);\n *\n * const run = async () => {\n * const result = await signERC20Permit({\n * supply: {\n * sender: evmAddress(await signer.getAddress()), // User's address\n * reserve: {\n * reserveId: reserve.id,\n * chainId: reserve.chain.chainId,\n * spoke: reserve.spoke.address,\n * },\n * amount: {\n * value: bigDecimal(42), // 42 USDC\n * },\n * },\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('ERC20 Permit signature:', result.value);\n * };\n * ```\n *\n * @param signer - The ethers Signer to use for signing ERC20 permits.\n */\nexport function useERC20Permit(\n signer: Signer,\n): UseAsyncTask<PermitRequest, ERC20PermitSignature, SignERC20PermitError> {\n const [permitTypedData] = usePermitTypedDataAction();\n\n return useAsyncTask(\n (request: PermitRequest) => {\n return permitTypedData(request).andThen(signERC20PermitWith(signer));\n },\n [permitTypedData, signer],\n );\n}\n\nexport type SignSwapTypedDataError = SigningError | UnexpectedError;\n\n/**\n * @internal\n * A hook that provides a way to sign swap typed data using an ethers Signer instance.\n *\n * ```ts\n * const provider = new ethers.providers.Web3Provider(window.ethereum);\n * const signer = provider.getSigner();\n *\n * // …\n *\n * const [signSwapTypedData, { loading, error, data }] = useSignSwapTypedDataWith(signer);\n *\n * const run = async () => {\n * const result = await signSwapTypedData(swapTypedData);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Swap typed data signed:', result.value);\n * };\n * ```\n *\n * @param signer - The ethers Signer to use for signing swap typed data.\n */\nexport function useSignSwapTypedDataWith(\n signer: Signer | undefined,\n): UseAsyncTask<\n SwapByIntentTypedData | CancelSwapTypedData,\n ERC20PermitSignature,\n SignSwapTypedDataError\n> {\n return useAsyncTask(\n (typedData: SwapByIntentTypedData | CancelSwapTypedData) => {\n invariant(signer, 'Expected a Signer to sign swap typed data');\n\n return signSwapTypedDataWith(signer)(typedData);\n },\n [signer],\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/helpers/tasks.ts","../src/helpers/writes.ts","../src/context.tsx","../src/permits.ts","../src/ethers.ts"],"names":["AsyncTaskState","data","error","useAsyncTask","handler","deps","state","setState","useState","loadingRef","useRef","handle","useCallback","input","invariant","previousState","result","value","nonNullable","PendingTransaction","_PendingTransaction","wait","AaveContext","React","useAaveClient","client","useContext","usePermitTypedDataAction","request","permitTypedData","useSendTransaction","signer","sendTransaction","response","waitForTransactionResult","useERC20Permit","signERC20PermitWith","useSignSwapTypedData","typedData","signSwapTypedDataWith"],"mappings":"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","file":"ethers.cjs","sourcesContent":["import { invariant, nonNullable, type ResultAsync } from '@aave/types';\nimport { type DependencyList, useCallback, useRef, 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>(\n handler: AsyncTask<TInput, TResult>,\n deps: DependencyList,\n): UseAsyncTask<TInput, TValue, TError> {\n const [state, setState] = useState(AsyncTaskState.Idle<TValue, TError>());\n const loadingRef = useRef(false);\n // biome-ignore lint/correctness/useExhaustiveDependencies: useAsyncTask is a low-level hook\n const handle = useCallback(handler, deps);\n\n const execute = useCallback(\n (input: TInput) => {\n invariant(\n !loadingRef.current,\n 'Cannot execute a task while another is in progress.',\n );\n\n loadingRef.current = true;\n\n let previousState: AsyncTaskState<TValue, TError> | undefined;\n setState((state) => {\n previousState = state;\n return {\n called: true,\n loading: true,\n data: state.data,\n error: undefined,\n };\n });\n\n try {\n const result = handle(input);\n\n result.match(\n (value) => {\n loadingRef.current = false;\n setState(AsyncTaskState.Success(value));\n },\n (error) => {\n loadingRef.current = false;\n setState(AsyncTaskState.Failed(error));\n },\n );\n\n return result;\n } catch (error) {\n loadingRef.current = false;\n setState(nonNullable(previousState));\n throw error;\n }\n },\n [handle],\n );\n\n return [execute, state];\n}\n","import type { TransactionResult } from '@aave/client';\nimport {\n CancelError,\n type SigningError,\n type TimeoutError,\n type TransactionError,\n type UnexpectedError,\n} from '@aave/core';\nimport type {\n Erc20ApprovalRequired,\n PreContractActionRequired,\n TransactionRequest,\n} from '@aave/graphql';\nimport type { ResultAsync } from '@aave/types';\nimport { invariant } from '@aave/types';\nimport type { UseAsyncTask } from './tasks';\n\n/**\n * The errors that could occur in the early stage of sending a transaction.\n */\nexport type SendTransactionError = CancelError | SigningError | UnexpectedError;\n\nexport type CancelOperation = (\n message: string,\n) => ResultAsync<never, CancelError>;\n\n/**\n * @internal\n */\nexport const cancel: CancelOperation = (message: string) =>\n CancelError.from(message).asResultAsync();\n\nexport type TransactionHandlerOptions = {\n cancel: CancelOperation;\n};\n\n/**\n * The errors that could occur in the late stages of a transaction.\n */\nexport type PendingTransactionError =\n | CancelError\n | TimeoutError\n | TransactionError\n | UnexpectedError;\n\nexport class PendingTransaction {\n constructor(\n /**\n * @internal Do NOT rely on this method. It's used internally by the SDK and may be subject to breaking changes.\n */\n public readonly wait: () => ResultAsync<\n TransactionResult,\n PendingTransactionError\n >,\n ) {}\n\n /**\n * @internal\n */\n static isInstanceOf(value: unknown): value is PendingTransaction {\n return value instanceof PendingTransaction;\n }\n\n /**\n * @internal\n */\n static ensure<T>(value: T): PendingTransaction & T {\n invariant(\n PendingTransaction.isInstanceOf(value),\n 'Expected PendingTransaction',\n );\n return value as PendingTransaction & T;\n }\n}\n\nexport type UseSendTransactionResult = UseAsyncTask<\n TransactionRequest,\n PendingTransaction,\n SendTransactionError\n>;\n\n/**\n * The handler for sending Aave transactions.\n */\nexport type TransactionHandler = (\n result:\n | TransactionRequest\n | Erc20ApprovalRequired\n | PreContractActionRequired,\n options: TransactionHandlerOptions,\n) => ResultAsync<PendingTransaction, SendTransactionError>;\n","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 * @internal\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 { UnexpectedError } from '@aave/client';\nimport { permitTypedData } from '@aave/client/actions';\nimport type { PermitRequest, PermitTypedDataResponse } from '@aave/graphql';\nimport { useAaveClient } from './context';\nimport { type UseAsyncTask, useAsyncTask } from './helpers';\n\n/**\n * @internal\n */\nexport function usePermitTypedDataAction(): UseAsyncTask<\n PermitRequest,\n PermitTypedDataResponse,\n UnexpectedError\n> {\n const client = useAaveClient();\n\n return useAsyncTask(\n (request: PermitRequest) => permitTypedData(client, request),\n [client],\n );\n}\n","import type { SigningError, UnexpectedError } from '@aave/client';\nimport {\n sendTransaction,\n signERC20PermitWith,\n signSwapTypedDataWith,\n waitForTransactionResult,\n} from '@aave/client/ethers';\nimport type {\n ERC20PermitSignature,\n PermitRequest,\n SwapTypedData,\n TransactionRequest,\n} from '@aave/graphql';\nimport { invariant, type Signature } from '@aave/types';\nimport type { Signer } from 'ethers';\nimport {\n PendingTransaction,\n type UseAsyncTask,\n type UseSendTransactionResult,\n useAsyncTask,\n} from './helpers';\nimport { usePermitTypedDataAction } from './permits';\n\n/**\n * A hook that provides a way to send Aave transactions using an ethers Signer instance.\n *\n * Retrieve the `Signer` instance from your ethers provider, then pass it to this hook to create a function that can be used to send transactions.\n *\n * ```ts\n * const provider = new ethers.providers.Web3Provider(window.ethereum);\n * const signer = provider.getSigner();\n *\n * // …\n *\n * const [sendTransaction, { loading, error, data }] = useSendTransaction(signer);\n * ```\n *\n * @param signer - The ethers Signer to use for sending transactions.\n */\nexport function useSendTransaction(signer: Signer): UseSendTransactionResult {\n return useAsyncTask(\n (request: TransactionRequest) => {\n return sendTransaction(signer, request).map(\n (response) =>\n new PendingTransaction(() =>\n waitForTransactionResult(request, response),\n ),\n );\n },\n [signer],\n );\n}\n\nexport type SignERC20PermitError = SigningError | UnexpectedError;\n\n/**\n * A hook that provides a way to sign ERC20 permits using an ethers Signer instance.\n *\n * ```ts\n * const provider = new ethers.providers.Web3Provider(window.ethereum);\n * const signer = provider.getSigner();\n *\n * // …\n *\n * const [signERC20Permit, { loading, error, data }] = useERC20Permit(signer);\n *\n * const run = async () => {\n * const result = await signERC20Permit({\n * supply: {\n * sender: evmAddress(await signer.getAddress()), // User's address\n * reserve: {\n * reserveId: reserve.id,\n * chainId: reserve.chain.chainId,\n * spoke: reserve.spoke.address,\n * },\n * amount: {\n * value: bigDecimal(42), // 42 USDC\n * },\n * },\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('ERC20 Permit signature:', result.value);\n * };\n * ```\n *\n * @param signer - The ethers Signer to use for signing ERC20 permits.\n */\nexport function useERC20Permit(\n signer: Signer,\n): UseAsyncTask<PermitRequest, ERC20PermitSignature, SignERC20PermitError> {\n const [permitTypedData] = usePermitTypedDataAction();\n\n return useAsyncTask(\n (request: PermitRequest) => {\n return permitTypedData(request).andThen(signERC20PermitWith(signer));\n },\n [permitTypedData, signer],\n );\n}\n\nexport type SignSwapTypedDataError = SigningError | UnexpectedError;\n\n/**\n * @internal\n * A hook that provides a way to sign swap typed data using an ethers Signer instance.\n *\n * ```ts\n * const provider = new ethers.providers.Web3Provider(window.ethereum);\n * const signer = provider.getSigner();\n *\n * // …\n *\n * const [signSwapTypedData, { loading, error, data }] = useSignSwapTypedData(signer);\n *\n * const run = async () => {\n * const result = await signSwapTypedData(swapTypedData);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Swap typed data signed:', result.value);\n * };\n * ```\n *\n * @param signer - The ethers Signer to use for signing swap typed data.\n */\nexport function useSignSwapTypedData(\n signer: Signer | undefined,\n): UseAsyncTask<SwapTypedData, Signature, SignSwapTypedDataError> {\n return useAsyncTask(\n (typedData: SwapTypedData) => {\n invariant(signer, 'Expected a Signer to sign swap typed data');\n\n return signSwapTypedDataWith(signer)(typedData);\n },\n [signer],\n );\n}\n"]}
|
package/dist/ethers.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SigningError, UnexpectedError } from '@aave/client';
|
|
2
|
-
import { PermitRequest, ERC20PermitSignature,
|
|
2
|
+
import { PermitRequest, ERC20PermitSignature, SwapTypedData } from '@aave/graphql';
|
|
3
|
+
import { Signature } from '@aave/types';
|
|
3
4
|
import { Signer } from 'ethers';
|
|
4
|
-
import { U as UseSendTransactionResult, a as UseAsyncTask } from './writes-
|
|
5
|
+
import { U as UseSendTransactionResult, a as UseAsyncTask } from './writes-YQQTp7E5.cjs';
|
|
5
6
|
import '@aave/core';
|
|
6
|
-
import '@aave/types';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* A hook that provides a way to send Aave transactions using an ethers Signer instance.
|
|
@@ -72,7 +72,7 @@ type SignSwapTypedDataError = SigningError | UnexpectedError;
|
|
|
72
72
|
*
|
|
73
73
|
* // …
|
|
74
74
|
*
|
|
75
|
-
* const [signSwapTypedData, { loading, error, data }] =
|
|
75
|
+
* const [signSwapTypedData, { loading, error, data }] = useSignSwapTypedData(signer);
|
|
76
76
|
*
|
|
77
77
|
* const run = async () => {
|
|
78
78
|
* const result = await signSwapTypedData(swapTypedData);
|
|
@@ -88,6 +88,6 @@ type SignSwapTypedDataError = SigningError | UnexpectedError;
|
|
|
88
88
|
*
|
|
89
89
|
* @param signer - The ethers Signer to use for signing swap typed data.
|
|
90
90
|
*/
|
|
91
|
-
declare function
|
|
91
|
+
declare function useSignSwapTypedData(signer: Signer | undefined): UseAsyncTask<SwapTypedData, Signature, SignSwapTypedDataError>;
|
|
92
92
|
|
|
93
|
-
export { type SignERC20PermitError, type SignSwapTypedDataError, useERC20Permit, useSendTransaction,
|
|
93
|
+
export { type SignERC20PermitError, type SignSwapTypedDataError, useERC20Permit, useSendTransaction, useSignSwapTypedData };
|
package/dist/ethers.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SigningError, UnexpectedError } from '@aave/client';
|
|
2
|
-
import { PermitRequest, ERC20PermitSignature,
|
|
2
|
+
import { PermitRequest, ERC20PermitSignature, SwapTypedData } from '@aave/graphql';
|
|
3
|
+
import { Signature } from '@aave/types';
|
|
3
4
|
import { Signer } from 'ethers';
|
|
4
|
-
import { U as UseSendTransactionResult, a as UseAsyncTask } from './writes-
|
|
5
|
+
import { U as UseSendTransactionResult, a as UseAsyncTask } from './writes-YQQTp7E5.js';
|
|
5
6
|
import '@aave/core';
|
|
6
|
-
import '@aave/types';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* A hook that provides a way to send Aave transactions using an ethers Signer instance.
|
|
@@ -72,7 +72,7 @@ type SignSwapTypedDataError = SigningError | UnexpectedError;
|
|
|
72
72
|
*
|
|
73
73
|
* // …
|
|
74
74
|
*
|
|
75
|
-
* const [signSwapTypedData, { loading, error, data }] =
|
|
75
|
+
* const [signSwapTypedData, { loading, error, data }] = useSignSwapTypedData(signer);
|
|
76
76
|
*
|
|
77
77
|
* const run = async () => {
|
|
78
78
|
* const result = await signSwapTypedData(swapTypedData);
|
|
@@ -88,6 +88,6 @@ type SignSwapTypedDataError = SigningError | UnexpectedError;
|
|
|
88
88
|
*
|
|
89
89
|
* @param signer - The ethers Signer to use for signing swap typed data.
|
|
90
90
|
*/
|
|
91
|
-
declare function
|
|
91
|
+
declare function useSignSwapTypedData(signer: Signer | undefined): UseAsyncTask<SwapTypedData, Signature, SignSwapTypedDataError>;
|
|
92
92
|
|
|
93
|
-
export { type SignERC20PermitError, type SignSwapTypedDataError, useERC20Permit, useSendTransaction,
|
|
93
|
+
export { type SignERC20PermitError, type SignSwapTypedDataError, useERC20Permit, useSendTransaction, useSignSwapTypedData };
|
package/dist/ethers.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a,c,f}from'./chunk-
|
|
1
|
+
import {a,c,f}from'./chunk-YPQBKWEA.js';import {sendTransaction,waitForTransactionResult,signERC20PermitWith,signSwapTypedDataWith}from'@aave/client/ethers';import {invariant}from'@aave/types';function T(e){return a(r=>sendTransaction(e,r).map(n=>new c(()=>waitForTransactionResult(r,n))),[e])}function g(e){let[r]=f();return a(n=>r(n).andThen(signERC20PermitWith(e)),[r,e])}function E(e){return a(r=>(invariant(e,"Expected a Signer to sign swap typed data"),signSwapTypedDataWith(e)(r)),[e])}export{g as useERC20Permit,T as useSendTransaction,E as useSignSwapTypedData};//# sourceMappingURL=ethers.js.map
|
|
2
2
|
//# sourceMappingURL=ethers.js.map
|
package/dist/ethers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ethers.ts"],"names":["useSendTransaction","signer","useAsyncTask","request","sendTransaction","response","PendingTransaction","waitForTransactionResult","useERC20Permit","permitTypedData","usePermitTypedDataAction","signERC20PermitWith","
|
|
1
|
+
{"version":3,"sources":["../src/ethers.ts"],"names":["useSendTransaction","signer","useAsyncTask","request","sendTransaction","response","PendingTransaction","waitForTransactionResult","useERC20Permit","permitTypedData","usePermitTypedDataAction","signERC20PermitWith","useSignSwapTypedData","typedData","invariant","signSwapTypedDataWith"],"mappings":"iMAuCO,SAASA,EAAmBC,CAAAA,CAA0C,CAC3E,OAAOC,CAAAA,CACJC,CAAAA,EACQC,eAAAA,CAAgBH,CAAAA,CAAQE,CAAO,CAAA,CAAE,GAAA,CACrCE,GACC,IAAIC,CAAAA,CAAmB,IACrBC,wBAAAA,CAAyBJ,CAAAA,CAASE,CAAQ,CAC5C,CACJ,EAEF,CAACJ,CAAM,CACT,CACF,CAyCO,SAASO,CAAAA,CACdP,CAAAA,CACyE,CACzE,GAAM,CAACQ,CAAe,CAAA,CAAIC,GAAyB,CAEnD,OAAOR,EACJC,CAAAA,EACQM,CAAAA,CAAgBN,CAAO,CAAA,CAAE,QAAQQ,mBAAAA,CAAoBV,CAAM,CAAC,CAAA,CAErE,CAACQ,EAAiBR,CAAM,CAC1B,CACF,CA8BO,SAASW,CAAAA,CACdX,CAAAA,CACgE,CAChE,OAAOC,CAAAA,CACJW,IACCC,SAAAA,CAAUb,CAAAA,CAAQ,2CAA2C,CAAA,CAEtDc,qBAAAA,CAAsBd,CAAM,CAAA,CAAEY,CAAS,GAEhD,CAACZ,CAAM,CACT,CACF","file":"ethers.js","sourcesContent":["import type { SigningError, UnexpectedError } from '@aave/client';\nimport {\n sendTransaction,\n signERC20PermitWith,\n signSwapTypedDataWith,\n waitForTransactionResult,\n} from '@aave/client/ethers';\nimport type {\n ERC20PermitSignature,\n PermitRequest,\n SwapTypedData,\n TransactionRequest,\n} from '@aave/graphql';\nimport { invariant, type Signature } from '@aave/types';\nimport type { Signer } from 'ethers';\nimport {\n PendingTransaction,\n type UseAsyncTask,\n type UseSendTransactionResult,\n useAsyncTask,\n} from './helpers';\nimport { usePermitTypedDataAction } from './permits';\n\n/**\n * A hook that provides a way to send Aave transactions using an ethers Signer instance.\n *\n * Retrieve the `Signer` instance from your ethers provider, then pass it to this hook to create a function that can be used to send transactions.\n *\n * ```ts\n * const provider = new ethers.providers.Web3Provider(window.ethereum);\n * const signer = provider.getSigner();\n *\n * // …\n *\n * const [sendTransaction, { loading, error, data }] = useSendTransaction(signer);\n * ```\n *\n * @param signer - The ethers Signer to use for sending transactions.\n */\nexport function useSendTransaction(signer: Signer): UseSendTransactionResult {\n return useAsyncTask(\n (request: TransactionRequest) => {\n return sendTransaction(signer, request).map(\n (response) =>\n new PendingTransaction(() =>\n waitForTransactionResult(request, response),\n ),\n );\n },\n [signer],\n );\n}\n\nexport type SignERC20PermitError = SigningError | UnexpectedError;\n\n/**\n * A hook that provides a way to sign ERC20 permits using an ethers Signer instance.\n *\n * ```ts\n * const provider = new ethers.providers.Web3Provider(window.ethereum);\n * const signer = provider.getSigner();\n *\n * // …\n *\n * const [signERC20Permit, { loading, error, data }] = useERC20Permit(signer);\n *\n * const run = async () => {\n * const result = await signERC20Permit({\n * supply: {\n * sender: evmAddress(await signer.getAddress()), // User's address\n * reserve: {\n * reserveId: reserve.id,\n * chainId: reserve.chain.chainId,\n * spoke: reserve.spoke.address,\n * },\n * amount: {\n * value: bigDecimal(42), // 42 USDC\n * },\n * },\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('ERC20 Permit signature:', result.value);\n * };\n * ```\n *\n * @param signer - The ethers Signer to use for signing ERC20 permits.\n */\nexport function useERC20Permit(\n signer: Signer,\n): UseAsyncTask<PermitRequest, ERC20PermitSignature, SignERC20PermitError> {\n const [permitTypedData] = usePermitTypedDataAction();\n\n return useAsyncTask(\n (request: PermitRequest) => {\n return permitTypedData(request).andThen(signERC20PermitWith(signer));\n },\n [permitTypedData, signer],\n );\n}\n\nexport type SignSwapTypedDataError = SigningError | UnexpectedError;\n\n/**\n * @internal\n * A hook that provides a way to sign swap typed data using an ethers Signer instance.\n *\n * ```ts\n * const provider = new ethers.providers.Web3Provider(window.ethereum);\n * const signer = provider.getSigner();\n *\n * // …\n *\n * const [signSwapTypedData, { loading, error, data }] = useSignSwapTypedData(signer);\n *\n * const run = async () => {\n * const result = await signSwapTypedData(swapTypedData);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Swap typed data signed:', result.value);\n * };\n * ```\n *\n * @param signer - The ethers Signer to use for signing swap typed data.\n */\nexport function useSignSwapTypedData(\n signer: Signer | undefined,\n): UseAsyncTask<SwapTypedData, Signature, SignSwapTypedDataError> {\n return useAsyncTask(\n (typedData: SwapTypedData) => {\n invariant(signer, 'Expected a Signer to sign swap typed data');\n\n return signSwapTypedDataWith(signer)(typedData);\n },\n [signer],\n );\n}\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var client=require('@aave/client'),q=require('react'),types=require('@aave/types'),urql=require('urql'),actions=require('@aave/client/actions'),graphql=require('@aave/graphql'),core=require('@aave/core');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var q__default=/*#__PURE__*/_interopDefault(q);var N=q__default.default.createContext(null);function M({children:e,client:s}){return q__default.default.createElement(N.Provider,{value:s},q__default.default.createElement(urql.Provider,{value:s.urql},e))}function i(){let e=q.useContext(N);return types.invariant(e,"Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>"),e}function Es({children:e,client:s}){return q__default.default.createElement(M,{client:s},e)}var A={Loading:()=>({data:void 0,error:void 0,loading:true,paused:false}),Success:e=>({data:e,error:void 0,loading:false,paused:false}),Failure:e=>({data:void 0,error:e,loading:false,paused:false}),Paused:(e,s)=>({data:e,error:s,loading:false,paused:true})};function u({document:e,variables:s,suspense:r,pause:t,selector:n=types.identity,pollInterval:a=0}){let[o,y]=q.useState(true),[{fetching:S,data:d,error:b},D]=urql.useQuery({query:e,variables:s,pause:t,context:q.useMemo(()=>({suspense:r}),[r])});if(q.useEffect(()=>{t||S||y(false);},[S,t]),q.useEffect(()=>{if(a<=0||S||t)return;let P=setTimeout(()=>{D({requestPolicy:"network-only"});},a);return ()=>clearTimeout(P)},[S,D,a,t]),t)return A.Paused(d?n(d.value):void 0,b?client.UnexpectedError.from(b):void 0);if(!r&&o)return A.Loading();if(b){let P=client.UnexpectedError.from(b);if(r)throw P;return A.Failure(P)}return types.invariant(d,"No data returned"),A.Success(n(d.value))}var H={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 p(e,s){let[r,t]=q.useState(H.Idle()),n=q.useRef(false),a=q.useCallback(e,s);return [q.useCallback(y=>{types.invariant(!n.current,"Cannot execute a task while another is in progress."),n.current=true,t(({data:d})=>({called:true,loading:true,data:d,error:void 0}));let S=a(y);return S.match(d=>{n.current=false,t(H.Success(d));},d=>{n.current=false,t(H.Failed(d));}),S},[a]),r]}var l=e=>core.CancelError.from(e).asResultAsync(),R=class e{constructor(s){this.wait=s;}static ensure(s){return types.invariant(s instanceof e,"Expected PendingTransaction"),s}};function js({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return u({document:graphql.HubQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function Ks({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return u({document:graphql.HubsQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function zs({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return u({document:graphql.HubAssetsQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function Js(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.hubs(s,r,{currency:e.currency}),[s,e.currency])}function tr({suspense:e=false,pause:s=false,...r}){return u({document:graphql.ChainQuery,variables:{request:r},suspense:e,pause:s})}function nr({suspense:e=false,pause:s=false,filter:r}={filter:graphql.ChainsFilter.ALL}){return u({document:graphql.ChainsQuery,variables:{filter:r},suspense:e,pause:s})}function ar(){let e=i();return p(s=>actions.exchangeRate(e,s),[e])}function ur({suspense:e=false,pause:s=false,...r}){let t=i();return u({document:graphql.ExchangeRateQuery,variables:{request:r},suspense:e,pause:s,pollInterval:r.at?0:t.context.environment.exchangeRateInterval})}function cr(){let e=i();return p(s=>actions.permitTypedData(e,s),[e])}function Ur({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...n}){return u({document:graphql.AssetQuery,variables:{request:n,currency:r,timeWindow:t},suspense:e,pause:s})}function Ar({suspense:e=false,pause:s=false,...r}){return u({document:graphql.AssetPriceHistoryQuery,variables:{request:r},suspense:e,pause:s})}function fr({suspense:e=false,pause:s=false,...r}){return u({document:graphql.AssetSupplyHistoryQuery,variables:{request:r},suspense:e,pause:s})}function gr({suspense:e=false,pause:s=false,...r}){return u({document:graphql.AssetBorrowHistoryQuery,variables:{request:r},suspense:e,pause:s})}function hr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return u({document:graphql.ReserveQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function Er(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.reserve(s,r,{currency:e.currency}),[s,e.currency])}function vr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,selector:t,...n}){return u({document:graphql.ReservesQuery,variables:{request:n,currency:r},suspense:e,pause:s,selector:t||void 0})}function kr(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.reserves(s,r,{currency:e.currency}),[s,e.currency])}function qr({suspense:e=false,pause:s=false,...r}){return u({document:graphql.BorrowApyHistoryQuery,variables:{request:r},suspense:e,pause:s})}function Hr({suspense:e=false,pause:s=false,...r}){return u({document:graphql.SupplyApyHistoryQuery,variables:{request:r},suspense:e,pause:s})}function Ir({suspense:e=false,pause:s=false,...r}){return u({document:graphql.SpokeQuery,variables:{request:r},suspense:e,pause:s})}function Or({suspense:e=false,pause:s=false,...r}){return u({document:graphql.SpokesQuery,variables:{request:r},suspense:e,pause:s})}function Dr({suspense:e=false,pause:s=false,...r}){return u({document:graphql.SpokePositionManagersQuery,variables:{request:r},suspense:e,pause:s})}function Nr({suspense:e=false,pause:s=false,...r}){return u({document:graphql.SpokeUserPositionManagersQuery,variables:{request:r},suspense:e,pause:s})}function Kr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return u({document:graphql.SwapQuoteQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function zr(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.swapQuote(s,r,{currency:e.currency}),[s,e.currency])}function Jr({suspense:e=false,pause:s=false,...r}){return u({document:graphql.SwappableTokensQuery,variables:{request:r},suspense:e,pause:s})}function Xr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return u({document:graphql.UserSwapsQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function B(e){return typeof e=="object"&&e!==null&&"deadline"in e&&"value"in e}function Zr(e){let s=i(),r=q.useCallback(t=>{switch(t.__typename){case "SwapTransactionRequest":return e(t,{cancel:l}).map(R.ensure).andThen(n=>n.wait()).andThen(()=>types.okAsync(t.orderReceipt));case "SwapApprovalRequired":return e(t,{cancel:l}).map(R.ensure).andThen(n=>n.wait()).andThen(()=>e(t.originalTransaction,{cancel:l})).map(R.ensure).andThen(n=>n.wait()).andThen(()=>types.okAsync(t.originalTransaction.orderReceipt));case "InsufficientBalanceError":return client.errAsync(client.ValidationError.fromGqlNode(t));case "SwapReceipt":return types.okAsync(t)}},[e]);return p(({currency:t=client.DEFAULT_QUERY_OPTIONS.currency,...n})=>actions.prepareSwap(s,n,{currency:t}).andThen(a=>{switch(a.__typename){case "SwapByTransaction":return actions.swap(s,{transaction:{quoteId:a.quote.quoteId}}).andThen(r);case "SwapByIntent":return e(a.data,{cancel:l}).andThen(o=>(types.invariant(B(o),"Invalid signature"),actions.swap(s,{intent:{quoteId:a.quote.quoteId,signature:o.value}}).andThen(r)));case "SwapByIntentWithApprovalRequired":return e(a,{cancel:l}).map(R.ensure).andThen(o=>o.wait()).andThen(()=>e(a.data,{cancel:l})).map(R.ensure).andThen(o=>o.wait()).andThen(o=>(types.invariant(B(o),"Invalid signature"),actions.swap(s,{intent:{quoteId:a.quote.quoteId,signature:o.value}}).andThen(r)));case "InsufficientBalanceError":return client.errAsync(client.ValidationError.fromGqlNode(a))}}),[s,e,r])}var w=class extends types.ResultAwareError{name="CannotCancelSwapError"};function $r(e){let s=i();return p(r=>actions.swapStatus(s,{id:r.id}).andThen(t=>{switch(t.__typename){case "SwapOpen":case "SwapPendingSignature":return actions.prepareSwapCancel(s,r).andThen(n=>e(n.data)).andThen(n=>(types.invariant(B(n),"Invalid signature"),actions.cancelSwap(s,{intent:{id:r.id,signature:n.value}}))).andThen(n=>n.__typename==="SwapCancelled"?types.okAsync(n):e(n).map(R.ensure).andThen(a=>a.wait()).andThen(()=>actions.swapStatus(s,{id:r.id})).andThen(a=>a.__typename==="SwapCancelled"?types.okAsync(a):client.errAsync(new w("Failed to cancel swap"))));case "SwapCancelled":return types.okAsync(t);default:return client.errAsync(new w("Swap cannot longer be cancelled"))}}),[s,e])}function k(e,s){let{chainId:r,spoke:t}=graphql.decodeReserveId(s.reserve);return async()=>Promise.all([await e.refreshQueryWhere(graphql.UserPositionsQuery,(n,a)=>n.request.user===s.sender&&a.some(o=>o.spoke.chain.chainId===r&&o.spoke.address===t)),await e.refreshQueryWhere(graphql.UserPositionQuery,(n,a)=>a?.spoke.chain.chainId===r&&a?.spoke.address===t&&a.user===s.sender),await e.refreshQueryWhere(graphql.UserSummaryQuery,n=>n.request.user===s.sender&&graphql.isSpokeInputVariant(n.request.filter)?n.request.filter.spoke.chainId===r&&n.request.filter.spoke.address===t:graphql.isChainIdsVariant(n.request.filter)?n.request.filter.chainIds.some(a=>a===r):false),await e.refreshQueryWhere(graphql.ReservesQuery,(n,a)=>a.some(o=>o.id===s.reserve)),await e.refreshQueryWhere(graphql.SpokesQuery,(n,a)=>a.some(o=>o.chain.chainId===r&&o.address===t)),await e.refreshQueryWhere(graphql.UserBalancesQuery,n=>n.request.user===s.sender),await e.refreshQueryWhere(graphql.HubsQuery,n=>graphql.isChainIdsVariant(n.request)&&n.request.chainIds.some(a=>a===r))])}function it(e){let s=i();return p(r=>actions.supply(s,r).andThen(t=>{switch(t.__typename){case "TransactionRequest":return e(t,{cancel:l}).andThen(n=>n.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(t,{cancel:l}).andThen(n=>n.wait()).andThen(()=>e(t.originalTransaction,{cancel:l})).andThen(n=>n.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(t))}}).andTee(k(s,r)),[s,e])}function pt(e){let s=i();return p(r=>actions.borrow(s,r).andThen(t=>{switch(t.__typename){case "TransactionRequest":return e(t,{cancel:l}).andThen(n=>n.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(t,{cancel:l}).andThen(n=>n.wait()).andThen(()=>e(t.originalTransaction,{cancel:l})).andThen(n=>n.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(t))}}).andTee(k(s,r)),[s,e])}function lt(e){let s=i();return p(r=>actions.repay(s,r).andThen(t=>{switch(t.__typename){case "TransactionRequest":return e(t,{cancel:l}).andThen(n=>n.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(t,{cancel:l}).andThen(n=>n.wait()).andThen(()=>e(t.originalTransaction,{cancel:l})).andThen(n=>n.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(t))}}).andTee(k(s,r)),[s,e])}function ct(e){let s=i();return p(r=>actions.withdraw(s,r).andThen(t=>{switch(t.__typename){case "TransactionRequest":return e(t,{cancel:l}).andThen(n=>n.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(t,{cancel:l}).andThen(n=>n.wait()).andThen(()=>e(t.originalTransaction,{cancel:l})).andThen(n=>n.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(t))}}).andTee(k(s,r)),[s,e])}function yt(e){let s=i();return p(r=>actions.renounceSpokeUserPositionManager(s,r).andThen(t=>e(t,{cancel:l})).andThen(t=>t.wait()).andThen(s.waitForTransaction).andTee(()=>s.refreshQueryWhere(graphql.SpokePositionManagersQuery,t=>t.request.spoke===r.spoke)),[s,e])}function dt(e){let s=i();return p(r=>actions.updateUserRiskPremium(s,r).andThen(t=>e(t,{cancel:l})).andThen(t=>t.wait()).andThen(s.waitForTransaction).andTee(async()=>Promise.all([s.refreshQueryWhere(graphql.UserPositionsQuery,(t,n)=>t.request.user===r.sender&&n.some(a=>a.spoke.id===r.spoke)),s.refreshQueryWhere(graphql.UserPositionQuery,(t,n)=>n?.spoke.id===r.spoke&&n.user===r.sender)])),[s,e])}function Rt(e){let s=i();return p(r=>actions.updateUserDynamicConfig(s,r).andThen(t=>e(t,{cancel:l})).andThen(t=>t.wait()).andThen(s.waitForTransaction),[s,e])}function St(e){let s=i();return p(r=>{let{chainId:t,spoke:n}=graphql.decodeReserveId(r.reserve);return actions.setUserSupplyAsCollateral(s,r).andThen(a=>e(a,{cancel:l})).andThen(a=>a.wait()).andThen(s.waitForTransaction).andTee(()=>Promise.all([s.refreshQueryWhere(graphql.UserPositionsQuery,(a,o)=>a.request.user===r.sender&&o.some(y=>y.spoke.chain.chainId===t&&y.spoke.address===n)),s.refreshQueryWhere(graphql.UserPositionQuery,(a,o)=>o?.spoke.chain.chainId===t&&o?.spoke.address===n&&o.user===r.sender),s.refreshQueryWhere(graphql.UserSummaryQuery,a=>a.request.user===r.sender&&graphql.isSpokeInputVariant(a.request.filter)?a.request.filter.spoke.chainId===t&&a.request.filter.spoke.address===n:graphql.isChainIdsVariant(a.request.filter)?a.request.filter.chainIds.some(o=>o===t):false),s.refreshQueryWhere(graphql.ReservesQuery,(a,o)=>o.some(y=>y.id===r.reserve)),s.refreshQueryWhere(graphql.SpokesQuery,(a,o)=>o.some(y=>y.chain.chainId===t&&y.address===n)),s.refreshQueryWhere(graphql.HubsQuery,a=>graphql.isChainIdsVariant(a.request.query)?a.request.query.chainIds.some(o=>o===t):a.request.query.tokens.some(o=>o.chainId===t)),s.refreshQueryWhere(graphql.HubQuery,a=>graphql.isHubInputVariant(a.request.query)?a.request.query.hubInput.chainId===t:graphql.decodeHubId(a.request.query.hubId).chainId===t)]))},[s,e])}function Ut(e){let s=i();return p(r=>actions.liquidatePosition(s,r).andThen(t=>{switch(t.__typename){case "TransactionRequest":return e(t,{cancel:l}).andThen(n=>n.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(t,{cancel:l}).andThen(n=>n.wait()).andThen(()=>e(t.originalTransaction,{cancel:l})).andThen(n=>n.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(t))}}),[s,e])}function At(e){let s=i();return p(r=>actions.setSpokeUserPositionManager(s,r).andThen(t=>e(t,{cancel:l})).andThen(t=>t.wait()).andThen(s.waitForTransaction).andTee(()=>s.refreshQueryWhere(graphql.SpokePositionManagersQuery,t=>t.request.spoke===r.spoke)),[s,e])}function ft(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.preview(s,r,{currency:e.currency}),[s,e.currency])}function gt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return u({document:graphql.PreviewQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function bt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return u({document:graphql.ActivitiesQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function Pt(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.activities(s,r,{currency:e.currency}),[s,e.currency])}function vt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return u({document:graphql.UserSuppliesQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function kt(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.userSupplies(s,r,{currency:e.currency}),[s,e.currency])}function qt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return u({document:graphql.UserBorrowsQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function Ht(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.userBorrows(s,r,{currency:e.currency}),[s,e.currency])}function Ct({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...n}){return u({document:graphql.UserSummaryQuery,variables:{request:n,currency:r,timeWindow:t},suspense:e,pause:s})}function Qt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...n}){return u({document:graphql.UserPositionsQuery,variables:{request:n,currency:r,timeWindow:t},suspense:e,pause:s})}function Bt(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.userPositions(s,r,{currency:e.currency,timeWindow:e.timeWindow}),[s,e.currency,e.timeWindow])}function It({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...n}){return u({document:graphql.UserPositionQuery,variables:{request:n,currency:r,timeWindow:t},suspense:e,pause:s})}function Ot({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return u({document:graphql.UserBalancesQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function Dt(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.userBalances(s,r,{currency:e.currency}),[s,e.currency])}function Nt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return u({document:graphql.UserSummaryHistoryQuery,variables:{request:t,currency:r},suspense:e,pause:s})}exports.AaveProvider=Es;exports.CannotCancelSwapError=w;exports.useAaveClient=i;exports.useActivities=bt;exports.useActivitiesAction=Pt;exports.useAsset=Ur;exports.useAssetBorrowHistory=gr;exports.useAssetPriceHistory=Ar;exports.useAssetSupplyHistory=fr;exports.useBorrow=pt;exports.useBorrowApyHistory=qr;exports.useCancelSwap=$r;exports.useChain=tr;exports.useChains=nr;exports.useExchangeRate=ur;exports.useExchangeRateAction=ar;exports.useHub=js;exports.useHubAssets=zs;exports.useHubs=Ks;exports.useHubsAction=Js;exports.useLiquidatePosition=Ut;exports.usePermitTypedDataAction=cr;exports.usePreview=gt;exports.usePreviewAction=ft;exports.useRenounceSpokeUserPositionManager=yt;exports.useRepay=lt;exports.useReserve=hr;exports.useReserveAction=Er;exports.useReserves=vr;exports.useReservesAction=kr;exports.useSetSpokeUserPositionManager=At;exports.useSetUserSupplyAsCollateral=St;exports.useSpoke=Ir;exports.useSpokePositionManagers=Dr;exports.useSpokeUserPositionManagers=Nr;exports.useSpokes=Or;exports.useSupply=it;exports.useSupplyApyHistory=Hr;exports.useSwapQuote=Kr;exports.useSwapQuoteAction=zr;exports.useSwapTokens=Zr;exports.useSwappableTokens=Jr;exports.useUpdateUserDynamicConfig=Rt;exports.useUpdateUserRiskPremium=dt;exports.useUserBalances=Ot;exports.useUserBalancesAction=Dt;exports.useUserBorrows=qt;exports.useUserBorrowsAction=Ht;exports.useUserPosition=It;exports.useUserPositions=Qt;exports.useUserPositionsAction=Bt;exports.useUserSummary=Ct;exports.useUserSummaryHistory=Nt;exports.useUserSupplies=vt;exports.useUserSuppliesAction=kt;exports.useUserSwaps=Xr;exports.useWithdraw=ct;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'),W=require('react'),types=require('@aave/types'),urql=require('urql'),actions=require('@aave/client/actions'),graphql=require('@aave/graphql'),core=require('@aave/core');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var W__default=/*#__PURE__*/_interopDefault(W);var _=W__default.default.createContext(null);function F({children:e,client:s}){return W__default.default.createElement(_.Provider,{value:s},W__default.default.createElement(urql.Provider,{value:s.urql},e))}function p(){let e=W.useContext(_);return types.invariant(e,"Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>"),e}function Ls({children:e,client:s}){return W__default.default.createElement(F,{client:s},e)}var T={Loading:()=>({data:void 0,error:void 0,loading:true,paused:false}),Success:e=>({data:e,error:void 0,loading:false,paused:false}),Failure:e=>({data:void 0,error:e,loading:false,paused:false}),Paused:(e,s)=>({data:e,error:s,loading:false,paused:true})};function o({document:e,variables:s,suspense:r,pause:t,selector:a=types.identity,pollInterval:n=0,batch:u=true}){let[c,R]=W.useState(true),[{fetching:d,data:f,error:k},V]=urql.useQuery({query:e,variables:s,pause:t,context:W.useMemo(()=>({batch:u,suspense:r}),[u,r])});if(W.useEffect(()=>{t||d||R(false);},[d,t]),W.useEffect(()=>{if(n<=0||d||t)return;let Q=setTimeout(()=>{V({requestPolicy:"network-only",batch:false});},n);return ()=>clearTimeout(Q)},[d,V,n,t]),t)return T.Paused(f?a(f.value):void 0,k?client.UnexpectedError.from(k):void 0);if(!r&&c)return T.Loading();if(k){let Q=client.UnexpectedError.from(k);if(r)throw Q;return T.Failure(Q)}return types.invariant(f,"No data returned"),T.Success(a(f.value))}var O={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 i(e,s){let[r,t]=W.useState(O.Idle()),a=W.useRef(false),n=W.useCallback(e,s);return [W.useCallback(c=>{types.invariant(!a.current,"Cannot execute a task while another is in progress."),a.current=true;let R;t(d=>(R=d,{called:true,loading:true,data:d.data,error:void 0}));try{let d=n(c);return d.match(f=>{a.current=!1,t(O.Success(f));},f=>{a.current=!1,t(O.Failed(f));}),d}catch(d){throw a.current=false,t(types.nonNullable(R)),d}},[n]),r]}var l=e=>core.CancelError.from(e).asResultAsync(),w=class e{constructor(s){this.wait=s;}static isInstanceOf(s){return s instanceof e}static ensure(s){return types.invariant(e.isInstanceOf(s),"Expected PendingTransaction"),s}};function lr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...a}){return o({document:graphql.HubQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function cr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...a}){return o({document:graphql.HubsQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function yr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...a}){return o({document:graphql.HubAssetsQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function dr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.HubSummaryHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Sr(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.hubs(s,r,{currency:e.currency}),[s,e.currency])}function Ar({suspense:e=false,pause:s=false,...r}){return o({document:graphql.ChainQuery,variables:{request:r},suspense:e,pause:s})}function Pr({suspense:e=false,pause:s=false,...r}={query:{filter:graphql.ChainsFilter.ALL}}){return o({document:graphql.ChainsQuery,variables:{request:r},suspense:e,pause:s})}function wr(){let e=p();return i(s=>actions.exchangeRate(e,s),[e])}function Tr({suspense:e=false,pause:s=false,...r}){let t=p();return o({document:graphql.ExchangeRateQuery,variables:{request:r},suspense:e,pause:s,pollInterval:r.at?0:t.context.environment.exchangeRateInterval})}function Er(){let e=p();return i(s=>actions.permitTypedData(e,s),[e])}function Br({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...a}){return o({document:graphql.AssetQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function Ir({suspense:e=false,pause:s=false,...r}){return o({document:graphql.AssetPriceHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Wr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.AssetSupplyHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Or({suspense:e=false,pause:s=false,...r}){return o({document:graphql.AssetBorrowHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Dr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.ProtocolHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Yr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...a}){return o({document:graphql.ReserveQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function Gr(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.reserve(s,r,{currency:e.currency??client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function jr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,selector:a,...n}){return o({document:graphql.ReservesQuery,variables:{request:n,currency:r,timeWindow:t},suspense:e,pause:s,selector:a||void 0})}function $r(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.reserves(s,r,{currency:e.currency??client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function Kr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.BorrowApyHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function zr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SupplyApyHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function et({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SpokeQuery,variables:{request:r},suspense:e,pause:s})}function st({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SpokesQuery,variables:{request:r},suspense:e,pause:s})}function rt({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SpokePositionManagersQuery,variables:{request:r},suspense:e,pause:s})}function tt({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SpokeUserPositionManagersQuery,variables:{request:r},suspense:e,pause:s})}function se(e){switch(e.__typename){case "SwapByIntent":case "SwapByIntentWithApprovalRequired":case "SwapByTransaction":return e.quote;default:throw core.UnexpectedError.upgradeRequired(`Unsupported swap quote result: ${e.__typename}`)}}function St({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return o({document:graphql.TokenSwapQuoteQuery,variables:{request:{market:t},currency:r},selector:se,suspense:e,pause:s})}function Rt(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.tokenSwapQuote(s,{market:r},{currency:e.currency}).map(se),[s,e.currency])}function Ut({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SwappableTokensQuery,variables:{request:r},suspense:e,pause:s})}function gt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...a}){return o({document:graphql.UserSwapsQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function ft({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return o({document:graphql.SupplySwapQuoteQuery,variables:{request:t,currency:r},selector:a=>a.quote,suspense:e,pause:s})}function bt(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.supplySwapQuote(s,r,{currency:e.currency}).map(t=>t.quote),[s,e.currency])}function mt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return o({document:graphql.BorrowSwapQuoteQuery,variables:{request:t,currency:r},selector:a=>a.quote,suspense:e,pause:s})}function At(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.borrowSwapQuote(s,r,{currency:e.currency}).map(t=>t.quote),[s,e.currency])}function H(e){return {with:s=>e.approvals.reduce((r,t)=>r.andThen(a=>s(t,{cancel:l}).map(n=>{switch(t.__typename){case "PositionSwapAdapterContractApproval":a.adapterContractSignature=types.isSignature(n)?n:null;break;case "PositionSwapPositionManagerApproval":a.positionManagerSignature=types.isSignature(n)?n:null;break}return a})),types.okAsync({quoteId:e.quote.quoteId,adapterContractSignature:null,positionManagerSignature:null}))}}function C(e,s){return actions.swap(e,{intent:s}).andThen(r=>{switch(r.__typename){case "SwapReceipt":return types.okAsync(r);default:return core.UnexpectedError.from(r).asResultAsync()}})}function Pt(e){let s=p();return i(({currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t})=>actions.supplySwapQuote(s,t,{currency:r}).andThen(a=>H(a).with(e).andThen(n=>actions.preparePositionSwap(s,n)).andThen(n=>e(n.data,{cancel:l}).map(u=>(types.invariant(types.isSignature(u),"Expected signature, got an object instead."),u))).andThen(n=>C(s,{quoteId:a.quote.quoteId,signature:n}))),[s,e])}function wt(e){let s=p();return i(({currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t})=>actions.borrowSwapQuote(s,t,{currency:r}).andThen(a=>H(a).with(e).andThen(n=>actions.preparePositionSwap(s,n)).andThen(n=>e(n.data,{cancel:l}).map(u=>(types.invariant(types.isSignature(u),"Expected signature, got an object instead."),u))).andThen(n=>C(s,{quoteId:a.quote.quoteId,signature:n}))),[s,e])}function Tt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return o({document:graphql.RepayWithSupplyQuoteQuery,variables:{request:t,currency:r},selector:a=>a.quote,suspense:e,pause:s})}function xt(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.repayWithSupplyQuote(s,r,{currency:e.currency}).map(t=>t.quote),[s,e.currency])}function ht(e){let s=p();return i(({currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t})=>actions.repayWithSupplyQuote(s,t,{currency:r}).andThen(a=>H(a).with(e).andThen(n=>actions.preparePositionSwap(s,n)).andThen(n=>e(n.data,{cancel:l}).map(u=>(types.invariant(types.isSignature(u),"Expected signature, got an object instead."),u))).andThen(n=>C(s,{quoteId:a.quote.quoteId,signature:n}))),[s,e])}function kt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return o({document:graphql.WithdrawSwapQuoteQuery,variables:{request:t,currency:r},selector:a=>a.quote,suspense:e,pause:s})}function Qt(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.withdrawSwapQuote(s,r,{currency:e.currency}).map(t=>t.quote),[s,e.currency])}function Et(e){let s=p();return i(({currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t})=>actions.withdrawSwapQuote(s,t,{currency:r}).andThen(a=>H(a).with(e).andThen(n=>actions.preparePositionSwap(s,n)).andThen(n=>e(n.data,{cancel:l}).map(u=>(types.invariant(types.isSignature(u),"Expected signature, got an object instead."),u))).andThen(n=>C(s,{quoteId:a.quote.quoteId,signature:n}))),[s,e])}function qt(e){let s=p(),r=W.useCallback(t=>actions.swap(s,t).andThen(a=>{switch(a.__typename){case "SwapTransactionRequest":return e(a,{cancel:l}).map(w.ensure).andThen(n=>n.wait()).andThen(()=>types.okAsync(a.orderReceipt));case "SwapReceipt":return types.okAsync(a)}}),[s,e]);return i(({currency:t=client.DEFAULT_QUERY_OPTIONS.currency,...a})=>actions.tokenSwapQuote(s,a,{currency:t}).andThen(n=>{switch(n.__typename){case "SwapByTransaction":return r({transaction:{quoteId:n.quote.quoteId}});case "SwapByIntent":return actions.prepareTokenSwap(s,{quoteId:n.quote.quoteId}).andThen(u=>e(u.data,{cancel:l}).map(c=>(types.invariant(types.isSignature(c),"Invalid signature"),c)).andThen(c=>r({intent:{quoteId:u.newQuoteId,signature:c}})));case "SwapByIntentWithApprovalRequired":return e(n.approval,{cancel:l}).andThen(u=>graphql.isERC20PermitSignature(u)?actions.prepareTokenSwap(s,{quoteId:n.quote.quoteId,permitSig:u}):w.isInstanceOf(u)?u.wait().andThen(()=>actions.prepareTokenSwap(s,{quoteId:n.quote.quoteId})):core.UnexpectedError.from(u).asResultAsync()).andThen(u=>e(u.data,{cancel:l}).map(c=>(types.invariant(types.isSignature(c),"Invalid signature"),c)).andThen(c=>r({intent:{quoteId:n.quote.quoteId,signature:c}})));default:types.never(`Unsupported swap quote result: ${n.__typename}. To be removed from API soon.`);}}),[s,e,r])}var E=class extends types.ResultAwareError{name="CannotCancelSwapError"};function vt(e){let s=p();return i(r=>actions.swapStatus(s,{id:r.id}).andThen(t=>{switch(t.__typename){case "SwapOpen":case "SwapPendingSignature":return actions.prepareSwapCancel(s,r).andThen(a=>e(a.data,{cancel:l})).map(a=>(types.invariant(types.isSignature(a),"Invalid signature"),a)).andThen(a=>actions.cancelSwap(s,{intent:{id:r.id,signature:a}})).andThen(a=>a.__typename==="SwapCancelled"?types.okAsync(a):e(a,{cancel:l}).map(w.ensure).andThen(n=>n.wait()).andThen(()=>actions.swapStatus(s,{id:r.id})).andThen(n=>n.__typename==="SwapCancelled"?types.okAsync(n):new E("Failed to cancel swap").asResultAsync()));case "SwapCancelled":return types.okAsync(t);case "SwapExpired":return new E("Swap cannot longer be cancelled").asResultAsync();default:return core.UnexpectedError.upgradeRequired(`Unsupported swap status: ${t.__typename}`).asResultAsync()}}),[s,e])}function I(e,s){let{chainId:r,spoke:t}=graphql.decodeReserveId(s.reserve);return async()=>Promise.all([await e.refreshQueryWhere(graphql.UserPositionsQuery,(a,n)=>a.request.user===s.sender&&n.some(u=>u.spoke.chain.chainId===r&&u.spoke.address===t)),await e.refreshQueryWhere(graphql.UserPositionQuery,(a,n)=>n?.spoke.chain.chainId===r&&n?.spoke.address===t&&n.user===s.sender),await e.refreshQueryWhere(graphql.UserSummaryQuery,a=>a.request.user===s.sender&&graphql.isSpokeInputVariant(a.request.filter)?a.request.filter.spoke.chainId===r&&a.request.filter.spoke.address===t:graphql.isChainIdsVariant(a.request.filter)?a.request.filter.chainIds.some(n=>n===r):false),await e.refreshQueryWhere(graphql.ReservesQuery,(a,n)=>n.some(u=>u.id===s.reserve)),await e.refreshQueryWhere(graphql.SpokesQuery,(a,n)=>n.some(u=>u.chain.chainId===r&&u.address===t)),await e.refreshQueryWhere(graphql.UserBalancesQuery,a=>a.request.user===s.sender),await e.refreshQueryWhere(graphql.HubsQuery,a=>graphql.isChainIdsVariant(a.request)&&a.request.chainIds.some(n=>n===r))])}function Mt(e){let s=p();return i(r=>actions.supply(s,r).andThen(t=>{switch(t.__typename){case "TransactionRequest":return e(t,{cancel:l}).andThen(a=>a.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(t,{cancel:l}).andThen(a=>a.wait()).andThen(()=>e(t.originalTransaction,{cancel:l})).andThen(a=>a.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(t))}}).andTee(I(s,r)),[s,e])}function Vt(e){let s=p();return i(r=>actions.borrow(s,r).andThen(t=>{switch(t.__typename){case "TransactionRequest":return e(t,{cancel:l}).andThen(a=>a.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(t,{cancel:l}).andThen(a=>a.wait()).andThen(()=>e(t.originalTransaction,{cancel:l})).andThen(a=>a.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(t))}}).andTee(I(s,r)),[s,e])}function _t(e){let s=p();return i(r=>actions.repay(s,r).andThen(t=>{switch(t.__typename){case "TransactionRequest":return e(t,{cancel:l}).andThen(a=>a.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(t,{cancel:l}).andThen(a=>a.wait()).andThen(()=>e(t.originalTransaction,{cancel:l})).andThen(a=>a.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(t))}}).andTee(I(s,r)),[s,e])}function Ft(e){let s=p();return i(r=>actions.withdraw(s,r).andThen(t=>{switch(t.__typename){case "TransactionRequest":return e(t,{cancel:l}).andThen(a=>a.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(t,{cancel:l}).andThen(a=>a.wait()).andThen(()=>e(t.originalTransaction,{cancel:l})).andThen(a=>a.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(t))}}).andTee(I(s,r)),[s,e])}function Lt(e){let s=p();return i(r=>actions.renounceSpokeUserPositionManager(s,r).andThen(t=>e(t,{cancel:l})).andThen(t=>t.wait()).andThen(s.waitForTransaction).andTee(()=>s.refreshQueryWhere(graphql.SpokePositionManagersQuery,t=>t.request.spoke===r.spoke)),[s,e])}function Yt(e){let s=p();return i(r=>actions.updateUserPositionConditions(s,r).andThen(t=>e(t,{cancel:l})).andThen(t=>t.wait()).andThen(s.waitForTransaction).andTee(async()=>{let{userPositionId:t}=r;return Promise.all([s.refreshQueryWhere(graphql.UserPositionsQuery,(a,n)=>n.some(u=>u.id===t)),s.refreshQueryWhere(graphql.UserPositionQuery,(a,n)=>n?.id===t)])}),[s,e])}function Gt(e){let s=p();return i(r=>{let t=r.changes.map(n=>n.reserve),a=t.map(n=>graphql.decodeReserveId(n));return actions.setUserSuppliesAsCollateral(s,r).andThen(n=>e(n,{cancel:l})).andThen(n=>n.wait()).andThen(s.waitForTransaction).andTee(()=>Promise.all([...a.map(({chainId:n,spoke:u})=>s.refreshQueryWhere(graphql.UserPositionsQuery,(c,R)=>c.request.user===r.sender&&R.some(d=>d.spoke.chain.chainId===n&&d.spoke.address===u))),...a.map(({chainId:n,spoke:u})=>s.refreshQueryWhere(graphql.UserPositionQuery,(c,R)=>R?.spoke.chain.chainId===n&&R?.spoke.address===u&&R.user===r.sender)),...a.map(({chainId:n,spoke:u})=>s.refreshQueryWhere(graphql.UserSummaryQuery,c=>c.request.user===r.sender&&graphql.isSpokeInputVariant(c.request.filter)?c.request.filter.spoke.chainId===n&&c.request.filter.spoke.address===u:graphql.isChainIdsVariant(c.request.filter)?c.request.filter.chainIds.some(R=>R===n):false)),s.refreshQueryWhere(graphql.ReservesQuery,(n,u)=>u.some(c=>t.includes(c.id))),...a.map(({chainId:n,spoke:u})=>s.refreshQueryWhere(graphql.SpokesQuery,(c,R)=>R.some(d=>d.chain.chainId===n&&d.address===u))),...a.map(({chainId:n})=>s.refreshQueryWhere(graphql.HubsQuery,u=>graphql.isChainIdsVariant(u.request.query)?u.request.query.chainIds.some(c=>c===n):u.request.query.tokens.some(c=>c.chainId===n))),...a.map(({chainId:n})=>s.refreshQueryWhere(graphql.HubQuery,u=>graphql.isHubInputVariant(u.request.query)?u.request.query.hubInput.chainId===n:graphql.decodeHubId(u.request.query.hubId).chainId===n))]))},[s,e])}function jt(e){let s=p();return i(r=>actions.liquidatePosition(s,r).andThen(t=>{switch(t.__typename){case "TransactionRequest":return e(t,{cancel:l}).andThen(a=>a.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(t,{cancel:l}).andThen(a=>a.wait()).andThen(()=>e(t.originalTransaction,{cancel:l})).andThen(a=>a.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(t))}}),[s,e])}function $t(e){let s=p();return i(r=>actions.setSpokeUserPositionManager(s,r).andThen(t=>e(t,{cancel:l})).andThen(t=>t.wait()).andThen(s.waitForTransaction).andTee(()=>s.refreshQueryWhere(graphql.SpokePositionManagersQuery,t=>t.request.spoke===r.spoke)),[s,e])}function Kt(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.preview(s,r,{currency:e.currency}),[s,e.currency])}function zt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return o({document:graphql.PreviewQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function Jt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...a}){return o({document:graphql.ActivitiesQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function Xt(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.activities(s,r,{currency:e.currency??client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function na({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...a}){return o({document:graphql.UserSuppliesQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function ua(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.userSupplies(s,r,{currency:e.currency??client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function oa({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...a}){return o({document:graphql.UserBorrowsQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function pa(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.userBorrows(s,r,{currency:e.currency??client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function ia({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...a}){return o({document:graphql.UserSummaryQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function la({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...a}){return o({document:graphql.UserPositionsQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function ca(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.userPositions(s,r,{currency:e.currency,timeWindow:e.timeWindow}),[s,e.currency,e.timeWindow])}function ya({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:t=client.DEFAULT_QUERY_OPTIONS.timeWindow,...a}){return o({document:graphql.UserPositionQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function da({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return o({document:graphql.UserBalancesQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function Sa({suspense:e=false,pause:s=false,...r}){return o({document:graphql.UserRiskPremiumBreakdownQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Ra(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.userBalances(s,r,{currency:e.currency}),[s,e.currency])}function Ua({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return o({document:graphql.UserSummaryHistoryQuery,variables:{request:t,currency:r},suspense:e,pause:s,batch:false})}exports.AaveProvider=Ls;exports.CannotCancelSwapError=E;exports.useAaveClient=p;exports.useActivities=Jt;exports.useActivitiesAction=Xt;exports.useAsset=Br;exports.useAssetBorrowHistory=Or;exports.useAssetPriceHistory=Ir;exports.useAssetSupplyHistory=Wr;exports.useBorrow=Vt;exports.useBorrowApyHistory=Kr;exports.useBorrowSwap=wt;exports.useBorrowSwapQuote=mt;exports.useBorrowSwapQuoteAction=At;exports.useCancelSwap=vt;exports.useChain=Ar;exports.useChains=Pr;exports.useExchangeRate=Tr;exports.useExchangeRateAction=wr;exports.useHub=lr;exports.useHubAssets=yr;exports.useHubSummaryHistory=dr;exports.useHubs=cr;exports.useHubsAction=Sr;exports.useLiquidatePosition=jt;exports.usePermitTypedDataAction=Er;exports.usePreview=zt;exports.usePreviewAction=Kt;exports.useProtocolHistory=Dr;exports.useRenounceSpokeUserPositionManager=Lt;exports.useRepay=_t;exports.useRepayWithSupply=ht;exports.useRepayWithSupplyQuote=Tt;exports.useRepayWithSupplyQuoteAction=xt;exports.useReserve=Yr;exports.useReserveAction=Gr;exports.useReserves=jr;exports.useReservesAction=$r;exports.useSetSpokeUserPositionManager=$t;exports.useSetUserSuppliesAsCollateral=Gt;exports.useSpoke=et;exports.useSpokePositionManagers=rt;exports.useSpokeUserPositionManagers=tt;exports.useSpokes=st;exports.useSupply=Mt;exports.useSupplyApyHistory=zr;exports.useSupplySwap=Pt;exports.useSupplySwapQuote=ft;exports.useSupplySwapQuoteAction=bt;exports.useSwappableTokens=Ut;exports.useTokenSwap=qt;exports.useTokenSwapQuote=St;exports.useTokenSwapQuoteAction=Rt;exports.useUpdateUserPositionConditions=Yt;exports.useUserBalances=da;exports.useUserBalancesAction=Ra;exports.useUserBorrows=oa;exports.useUserBorrowsAction=pa;exports.useUserPosition=ya;exports.useUserPositions=la;exports.useUserPositionsAction=ca;exports.useUserRiskPremiumBreakdown=Sa;exports.useUserSummary=ia;exports.useUserSummaryHistory=Ua;exports.useUserSupplies=na;exports.useUserSuppliesAction=ua;exports.useUserSwaps=gt;exports.useWithdraw=Ft;exports.useWithdrawSwap=Et;exports.useWithdrawSwapQuote=kt;exports.useWithdrawSwapQuoteAction=Qt;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
|