@aave/react 4.0.0-next.11 → 4.0.0-next.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ethers.cjs +1 -1
- package/dist/ethers.cjs.map +1 -1
- package/dist/ethers.d.cts +4 -4
- package/dist/ethers.d.ts +4 -4
- 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 +407 -58
- package/dist/index.d.ts +407 -58
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{misc-CB94S1RB.d.cts → misc-BbkH5nn7.d.cts} +1 -1
- package/dist/{misc-BUJSXsyz.d.ts → misc-Cza-qIHo.d.ts} +1 -1
- package/dist/privy.cjs +1 -1
- package/dist/privy.cjs.map +1 -1
- package/dist/privy.d.cts +4 -4
- package/dist/privy.d.ts +4 -4
- package/dist/privy.js +1 -1
- package/dist/privy.js.map +1 -1
- package/dist/thirdweb.cjs +1 -1
- package/dist/thirdweb.cjs.map +1 -1
- package/dist/thirdweb.d.cts +4 -4
- package/dist/thirdweb.d.ts +4 -4
- package/dist/thirdweb.js +1 -1
- 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 +5 -5
- package/dist/viem/index.d.ts +5 -5
- package/dist/viem/index.js +1 -1
- package/dist/viem/index.js.map +1 -1
- package/dist/{writes-BXnwYgAQ.d.cts → writes-K_-o9pPN.d.cts} +1 -1
- package/dist/{writes-BXnwYgAQ.d.ts → writes-K_-o9pPN.d.ts} +1 -1
- package/package.json +5 -5
package/dist/ethers.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
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 ensure(r){return types.invariant(r instanceof e,"Expected PendingTransaction"),r}};var
|
|
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 ensure(r){return types.invariant(r instanceof e,"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.useSignSwapTypedDataWith=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","previousState","result","value","nonNullable","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, 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 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","useSignSwapTypedDataWith","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 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 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 }] = 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<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-K_-o9pPN.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.
|
|
@@ -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 useSignSwapTypedDataWith(signer: Signer | undefined): UseAsyncTask<
|
|
91
|
+
declare function useSignSwapTypedDataWith(signer: Signer | undefined): UseAsyncTask<SwapTypedData, Signature, SignSwapTypedDataError>;
|
|
92
92
|
|
|
93
93
|
export { type SignERC20PermitError, type SignSwapTypedDataError, useERC20Permit, useSendTransaction, useSignSwapTypedDataWith };
|
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-K_-o9pPN.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.
|
|
@@ -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 useSignSwapTypedDataWith(signer: Signer | undefined): UseAsyncTask<
|
|
91
|
+
declare function useSignSwapTypedDataWith(signer: Signer | undefined): UseAsyncTask<SwapTypedData, Signature, SignSwapTypedDataError>;
|
|
92
92
|
|
|
93
93
|
export { type SignERC20PermitError, type SignSwapTypedDataError, useERC20Permit, useSendTransaction, useSignSwapTypedDataWith };
|
package/dist/ethers.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a,c,f}from'./chunk-IESN2WLA.js';import {sendTransaction,waitForTransactionResult,signERC20PermitWith,signSwapTypedDataWith}from'@aave/client/ethers';import {invariant}from'@aave/types';function T(e){return a(
|
|
1
|
+
import {a,c,f}from'./chunk-IESN2WLA.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 useSignSwapTypedDataWith};//# 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","useSignSwapTypedDataWith","typedData","invariant","signSwapTypedDataWith"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/ethers.ts"],"names":["useSendTransaction","signer","useAsyncTask","request","sendTransaction","response","PendingTransaction","waitForTransactionResult","useERC20Permit","permitTypedData","usePermitTypedDataAction","signERC20PermitWith","useSignSwapTypedDataWith","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 }] = 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<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 V({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 qs({children:e,client:s}){return q__default.default.createElement(V,{client:s},e)}var g={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,S]=q.useState(true),[{fetching:y,data:U,error:T},D]=urql.useQuery({query:e,variables:s,pause:t,context:q.useMemo(()=>({batch:u,suspense:r}),[u,r])});if(q.useEffect(()=>{t||y||S(false);},[y,t]),q.useEffect(()=>{if(n<=0||y||t)return;let w=setTimeout(()=>{D({requestPolicy:"network-only",batch:false});},n);return ()=>clearTimeout(w)},[y,D,n,t]),t)return g.Paused(U?a(U.value):void 0,T?client.UnexpectedError.from(T):void 0);if(!r&&c)return g.Loading();if(T){let w=client.UnexpectedError.from(T);if(r)throw w;return g.Failure(w)}return types.invariant(U,"No data returned"),g.Success(a(U.value))}var Q={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(Q.Idle()),a=q.useRef(false),n=q.useCallback(e,s);return [q.useCallback(c=>{types.invariant(!a.current,"Cannot execute a task while another is in progress."),a.current=true;let S;t(y=>(S=y,{called:true,loading:true,data:y.data,error:void 0}));try{let y=n(c);return y.match(U=>{a.current=!1,t(Q.Success(U));},U=>{a.current=!1,t(Q.Failed(U));}),y}catch(y){throw a.current=false,t(types.nonNullable(S)),y}},[n]),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 Xs({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 Zs({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 $s({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 er({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=i();return p(r=>actions.hubs(s,r,{currency:e.currency}),[s,e.currency])}function ir({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 lr(){let e=i();return p(s=>actions.exchangeRate(e,s),[e])}function cr({suspense:e=false,pause:s=false,...r}){let t=i();return o({document:graphql.ExchangeRateQuery,variables:{request:r},suspense:e,pause:s,pollInterval:r.at?0:t.context.environment.exchangeRateInterval})}function Ur(){let e=i();return p(s=>actions.permitTypedData(e,s),[e])}function gr({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 Pr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.AssetPriceHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function xr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.AssetSupplyHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Tr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.AssetBorrowHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function wr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.ProtocolHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Qr({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 Cr(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.reserve(s,r,{currency:e.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function Br({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 Ir(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.reserves(s,r,{currency:e.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function Or({suspense:e=false,pause:s=false,...r}){return o({document:graphql.BorrowApyHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Wr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SupplyApyHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Mr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SpokeQuery,variables:{request:r},suspense:e,pause:s})}function Fr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SpokesQuery,variables:{request:r},suspense:e,pause:s})}function _r({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SpokePositionManagersQuery,variables:{request:r},suspense:e,pause:s})}function Lr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SpokeUserPositionManagersQuery,variables:{request:r},suspense:e,pause:s})}function et({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return o({document:graphql.SwapQuoteQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function st(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.swapQuote(s,r,{currency:e.currency}),[s,e.currency])}function rt({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SwappableTokensQuery,variables:{request:r},suspense:e,pause:s})}function tt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...t}){return o({document:graphql.UserSwapsQuery,variables:{request:t,currency:r},suspense:e,pause:s})}function I(e){return typeof e=="object"&&e!==null&&"deadline"in e&&"value"in e}function at(e){let s=i(),r=q.useCallback(t=>{switch(t.__typename){case "SwapTransactionRequest":return e(t,{cancel:l}).map(R.ensure).andThen(a=>a.wait()).andThen(()=>types.okAsync(t.orderReceipt));case "SwapApprovalRequired":return e(t,{cancel:l}).map(R.ensure).andThen(a=>a.wait()).andThen(()=>e(t.originalTransaction,{cancel:l})).map(R.ensure).andThen(a=>a.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,...a})=>actions.prepareSwap(s,a,{currency:t}).andThen(n=>{switch(n.__typename){case "SwapByTransaction":return actions.swap(s,{transaction:{quoteId:n.quote.quoteId}}).andThen(r);case "SwapByIntent":return e(n.data,{cancel:l}).andThen(u=>(types.invariant(I(u),"Invalid signature"),actions.swap(s,{intent:{quoteId:n.quote.quoteId,signature:u.value}}).andThen(r)));case "SwapByIntentWithApprovalRequired":return e(n,{cancel:l}).map(R.ensure).andThen(u=>u.wait()).andThen(()=>e(n.data,{cancel:l})).map(R.ensure).andThen(u=>u.wait()).andThen(u=>(types.invariant(I(u),"Invalid signature"),actions.swap(s,{intent:{quoteId:n.quote.quoteId,signature:u.value}}).andThen(r)));case "InsufficientBalanceError":return client.errAsync(client.ValidationError.fromGqlNode(n))}}),[s,e,r])}var k=class extends types.ResultAwareError{name="CannotCancelSwapError"};function nt(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(a=>e(a.data)).andThen(a=>(types.invariant(I(a),"Invalid signature"),actions.cancelSwap(s,{intent:{id:r.id,signature:a.value}}))).andThen(a=>a.__typename==="SwapCancelled"?types.okAsync(a):e(a).map(R.ensure).andThen(n=>n.wait()).andThen(()=>actions.swapStatus(s,{id:r.id})).andThen(n=>n.__typename==="SwapCancelled"?types.okAsync(n):client.errAsync(new k("Failed to cancel swap"))));case "SwapCancelled":return types.okAsync(t);default:return client.errAsync(new k("Swap cannot longer be cancelled"))}}),[s,e])}function H(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 St(e){let s=i();return p(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(H(s,r)),[s,e])}function Rt(e){let s=i();return p(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(H(s,r)),[s,e])}function Ut(e){let s=i();return p(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(H(s,r)),[s,e])}function mt(e){let s=i();return p(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(H(s,r)),[s,e])}function bt(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 At(e){let s=i();return p(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 ft(e){let s=i();return p(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,S)=>c.request.user===r.sender&&S.some(y=>y.spoke.chain.chainId===n&&y.spoke.address===u))),...a.map(({chainId:n,spoke:u})=>s.refreshQueryWhere(graphql.UserPositionQuery,(c,S)=>S?.spoke.chain.chainId===n&&S?.spoke.address===u&&S.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(S=>S===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,S)=>S.some(y=>y.chain.chainId===n&&y.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 gt(e){let s=i();return p(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 Pt(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 xt(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.preview(s,r,{currency:e.currency}),[s,e.currency])}function Tt({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 wt({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 ht(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.activities(s,r,{currency:e.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function Ct({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 Bt(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.userSupplies(s,r,{currency:e.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.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,...a}){return o({document:graphql.UserBorrowsQuery,variables:{request:a,currency:r,timeWindow:t},suspense:e,pause:s})}function Ot(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.userBorrows(s,r,{currency:e.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function Wt({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 Dt({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 Nt(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 Vt({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 Mt({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 Ft({suspense:e=false,pause:s=false,...r}){return o({document:graphql.UserRiskPremiumBreakdownQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function _t(e=client.DEFAULT_QUERY_OPTIONS){let s=i();return p(r=>actions.userBalances(s,r,{currency:e.currency}),[s,e.currency])}function Lt({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=qs;exports.CannotCancelSwapError=k;exports.useAaveClient=i;exports.useActivities=wt;exports.useActivitiesAction=ht;exports.useAsset=gr;exports.useAssetBorrowHistory=Tr;exports.useAssetPriceHistory=Pr;exports.useAssetSupplyHistory=xr;exports.useBorrow=Rt;exports.useBorrowApyHistory=Or;exports.useCancelSwap=nt;exports.useChain=ir;exports.useChains=pr;exports.useExchangeRate=cr;exports.useExchangeRateAction=lr;exports.useHub=Xs;exports.useHubAssets=$s;exports.useHubSummaryHistory=er;exports.useHubs=Zs;exports.useHubsAction=sr;exports.useLiquidatePosition=gt;exports.usePermitTypedDataAction=Ur;exports.usePreview=Tt;exports.usePreviewAction=xt;exports.useProtocolHistory=wr;exports.useRenounceSpokeUserPositionManager=bt;exports.useRepay=Ut;exports.useReserve=Qr;exports.useReserveAction=Cr;exports.useReserves=Br;exports.useReservesAction=Ir;exports.useSetSpokeUserPositionManager=Pt;exports.useSetUserSuppliesAsCollateral=ft;exports.useSpoke=Mr;exports.useSpokePositionManagers=_r;exports.useSpokeUserPositionManagers=Lr;exports.useSpokes=Fr;exports.useSupply=St;exports.useSupplyApyHistory=Wr;exports.useSwapQuote=et;exports.useSwapQuoteAction=st;exports.useSwapTokens=at;exports.useSwappableTokens=rt;exports.useUpdateUserPositionConditions=At;exports.useUserBalances=Mt;exports.useUserBalancesAction=_t;exports.useUserBorrows=It;exports.useUserBorrowsAction=Ot;exports.useUserPosition=Vt;exports.useUserPositions=Dt;exports.useUserPositionsAction=Nt;exports.useUserRiskPremiumBreakdown=Ft;exports.useUserSummary=Wt;exports.useUserSummaryHistory=Lt;exports.useUserSupplies=Ct;exports.useUserSuppliesAction=Bt;exports.useUserSwaps=tt;exports.useWithdraw=mt;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 L=W__default.default.createContext(null);function $({children:e,client:s}){return W__default.default.createElement(L.Provider,{value:s},W__default.default.createElement(urql.Provider,{value:s.urql},e))}function p(){let e=W.useContext(L);return types.invariant(e,"Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>"),e}function Fs({children:e,client:s}){return W__default.default.createElement($,{client:s},e)}var x={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:a,selector:t=types.identity,pollInterval:n=0,batch:u=true}){let[c,R]=W.useState(true),[{fetching:y,data:f,error:E},F]=urql.useQuery({query:e,variables:s,pause:a,context:W.useMemo(()=>({batch:u,suspense:r}),[u,r])});if(W.useEffect(()=>{a||y||R(false);},[y,a]),W.useEffect(()=>{if(n<=0||y||a)return;let k=setTimeout(()=>{F({requestPolicy:"network-only",batch:false});},n);return ()=>clearTimeout(k)},[y,F,n,a]),a)return x.Paused(f?t(f.value):void 0,E?client.UnexpectedError.from(E):void 0);if(!r&&c)return x.Loading();if(E){let k=client.UnexpectedError.from(E);if(r)throw k;return x.Failure(k)}return types.invariant(f,"No data returned"),x.Success(t(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,a]=W.useState(O.Idle()),t=W.useRef(false),n=W.useCallback(e,s);return [W.useCallback(c=>{types.invariant(!t.current,"Cannot execute a task while another is in progress."),t.current=true;let R;a(y=>(R=y,{called:true,loading:true,data:y.data,error:void 0}));try{let y=n(c);return y.match(f=>{t.current=!1,a(O.Success(f));},f=>{t.current=!1,a(O.Failed(f));}),y}catch(y){throw t.current=false,a(types.nonNullable(R)),y}},[n]),r]}var l=e=>core.CancelError.from(e).asResultAsync(),g=class e{constructor(s){this.wait=s;}static ensure(s){return types.invariant(s instanceof e,"Expected PendingTransaction"),s}};function ir({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:a=client.DEFAULT_QUERY_OPTIONS.timeWindow,...t}){return o({document:graphql.HubQuery,variables:{request:t,currency:r,timeWindow:a},suspense:e,pause:s})}function lr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:a=client.DEFAULT_QUERY_OPTIONS.timeWindow,...t}){return o({document:graphql.HubsQuery,variables:{request:t,currency:r,timeWindow:a},suspense:e,pause:s})}function cr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:a=client.DEFAULT_QUERY_OPTIONS.timeWindow,...t}){return o({document:graphql.HubAssetsQuery,variables:{request:t,currency:r,timeWindow:a},suspense:e,pause:s})}function yr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.HubSummaryHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function dr(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.hubs(s,r,{currency:e.currency}),[s,e.currency])}function br({suspense:e=false,pause:s=false,...r}){return o({document:graphql.ChainQuery,variables:{request:r},suspense:e,pause:s})}function Ar({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 Pr(){let e=p();return i(s=>actions.exchangeRate(e,s),[e])}function wr({suspense:e=false,pause:s=false,...r}){let a=p();return o({document:graphql.ExchangeRateQuery,variables:{request:r},suspense:e,pause:s,pollInterval:r.at?0:a.context.environment.exchangeRateInterval})}function kr(){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:a=client.DEFAULT_QUERY_OPTIONS.timeWindow,...t}){return o({document:graphql.AssetQuery,variables:{request:t,currency:r,timeWindow:a},suspense:e,pause:s})}function Cr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.AssetPriceHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Ir({suspense:e=false,pause:s=false,...r}){return o({document:graphql.AssetSupplyHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Wr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.AssetBorrowHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Or({suspense:e=false,pause:s=false,...r}){return o({document:graphql.ProtocolHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Lr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:a=client.DEFAULT_QUERY_OPTIONS.timeWindow,...t}){return o({document:graphql.ReserveQuery,variables:{request:t,currency:r,timeWindow:a},suspense:e,pause:s})}function $r(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.reserve(s,r,{currency:e.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function Gr({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:a=client.DEFAULT_QUERY_OPTIONS.timeWindow,selector:t,...n}){return o({document:graphql.ReservesQuery,variables:{request:n,currency:r,timeWindow:a},suspense:e,pause:s,selector:t||void 0})}function Yr(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.reserves(s,r,{currency:e.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function jr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.BorrowApyHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Kr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SupplyApyHistoryQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function Zr({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SpokeQuery,variables:{request:r},suspense:e,pause:s})}function et({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SpokesQuery,variables:{request:r},suspense:e,pause:s})}function st({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SpokePositionManagersQuery,variables:{request:r},suspense:e,pause:s})}function rt({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SpokeUserPositionManagersQuery,variables:{request:r},suspense:e,pause:s})}function dt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a}){return o({document:graphql.SwapQuoteQuery,variables:{request:a,currency:r},suspense:e,pause:s})}function St(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.swapQuote(s,r,{currency:e.currency}),[s,e.currency])}function Rt({suspense:e=false,pause:s=false,...r}){return o({document:graphql.SwappableTokensQuery,variables:{request:r},suspense:e,pause:s})}function Ut({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a}){return o({document:graphql.UserSwapsQuery,variables:{request:a,currency:r},suspense:e,pause:s})}function gt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a}){return o({document:graphql.SupplySwapQuoteQuery,variables:{request:a,currency:r},selector:t=>t.quote,suspense:e,pause:s})}function ft({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a}){return o({document:graphql.BorrowSwapQuoteQuery,variables:{request:a,currency:r},selector:t=>t.quote,suspense:e,pause:s})}function H(e){return {with:s=>e.approvals.reduce((r,a)=>r.andThen(t=>s(a,{cancel:l}).map(n=>{switch(a.__typename){case "PositionSwapAdapterContractApproval":t.adapterContractSignature=types.isSignature(n)?n:null;break;case "PositionSwapPositionManagerApproval":t.positionManagerSignature=types.isSignature(n)?n:null;break}return t})),types.okAsync({quoteId:e.quote.quoteId,adapterContractSignature:null,positionManagerSignature:null}))}}function B(e,s){return actions.swap(e,{intent:s}).andThen(r=>{switch(r.__typename){case "SwapReceipt":return types.okAsync(r);case "InsufficientBalanceError":return client.ValidationError.fromGqlNode(r).asResultAsync();default:return core.UnexpectedError.from(r).asResultAsync()}})}function mt(e){let s=p();return i(({currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a})=>actions.supplySwapQuote(s,a,{currency:r}).andThen(t=>(types.invariant(t.__typename==="PositionSwapByIntentApprovalsRequired",`Unsupported swap plan: ${t.__typename}. Upgrade to a newer version of the @aave/react package.`),H(t).with(e).andThen(n=>actions.preparePositionSwap(s,n,{currency:r}).map(u=>(types.invariant(u.__typename==="SwapByIntent",`Unsupported swap plan: ${u.__typename}. Upgrade to a newer version of the @aave/react package.`),u))).andThen(n=>e(n,{cancel:l}).map(u=>(types.invariant(types.isSignature(u),"Expected signature, got an object instead."),u))).andThen(n=>B(s,{quoteId:t.quote.quoteId,signature:n})))),[s,e])}function bt(e){let s=p();return i(({currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a})=>actions.borrowSwapQuote(s,a,{currency:r}).andThen(t=>(types.invariant(t.__typename==="PositionSwapByIntentApprovalsRequired",`Unsupported swap plan: ${t.__typename}. Upgrade to a newer version of the @aave/react package.`),H(t).with(e).andThen(n=>actions.preparePositionSwap(s,n,{currency:r}).map(u=>(types.invariant(u.__typename==="SwapByIntent",`Unsupported swap plan: ${u.__typename}. Upgrade to a newer version of the @aave/react package.`),u))).andThen(n=>e(n,{cancel:l}).map(u=>(types.invariant(types.isSignature(u),"Expected signature, got an object instead."),u))).andThen(n=>B(s,{quoteId:t.quote.quoteId,signature:n})))),[s,e])}function At({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a}){return o({document:graphql.RepayWithSupplyQuoteQuery,variables:{request:a,currency:r},selector:t=>t.quote,suspense:e,pause:s})}function Pt(e){let s=p();return i(({currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a})=>actions.repayWithSupplyQuote(s,a,{currency:r}).andThen(t=>(types.invariant(t.__typename==="PositionSwapByIntentApprovalsRequired",`Unsupported swap plan: ${t.__typename}. Upgrade to a newer version of the @aave/react package.`),H(t).with(e).andThen(n=>actions.preparePositionSwap(s,n,{currency:r}).map(u=>(types.invariant(u.__typename==="SwapByIntent",`Unsupported swap plan: ${u.__typename}. Upgrade to a newer version of the @aave/react package.`),u))).andThen(n=>e(n,{cancel:l}).map(u=>(types.invariant(types.isSignature(u),"Expected signature, got an object instead."),u))).andThen(n=>B(s,{quoteId:t.quote.quoteId,signature:n})))),[s,e])}function wt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a}){return o({document:graphql.WithdrawSwapQuoteQuery,variables:{request:a,currency:r},selector:t=>(types.invariant(t.__typename==="PositionSwapByIntentApprovalsRequired",`Unsupported swap plan: ${t.__typename}. Upgrade to a newer version of the @aave/react package.`),t.quote),suspense:e,pause:s})}function xt(e){let s=p();return i(({currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a})=>actions.withdrawSwapQuote(s,a,{currency:r}).andThen(t=>(types.invariant(t.__typename==="PositionSwapByIntentApprovalsRequired",`Unsupported swap plan: ${t.__typename}. Upgrade to a newer version of the @aave/react package.`),H(t).with(e).andThen(n=>actions.preparePositionSwap(s,n,{currency:r}).map(u=>(types.invariant(u.__typename==="SwapByIntent",`Unsupported swap plan: ${u.__typename}. Upgrade to a newer version of the @aave/react package.`),u))).andThen(n=>e(n,{cancel:l}).map(u=>(types.invariant(types.isSignature(u),"Expected signature, got an object instead."),u))).andThen(n=>B(s,{quoteId:t.quote.quoteId,signature:n})))),[s,e])}function _(e){return typeof e=="object"&&e!==null&&"deadline"in e&&"value"in e}function Tt(e){let s=p(),r=W.useCallback(a=>{switch(a.__typename){case "SwapTransactionRequest":return e(a,{cancel:l}).map(g.ensure).andThen(t=>t.wait()).andThen(()=>types.okAsync(a.orderReceipt));case "SwapApprovalRequired":return e(a,{cancel:l}).map(g.ensure).andThen(t=>t.wait()).andThen(()=>e(a.originalTransaction,{cancel:l})).map(g.ensure).andThen(t=>t.wait()).andThen(()=>types.okAsync(a.originalTransaction.orderReceipt));case "InsufficientBalanceError":return client.ValidationError.fromGqlNode(a).asResultAsync();case "SwapReceipt":return types.okAsync(a);default:return new core.UnexpectedError(`Unsupported swap plan: ${a.__typename}. Upgrade to a newer version of the @aave/react package.`).asResultAsync()}},[e]);return i(({currency:a=client.DEFAULT_QUERY_OPTIONS.currency,...t})=>actions.prepareTokenSwap(s,t,{currency:a}).andThen(n=>{switch(n.__typename){case "SwapByTransaction":return actions.swap(s,{transaction:{quoteId:n.quote.quoteId}}).andThen(r);case "SwapByIntent":return e(n.data,{cancel:l}).andThen(u=>(types.invariant(_(u),"Invalid signature"),actions.swap(s,{intent:{quoteId:n.quote.quoteId,signature:u.value}}).andThen(r)));case "SwapByIntentWithApprovalRequired":return e(n,{cancel:l}).map(g.ensure).andThen(u=>u.wait()).andThen(()=>e(n.data,{cancel:l})).map(g.ensure).andThen(u=>u.wait()).andThen(u=>(types.invariant(_(u),"Invalid signature"),actions.swap(s,{intent:{quoteId:n.quote.quoteId,signature:u.value}}).andThen(r)));case "InsufficientBalanceError":return client.ValidationError.fromGqlNode(n).asResultAsync();default:return new core.UnexpectedError(`Unsupported swap plan: ${n.__typename}. Upgrade to a newer version of the @aave/react package.`).asResultAsync()}}),[s,e,r])}var q=class extends types.ResultAwareError{name="CannotCancelSwapError"};function ht(e){let s=p();return i(r=>actions.swapStatus(s,{id:r.id}).andThen(a=>{switch(a.__typename){case "SwapOpen":case "SwapPendingSignature":return actions.prepareSwapCancel(s,r).andThen(t=>e(t.data)).andThen(t=>(types.invariant(_(t),"Invalid signature"),actions.cancelSwap(s,{intent:{id:r.id,signature:t.value}}))).andThen(t=>t.__typename==="SwapCancelled"?types.okAsync(t):e(t).map(g.ensure).andThen(n=>n.wait()).andThen(()=>actions.swapStatus(s,{id:r.id})).andThen(n=>n.__typename==="SwapCancelled"?types.okAsync(n):new q("Failed to cancel swap").asResultAsync()));case "SwapCancelled":return types.okAsync(a);default:return new q("Swap cannot longer be cancelled").asResultAsync()}}),[s,e])}function I(e,s){let{chainId:r,spoke:a}=graphql.decodeReserveId(s.reserve);return async()=>Promise.all([await e.refreshQueryWhere(graphql.UserPositionsQuery,(t,n)=>t.request.user===s.sender&&n.some(u=>u.spoke.chain.chainId===r&&u.spoke.address===a)),await e.refreshQueryWhere(graphql.UserPositionQuery,(t,n)=>n?.spoke.chain.chainId===r&&n?.spoke.address===a&&n.user===s.sender),await e.refreshQueryWhere(graphql.UserSummaryQuery,t=>t.request.user===s.sender&&graphql.isSpokeInputVariant(t.request.filter)?t.request.filter.spoke.chainId===r&&t.request.filter.spoke.address===a:graphql.isChainIdsVariant(t.request.filter)?t.request.filter.chainIds.some(n=>n===r):false),await e.refreshQueryWhere(graphql.ReservesQuery,(t,n)=>n.some(u=>u.id===s.reserve)),await e.refreshQueryWhere(graphql.SpokesQuery,(t,n)=>n.some(u=>u.chain.chainId===r&&u.address===a)),await e.refreshQueryWhere(graphql.UserBalancesQuery,t=>t.request.user===s.sender),await e.refreshQueryWhere(graphql.HubsQuery,t=>graphql.isChainIdsVariant(t.request)&&t.request.chainIds.some(n=>n===r))])}function It(e){let s=p();return i(r=>actions.supply(s,r).andThen(a=>{switch(a.__typename){case "TransactionRequest":return e(a,{cancel:l}).andThen(t=>t.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(a,{cancel:l}).andThen(t=>t.wait()).andThen(()=>e(a.originalTransaction,{cancel:l})).andThen(t=>t.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(a))}}).andTee(I(s,r)),[s,e])}function Wt(e){let s=p();return i(r=>actions.borrow(s,r).andThen(a=>{switch(a.__typename){case "TransactionRequest":return e(a,{cancel:l}).andThen(t=>t.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(a,{cancel:l}).andThen(t=>t.wait()).andThen(()=>e(a.originalTransaction,{cancel:l})).andThen(t=>t.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(a))}}).andTee(I(s,r)),[s,e])}function Ot(e){let s=p();return i(r=>actions.repay(s,r).andThen(a=>{switch(a.__typename){case "TransactionRequest":return e(a,{cancel:l}).andThen(t=>t.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(a,{cancel:l}).andThen(t=>t.wait()).andThen(()=>e(a.originalTransaction,{cancel:l})).andThen(t=>t.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(a))}}).andTee(I(s,r)),[s,e])}function Nt(e){let s=p();return i(r=>actions.withdraw(s,r).andThen(a=>{switch(a.__typename){case "TransactionRequest":return e(a,{cancel:l}).andThen(t=>t.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(a,{cancel:l}).andThen(t=>t.wait()).andThen(()=>e(a.originalTransaction,{cancel:l})).andThen(t=>t.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(a))}}).andTee(I(s,r)),[s,e])}function Dt(e){let s=p();return i(r=>actions.renounceSpokeUserPositionManager(s,r).andThen(a=>e(a,{cancel:l})).andThen(a=>a.wait()).andThen(s.waitForTransaction).andTee(()=>s.refreshQueryWhere(graphql.SpokePositionManagersQuery,a=>a.request.spoke===r.spoke)),[s,e])}function _t(e){let s=p();return i(r=>actions.updateUserPositionConditions(s,r).andThen(a=>e(a,{cancel:l})).andThen(a=>a.wait()).andThen(s.waitForTransaction).andTee(async()=>{let{userPositionId:a}=r;return Promise.all([s.refreshQueryWhere(graphql.UserPositionsQuery,(t,n)=>n.some(u=>u.id===a)),s.refreshQueryWhere(graphql.UserPositionQuery,(t,n)=>n?.id===a)])}),[s,e])}function Vt(e){let s=p();return i(r=>{let a=r.changes.map(n=>n.reserve),t=a.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([...t.map(({chainId:n,spoke:u})=>s.refreshQueryWhere(graphql.UserPositionsQuery,(c,R)=>c.request.user===r.sender&&R.some(y=>y.spoke.chain.chainId===n&&y.spoke.address===u))),...t.map(({chainId:n,spoke:u})=>s.refreshQueryWhere(graphql.UserPositionQuery,(c,R)=>R?.spoke.chain.chainId===n&&R?.spoke.address===u&&R.user===r.sender)),...t.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=>a.includes(c.id))),...t.map(({chainId:n,spoke:u})=>s.refreshQueryWhere(graphql.SpokesQuery,(c,R)=>R.some(y=>y.chain.chainId===n&&y.address===u))),...t.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))),...t.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 Mt(e){let s=p();return i(r=>actions.liquidatePosition(s,r).andThen(a=>{switch(a.__typename){case "TransactionRequest":return e(a,{cancel:l}).andThen(t=>t.wait()).andThen(s.waitForTransaction);case "Erc20ApprovalRequired":case "PreContractActionRequired":return e(a,{cancel:l}).andThen(t=>t.wait()).andThen(()=>e(a.originalTransaction,{cancel:l})).andThen(t=>t.wait()).andThen(s.waitForTransaction);case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(a))}}),[s,e])}function Ft(e){let s=p();return i(r=>actions.setSpokeUserPositionManager(s,r).andThen(a=>e(a,{cancel:l})).andThen(a=>a.wait()).andThen(s.waitForTransaction).andTee(()=>s.refreshQueryWhere(graphql.SpokePositionManagersQuery,a=>a.request.spoke===r.spoke)),[s,e])}function Lt(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.preview(s,r,{currency:e.currency}),[s,e.currency])}function $t({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a}){return o({document:graphql.PreviewQuery,variables:{request:a,currency:r},suspense:e,pause:s})}function Gt({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:a=client.DEFAULT_QUERY_OPTIONS.timeWindow,...t}){return o({document:graphql.ActivitiesQuery,variables:{request:t,currency:r,timeWindow:a},suspense:e,pause:s})}function Yt(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.activities(s,r,{currency:e.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function ea({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:a=client.DEFAULT_QUERY_OPTIONS.timeWindow,...t}){return o({document:graphql.UserSuppliesQuery,variables:{request:t,currency:r,timeWindow:a},suspense:e,pause:s})}function sa(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.userSupplies(s,r,{currency:e.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function ra({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:a=client.DEFAULT_QUERY_OPTIONS.timeWindow,...t}){return o({document:graphql.UserBorrowsQuery,variables:{request:t,currency:r,timeWindow:a},suspense:e,pause:s})}function ta(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.userBorrows(s,r,{currency:e.currency,timeWindow:e.timeWindow??client.DEFAULT_QUERY_OPTIONS.timeWindow}),[s,e.currency,e.timeWindow])}function aa({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:a=client.DEFAULT_QUERY_OPTIONS.timeWindow,...t}){return o({document:graphql.UserSummaryQuery,variables:{request:t,currency:r,timeWindow:a},suspense:e,pause:s})}function na({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:a=client.DEFAULT_QUERY_OPTIONS.timeWindow,...t}){return o({document:graphql.UserPositionsQuery,variables:{request:t,currency:r,timeWindow:a},suspense:e,pause:s})}function ua(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 oa({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,timeWindow:a=client.DEFAULT_QUERY_OPTIONS.timeWindow,...t}){return o({document:graphql.UserPositionQuery,variables:{request:t,currency:r,timeWindow:a},suspense:e,pause:s})}function pa({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a}){return o({document:graphql.UserBalancesQuery,variables:{request:a,currency:r},suspense:e,pause:s})}function ia({suspense:e=false,pause:s=false,...r}){return o({document:graphql.UserRiskPremiumBreakdownQuery,variables:{request:r},suspense:e,pause:s,batch:false})}function la(e=client.DEFAULT_QUERY_OPTIONS){let s=p();return i(r=>actions.userBalances(s,r,{currency:e.currency}),[s,e.currency])}function ca({suspense:e=false,pause:s=false,currency:r=client.DEFAULT_QUERY_OPTIONS.currency,...a}){return o({document:graphql.UserSummaryHistoryQuery,variables:{request:a,currency:r},suspense:e,pause:s,batch:false})}exports.AaveProvider=Fs;exports.CannotCancelSwapError=q;exports.useAaveClient=p;exports.useActivities=Gt;exports.useActivitiesAction=Yt;exports.useAsset=Br;exports.useAssetBorrowHistory=Wr;exports.useAssetPriceHistory=Cr;exports.useAssetSupplyHistory=Ir;exports.useBorrow=Wt;exports.useBorrowApyHistory=jr;exports.useBorrowSwap=bt;exports.useBorrowSwapQuote=ft;exports.useCancelSwap=ht;exports.useChain=br;exports.useChains=Ar;exports.useExchangeRate=wr;exports.useExchangeRateAction=Pr;exports.useHub=ir;exports.useHubAssets=cr;exports.useHubSummaryHistory=yr;exports.useHubs=lr;exports.useHubsAction=dr;exports.useLiquidatePosition=Mt;exports.usePermitTypedDataAction=kr;exports.usePreview=$t;exports.usePreviewAction=Lt;exports.useProtocolHistory=Or;exports.useRenounceSpokeUserPositionManager=Dt;exports.useRepay=Ot;exports.useRepayWithSupply=Pt;exports.useRepayWithSupplyQuote=At;exports.useReserve=Lr;exports.useReserveAction=$r;exports.useReserves=Gr;exports.useReservesAction=Yr;exports.useSetSpokeUserPositionManager=Ft;exports.useSetUserSuppliesAsCollateral=Vt;exports.useSpoke=Zr;exports.useSpokePositionManagers=st;exports.useSpokeUserPositionManagers=rt;exports.useSpokes=et;exports.useSupply=It;exports.useSupplyApyHistory=Kr;exports.useSupplySwap=mt;exports.useSupplySwapQuote=gt;exports.useSwapQuote=dt;exports.useSwapQuoteAction=St;exports.useSwappableTokens=Rt;exports.useTokenSwap=Tt;exports.useUpdateUserPositionConditions=_t;exports.useUserBalances=pa;exports.useUserBalancesAction=la;exports.useUserBorrows=ra;exports.useUserBorrowsAction=ta;exports.useUserPosition=oa;exports.useUserPositions=na;exports.useUserPositionsAction=ua;exports.useUserRiskPremiumBreakdown=ia;exports.useUserSummary=aa;exports.useUserSummaryHistory=ca;exports.useUserSupplies=ea;exports.useUserSuppliesAction=sa;exports.useUserSwaps=Ut;exports.useWithdraw=Nt;exports.useWithdrawSwap=xt;exports.useWithdrawSwapQuote=wt;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
|