@aave/react 0.7.1 → 4.0.0-next.1

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 CHANGED
@@ -1,62 +1,76 @@
1
1
  # `@aave/react`
2
2
 
3
- The official React bindings for the Aave Protocol.
3
+ The official React hooks for the Aave Protocol v4.
4
4
 
5
5
  ---
6
6
 
7
- ## Usage
7
+ `@aave/react` provides a collection of React hooks for building decentralized applications on top of the Aave Protocol v4.
8
+
9
+ ## Install SDK
10
+
11
+ First, install the AaveKit React package using your package manager of choice.
12
+
13
+ ```bash
14
+ pnpm add @aave/react@v4
15
+
16
+ // OR
17
+
18
+ yarn add @aave/react@v4
8
19
 
9
- ### Setup
20
+ // OR
10
21
 
11
- ```typescript
22
+ npm install @aave/react@v4
23
+ ```
24
+
25
+ ## Setup Client
26
+
27
+ Next, create an `AaveClient` instance that will be used to interact with the protocol.
28
+
29
+ ```ts
12
30
  // client.ts
13
- import { AaveClient } from '@aave/react';
31
+ import { AaveClient } from "@aave/react";
14
32
 
15
33
  export const client = AaveClient.create();
16
34
  ```
17
35
 
36
+ ## Setup Provider
37
+
38
+ Finally, wrap your app with the `<AaveProvider>` component and pass the client instance.
39
+
18
40
  ```tsx
19
41
  // App.tsx
20
- import { AaveProvider } from '@aave/react';
21
- import { client } from './client';
42
+ import { AaveProvider } from "@aave/react";
43
+
44
+ import { client } from "./client";
22
45
 
23
46
  export function App() {
24
47
  return (
25
48
  <AaveProvider client={client}>
26
- <MarketData />
27
- <UserPositions />
49
+ {/* Your application components */}
28
50
  </AaveProvider>
29
51
  );
30
52
  }
31
53
  ```
32
54
 
33
- ### Query Data
55
+ ## Usage
56
+
57
+ That's it—you can now start using AaveKit React hooks.
34
58
 
35
59
  ```tsx
