@aave/client 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/package.json +3 -3
  2. package/dist/actions/index.cjs +0 -2
  3. package/dist/actions/index.cjs.map +0 -1
  4. package/dist/actions/index.d.cts +0 -971
  5. package/dist/actions/index.d.ts +0 -971
  6. package/dist/actions/index.js +0 -2
  7. package/dist/actions/index.js.map +0 -1
  8. package/dist/chunk-FW4363Y4.js +0 -2
  9. package/dist/chunk-FW4363Y4.js.map +0 -1
  10. package/dist/chunk-G5WP6QBY.js +0 -3
  11. package/dist/chunk-G5WP6QBY.js.map +0 -1
  12. package/dist/chunk-IKLPSB3H.js +0 -3
  13. package/dist/chunk-IKLPSB3H.js.map +0 -1
  14. package/dist/chunk-KT47UJBO.js +0 -2
  15. package/dist/chunk-KT47UJBO.js.map +0 -1
  16. package/dist/chunk-QYPBLR6B.js +0 -3
  17. package/dist/chunk-QYPBLR6B.js.map +0 -1
  18. package/dist/ethers.cjs +0 -3
  19. package/dist/ethers.cjs.map +0 -1
  20. package/dist/ethers.d.cts +0 -22
  21. package/dist/ethers.d.ts +0 -22
  22. package/dist/ethers.js +0 -2
  23. package/dist/ethers.js.map +0 -1
  24. package/dist/index.cjs +0 -4
  25. package/dist/index.cjs.map +0 -1
  26. package/dist/index.d.cts +0 -250
  27. package/dist/index.d.ts +0 -250
  28. package/dist/index.js +0 -2
  29. package/dist/index.js.map +0 -1
  30. package/dist/magic-string.es-PTUXR566.js +0 -14
  31. package/dist/magic-string.es-PTUXR566.js.map +0 -1
  32. package/dist/privy.cjs +0 -4
  33. package/dist/privy.cjs.map +0 -1
  34. package/dist/privy.d.cts +0 -18
  35. package/dist/privy.d.ts +0 -18
  36. package/dist/privy.js +0 -2
  37. package/dist/privy.js.map +0 -1
  38. package/dist/test-utils.cjs +0 -450
  39. package/dist/test-utils.cjs.map +0 -1
  40. package/dist/test-utils.d.cts +0 -37
  41. package/dist/test-utils.d.ts +0 -37
  42. package/dist/test-utils.js +0 -438
  43. package/dist/test-utils.js.map +0 -1
  44. package/dist/thirdweb.cjs +0 -3
  45. package/dist/thirdweb.cjs.map +0 -1
  46. package/dist/thirdweb.d.cts +0 -18
  47. package/dist/thirdweb.d.ts +0 -18
  48. package/dist/thirdweb.js +0 -2
  49. package/dist/thirdweb.js.map +0 -1
  50. package/dist/types-DwXCLJq5.d.cts +0 -72
  51. package/dist/types-DwXCLJq5.d.ts +0 -72
  52. package/dist/viem.cjs +0 -4
  53. package/dist/viem.cjs.map +0 -1
  54. package/dist/viem.d.cts +0 -30
  55. package/dist/viem.d.ts +0 -30
  56. package/dist/viem.js +0 -2
  57. package/dist/viem.js.map +0 -1
