@@ -22,7 +22,41 @@ import { type UseAsyncTask, useAsyncTask } from './helpers';
2222 * A hook that provides a way to supply assets to an Aave market.
2323 *
2424 * ```ts
25- * const [supply, { loading, error, data }] = useSupply();
25+ * const [supply, supplying] = useSupply();
26+ * const [sendTransaction, sending] = useSendTransaction(wallet);
27+ *
28+ * const loading = supplying.loading && sending.loading;
29+ * const error = supplying.error || sending.error;
30+ * const data = supplying.data || sending.data;
31+ *
32+ * // …
33+ *
34+ * const result = await supply({ ... })
35+ * .andThen((plan) => {
36+ * switch (plan.__typename) {
37+ * case 'TransactionRequest':
38+ * return sendTransaction(plan);
39+ *
40+ * case 'ApprovalRequired':
41+ * return sendTransaction(plan.approval)
42+ * .andThen(() => sendTransaction(plan.originalTransaction));
43+ * }
44+ * });
45+ *
46+ * if (result.isErr()) {
47+ * switch (error.name) {
48+ * case 'SigningError':
49+ * console.error(`Failed to sign the transaction: ${error.message}`);
50+ * break;
51+ *
52+ * case 'ValidationError':
53+ * console.error(`Insufficient balance: ${error.cause.required.value} required.`);
54+ * break;
55+ * }
56+ * return;
57+ * }
58+ *
59+ * console.log('Transaction sent with hash:', result.value);
2660 * ```
2761 */
2862export function useSupply ( ) : UseAsyncTask <
@@ -39,7 +73,41 @@ export function useSupply(): UseAsyncTask<
3973 * A hook that provides a way to borrow assets from an Aave market.
4074 *
4175 * ```ts
42- * const [borrow, { loading, error, data }] = useBorrow();
76+ * const [borrow, borrowing] = useBorrow();
77+ * const [sendTransaction, sending] = useSendTransaction(wallet);
78+ *
79+ * const loading = borrowing.loading && sending.loading;
80+ * const error = borrowing.error || sending.error;
81+ * const data = borrowing.data || sending.data;
82+ *
83+ * // …
84+ *
85+ * const result = await borrow({ ... })
86+ * .andThen((plan) => {
87+ * switch (plan.__typename) {
88+ * case 'TransactionRequest':
89+ * return sendTransaction(plan);
90+ *
91+ * case 'ApprovalRequired':
92+ * return sendTransaction(plan.approval)
93+ * .andThen(() => sendTransaction(plan.originalTransaction));
94+ * }
95+ * });
96+ *
97+ * if (result.isErr()) {
98+ * switch (error.name) {
99+ * case 'SigningError':
100+ * console.error(`Failed to sign the transaction: ${error.message}`);
101+ * break;
102+ *
103+ * case 'ValidationError':
104+ * console.error(`Insufficient balance: ${error.cause.required.value} required.`);
105+ * break;
106+ * }
107+ * return;
108+ * }
109+ *
110+ * console.log('Transaction sent with hash:', result.value);
43111 * ```
44112 */
45113export function useBorrow ( ) : UseAsyncTask <
@@ -56,7 +124,41 @@ export function useBorrow(): UseAsyncTask<
56124 * A hook that provides a way to repay borrowed assets to an Aave market.
57125 *
58126 * ```ts
59- * const [repay, { loading, error, data }] = useRepay();
127+ * const [repay, repaying] = useRepay();
128+ * const [sendTransaction, sending] = useSendTransaction(wallet);
129+ *
130+ * const loading = repaying.loading && sending.loading;
131+ * const error = repaying.error || sending.error;
132+ * const data = repaying.data || sending.data;
133+ *
134+ * // …
135+ *
136+ * const result = await repay({ ... })
137+ * .andThen((plan) => {
138+ * switch (plan.__typename) {
139+ * case 'TransactionRequest':
140+ * return sendTransaction(plan);
141+ *
142+ * case 'ApprovalRequired':
143+ * return sendTransaction(plan.approval)
144+ * .andThen(() => sendTransaction(plan.originalTransaction));
145+ * }
146+ * });
147+ *
148+ * if (result.isErr()) {
149+ * switch (error.name) {
150+ * case 'SigningError':
151+ * console.error(`Failed to sign the transaction: ${error.message}`);
152+ * break;
153+ *
154+ * case 'ValidationError':
155+ * console.error(`Insufficient balance: ${error.cause.required.value} required.`);
156+ * break;
157+ * }
158+ * return;
159+ * }
160+ *
161+ * console.log('Transaction sent with hash:', result.value);
60162 * ```
61163 */
62164export function useRepay ( ) : UseAsyncTask <
@@ -73,7 +175,41 @@ export function useRepay(): UseAsyncTask<
73175 * A hook that provides a way to withdraw supplied assets from an Aave market.
74176 *
75177 * ```ts
76- * const [withdraw, { loading, error, data }] = useWithdraw();
178+ * const [withdraw, withdrawing] = useWithdraw();
179+ * const [sendTransaction, sending] = useSendTransaction(wallet);
180+ *
181+ * const loading = withdrawing.loading && sending.loading;
182+ * const error = withdrawing.error || sending.error;
183+ * const data = withdrawing.data || sending.data;
184+ *
185+ * // …
186+ *
187+ * const result = await withdraw({ ... })
188+ * .andThen((plan) => {
189+ * switch (plan.__typename) {
190+ * case 'TransactionRequest':
191+ * return sendTransaction(plan);
192+ *
193+ * case 'ApprovalRequired':
194+ * return sendTransaction(plan.approval)
195+ * .andThen(() => sendTransaction(plan.originalTransaction));
196+ * }
197+ * });
198+ *
199+ * if (result.isErr()) {
200+ * switch (error.name) {
201+ * case 'SigningError':
202+ * console.error(`Failed to sign the transaction: ${error.message}`);
203+ * break;
204+ *
205+ * case 'ValidationError':
206+ * console.error(`Insufficient balance: ${error.cause.required.value} required.`);
207+ * break;
208+ * }
209+ * return;
210+ * }
211+ *
212+ * console.log('Transaction sent with hash:', result.value);
77213 * ```
78214 */
79215export function useWithdraw ( ) : UseAsyncTask <
@@ -90,7 +226,24 @@ export function useWithdraw(): UseAsyncTask<
90226 * A hook that provides a way to toggle eMode for a user in an Aave market.
91227 *
92228 * ```ts
93- * const [toggleEMode, { loading, error, data }] = useEModeToggle();
229+ * const [toggleEMode, toggling] = useEModeToggle();
230+ * const [sendTransaction, sending] = useSendTransaction(wallet);
231+ *
232+ * const loading = toggling.loading && sending.loading;
233+ * const error = toggling.error || sending.error;
234+ * const data = toggling.data || sending.data;
235+ *
236+ * // …
237+ *
238+ * const result = await toggleEMode({ ... })
239+ * .andThen(sendTransaction);
240+ *
241+ * if (result.isErr()) {
242+ * console.error(`Failed to sign the transaction: ${error.message}`);
243+ * return;
244+ * }
245+ *
246+ * console.log('Transaction sent with hash:', result.value);
94247 * ```
95248 */
96249export function useEModeToggle ( ) : UseAsyncTask <
0 commit comments