36
- import { evmAddress, useAaveChains, useUserSupplies } from '@aave/react';
60
+ function ChainsList() {
61
+ const { data, error, loading } = useAaveChains();
62
+
63
+
64
+ if (loading) return <div>Loading…</div>;
65
+
66
+ if (error) return <div>Error: {error.message}</div>;
37
67
 
38
- function MarketData() {
39
- const { data: chains, loading } = useAaveChains();
40
-
41
- if (loading) return <div>Loading...</div>;
42
-
43
68
  return (
44
69
  <div>
45
- {chains?.map(chain => (
70
+ {chains.map((chain) => (
46
71
  <div key={chain.id}>{chain.name}</div>
47
72
  ))}
48
73
  </div>
49
74
  );
50
75
  }
51
-
52
- function UserPositions() {
53
- const { data: supplies, loading } = useUserSupplies({
54
- markets: [evmAddress('0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2')],
55
- user: evmAddress('0x742d35cc6e5c4ce3b69a2a8c7c8e5f7e9a0b1234'),
56
- });
57
-
58
- if (loading) return <div>Loading...</div>;
59
-
60
- return <div>Supplies: {supplies?.length || 0}</div>;
61
- }
62
76
  ```
package/package.json CHANGED
@@ -1,11 +1,21 @@
1
1
  {
2
2
  "name": "@aave/react",
3
- "version": "0.7.1",
3
+ "version": "4.0.0-next.1",
4
4
  "description": "The official React bindings for the Aave Protocol",
5
+ "keywords": [
6
+ "aave",
7
+ "aave-sdk",
8
+ "aave-kit",
9
+ "aave-protocol",
10
+ "react",
11
+ "hooks",
12
+ "defi",
13
+ "de-fi"
14
+ ],
5
15
  "repository": {
6
16
  "directory": "packages/react",
7
17
  "type": "git",
8
- "url": "git://github.com/aave/aave-sdk.git"
18
+ "url": "git://github.com/aave/aave-v4-sdk.git"
9
19
  },
10
20
  "type": "module",
11
21
  "main": "dist/index.cjs",
@@ -16,6 +26,10 @@
16
26
  "import": "./dist/index.js",
17
27
  "require": "./dist/index.cjs"
18
28
  },
29
+ "./utils": {
30
+ "import": "./dist/utils.js",
31
+ "require": "./dist/utils.cjs"
32
+ },
19
33
  "./ethers": {
20
34
  "import": "./dist/ethers.js",
21
35
  "require": "./dist/ethers.cjs"
@@ -29,12 +43,15 @@
29
43
  "require": "./dist/thirdweb.cjs"
30
44
  },
31
45
  "./viem": {
32
- "import": "./dist/viem.js",
33
- "require": "./dist/viem.cjs"
46
+ "import": "./dist/viem/index.js",
47
+ "require": "./dist/viem/index.cjs"
34
48
  }
35
49
  },
36
50
  "typesVersions": {
37
51
  "*": {
52
+ "utils": [
53
+ "./dist/utils.d.ts"
54
+ ],
38
55
  "ethers": [
39
56
  "./dist/ethers.d.ts"
40
57
  ],
@@ -45,7 +62,7 @@
45
62
  "./dist/thirdweb.d.ts"
46
63
  ],
47
64
  "viem": [
48
- "./dist/viem.d.ts"
65
+ "./dist/viem/index.d.ts"
49
66
  ]
50
67
  }
51
68
  },
@@ -54,10 +71,11 @@
54
71
  ],
55
72
  "sideEffects": false,
56
73
  "dependencies": {
57
- "urql": "^4.2.2",
58
- "@aave/graphql": "0.8.0",
59
- "@aave/client": "0.8.0",
60
- "@aave/types": "0.2.0"
74
+ "urql": "^5.0.1",
75
+ "@aave/client": "4.0.0-next.1",
76
+ "@aave/core": "1.0.0-next.0",
77
+ "@aave/graphql": "1.0.0-next.1",
78
+ "@aave/types": "1.0.0-next.0"
61
79
  },
62
80
  "devDependencies": {
63
81
  "@privy-io/react-auth": "^2.20.0",
@@ -65,31 +83,35 @@
65
83
  "@testing-library/react": "^16.3.0",
66
84
  "@types/react": "^19.1.8",
67
85
  "ethers": "^6.14.4",
68
- "happy-dom": "^18.0.1",
86
+ "happy-dom": "^20.0.10",
69
87
  "msw": "^2.10.5",
70
88
  "react": "^19.1.0",
71
89
  "react-dom": "^19.1.0",
72
90
  "thirdweb": "^5.105.25",
73
91
  "tsup": "^8.5.0",
74
92
  "typescript": "^5.9.2",
75
- "viem": "^2.31.6"
93
+ "viem": "^2.37.5"
76
94
  },
77
95
  "peerDependencies": {
78
96
  "@privy-io/react-auth": "^2.20.0",
79
97
  "@types/react": "^19.1.8",
80
98
  "ethers": "^6.14.4",
81
99
  "react": "^19.1.0",
100
+ "react-dom": "^19.1.0",
82
101
  "thirdweb": "^5.105.25",
83
102
  "viem": "^2.31.6"
84
103
  },
85
104
  "peerDependenciesMeta": {
105
+ "@privy-io/react-auth": {
106
+ "optional": true
107
+ },
86
108
  "@types/react": {
87
109
  "optional": true
88
110
  },
89
111
  "ethers": {
90
112
  "optional": true
91
113
  },
92
- "@privy-io/react-auth": {
114
+ "react-dom": {
93
115
  "optional": true
94
116
  },
95
117
  "viem": {
@@ -97,6 +119,9 @@
97
119
  }
98
120
  },
99
121
  "license": "MIT",
122
+ "publishConfig": {
123
+ "access": "restricted"
124
+ },
100
125
  "scripts": {
101
126
  "build": "tsup"
102
127
  }
@@ -1,2 +0,0 @@
1
- import {invariant}from'@aave/types';import n,{useContext,useState,useCallback}from'react';import {Provider}from'urql';var l=n.createContext(null);function x({children:e,client:r}){return n.createElement(l.Provider,{value:r},n.createElement(Provider,{value:r.urql},e))}function E(){let e=useContext(l);return invariant(e,"Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>"),e}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 S(e){let[r,a]=useState(o.Idle());return [useCallback(u=>{invariant(!r.loading,"Cannot execute a task while another is in progress."),a(({data:t})=>({called:true,loading:true,data:t,error:void 0}));let s=e(u);return s.match(t=>a(o.Success(t)),t=>a(o.Failed(t))),s},[e,r]),r]}export{x as a,E as b,S as c};//# sourceMappingURL=chunk-SECI6TSB.js.map
2
- //# sourceMappingURL=chunk-SECI6TSB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/context.tsx","../src/helpers/tasks.ts"],"names":["AaveContext","React","AaveContextProvider","children","client","UrqlProvider","useAaveClient","useContext","invariant","AsyncTaskState","data","error","useAsyncTask","handler","state","setState","useState","useCallback","input","result","value"],"mappings":"sHAKA,IAAMA,EAAcC,CAAAA,CAAM,aAAA,CAAiC,IAAI,CAAA,CAaxD,SAASC,CAAAA,CAAoB,CAClC,QAAA,CAAAC,CAAAA,CACA,OAAAC,CACF,CAAA,CAA6B,CAC3B,OACEH,CAAAA,CAAA,cAACD,CAAAA,CAAY,QAAA,CAAZ,CAAqB,KAAA,CAAOI,CAAAA,CAAAA,CAC3BH,EAAA,aAAA,CAACI,QAAAA,CAAA,CAAa,KAAA,CAAOD,CAAAA,CAAO,MAAOD,CAAS,CAC9C,CAEJ,CAKO,SAASG,CAAAA,EAA4B,CAC1C,IAAMF,CAAAA,CAASG,WAAWP,CAAW,CAAA,CAErC,OAAAQ,SAAAA,CACEJ,CAAAA,CACA,kFACF,CAAA,CAEOA,CACT,CCoBA,IAAMK,CAAAA,CAAiB,CACrB,IAAA,CAAM,KAAqD,CACzD,MAAA,CAAQ,KAAA,CACR,QAAS,KAAA,CACT,IAAA,CAAM,OACN,KAAA,CAAO,MACT,GACA,OAAA,CAAyBC,CAAAA,GAAiD,CACxE,MAAA,CAAQ,IAAA,CACR,QAAS,IAAA,CACT,IAAA,CAAAA,CAAAA,CACA,KAAA,CAAO,MACT,CAAA,CAAA,CACA,QAAyBA,CAAAA,GAAgD,CACvE,OAAQ,IAAA,CACR,OAAA,CAAS,MACT,IAAA,CAAAA,CAAAA,CACA,MAAO,MACT,CAAA,CAAA,CACA,OAAwBC,CAAAA,GAAkD,CACxE,OAAQ,IAAA,CACR,OAAA,CAAS,MACT,IAAA,CAAM,MAAA,CACN,KAAA,CAAAA,CACF,CAAA,CACF,CAAA,CA2CO,SAASC,CAAAA,CAKdC,CAAAA,CAA2E,CAC3E,GAAM,CAACC,EAAOC,CAAQ,CAAA,CAAIC,SAASP,CAAAA,CAAe,IAAA,EAAsB,CAAA,CA8BxE,OAAO,CA5BSQ,WAAAA,CACbC,CAAAA,EAAkB,CACjBV,SAAAA,CACE,CAACM,CAAAA,CAAM,OAAA,CACP,qDACF,CAAA,CAEAC,EAAS,CAAC,CAAE,KAAAL,CAAK,CAAA,IACR,CACL,MAAA,CAAQ,IAAA,CACR,QAAS,IAAA,CACT,IAAA,CAAAA,EACA,KAAA,CAAO,MACT,EACD,CAAA,CAED,IAAMS,EAASN,CAAAA,CAAQK,CAAK,CAAA,CAE5B,OAAAC,CAAAA,CAAO,KAAA,CACJC,GAAUL,CAAAA,CAASN,CAAAA,CAAe,QAAQW,CAAK,CAAC,EAChDT,CAAAA,EAAUI,CAAAA,CAASN,EAAe,MAAA,CAAOE,CAAK,CAAC,CAClD,CAAA,CAEOQ,CACT,CAAA,CACA,CAACN,EAASC,CAAK,CACjB,CAAA,CAEiBA,CAAK,CACxB","file":"chunk-SECI6TSB.js","sourcesContent":["import type { AaveClient } from '@aave/client';\nimport { invariant } from '@aave/types';\nimport React, { type ReactNode, useContext } from 'react';\nimport { Provider as UrqlProvider } from 'urql';\n\nconst AaveContext = React.createContext<AaveClient | null>(null);\n\n/**\n * @internal\n */\nexport type AaveContextProviderProps = {\n children: ReactNode;\n client: AaveClient;\n};\n\n/**\n * @internal\n */\nexport function AaveContextProvider({\n children,\n client,\n}: AaveContextProviderProps) {\n return (\n <AaveContext.Provider value={client}>\n <UrqlProvider value={client.urql}>{children}</UrqlProvider>\n </AaveContext.Provider>\n );\n}\n\n/**\n * Retrieve the injected {@link AaveClient} from the context.\n */\nexport function useAaveClient(): AaveClient {\n const client = useContext(AaveContext);\n\n invariant(\n client,\n 'Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>',\n );\n\n return client;\n}\n","import { invariant, type ResultAsync } from '@aave/types';\nimport { useCallback, useState } from 'react';\n\n/**\n * An async task is a function that can be executed multiple times and that can be in a pending state.\n *\n * @internal\n */\nexport type AsyncTask<TInput, TResult extends ResultAsync<unknown, unknown>> = (\n input: TInput,\n) => TResult;\n\n/**\n * The initial state of a async task.\n */\nexport type AsyncTaskIdle = {\n called: boolean;\n loading: false;\n data: undefined;\n error: undefined;\n};\n\n/**\n * The state of a async task during the loading.\n */\nexport type AsyncTaskLoading<TData> = {\n called: true;\n loading: true;\n data: TData | undefined;\n error: undefined;\n};\n\n/**\n * The state of a async task after a successful call.\n */\nexport type AsyncTaskSuccess<TData> = {\n called: true;\n loading: false;\n data: TData;\n error: undefined;\n};\n\n/**\n * The state of a async task after a failed call.\n */\nexport type AsyncTaskError<TError> = {\n called: true;\n loading: false;\n data: undefined;\n error: TError;\n};\n\n/**\n * The possible statuses of a async task.\n */\nexport type AsyncTaskState<TData, TError> =\n | AsyncTaskIdle\n | AsyncTaskLoading<TData>\n | AsyncTaskSuccess<TData>\n | AsyncTaskError<TError>;\n\nconst AsyncTaskState = {\n Idle: <TData, TError>(): AsyncTaskState<TData, TError> => ({\n called: false,\n loading: false,\n data: undefined,\n error: undefined,\n }),\n Loading: <TData, TError>(data?: TData): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: true,\n data,\n error: undefined,\n }),\n Success: <TData, TError>(data: TData): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: false,\n data,\n error: undefined,\n }),\n Failed: <TData, TError>(error: TError): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: false,\n data: undefined,\n error,\n }),\n};\n\n/**\n * A async task React Hook is a lightweight wrapper for an asynchronous function.\n * It allows tracking of the task's execution status and provides access to the\n * last error that occurred during the task's execution, if any.\n *\n * ```ts\n * const [execute, { called, loading, data, error }]: UseAsyncTask<TData, TError, TInput> = useAnyAsyncTask();\n *\n * if (!called) {\n * // data === undefined\n * // error === undefined\n * return <p>Click the button to execute the task</p>;\n * }\n *\n * if (loading) {\n * // data === undefined on first call\n * // data === TData from previous successful call\n * // error === undefined\n * return <Loader />;\n * }\n *\n * if (error) {\n * // data === undefined\n * // error === TError\n * return <p>Something went wrong: {error.message}</p>;\n * }\n *\n * // called === true\n * // data === TData\n * // error === undefined\n * return <p>Task completed: {data}</p>;\n * ```\n */\nexport type UseAsyncTask<TInput, TValue, TError> = [\n AsyncTask<TInput, ResultAsync<TValue, TError>>,\n AsyncTaskState<TValue, TError>,\n];\n\n/**\n * @internal\n */\nexport function useAsyncTask<\n TInput,\n TValue,\n TError,\n TResult extends ResultAsync<TValue, TError>,\n>(handler: AsyncTask<TInput, TResult>): UseAsyncTask<TInput, TValue, TError> {\n const [state, setState] = useState(AsyncTaskState.Idle<TValue, TError>());\n\n const execute = useCallback(\n (input: TInput) => {\n invariant(\n !state.loading,\n 'Cannot execute a task while another is in progress.',\n );\n\n setState(({ data }) => {\n return {\n called: true,\n loading: true,\n data,\n error: undefined,\n };\n });\n\n const result = handler(input);\n\n result.match(\n (value) => setState(AsyncTaskState.Success(value)),\n (error) => setState(AsyncTaskState.Failed(error)),\n );\n\n return result;\n },\n [handler, state],\n );\n\n return [execute, state];\n}\n"]}
package/dist/ethers.cjs DELETED
@@ -1,2 +0,0 @@
1
- 'use strict';var actions=require('@aave/client/actions'),ethers=require('@aave/client/ethers'),types=require('@aave/types'),d=require('react');require('urql');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var d__default=/*#__PURE__*/_interopDefault(d);var l=d__default.default.createContext(null);function n(){let e=d.useContext(l);return types.invariant(e,"Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>"),e}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 s(e){let[r,t]=d.useState(o.Idle());return [d.useCallback(T=>{types.invariant(!r.loading,"Cannot execute a task while another is in progress."),t(({data:a})=>({called:true,loading:true,data:a,error:void 0}));let i=e(T);return i.match(a=>t(o.Success(a)),a=>t(o.Failed(a))),i},[e,r]),r]}function V(e){let r=n();return s(t=>ethers.sendTransactionAndWait(e,t).andThen(r.waitForSupportedTransaction))}function w(e){let r=n();return s(t=>actions.permitTypedData(r,t).andThen(ethers.signERC20PermitWith(e)))}exports.useERC20Permit=w;exports.useSendTransaction=V;//# sourceMappingURL=ethers.cjs.map
2
- //# sourceMappingURL=ethers.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/context.tsx","../src/helpers/tasks.ts","../src/ethers.ts"],"names":["AaveContext","React","useAaveClient","client","useContext","invariant","AsyncTaskState","data","error","useAsyncTask","handler","state","setState","useState","useCallback","input","result","value","useSendTransaction","signer","request","sendTransactionAndWait","useERC20Permit","permitTypedData","signERC20PermitWith"],"mappings":"+QAKA,IAAMA,CAAAA,CAAcC,kBAAAA,CAAM,aAAA,CAAiC,IAAI,CAAA,CA2BxD,SAASC,CAAAA,EAA4B,CAC1C,IAAMC,CAAAA,CAASC,aAAWJ,CAAW,CAAA,CAErC,OAAAK,eAAAA,CACEF,CAAAA,CACA,kFACF,EAEOA,CACT,CCoBA,IAAMG,EAAiB,CACrB,IAAA,CAAM,KAAqD,CACzD,MAAA,CAAQ,KAAA,CACR,QAAS,KAAA,CACT,IAAA,CAAM,MAAA,CACN,KAAA,CAAO,MACT,CAAA,CAAA,CACA,QAAyBC,CAAAA,GAAiD,CACxE,MAAA,CAAQ,IAAA,CACR,OAAA,CAAS,IAAA,CACT,KAAAA,CAAAA,CACA,KAAA,CAAO,MACT,CAAA,CAAA,CACA,OAAA,CAAyBA,CAAAA,GAAgD,CACvE,MAAA,CAAQ,IAAA,CACR,OAAA,CAAS,KAAA,CACT,IAAA,CAAAA,CAAAA,CACA,MAAO,MACT,CAAA,CAAA,CACA,MAAA,CAAwBC,CAAAA,GAAkD,CACxE,MAAA,CAAQ,KACR,OAAA,CAAS,KAAA,CACT,IAAA,CAAM,MAAA,CACN,KAAA,CAAAA,CACF,EACF,CAAA,CA2CO,SAASC,CAAAA,CAKdC,CAAAA,CAA2E,CAC3E,GAAM,CAACC,CAAAA,CAAOC,CAAQ,CAAA,CAAIC,UAAAA,CAASP,CAAAA,CAAe,IAAA,EAAsB,CAAA,CA8BxE,OAAO,CA5BSQ,aAAAA,CACbC,CAAAA,EAAkB,CACjBV,gBACE,CAACM,CAAAA,CAAM,OAAA,CACP,qDACF,CAAA,CAEAC,CAAAA,CAAS,CAAC,CAAE,IAAA,CAAAL,CAAK,CAAA,IACR,CACL,MAAA,CAAQ,KACR,OAAA,CAAS,IAAA,CACT,IAAA,CAAAA,CAAAA,CACA,KAAA,CAAO,MACT,EACD,CAAA,CAED,IAAMS,CAAAA,CAASN,CAAAA,CAAQK,CAAK,CAAA,CAE5B,OAAAC,CAAAA,CAAO,KAAA,CACJC,CAAAA,EAAUL,CAAAA,CAASN,CAAAA,CAAe,OAAA,CAAQW,CAAK,CAAC,CAAA,CAChDT,CAAAA,EAAUI,CAAAA,CAASN,CAAAA,CAAe,MAAA,CAAOE,CAAK,CAAC,CAClD,CAAA,CAEOQ,CACT,CAAA,CACA,CAACN,EAASC,CAAK,CACjB,CAAA,CAEiBA,CAAK,CACxB,CC5DO,SAASO,CAAAA,CACdC,CAAAA,CACgE,CAChE,IAAMhB,CAAAA,CAASD,CAAAA,GAEf,OAAOO,CAAAA,CAAcW,CAAAA,EACZC,6BAAAA,CAAuBF,CAAAA,CAAQC,CAAO,EAAE,OAAA,CAC7CjB,CAAAA,CAAO,2BACT,CACD,CACH,CAoCO,SAASmB,CAAAA,CACdH,CAAAA,CAC6E,CAC7E,IAAMhB,CAAAA,CAASD,CAAAA,GAEf,OAAOO,CAAAA,CAAcW,CAAAA,EACZG,uBAAAA,CAAgBpB,CAAAA,CAAQiB,CAAO,CAAA,CAAE,OAAA,CACtCI,0BAAAA,CAAoBL,CAAM,CAC5B,CACD,CACH","file":"ethers.cjs","sourcesContent":["import type { AaveClient } from '@aave/client';\nimport { invariant } from '@aave/types';\nimport React, { type ReactNode, useContext } from 'react';\nimport { Provider as UrqlProvider } from 'urql';\n\nconst AaveContext = React.createContext<AaveClient | null>(null);\n\n/**\n * @internal\n */\nexport type AaveContextProviderProps = {\n children: ReactNode;\n client: AaveClient;\n};\n\n/**\n * @internal\n */\nexport function AaveContextProvider({\n children,\n client,\n}: AaveContextProviderProps) {\n return (\n <AaveContext.Provider value={client}>\n <UrqlProvider value={client.urql}>{children}</UrqlProvider>\n </AaveContext.Provider>\n );\n}\n\n/**\n * Retrieve the injected {@link AaveClient} from the context.\n */\nexport function useAaveClient(): AaveClient {\n const client = useContext(AaveContext);\n\n invariant(\n client,\n 'Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>',\n );\n\n return client;\n}\n","import { invariant, type ResultAsync } from '@aave/types';\nimport { useCallback, useState } from 'react';\n\n/**\n * An async task is a function that can be executed multiple times and that can be in a pending state.\n *\n * @internal\n */\nexport type AsyncTask<TInput, TResult extends ResultAsync<unknown, unknown>> = (\n input: TInput,\n) => TResult;\n\n/**\n * The initial state of a async task.\n */\nexport type AsyncTaskIdle = {\n called: boolean;\n loading: false;\n data: undefined;\n error: undefined;\n};\n\n/**\n * The state of a async task during the loading.\n */\nexport type AsyncTaskLoading<TData> = {\n called: true;\n loading: true;\n data: TData | undefined;\n error: undefined;\n};\n\n/**\n * The state of a async task after a successful call.\n */\nexport type AsyncTaskSuccess<TData> = {\n called: true;\n loading: false;\n data: TData;\n error: undefined;\n};\n\n/**\n * The state of a async task after a failed call.\n */\nexport type AsyncTaskError<TError> = {\n called: true;\n loading: false;\n data: undefined;\n error: TError;\n};\n\n/**\n * The possible statuses of a async task.\n */\nexport type AsyncTaskState<TData, TError> =\n | AsyncTaskIdle\n | AsyncTaskLoading<TData>\n | AsyncTaskSuccess<TData>\n | AsyncTaskError<TError>;\n\nconst AsyncTaskState = {\n Idle: <TData, TError>(): AsyncTaskState<TData, TError> => ({\n called: false,\n loading: false,\n data: undefined,\n error: undefined,\n }),\n Loading: <TData, TError>(data?: TData): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: true,\n data,\n error: undefined,\n }),\n Success: <TData, TError>(data: TData): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: false,\n data,\n error: undefined,\n }),\n Failed: <TData, TError>(error: TError): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: false,\n data: undefined,\n error,\n }),\n};\n\n/**\n * A async task React Hook is a lightweight wrapper for an asynchronous function.\n * It allows tracking of the task's execution status and provides access to the\n * last error that occurred during the task's execution, if any.\n *\n * ```ts\n * const [execute, { called, loading, data, error }]: UseAsyncTask<TData, TError, TInput> = useAnyAsyncTask();\n *\n * if (!called) {\n * // data === undefined\n * // error === undefined\n * return <p>Click the button to execute the task</p>;\n * }\n *\n * if (loading) {\n * // data === undefined on first call\n * // data === TData from previous successful call\n * // error === undefined\n * return <Loader />;\n * }\n *\n * if (error) {\n * // data === undefined\n * // error === TError\n * return <p>Something went wrong: {error.message}</p>;\n * }\n *\n * // called === true\n * // data === TData\n * // error === undefined\n * return <p>Task completed: {data}</p>;\n * ```\n */\nexport type UseAsyncTask<TInput, TValue, TError> = [\n AsyncTask<TInput, ResultAsync<TValue, TError>>,\n AsyncTaskState<TValue, TError>,\n];\n\n/**\n * @internal\n */\nexport function useAsyncTask<\n TInput,\n TValue,\n TError,\n TResult extends ResultAsync<TValue, TError>,\n>(handler: AsyncTask<TInput, TResult>): UseAsyncTask<TInput, TValue, TError> {\n const [state, setState] = useState(AsyncTaskState.Idle<TValue, TError>());\n\n const execute = useCallback(\n (input: TInput) => {\n invariant(\n !state.loading,\n 'Cannot execute a task while another is in progress.',\n );\n\n setState(({ data }) => {\n return {\n called: true,\n loading: true,\n data,\n error: undefined,\n };\n });\n\n const result = handler(input);\n\n result.match(\n (value) => setState(AsyncTaskState.Success(value)),\n (error) => setState(AsyncTaskState.Failed(error)),\n );\n\n return result;\n },\n [handler, state],\n );\n\n return [execute, state];\n}\n","import type {\n SigningError,\n TimeoutError,\n TransactionError,\n UnexpectedError,\n} from '@aave/client';\nimport { permitTypedData } from '@aave/client/actions';\nimport {\n sendTransactionAndWait,\n signERC20PermitWith,\n} from '@aave/client/ethers';\nimport type {\n ERC712Signature,\n PermitTypedDataRequest,\n TransactionRequest,\n} from '@aave/graphql';\nimport type { TxHash } from '@aave/types';\nimport type { Signer } from 'ethers';\nimport { useAaveClient } from './context';\nimport { type UseAsyncTask, useAsyncTask } from './helpers';\n\nexport type SendTransactionError =\n | SigningError\n | TimeoutError\n | TransactionError\n | UnexpectedError;\n\n/**\n * A hook that provides a way to send Aave transactions using an ethers Signer instance.\n *\n * First, get 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 * Then, use it to send a {@link TransactionRequest} as shown below.\n *\n * ```ts\n * const [toggle, { loading, error, data }] = useEModeToggle();\n *\n * const run = async () => {\n * const result = await toggle({\n * chainId: chainId(1), // Ethereum mainnet\n * market: evmAddress('0x1234…'),\n * user: evmAddress(await signer.getAddress()),\n * })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * };\n * ```\n *\n * Or use it to handle an {@link ExecutionPlan} that may require multiple transactions as shown below.\n *\n * ```ts\n * const [supply, { loading, error, data }] = useSupply();\n *\n * const run = async () => {\n * const result = await supply({\n * chainId: chainId(1), // Ethereum mainnet\n * market: evmAddress('0x1234…'),\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '42.42',\n * }\n * },\n * supplier: evmAddress(await signer.getAddress()),\n * })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval).andThen(() =>\n * sendTransaction(plan.originalTransaction),\n * );\n *\n * case 'InsufficientBalanceError':\n * return errAsync(new Error(`Insufficient balance: ${error.cause.required.value} required.`));\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * }\n * ```\n *\n * @param signer - The ethers Signer to use for sending transactions.\n */\nexport function useSendTransaction(\n signer: Signer,\n): UseAsyncTask<TransactionRequest, TxHash, SendTransactionError> {\n const client = useAaveClient();\n\n return useAsyncTask((request: TransactionRequest) => {\n return sendTransactionAndWait(signer, request).andThen(\n client.waitForSupportedTransaction,\n );\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 * chainId: chainId(1), // Ethereum mainnet\n * market: evmAddress('0x1234…'),\n * underlyingToken: evmAddress('0x5678…'),\n * amount: '42.42',\n * spender: evmAddress('0x9abc…'),\n * owner: evmAddress(await signer.getAddress()),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('ERC20 permit signed:', 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<PermitTypedDataRequest, ERC712Signature, SignERC20PermitError> {\n const client = useAaveClient();\n\n return useAsyncTask((request: PermitTypedDataRequest) => {\n return permitTypedData(client, request).andThen(\n signERC20PermitWith(signer),\n );\n });\n}\n"]}
package/dist/ethers.d.cts DELETED
@@ -1,123 +0,0 @@
1
- import { SigningError, TimeoutError, TransactionError, UnexpectedError } from '@aave/client';
2
- import { TransactionRequest, PermitTypedDataRequest, ERC712Signature } from '@aave/graphql';
3
- import { TxHash } from '@aave/types';
4
- import { Signer } from 'ethers';
5
- import { U as UseAsyncTask } from './tasks-DUn7x8pK.cjs';
6
-
7
- type SendTransactionError = SigningError | TimeoutError | TransactionError | UnexpectedError;
8
- /**
9
- * A hook that provides a way to send Aave transactions using an ethers Signer instance.
10
- *
11
- * First, get the `Signer` instance from your ethers provider, then pass it to this hook to create a function that can be used to send transactions.
12
- *
13
- * ```ts
14
- * const provider = new ethers.providers.Web3Provider(window.ethereum);
15
- * const signer = provider.getSigner();
16
- *
17
- * // …
18
- *
19
- * const [sendTransaction, { loading, error, data }] = useSendTransaction(signer);
20
- * ```
21
- *
22
- * Then, use it to send a {@link TransactionRequest} as shown below.
23
- *
24
- * ```ts
25
- * const [toggle, { loading, error, data }] = useEModeToggle();
26
- *
27
- * const run = async () => {
28
- * const result = await toggle({
29
- * chainId: chainId(1), // Ethereum mainnet
30
- * market: evmAddress('0x1234…'),
31
- * user: evmAddress(await signer.getAddress()),
32
- * })
33
- * .andThen(sendTransaction);
34
- *
35
- * if (result.isErr()) {
36
- * console.error(result.error);
37
- * return;
38
- * }
39
- *
40
- * console.log('Transaction sent with hash:', result.value);
41
- * };
42
- * ```
43
- *
44
- * Or use it to handle an {@link ExecutionPlan} that may require multiple transactions as shown below.
45
- *
46
- * ```ts
47
- * const [supply, { loading, error, data }] = useSupply();
48
- *
49
- * const run = async () => {
50
- * const result = await supply({
51
- * chainId: chainId(1), // Ethereum mainnet
52
- * market: evmAddress('0x1234…'),
53
- * amount: {
54
- * erc20: {
55
- * currency: evmAddress('0x5678…'),
56
- * value: '42.42',
57
- * }
58
- * },
59
- * supplier: evmAddress(await signer.getAddress()),
60
- * })
61
- * .andThen((plan) => {
62
- * switch (plan.__typename) {
63
- * case 'TransactionRequest':
64
- * return sendTransaction(plan);
65
- *
66
- * case 'ApprovalRequired':
67
- * return sendTransaction(plan.approval).andThen(() =>
68
- * sendTransaction(plan.originalTransaction),
69
- * );
70
- *
71
- * case 'InsufficientBalanceError':
72
- * return errAsync(new Error(`Insufficient balance: ${error.cause.required.value} required.`));
73
- * }
74
- * });
75
- *
76
- * if (result.isErr()) {
77
- * console.error(result.error);
78
- * return;
79
- * }
80
- *
81
- * console.log('Transaction sent with hash:', result.value);
82
- * }
83
- * ```
84
- *
85
- * @param signer - The ethers Signer to use for sending transactions.
86
- */
87
- declare function useSendTransaction(signer: Signer): UseAsyncTask<TransactionRequest, TxHash, SendTransactionError>;
88
- type SignERC20PermitError = SigningError | UnexpectedError;
89
- /**
90
- * A hook that provides a way to sign ERC20 permits using an ethers Signer instance.
91
- *
92
- * ```ts
93
- * const provider = new ethers.providers.Web3Provider(window.ethereum);
94
- * const signer = provider.getSigner();
95
- *
96
- * // …
97
- *
98
- * const [signERC20Permit, { loading, error, data }] = useERC20Permit(signer);
99
- *
100
- * const run = async () => {
101
- * const result = await signERC20Permit({
102
- * chainId: chainId(1), // Ethereum mainnet
103
- * market: evmAddress('0x1234…'),
104
- * underlyingToken: evmAddress('0x5678…'),
105
- * amount: '42.42',
106
- * spender: evmAddress('0x9abc…'),
107
- * owner: evmAddress(await signer.getAddress()),
108
- * });
109
- *
110
- * if (result.isErr()) {
111
- * console.error(result.error);
112
- * return;
113
- * }
114
- *
115
- * console.log('ERC20 permit signed:', result.value);
116
- * };
117
- * ```
118
- *
119
- * @param signer - The ethers Signer to use for signing ERC20 permits.
120
- */
121
- declare function useERC20Permit(signer: Signer): UseAsyncTask<PermitTypedDataRequest, ERC712Signature, SignERC20PermitError>;
122
-
123
- export { type SendTransactionError, type SignERC20PermitError, useERC20Permit, useSendTransaction };
package/dist/ethers.d.ts DELETED
@@ -1,123 +0,0 @@
1
- import { SigningError, TimeoutError, TransactionError, UnexpectedError } from '@aave/client';
2
- import { TransactionRequest, PermitTypedDataRequest, ERC712Signature } from '@aave/graphql';
3
- import { TxHash } from '@aave/types';
4
- import { Signer } from 'ethers';
5
- import { U as UseAsyncTask } from './tasks-DUn7x8pK.js';
6
-
7
- type SendTransactionError = SigningError | TimeoutError | TransactionError | UnexpectedError;
8
- /**
9
- * A hook that provides a way to send Aave transactions using an ethers Signer instance.
10
- *
11
- * First, get the `Signer` instance from your ethers provider, then pass it to this hook to create a function that can be used to send transactions.
12
- *
13
- * ```ts
14
- * const provider = new ethers.providers.Web3Provider(window.ethereum);
15
- * const signer = provider.getSigner();
16
- *
17
- * // …
18
- *
19
- * const [sendTransaction, { loading, error, data }] = useSendTransaction(signer);
20
- * ```
21
- *
22
- * Then, use it to send a {@link TransactionRequest} as shown below.
23
- *
24
- * ```ts
25
- * const [toggle, { loading, error, data }] = useEModeToggle();
26
- *
27
- * const run = async () => {
28
- * const result = await toggle({
29
- * chainId: chainId(1), // Ethereum mainnet
30
- * market: evmAddress('0x1234…'),
31
- * user: evmAddress(await signer.getAddress()),
32
- * })
33
- * .andThen(sendTransaction);
34
- *
35
- * if (result.isErr()) {
36
- * console.error(result.error);
37
- * return;
38
- * }
39
- *
40
- * console.log('Transaction sent with hash:', result.value);
41
- * };
42
- * ```
43
- *
44
- * Or use it to handle an {@link ExecutionPlan} that may require multiple transactions as shown below.
45
- *
46
- * ```ts
47
- * const [supply, { loading, error, data }] = useSupply();
48
- *
49
- * const run = async () => {
50
- * const result = await supply({
51
- * chainId: chainId(1), // Ethereum mainnet
52
- * market: evmAddress('0x1234…'),
53
- * amount: {
54
- * erc20: {
55
- * currency: evmAddress('0x5678…'),
56
- * value: '42.42',
57
- * }
58
- * },
59
- * supplier: evmAddress(await signer.getAddress()),
60
- * })
61
- * .andThen((plan) => {
62
- * switch (plan.__typename) {
63
- * case 'TransactionRequest':
64
- * return sendTransaction(plan);
65
- *
66
- * case 'ApprovalRequired':
67
- * return sendTransaction(plan.approval).andThen(() =>
68
- * sendTransaction(plan.originalTransaction),
69
- * );
70
- *
71
- * case 'InsufficientBalanceError':
72
- * return errAsync(new Error(`Insufficient balance: ${error.cause.required.value} required.`));
73
- * }
74
- * });
75
- *
76
- * if (result.isErr()) {
77
- * console.error(result.error);
78
- * return;
79
- * }
80
- *
81
- * console.log('Transaction sent with hash:', result.value);
82
- * }
83
- * ```
84
- *
85
- * @param signer - The ethers Signer to use for sending transactions.
86
- */
87
- declare function useSendTransaction(signer: Signer): UseAsyncTask<TransactionRequest, TxHash, SendTransactionError>;
88
- type SignERC20PermitError = SigningError | UnexpectedError;
89
- /**
90
- * A hook that provides a way to sign ERC20 permits using an ethers Signer instance.
91
- *
92
- * ```ts
93
- * const provider = new ethers.providers.Web3Provider(window.ethereum);
94
- * const signer = provider.getSigner();
95
- *
96
- * // …
97
- *
98
- * const [signERC20Permit, { loading, error, data }] = useERC20Permit(signer);
99
- *
100
- * const run = async () => {
101
- * const result = await signERC20Permit({
102
- * chainId: chainId(1), // Ethereum mainnet
103
- * market: evmAddress('0x1234…'),
104
- * underlyingToken: evmAddress('0x5678…'),
105
- * amount: '42.42',
106
- * spender: evmAddress('0x9abc…'),
107
- * owner: evmAddress(await signer.getAddress()),
108
- * });
109
- *
110
- * if (result.isErr()) {
111
- * console.error(result.error);
112
- * return;
113
- * }
114
- *
115
- * console.log('ERC20 permit signed:', result.value);
116
- * };
117
- * ```
118
- *
119
- * @param signer - The ethers Signer to use for signing ERC20 permits.
120
- */
121
- declare function useERC20Permit(signer: Signer): UseAsyncTask<PermitTypedDataRequest, ERC712Signature, SignERC20PermitError>;
122
-
123
- export { type SendTransactionError, type SignERC20PermitError, useERC20Permit, useSendTransaction };
package/dist/ethers.js DELETED
@@ -1,2 +0,0 @@
1
- import {b,c}from'./chunk-SECI6TSB.js';import {permitTypedData}from'@aave/client/actions';import {sendTransactionAndWait,signERC20PermitWith}from'@aave/client/ethers';function u(r){let e=b();return c(t=>sendTransactionAndWait(r,t).andThen(e.waitForSupportedTransaction))}function E(r){let e=b();return c(t=>permitTypedData(e,t).andThen(signERC20PermitWith(r)))}export{E as useERC20Permit,u as useSendTransaction};//# sourceMappingURL=ethers.js.map
2
- //# sourceMappingURL=ethers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ethers.ts"],"names":["useSendTransaction","signer","client","useAaveClient","useAsyncTask","request","sendTransactionAndWait","useERC20Permit","permitTypedData","signERC20PermitWith"],"mappings":"sKA0GO,SAASA,CAAAA,CACdC,EACgE,CAChE,IAAMC,CAAAA,CAASC,CAAAA,EAAc,CAE7B,OAAOC,EAAcC,CAAAA,EACZC,sBAAAA,CAAuBL,CAAAA,CAAQI,CAAO,CAAA,CAAE,OAAA,CAC7CH,EAAO,2BACT,CACD,CACH,CAoCO,SAASK,EACdN,CAAAA,CAC6E,CAC7E,IAAMC,CAAAA,CAASC,CAAAA,EAAc,CAE7B,OAAOC,CAAAA,CAAcC,CAAAA,EACZG,eAAAA,CAAgBN,CAAAA,CAAQG,CAAO,CAAA,CAAE,QACtCI,mBAAAA,CAAoBR,CAAM,CAC5B,CACD,CACH","file":"ethers.js","sourcesContent":["import type {\n SigningError,\n TimeoutError,\n TransactionError,\n UnexpectedError,\n} from '@aave/client';\nimport { permitTypedData } from '@aave/client/actions';\nimport {\n sendTransactionAndWait,\n signERC20PermitWith,\n} from '@aave/client/ethers';\nimport type {\n ERC712Signature,\n PermitTypedDataRequest,\n TransactionRequest,\n} from '@aave/graphql';\nimport type { TxHash } from '@aave/types';\nimport type { Signer } from 'ethers';\nimport { useAaveClient } from './context';\nimport { type UseAsyncTask, useAsyncTask } from './helpers';\n\nexport type SendTransactionError =\n | SigningError\n | TimeoutError\n | TransactionError\n | UnexpectedError;\n\n/**\n * A hook that provides a way to send Aave transactions using an ethers Signer instance.\n *\n * First, get 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 * Then, use it to send a {@link TransactionRequest} as shown below.\n *\n * ```ts\n * const [toggle, { loading, error, data }] = useEModeToggle();\n *\n * const run = async () => {\n * const result = await toggle({\n * chainId: chainId(1), // Ethereum mainnet\n * market: evmAddress('0x1234…'),\n * user: evmAddress(await signer.getAddress()),\n * })\n * .andThen(sendTransaction);\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * };\n * ```\n *\n * Or use it to handle an {@link ExecutionPlan} that may require multiple transactions as shown below.\n *\n * ```ts\n * const [supply, { loading, error, data }] = useSupply();\n *\n * const run = async () => {\n * const result = await supply({\n * chainId: chainId(1), // Ethereum mainnet\n * market: evmAddress('0x1234…'),\n * amount: {\n * erc20: {\n * currency: evmAddress('0x5678…'),\n * value: '42.42',\n * }\n * },\n * supplier: evmAddress(await signer.getAddress()),\n * })\n * .andThen((plan) => {\n * switch (plan.__typename) {\n * case 'TransactionRequest':\n * return sendTransaction(plan);\n *\n * case 'ApprovalRequired':\n * return sendTransaction(plan.approval).andThen(() =>\n * sendTransaction(plan.originalTransaction),\n * );\n *\n * case 'InsufficientBalanceError':\n * return errAsync(new Error(`Insufficient balance: ${error.cause.required.value} required.`));\n * }\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('Transaction sent with hash:', result.value);\n * }\n * ```\n *\n * @param signer - The ethers Signer to use for sending transactions.\n */\nexport function useSendTransaction(\n signer: Signer,\n): UseAsyncTask<TransactionRequest, TxHash, SendTransactionError> {\n const client = useAaveClient();\n\n return useAsyncTask((request: TransactionRequest) => {\n return sendTransactionAndWait(signer, request).andThen(\n client.waitForSupportedTransaction,\n );\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 * chainId: chainId(1), // Ethereum mainnet\n * market: evmAddress('0x1234…'),\n * underlyingToken: evmAddress('0x5678…'),\n * amount: '42.42',\n * spender: evmAddress('0x9abc…'),\n * owner: evmAddress(await signer.getAddress()),\n * });\n *\n * if (result.isErr()) {\n * console.error(result.error);\n * return;\n * }\n *\n * console.log('ERC20 permit signed:', 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<PermitTypedDataRequest, ERC712Signature, SignERC20PermitError> {\n const client = useAaveClient();\n\n return useAsyncTask((request: PermitTypedDataRequest) => {\n return permitTypedData(client, request).andThen(\n signERC20PermitWith(signer),\n );\n });\n}\n"]}
package/dist/index.cjs DELETED
@@ -1,2 +0,0 @@
1
- 'use strict';var client=require('@aave/client'),d=require('react'),types=require('@aave/types'),urql=require('urql'),actions=require('@aave/client/actions'),graphql=require('@aave/graphql');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var d__default=/*#__PURE__*/_interopDefault(d);var y=d__default.default.createContext(null);function A({children:e,client:t}){return d__default.default.createElement(y.Provider,{value:t},d__default.default.createElement(urql.Provider,{value:t.urql},e))}function s(){let e=d.useContext(y);return types.invariant(e,"Could not find Aave SDK context, ensure your code is wrapped in a <AaveProvider>"),e}function Te({children:e,client:t}){return d__default.default.createElement(A,{client:t},e)}var i={Initial:()=>({data:void 0,error:void 0,loading:true}),Success:e=>({data:e,error:void 0,loading:false}),Failure:e=>({data:void 0,error:e,loading:false})};function r({document:e,variables:t,suspense:u}){let[{data:o,fetching:c,error:l}]=urql.useQuery({query:e,variables:t,context:d.useMemo(()=>({suspense:u}),[u])});if(c)return i.Initial();if(l){let n=client.UnexpectedError.from(l);if(u)throw n;return i.Failure(n)}return types.invariant(o,"No data returned"),i.Success(o.value)}var R={Idle:()=>({called:false,loading:false,data:void 0,error:void 0}),Loading:e=>({called:true,loading:true,data:e,error:void 0}),Success:e=>({called:true,loading:false,data:e,error:void 0}),Failed:e=>({called:true,loading:false,data:void 0,error:e})};function a(e){let[t,u]=d.useState(R.Idle());return [d.useCallback(c=>{types.invariant(!t.loading,"Cannot execute a task while another is in progress."),u(({data:n})=>({called:true,loading:true,data:n,error:void 0}));let l=e(c);return l.match(n=>u(R.Success(n)),n=>u(R.Failed(n))),l},[e,t]),t]}function We({suspense:e=false,...t}){return r({document:graphql.SavingsGhoBalanceQuery,variables:{request:t},suspense:e})}function Fe(){let e=s();return a(t=>actions.savingsGhoWithdraw(e,t))}function Ge(){let e=s();return a(t=>actions.savingsGhoDeposit(e,t))}function Oe({suspense:e=false,...t}){return r({document:graphql.UserMeritRewardsQuery,variables:{request:t},suspense:e})}function Xe({suspense:e=false,borrowsOrderBy:t=actions.defaultMarketReservesRequestOrderBy,suppliesOrderBy:u=actions.defaultMarketReservesRequestOrderBy,...o}){return r({document:graphql.MarketQuery,variables:{request:o,borrowsOrderBy:t,suppliesOrderBy:u},suspense:e})}function Ze({suspense:e=false,borrowsOrderBy:t=actions.defaultMarketReservesRequestOrderBy,suppliesOrderBy:u=actions.defaultMarketReservesRequestOrderBy,...o}){return r({document:graphql.MarketsQuery,variables:{request:o,borrowsOrderBy:t,suppliesOrderBy:u},suspense:e})}function rt({suspense:e=false,filter:t=graphql.ChainsFilter.ALL}){return r({document:graphql.ChainsQuery,variables:{filter:t},suspense:e})}function at({suspense:e=false}={}){return r({document:graphql.HealthQuery,variables:{},suspense:e})}function ut({suspense:e=false,...t}){return r({document:graphql.UsdExchangeRatesQuery,variables:{request:t},suspense:e})}function nt(){let e=s();return a(t=>actions.healthFactorPreview(e,t))}function pt({suspense:e=false,...t}){return r({document:graphql.ReserveQuery,variables:{request:t},suspense:e})}function ct({suspense:e=false,...t}){return r({document:graphql.BorrowAPYHistoryQuery,variables:{request:t},suspense:e})}function dt({suspense:e=false,...t}){return r({document:graphql.SupplyAPYHistoryQuery,variables:{request:t},suspense:e})}function Rt({suspense:e=false,...t}){return r({document:graphql.CreditDelegateeAllowanceQuery,variables:{request:t},suspense:e})}function gt(){let e=s();return a(t=>actions.supply(e,t))}function vt(){let e=s();return a(t=>actions.borrow(e,t))}function xt(){let e=s();return a(t=>actions.repay(e,t))}function St(){let e=s();return a(t=>actions.withdraw(e,t))}function mt(){let e=s();return a(t=>actions.userSetEmode(e,t))}function Tt(){let e=s();return a(t=>actions.collateralToggle(e,t))}function Vt(){let e=s();return a(t=>actions.liquidate(e,t))}function bt(){let e=s();return a(t=>actions.vaultDeposit(e,t))}function qt(){let e=s();return a(t=>actions.vaultMintShares(e,t))}function wt(){let e=s();return a(t=>actions.vaultRedeemShares(e,t))}function ht(){let e=s();return a(t=>actions.vaultWithdraw(e,t))}function kt(){let e=s();return a(t=>actions.vaultDeploy(e,t))}function Pt(){let e=s();return a(t=>actions.vaultSetFee(e,t))}function Et(){let e=s();return a(t=>actions.vaultWithdrawFees(e,t))}function Mt(){let e=s();return a(t=>actions.vaultTransferOwnership(e,t))}function Ht(){let e=s();return a(t=>actions.approveBorrowCreditDelegation(e,t))}function Qt({suspense:e=false,...t}){return r({document:graphql.UserSuppliesQuery,variables:{request:t},suspense:e})}function Yt({suspense:e=false,...t}){return r({document:graphql.UserBorrowsQuery,variables:{request:t},suspense:e})}function Wt({suspense:e=false,...t}){return r({document:graphql.UserMarketStateQuery,variables:{request:t},suspense:e})}function Ft({suspense:e=false,...t}){return r({document:graphql.UserTransactionHistoryQuery,variables:{request:t},suspense:e})}function Kt({suspense:e=false,...t}){return r({document:graphql.VaultQuery,variables:{request:t},suspense:e})}function jt({suspense:e=false,...t}){return r({document:graphql.VaultsQuery,variables:{request:t},suspense:e})}function zt({suspense:e=false,...t}){return r({document:graphql.UserVaultsQuery,variables:{request:t},suspense:e})}function Jt(){let e=s();return a(t=>actions.vaultPreviewDeposit(e,t))}function Xt(){let e=s();return a(t=>actions.vaultPreviewMint(e,t))}function Zt(){let e=s();return a(t=>actions.vaultPreviewWithdraw(e,t))}function _t(){let e=s();return a(t=>actions.vaultPreviewRedeem(e,t))}function $t({suspense:e=false,...t}){return r({document:graphql.VaultUserTransactionHistoryQuery,variables:{request:t},suspense:e})}function es({suspense:e=false,...t}){return r({document:graphql.VaultUserActivityQuery,variables:{request:t},suspense:e})}exports.AaveProvider=Te;exports.useAaveChains=rt;exports.useAaveClient=s;exports.useAaveHealth=at;exports.useAaveHealthFactorPreview=nt;exports.useAaveMarket=Xe;exports.useAaveMarkets=Ze;exports.useAaveReserve=pt;exports.useApproveBorrowCreditDelegation=Ht;exports.useBorrow=vt;exports.useBorrowAPYHistory=ct;exports.useCollateralToggle=Tt;exports.useCreditDelegateeAllowance=Rt;exports.useLiquidate=Vt;exports.useRepay=xt;exports.useSavingsGhoBalance=We;exports.useSavingsGhoDeposit=Ge;exports.useSavingsGhoWithdraw=Fe;exports.useSupply=gt;exports.useSupplyAPYHistory=dt;exports.useUsdExchangeRates=ut;exports.useUserBorrows=Yt;exports.useUserEMode=mt;exports.useUserMarketState=Wt;exports.useUserMeritRewards=Oe;exports.useUserSupplies=Qt;exports.useUserTransactionHistory=Ft;exports.useUserVaults=zt;exports.useVault=Kt;exports.useVaultDeploy=kt;exports.useVaultDeposit=bt;exports.useVaultDepositPreview=Jt;exports.useVaultMintPreview=Xt;exports.useVaultMintShares=qt;exports.useVaultRedeemPreview=_t;exports.useVaultRedeemShares=wt;exports.useVaultSetFee=Pt;exports.useVaultTransferOwnership=Mt;exports.useVaultUserActivity=es;exports.useVaultUserTransactionHistory=$t;exports.useVaultWithdraw=ht;exports.useVaultWithdrawFees=Et;exports.useVaultWithdrawPreview=Zt;exports.useVaults=jt;exports.useWithdraw=St;Object.keys(client).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return client[k]}})});//# sourceMappingURL=index.cjs.map
2
- //# sourceMappingURL=index.cjs.map