package/dist/thirdweb.cjs DELETED
@@ -1,3 +0,0 @@
1
- 'use strict';var types=require('@aave/types'),thirdweb=require('thirdweb');var o=class extends types.ResultAwareError{name="SigningError"},s=class e extends types.ResultAwareError{name="TransactionError";constructor(n,a){super(n,{cause:a});}static new(n){let{txHash:a,request:r,link:t}=n,u=t?`Transaction failed: ${a}
2
- \u2192 View on explorer: ${t}`:`Transaction failed: ${a}`;return new e(u,r)}};var i=class e extends types.ResultAwareError{constructor(a){super(a.__typename);this.cause=a;}name="ValidationError";static fromGqlNode(a){return new e(a)}};async function f(e,n){let a=await e.sendTransaction({type:"eip1559",chainId:n.chainId,to:n.to,value:BigInt(n.value),data:n.data});return types.txHash(a.transactionHash)}function d(e,n){let a=thirdweb.Engine.serverWallet({client:e,address:n.from});return types.ResultAsync.fromPromise(f(a,n),r=>o.from(r)).map(async r=>thirdweb.waitForReceipt({client:e,chain:n.chainId,transactionHash:r})).andThen(r=>{let t=types.txHash(r.transactionHash);return r.status==="reverted"?types.errAsync(s.new({txHash:t,request:n})):types.okAsync({txHash:t,operation:n.operation})})}function S(e){return n=>{switch(n.__typename){case "TransactionRequest":return d(e,n);case "ApprovalRequired":return d(e,n.approval).andThen(()=>d(e,n.originalTransaction));case "InsufficientBalanceError":return types.errAsync(i.fromGqlNode(n))}}}async function h(e,n){let r=await thirdweb.Engine.serverWallet({client:e,chain:thirdweb.defineChain({id:n.domain.chainId}),address:n.message.owner}).signTypedData({types:n.types,domain:n.domain,primaryType:n.primaryType,message:n.message});return types.signatureFrom(r)}function I(e){return n=>types.ResultAsync.fromPromise(h(e,n),a=>o.from(a)).map(a=>({deadline:n.message.deadline,value:a}))}exports.sendWith=S;exports.signERC20PermitWith=I;//# sourceMappingURL=thirdweb.cjs.map
3
- //# sourceMappingURL=thirdweb.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/errors.ts","../src/thirdweb.ts"],"names":["SigningError","ResultAwareError","TransactionError","_TransactionError","message","cause","args","txHash","request","link","ValidationError","_ValidationError","error","sendTransaction","wallet","txResponse","sendTransactionAndWait","client","Engine","ResultAsync","err","hash","waitForReceipt","receipt","errAsync","okAsync","sendWith","result","signTypedData","signature","defineChain","signatureFrom","signERC20PermitWith","value"],"mappings":"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","file":"thirdweb.cjs","sourcesContent":["import type { TransactionRequest, TypedSelectionSet } from '@aave/graphql';\nimport { ResultAwareError, type TxHash } from '@aave/types';\nimport type { CombinedError } from '@urql/core';\n\n/**\n * @internal\n */\nexport enum GraphQLErrorCode {\n UNAUTHENTICATED = 'UNAUTHENTICATED',\n FORBIDDEN = 'FORBIDDEN',\n INTERNAL_SERVER_ERROR = 'INTERNAL_SERVER_ERROR',\n BAD_USER_INPUT = 'BAD_USER_INPUT',\n BAD_REQUEST = 'BAD_REQUEST',\n}\n/**\n * @internal\n */\nexport function hasExtensionCode(\n error: CombinedError,\n code: GraphQLErrorCode,\n): boolean {\n return error.graphQLErrors.some((gqlError) => {\n return gqlError.extensions?.code === code;\n });\n}\n\n/**\n * Error indicating an unexpected condition occurred.\n */\nexport class UnexpectedError extends ResultAwareError {\n name = 'UnexpectedError' as const;\n}\n\n/**\n * Error indicating an error occurred while signing.\n */\nexport class SigningError extends ResultAwareError {\n name = 'SigningError' as const;\n}\n\nexport type TransactionErrorArgs = {\n txHash: TxHash;\n request: TransactionRequest;\n link?: string;\n};\n\n/**\n * Error indicating a transaction failed.\n */\nexport class TransactionError extends ResultAwareError {\n name = 'TransactionError' as const;\n\n protected constructor(message: string, cause: TransactionRequest) {\n super(message, { cause });\n }\n\n static new(args: TransactionErrorArgs) {\n const { txHash, request, link } = args;\n const message = link\n ? `Transaction failed: ${txHash}\\n→ View on explorer: ${link}`\n : `Transaction failed: ${txHash}`;\n return new TransactionError(message, request);\n }\n}\n\n/**\n * Error indicating a timeout occurred.\n */\nexport class TimeoutError extends ResultAwareError {\n name = 'TimeoutError' as const;\n}\n\n/**\n * Error indicating an operation was not executed due to a validation error.\n * See the `cause` property for more information.\n */\nexport class ValidationError<\n TGqlNode extends TypedSelectionSet,\n> extends ResultAwareError {\n name = 'ValidationError' as const;\n\n constructor(public readonly cause: TGqlNode) {\n super(cause.__typename);\n }\n\n static fromGqlNode<TGqlNode extends TypedSelectionSet>(\n error: TGqlNode,\n ): ValidationError<TGqlNode> {\n return new ValidationError(error);\n }\n}\n","import type {\n ExecutionPlan,\n InsufficientBalanceError,\n PermitTypedDataResponse,\n TransactionRequest,\n} from '@aave/graphql';\nimport {\n errAsync,\n okAsync,\n ResultAsync,\n type Signature,\n signatureFrom,\n type TxHash,\n txHash,\n} from '@aave/types';\nimport {\n defineChain,\n Engine,\n type ThirdwebClient,\n waitForReceipt,\n} from 'thirdweb';\nimport { SigningError, TransactionError, ValidationError } from './errors';\nimport type {\n ExecutionPlanHandler,\n PermitHandler,\n TransactionExecutionResult,\n} from './types';\n\nasync function sendTransaction(\n wallet: Engine.ServerWallet,\n request: TransactionRequest,\n): Promise<TxHash> {\n const txResponse = await wallet.sendTransaction({\n type: 'eip1559',\n chainId: request.chainId,\n to: request.to,\n value: BigInt(request.value),\n data: request.data,\n });\n return txHash(txResponse.transactionHash);\n}\n\nfunction sendTransactionAndWait(\n client: ThirdwebClient,\n request: TransactionRequest,\n): ResultAsync<TransactionExecutionResult, SigningError | TransactionError> {\n const wallet = Engine.serverWallet({\n client,\n address: request.from,\n });\n\n return ResultAsync.fromPromise(sendTransaction(wallet, request), (err) =>\n SigningError.from(err),\n )\n .map(async (hash) =>\n waitForReceipt({\n client,\n chain: request.chainId,\n transactionHash: hash,\n }),\n )\n .andThen((receipt) => {\n const hash = txHash(receipt.transactionHash);\n\n if (receipt.status === 'reverted') {\n return errAsync(\n TransactionError.new({\n txHash: hash,\n request,\n }),\n );\n }\n return okAsync({\n txHash: hash,\n operation: request.operation,\n });\n });\n}\n\n/**\n * Sends transactions using the provided Thirdweb client and account.\n *\n * Handles {@link TransactionRequest} by signing and sending, {@link ApprovalRequired} by sending both approval and original transactions, and returns validation errors for {@link InsufficientBalanceError}.\n */\nexport function sendWith(client: ThirdwebClient): ExecutionPlanHandler {\n return (\n result: ExecutionPlan,\n ): ResultAsync<\n TransactionExecutionResult,\n SigningError | TransactionError | ValidationError<InsufficientBalanceError>\n > => {\n switch (result.__typename) {\n case 'TransactionRequest':\n return sendTransactionAndWait(client, result);\n\n case 'ApprovalRequired':\n return sendTransactionAndWait(client, result.approval).andThen(() =>\n sendTransactionAndWait(client, result.originalTransaction),\n );\n\n case 'InsufficientBalanceError':\n return errAsync(ValidationError.fromGqlNode(result));\n }\n };\n}\n\nasync function signTypedData(\n client: ThirdwebClient,\n result: PermitTypedDataResponse,\n): Promise<Signature> {\n const wallet = Engine.serverWallet({\n client,\n chain: defineChain({ id: result.domain.chainId }),\n address: result.message.owner,\n });\n\n const signature = await wallet.signTypedData({\n // silence the rest of the type inference\n types: result.types as Record<string, unknown>,\n domain: result.domain,\n primaryType: result.primaryType,\n message: result.message,\n });\n\n return signatureFrom(signature);\n}\n\n/**\n * Signs an ERC20 permit using the provided Thirdweb client and account.\n */\nexport function signERC20PermitWith(client: ThirdwebClient): PermitHandler {\n return (result: PermitTypedDataResponse) => {\n return ResultAsync.fromPromise(signTypedData(client, result), (err) =>\n SigningError.from(err),\n ).map((value) => ({\n deadline: result.message.deadline,\n value,\n }));\n };\n}\n"]}
@@ -1,18 +0,0 @@
1
- import { ThirdwebClient } from 'thirdweb';
2
- import { E as ExecutionPlanHandler, P as PermitHandler } from './types-DwXCLJq5.cjs';
3
- import '@aave/graphql';
4
- import '@aave/types';
5
- import '@urql/core';
6
-
7
- /**
8
- * Sends transactions using the provided Thirdweb client and account.
9
- *
10
- * Handles {@link TransactionRequest} by signing and sending, {@link ApprovalRequired} by sending both approval and original transactions, and returns validation errors for {@link InsufficientBalanceError}.
11
- */
12
- declare function sendWith(client: ThirdwebClient): ExecutionPlanHandler;
13
- /**
14
- * Signs an ERC20 permit using the provided Thirdweb client and account.
15
- */
16
- declare function signERC20PermitWith(client: ThirdwebClient): PermitHandler;
17
-
18
- export { sendWith, signERC20PermitWith };
@@ -1,18 +0,0 @@
1
- import { ThirdwebClient } from 'thirdweb';
2
- import { E as ExecutionPlanHandler, P as PermitHandler } from './types-DwXCLJq5.js';
3
- import '@aave/graphql';
4
- import '@aave/types';
5
- import '@urql/core';
6
-
7
- /**
8
- * Sends transactions using the provided Thirdweb client and account.
9
- *
10
- * Handles {@link TransactionRequest} by signing and sending, {@link ApprovalRequired} by sending both approval and original transactions, and returns validation errors for {@link InsufficientBalanceError}.
11
- */
12
- declare function sendWith(client: ThirdwebClient): ExecutionPlanHandler;
13
- /**
14
- * Signs an ERC20 permit using the provided Thirdweb client and account.
15
- */
16
- declare function signERC20PermitWith(client: ThirdwebClient): PermitHandler;
17
-
18
- export { sendWith, signERC20PermitWith };
package/dist/thirdweb.js DELETED
@@ -1,2 +0,0 @@
1
- import {g as g$1,d,e}from'./chunk-QYPBLR6B.js';import'./chunk-FW4363Y4.js';import {errAsync,ResultAsync,txHash,okAsync,signatureFrom}from'@aave/types';import {Engine,waitForReceipt,defineChain}from'thirdweb';async function f(a,n){let r=await a.sendTransaction({type:"eip1559",chainId:n.chainId,to:n.to,value:BigInt(n.value),data:n.data});return txHash(r.transactionHash)}function t(a,n){let r=Engine.serverWallet({client:a,address:n.from});return ResultAsync.fromPromise(f(r,n),e=>d.from(e)).map(async e=>waitForReceipt({client:a,chain:n.chainId,transactionHash:e})).andThen(e$1=>{let o=txHash(e$1.transactionHash);return e$1.status==="reverted"?errAsync(e.new({txHash:o,request:n})):okAsync({txHash:o,operation:n.operation})})}function x(a){return n=>{switch(n.__typename){case "TransactionRequest":return t(a,n);case "ApprovalRequired":return t(a,n.approval).andThen(()=>t(a,n.originalTransaction));case "InsufficientBalanceError":return errAsync(g$1.fromGqlNode(n))}}}async function g(a,n){let e=await Engine.serverWallet({client:a,chain:defineChain({id:n.domain.chainId}),address:n.message.owner}).signTypedData({types:n.types,domain:n.domain,primaryType:n.primaryType,message:n.message});return signatureFrom(e)}function P(a){return n=>ResultAsync.fromPromise(g(a,n),r=>d.from(r)).map(r=>({deadline:n.message.deadline,value:r}))}export{x as sendWith,P as signERC20PermitWith};//# sourceMappingURL=thirdweb.js.map
2
- //# sourceMappingURL=thirdweb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/thirdweb.ts"],"names":["sendTransaction","wallet","request","txResponse","txHash","sendTransactionAndWait","client","Engine","ResultAsync","err","SigningError","hash","waitForReceipt","receipt","errAsync","TransactionError","okAsync","sendWith","result","ValidationError","signTypedData","signature","defineChain","signatureFrom","signERC20PermitWith","value"],"mappings":"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","file":"thirdweb.js","sourcesContent":["import type {\n ExecutionPlan,\n InsufficientBalanceError,\n PermitTypedDataResponse,\n TransactionRequest,\n} from '@aave/graphql';\nimport {\n errAsync,\n okAsync,\n ResultAsync,\n type Signature,\n signatureFrom,\n type TxHash,\n txHash,\n} from '@aave/types';\nimport {\n defineChain,\n Engine,\n type ThirdwebClient,\n waitForReceipt,\n} from 'thirdweb';\nimport { SigningError, TransactionError, ValidationError } from './errors';\nimport type {\n ExecutionPlanHandler,\n PermitHandler,\n TransactionExecutionResult,\n} from './types';\n\nasync function sendTransaction(\n wallet: Engine.ServerWallet,\n request: TransactionRequest,\n): Promise<TxHash> {\n const txResponse = await wallet.sendTransaction({\n type: 'eip1559',\n chainId: request.chainId,\n to: request.to,\n value: BigInt(request.value),\n data: request.data,\n });\n return txHash(txResponse.transactionHash);\n}\n\nfunction sendTransactionAndWait(\n client: ThirdwebClient,\n request: TransactionRequest,\n): ResultAsync<TransactionExecutionResult, SigningError | TransactionError> {\n const wallet = Engine.serverWallet({\n client,\n address: request.from,\n });\n\n return ResultAsync.fromPromise(sendTransaction(wallet, request), (err) =>\n SigningError.from(err),\n )\n .map(async (hash) =>\n waitForReceipt({\n client,\n chain: request.chainId,\n transactionHash: hash,\n }),\n )\n .andThen((receipt) => {\n const hash = txHash(receipt.transactionHash);\n\n if (receipt.status === 'reverted') {\n return errAsync(\n TransactionError.new({\n txHash: hash,\n request,\n }),\n );\n }\n return okAsync({\n txHash: hash,\n operation: request.operation,\n });\n });\n}\n\n/**\n * Sends transactions using the provided Thirdweb client and account.\n *\n * Handles {@link TransactionRequest} by signing and sending, {@link ApprovalRequired} by sending both approval and original transactions, and returns validation errors for {@link InsufficientBalanceError}.\n */\nexport function sendWith(client: ThirdwebClient): ExecutionPlanHandler {\n return (\n result: ExecutionPlan,\n ): ResultAsync<\n TransactionExecutionResult,\n SigningError | TransactionError | ValidationError<InsufficientBalanceError>\n > => {\n switch (result.__typename) {\n case 'TransactionRequest':\n return sendTransactionAndWait(client, result);\n\n case 'ApprovalRequired':\n return sendTransactionAndWait(client, result.approval).andThen(() =>\n sendTransactionAndWait(client, result.originalTransaction),\n );\n\n case 'InsufficientBalanceError':\n return errAsync(ValidationError.fromGqlNode(result));\n }\n };\n}\n\nasync function signTypedData(\n client: ThirdwebClient,\n result: PermitTypedDataResponse,\n): Promise<Signature> {\n const wallet = Engine.serverWallet({\n client,\n chain: defineChain({ id: result.domain.chainId }),\n address: result.message.owner,\n });\n\n const signature = await wallet.signTypedData({\n // silence the rest of the type inference\n types: result.types as Record<string, unknown>,\n domain: result.domain,\n primaryType: result.primaryType,\n message: result.message,\n });\n\n return signatureFrom(signature);\n}\n\n/**\n * Signs an ERC20 permit using the provided Thirdweb client and account.\n */\nexport function signERC20PermitWith(client: ThirdwebClient): PermitHandler {\n return (result: PermitTypedDataResponse) => {\n return ResultAsync.fromPromise(signTypedData(client, result), (err) =>\n SigningError.from(err),\n ).map((value) => ({\n deadline: result.message.deadline,\n value,\n }));\n };\n}\n"]}
@@ -1,72 +0,0 @@
1
- import { TransactionRequest, TypedSelectionSet, OperationType, ExecutionPlan, InsufficientBalanceError, PermitTypedDataResponse, ERC712Signature, HasProcessedKnownTransactionRequest } from '@aave/graphql';
2
- import { ResultAwareError, TxHash, ResultAsync } from '@aave/types';
3
- import { CombinedError } from '@urql/core';
4
-
5
- /**
6
- * @internal
7
- */
8
- declare enum GraphQLErrorCode {
9
- UNAUTHENTICATED = "UNAUTHENTICATED",
10
- FORBIDDEN = "FORBIDDEN",
11
- INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR",
12
- BAD_USER_INPUT = "BAD_USER_INPUT",
13
- BAD_REQUEST = "BAD_REQUEST"
14
- }
15
- /**
16
- * @internal
17
- */
18
- declare function hasExtensionCode(error: CombinedError, code: GraphQLErrorCode): boolean;
19
- /**
20
- * Error indicating an unexpected condition occurred.
21
- */
22
- declare class UnexpectedError extends ResultAwareError {
23
- name: "UnexpectedError";
24
- }
25
- /**
26
- * Error indicating an error occurred while signing.
27
- */
28
- declare class SigningError extends ResultAwareError {
29
- name: "SigningError";
30
- }
31
- type TransactionErrorArgs = {
32
- txHash: TxHash;
33
- request: TransactionRequest;
34
- link?: string;
35
- };
36
- /**
37
- * Error indicating a transaction failed.
38
- */
39
- declare class TransactionError extends ResultAwareError {
40
- name: "TransactionError";
41
- protected constructor(message: string, cause: TransactionRequest);
42
- static new(args: TransactionErrorArgs): TransactionError;
43
- }
44
- /**
45
- * Error indicating a timeout occurred.
46
- */
47
- declare class TimeoutError extends ResultAwareError {
48
- name: "TimeoutError";
49
- }
50
- /**
51
- * Error indicating an operation was not executed due to a validation error.
52
- * See the `cause` property for more information.
53
- */
54
- declare class ValidationError<TGqlNode extends TypedSelectionSet> extends ResultAwareError {
55
- readonly cause: TGqlNode;
56
- name: "ValidationError";
57
- constructor(cause: TGqlNode);
58
- static fromGqlNode<TGqlNode extends TypedSelectionSet>(error: TGqlNode): ValidationError<TGqlNode>;
59
- }
60
-
61
- type TransactionExecutionResult = {
62
- txHash: TxHash;
63
- operation: OperationType | null;
64
- };
65
- /**
66
- * @internal
67
- */
68
- declare function isHasProcessedKnownTransactionRequest(result: TransactionExecutionResult): result is HasProcessedKnownTransactionRequest;
69
- type ExecutionPlanHandler<T extends ExecutionPlan = ExecutionPlan> = (result: T) => ResultAsync<TransactionExecutionResult, SigningError | TransactionError | ValidationError<InsufficientBalanceError>>;
70
- type PermitHandler = (result: PermitTypedDataResponse) => ResultAsync<ERC712Signature, SigningError>;
71
-
72
- export { type ExecutionPlanHandler as E, GraphQLErrorCode as G, type PermitHandler as P, SigningError as S, type TransactionExecutionResult as T, UnexpectedError as U, ValidationError as V, TransactionError as a, TimeoutError as b, type TransactionErrorArgs as c, hasExtensionCode as h, isHasProcessedKnownTransactionRequest as i };
@@ -1,72 +0,0 @@
1
- import { TransactionRequest, TypedSelectionSet, OperationType, ExecutionPlan, InsufficientBalanceError, PermitTypedDataResponse, ERC712Signature, HasProcessedKnownTransactionRequest } from '@aave/graphql';
2
- import { ResultAwareError, TxHash, ResultAsync } from '@aave/types';
3
- import { CombinedError } from '@urql/core';
4
-
5
- /**
6
- * @internal
7
- */
8
- declare enum GraphQLErrorCode {
9
- UNAUTHENTICATED = "UNAUTHENTICATED",
10
- FORBIDDEN = "FORBIDDEN",
11
- INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR",
12
- BAD_USER_INPUT = "BAD_USER_INPUT",
13
- BAD_REQUEST = "BAD_REQUEST"
14
- }
15
- /**
16
- * @internal
17
- */
18
- declare function hasExtensionCode(error: CombinedError, code: GraphQLErrorCode): boolean;
19
- /**
20
- * Error indicating an unexpected condition occurred.
21
- */
22
- declare class UnexpectedError extends ResultAwareError {
23
- name: "UnexpectedError";
24
- }
25
- /**
26
- * Error indicating an error occurred while signing.
27
- */
28
- declare class SigningError extends ResultAwareError {
29
- name: "SigningError";
30
- }
31
- type TransactionErrorArgs = {
32
- txHash: TxHash;
33
- request: TransactionRequest;
34
- link?: string;
35
- };
36
- /**
37
- * Error indicating a transaction failed.
38
- */
39
- declare class TransactionError extends ResultAwareError {
40
- name: "TransactionError";
41
- protected constructor(message: string, cause: TransactionRequest);
42
- static new(args: TransactionErrorArgs): TransactionError;
43
- }
44
- /**
45
- * Error indicating a timeout occurred.
46
- */
47
- declare class TimeoutError extends ResultAwareError {
48
- name: "TimeoutError";
49
- }
50
- /**
51
- * Error indicating an operation was not executed due to a validation error.
52
- * See the `cause` property for more information.
53
- */
54
- declare class ValidationError<TGqlNode extends TypedSelectionSet> extends ResultAwareError {
55
- readonly cause: TGqlNode;
56
- name: "ValidationError";
57
- constructor(cause: TGqlNode);
58
- static fromGqlNode<TGqlNode extends TypedSelectionSet>(error: TGqlNode): ValidationError<TGqlNode>;
59
- }
60
-
61
- type TransactionExecutionResult = {
62
- txHash: TxHash;
63
- operation: OperationType | null;
64
- };
65
- /**
66
- * @internal
67
- */
68
- declare function isHasProcessedKnownTransactionRequest(result: TransactionExecutionResult): result is HasProcessedKnownTransactionRequest;
69
- type ExecutionPlanHandler<T extends ExecutionPlan = ExecutionPlan> = (result: T) => ResultAsync<TransactionExecutionResult, SigningError | TransactionError | ValidationError<InsufficientBalanceError>>;
70
- type PermitHandler = (result: PermitTypedDataResponse) => ResultAsync<ERC712Signature, SigningError>;
71
-
72
- export { type ExecutionPlanHandler as E, GraphQLErrorCode as G, type PermitHandler as P, SigningError as S, type TransactionExecutionResult as T, UnexpectedError as U, ValidationError as V, TransactionError as a, TimeoutError as b, type TransactionErrorArgs as c, hasExtensionCode as h, isHasProcessedKnownTransactionRequest as i };
package/dist/viem.cjs DELETED
@@ -1,4 +0,0 @@
1
- 'use strict';var types=require('@aave/types'),viem=require('viem'),actions=require('viem/actions'),chains=require('viem/chains');var o=class extends types.ResultAwareError{name="SigningError"},i=class e extends types.ResultAwareError{name="TransactionError";constructor(n,t){super(n,{cause:t});}static new(n){let{txHash:t,request:r,link:s}=n,P=s?`Transaction failed: ${t}
2
- \u2192 View on explorer: ${s}`:`Transaction failed: ${t}`;return new e(P,r)}};var c=class e extends types.ResultAwareError{constructor(t){super(t.__typename);this.cause=t;}name="ValidationError";static fromGqlNode(t){return new e(t)}};var N=viem.defineChain({id:146,name:"Sonic",nativeCurrency:{name:"Sonic",symbol:"S",decimals:18},rpcUrls:{default:{http:["https://sonicscan.org"]}},blockExplorers:{default:{name:"SonicScan",url:"https://sonicscan.org"}}}),q=viem.defineChain({id:1868,name:"Soneium",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://soneium.blockscout.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://soneium.blockscout.com"}}}),K={[types.chainId(chains.mainnet.id)]:chains.mainnet,[types.chainId(chains.arbitrum.id)]:chains.arbitrum,[types.chainId(chains.avalanche.id)]:chains.avalanche,[types.chainId(chains.base.id)]:chains.base,[types.chainId(chains.baseSepolia.id)]:chains.baseSepolia,[types.chainId(chains.bsc.id)]:chains.bsc,[types.chainId(chains.celo.id)]:chains.celo,[types.chainId(chains.gnosis.id)]:chains.gnosis,[types.chainId(chains.linea.id)]:chains.linea,[types.chainId(chains.metis.id)]:chains.metis,[types.chainId(chains.optimism.id)]:chains.optimism,[types.chainId(chains.polygon.id)]:chains.polygon,[types.chainId(chains.scroll.id)]:chains.scroll,[types.chainId(chains.zksync.id)]:chains.zksync,[types.chainId(N.id)]:N,[types.chainId(q.id)]:q};async function V(e,n){return actions.sendTransaction(e,{account:n.from,data:n.data,to:n.to,value:BigInt(n.value),chain:e.chain})}function $(e,n,t){let r=e?.blockExplorers?.default?.url,s=r&&`${r.replace(/\/+$/,"")}/tx/${n}`;return i.new({txHash:n,request:t,link:s})}function d(e,n){return types.ResultAsync.fromPromise(V(e,n),t=>o.from(t)).map(async t=>actions.waitForTransactionReceipt(e,{hash:t,pollingInterval:100,retryCount:20,retryDelay:50})).andThen(t=>{let r=types.txHash(t.transactionHash);return t.status==="reverted"?types.errAsync($(e.chain,r,n)):types.okAsync({txHash:r,operation:n.operation})})}function M(e){return n=>{switch(n.__typename){case "TransactionRequest":return d(e,n);case "ApprovalRequired":return d(e,n.approval).andThen(()=>d(e,n.originalTransaction));case "InsufficientBalanceError":return types.errAsync(c.fromGqlNode(n))}}}function X(e){return n=>(types.invariant(e.account,"Wallet account is required"),types.ResultAsync.fromPromise(actions.signTypedData(e,{account:e.account,domain:n.domain,types:n.types,primaryType:n.primaryType,message:n.message}),t=>o.from(t)).map(t=>({deadline:n.message.deadline,value:types.signatureFrom(t)})))}
3
- exports.sendTransactionAndWait=d;exports.sendWith=M;exports.signERC20PermitWith=X;exports.supportedChains=K;exports.transactionError=$;//# sourceMappingURL=viem.cjs.map
4
- //# sourceMappingURL=viem.cjs.map
package/dist/viem.cjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/errors.ts","../src/viem.ts"],"names":["SigningError","ResultAwareError","TransactionError","_TransactionError","message","cause","args","txHash","request","link","ValidationError","_ValidationError","error","sonic","defineChain","soneium","supportedChains","chainId","mainnet","arbitrum","avalanche","base","baseSepolia","bsc","celo","gnosis","linea","metis","optimism","polygon","scroll","zksync","sendTransaction","walletClient","sendEip1559Transaction","transactionError","chain","baseUrl","sendTransactionAndWait","ResultAsync","err","hash","waitForTransactionReceipt","receipt","errAsync","okAsync","sendWith","result","signERC20PermitWith","invariant","signTypedData","hex","signatureFrom"],"mappings":"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","file":"viem.cjs","sourcesContent":["import type { TransactionRequest, TypedSelectionSet } from '@aave/graphql';\nimport { ResultAwareError, type TxHash } from '@aave/types';\nimport type { CombinedError } from '@urql/core';\n\n/**\n * @internal\n */\nexport enum GraphQLErrorCode {\n UNAUTHENTICATED = 'UNAUTHENTICATED',\n FORBIDDEN = 'FORBIDDEN',\n INTERNAL_SERVER_ERROR = 'INTERNAL_SERVER_ERROR',\n BAD_USER_INPUT = 'BAD_USER_INPUT',\n BAD_REQUEST = 'BAD_REQUEST',\n}\n/**\n * @internal\n */\nexport function hasExtensionCode(\n error: CombinedError,\n code: GraphQLErrorCode,\n): boolean {\n return error.graphQLErrors.some((gqlError) => {\n return gqlError.extensions?.code === code;\n });\n}\n\n/**\n * Error indicating an unexpected condition occurred.\n */\nexport class UnexpectedError extends ResultAwareError {\n name = 'UnexpectedError' as const;\n}\n\n/**\n * Error indicating an error occurred while signing.\n */\nexport class SigningError extends ResultAwareError {\n name = 'SigningError' as const;\n}\n\nexport type TransactionErrorArgs = {\n txHash: TxHash;\n request: TransactionRequest;\n link?: string;\n};\n\n/**\n * Error indicating a transaction failed.\n */\nexport class TransactionError extends ResultAwareError {\n name = 'TransactionError' as const;\n\n protected constructor(message: string, cause: TransactionRequest) {\n super(message, { cause });\n }\n\n static new(args: TransactionErrorArgs) {\n const { txHash, request, link } = args;\n const message = link\n ? `Transaction failed: ${txHash}\\n→ View on explorer: ${link}`\n : `Transaction failed: ${txHash}`;\n return new TransactionError(message, request);\n }\n}\n\n/**\n * Error indicating a timeout occurred.\n */\nexport class TimeoutError extends ResultAwareError {\n name = 'TimeoutError' as const;\n}\n\n/**\n * Error indicating an operation was not executed due to a validation error.\n * See the `cause` property for more information.\n */\nexport class ValidationError<\n TGqlNode extends TypedSelectionSet,\n> extends ResultAwareError {\n name = 'ValidationError' as const;\n\n constructor(public readonly cause: TGqlNode) {\n super(cause.__typename);\n }\n\n static fromGqlNode<TGqlNode extends TypedSelectionSet>(\n error: TGqlNode,\n ): ValidationError<TGqlNode> {\n return new ValidationError(error);\n }\n}\n","import type {\n ExecutionPlan,\n InsufficientBalanceError,\n PermitTypedDataResponse,\n TransactionRequest,\n} from '@aave/graphql';\nimport {\n type ChainId,\n chainId,\n errAsync,\n invariant,\n okAsync,\n ResultAsync,\n signatureFrom,\n type TxHash,\n txHash,\n} from '@aave/types';\nimport {\n type Chain,\n defineChain,\n type Hash,\n type TypedData,\n type TypedDataDomain,\n type WalletClient,\n} from 'viem';\nimport {\n sendTransaction as sendEip1559Transaction,\n signTypedData,\n waitForTransactionReceipt,\n} from 'viem/actions';\n// chains.ts\nimport {\n arbitrum,\n avalanche,\n base,\n baseSepolia,\n bsc,\n celo,\n gnosis,\n linea,\n mainnet,\n metis,\n optimism,\n polygon,\n scroll,\n zksync,\n} from 'viem/chains';\nimport { SigningError, TransactionError, ValidationError } from './errors';\nimport type {\n ExecutionPlanHandler,\n PermitHandler,\n TransactionExecutionResult,\n} from './types';\n\n// Other chains\nconst sonic: Chain = defineChain({\n id: 146,\n name: 'Sonic',\n nativeCurrency: { name: 'Sonic', symbol: 'S', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://sonicscan.org'], // Replace with actual RPC URL if needed\n },\n },\n blockExplorers: {\n default: {\n name: 'SonicScan',\n url: 'https://sonicscan.org',\n },\n },\n});\n\nconst soneium: Chain = defineChain({\n id: 1868,\n name: 'Soneium',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://soneium.blockscout.com'], // Replace with actual RPC URL if needed\n },\n },\n blockExplorers: {\n default: {\n name: 'Blockscout',\n url: 'https://soneium.blockscout.com',\n },\n },\n});\n\n/**\n * @internal\n */\nexport const supportedChains: Record<\n ChainId,\n ReturnType<typeof defineChain>\n> = {\n [chainId(mainnet.id)]: mainnet,\n [chainId(arbitrum.id)]: arbitrum,\n [chainId(avalanche.id)]: avalanche,\n [chainId(base.id)]: base,\n [chainId(baseSepolia.id)]: baseSepolia,\n [chainId(bsc.id)]: bsc,\n [chainId(celo.id)]: celo,\n [chainId(gnosis.id)]: gnosis,\n [chainId(linea.id)]: linea,\n [chainId(metis.id)]: metis,\n [chainId(optimism.id)]: optimism,\n [chainId(polygon.id)]: polygon,\n [chainId(scroll.id)]: scroll,\n [chainId(zksync.id)]: zksync,\n [chainId(sonic.id)]: sonic,\n [chainId(soneium.id)]: soneium,\n};\n\nasync function sendTransaction(\n walletClient: WalletClient,\n request: TransactionRequest,\n): Promise<Hash> {\n return sendEip1559Transaction(walletClient, {\n account: request.from,\n data: request.data,\n to: request.to,\n value: BigInt(request.value),\n chain: walletClient.chain,\n });\n}\n\n/**\n * @internal\n */\nexport function transactionError(\n chain: Chain | undefined,\n txHash: TxHash,\n request: TransactionRequest,\n): TransactionError {\n const baseUrl = chain?.blockExplorers?.default?.url;\n const link = baseUrl && `${baseUrl.replace(/\\/+$/, '')}/tx/${txHash}`;\n\n return TransactionError.new({ txHash, request, link });\n}\n\n/**\n * @internal\n */\nexport function sendTransactionAndWait(\n walletClient: WalletClient,\n request: TransactionRequest,\n): ResultAsync<TransactionExecutionResult, SigningError | TransactionError> {\n // TODO: verify it's on the correct chain, ask to switch if possible\n // TODO: verify if wallet account is correct, switch if possible\n\n return ResultAsync.fromPromise(\n sendTransaction(walletClient, request),\n (err) => SigningError.from(err),\n )\n .map(async (hash) =>\n waitForTransactionReceipt(walletClient, {\n hash,\n pollingInterval: 100,\n retryCount: 20,\n retryDelay: 50,\n }),\n )\n .andThen((receipt) => {\n const hash = txHash(receipt.transactionHash);\n\n if (receipt.status === 'reverted') {\n return errAsync(transactionError(walletClient.chain, hash, request));\n }\n return okAsync({\n txHash: hash,\n operation: request.operation,\n });\n });\n}\n\n/**\n * Sends transactions using the provided wallet client.\n *\n * Handles {@link TransactionRequest} by signing and sending, {@link ApprovalRequired} by sending both approval and original transactions, and returns validation errors for {@link InsufficientBalanceError}.\n */\nexport function sendWith(walletClient: WalletClient): ExecutionPlanHandler {\n return (\n result: ExecutionPlan,\n ): ResultAsync<\n TransactionExecutionResult,\n SigningError | TransactionError | ValidationError<InsufficientBalanceError>\n > => {\n switch (result.__typename) {\n case 'TransactionRequest':\n return sendTransactionAndWait(walletClient, result);\n\n case 'ApprovalRequired':\n return sendTransactionAndWait(walletClient, result.approval).andThen(\n () =>\n sendTransactionAndWait(walletClient, result.originalTransaction),\n );\n\n case 'InsufficientBalanceError':\n return errAsync(ValidationError.fromGqlNode(result));\n }\n };\n}\n\n/**\n * Signs an ERC20 permit using the provided wallet client.\n */\nexport function signERC20PermitWith(walletClient: WalletClient): PermitHandler {\n return (result: PermitTypedDataResponse) => {\n invariant(walletClient.account, 'Wallet account is required');\n\n return ResultAsync.fromPromise(\n signTypedData(walletClient, {\n account: walletClient.account,\n domain: result.domain as TypedDataDomain,\n types: result.types as TypedData,\n primaryType: result.primaryType as keyof typeof result.types,\n message: result.message,\n }),\n (err) => SigningError.from(err),\n ).map((hex) => ({\n deadline: result.message.deadline,\n value: signatureFrom(hex),\n }));\n };\n}\n"]}
package/dist/viem.d.cts DELETED
@@ -1,30 +0,0 @@
1
- import { TransactionRequest } from '@aave/graphql';
2
- import { ChainId, TxHash, ResultAsync } from '@aave/types';
3
- import { defineChain, Chain, WalletClient } from 'viem';
4
- import { a as TransactionError, T as TransactionExecutionResult, S as SigningError, E as ExecutionPlanHandler, P as PermitHandler } from './types-DwXCLJq5.cjs';
5
- import '@urql/core';
6
-
7
- /**
8
- * @internal
9
- */
10
- declare const supportedChains: Record<ChainId, ReturnType<typeof defineChain>>;
11
- /**
12
- * @internal
13
- */
14
- declare function transactionError(chain: Chain | undefined, txHash: TxHash, request: TransactionRequest): TransactionError;
15
- /**
16
- * @internal
17
- */
18
- declare function sendTransactionAndWait(walletClient: WalletClient, request: TransactionRequest): ResultAsync<TransactionExecutionResult, SigningError | TransactionError>;
19
- /**
20
- * Sends transactions using the provided wallet client.
21
- *
22
- * Handles {@link TransactionRequest} by signing and sending, {@link ApprovalRequired} by sending both approval and original transactions, and returns validation errors for {@link InsufficientBalanceError}.
23
- */
24
- declare function sendWith(walletClient: WalletClient): ExecutionPlanHandler;
25
- /**
26
- * Signs an ERC20 permit using the provided wallet client.
27
- */
28
- declare function signERC20PermitWith(walletClient: WalletClient): PermitHandler;
29
-
30
- export { sendTransactionAndWait, sendWith, signERC20PermitWith, supportedChains, transactionError };
package/dist/viem.d.ts DELETED
@@ -1,30 +0,0 @@
1
- import { TransactionRequest } from '@aave/graphql';
2
- import { ChainId, TxHash, ResultAsync } from '@aave/types';
3
- import { defineChain, Chain, WalletClient } from 'viem';
4
- import { a as TransactionError, T as TransactionExecutionResult, S as SigningError, E as ExecutionPlanHandler, P as PermitHandler } from './types-DwXCLJq5.js';
5
- import '@urql/core';
6
-
7
- /**
8
- * @internal
9
- */
10
- declare const supportedChains: Record<ChainId, ReturnType<typeof defineChain>>;
11
- /**
12
- * @internal
13
- */
14
- declare function transactionError(chain: Chain | undefined, txHash: TxHash, request: TransactionRequest): TransactionError;
15
- /**
16
- * @internal
17
- */
18
- declare function sendTransactionAndWait(walletClient: WalletClient, request: TransactionRequest): ResultAsync<TransactionExecutionResult, SigningError | TransactionError>;
19
- /**
20
- * Sends transactions using the provided wallet client.
21
- *
22
- * Handles {@link TransactionRequest} by signing and sending, {@link ApprovalRequired} by sending both approval and original transactions, and returns validation errors for {@link InsufficientBalanceError}.
23
- */
24
- declare function sendWith(walletClient: WalletClient): ExecutionPlanHandler;
25
- /**
26
- * Signs an ERC20 permit using the provided wallet client.
27
- */
28
- declare function signERC20PermitWith(walletClient: WalletClient): PermitHandler;
29
-
30
- export { sendTransactionAndWait, sendWith, signERC20PermitWith, supportedChains, transactionError };
package/dist/viem.js DELETED
@@ -1,2 +0,0 @@
1
- export{c as sendTransactionAndWait,d as sendWith,e as signERC20PermitWith,a as supportedChains,b as transactionError}from'./chunk-G5WP6QBY.js';import'./chunk-QYPBLR6B.js';import'./chunk-FW4363Y4.js';//# sourceMappingURL=viem.js.map
2
- //# sourceMappingURL=viem.js.map
package/dist/viem.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"viem.js"}