@aave/client 0.6.0 → 0.7.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.
- package/dist/AaveClient-C-OkXfVz.d.ts +85 -0
- package/dist/AaveClient-PHUEzt7l.d.cts +85 -0
- package/dist/actions/index.cjs +2 -0
- package/dist/actions/index.cjs.map +1 -0
- package/dist/actions/index.d.cts +1117 -0
- package/dist/actions/index.d.ts +1117 -0
- package/dist/actions/index.js +2 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/chunk-BLZHGYNH.js +2 -0
- package/dist/chunk-BLZHGYNH.js.map +1 -0
- package/dist/chunk-FW4363Y4.js +2 -0
- package/dist/chunk-FW4363Y4.js.map +1 -0
- package/dist/chunk-QQSK6HIZ.js +3 -0
- package/dist/chunk-QQSK6HIZ.js.map +1 -0
- package/dist/chunk-V4DWF6LT.js +3 -0
- package/dist/chunk-V4DWF6LT.js.map +1 -0
- package/dist/ethers.cjs +2 -0
- package/dist/ethers.cjs.map +1 -0
- package/dist/ethers.d.cts +22 -0
- package/dist/ethers.d.ts +22 -0
- package/dist/ethers.js +2 -0
- package/dist/ethers.js.map +1 -0
- package/dist/index.cjs +3 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +22 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/magic-string.es-PTUXR566.js +14 -0
- package/dist/magic-string.es-PTUXR566.js.map +1 -0
- package/dist/privy.cjs +3 -0
- package/dist/privy.cjs.map +1 -0
- package/dist/privy.d.cts +18 -0
- package/dist/privy.d.ts +18 -0
- package/dist/privy.js +2 -0
- package/dist/privy.js.map +1 -0
- package/dist/test-utils.cjs +450 -0
- package/dist/test-utils.cjs.map +1 -0
- package/dist/test-utils.d.cts +41 -0
- package/dist/test-utils.d.ts +41 -0
- package/dist/test-utils.js +438 -0
- package/dist/test-utils.js.map +1 -0
- package/dist/thirdweb.cjs +3 -0
- package/dist/thirdweb.cjs.map +1 -0
- package/dist/thirdweb.d.cts +18 -0
- package/dist/thirdweb.d.ts +18 -0
- package/dist/thirdweb.js +3 -0
- package/dist/thirdweb.js.map +1 -0
- package/dist/types-ieyj0UmJ.d.cts +16 -0
- package/dist/types-ieyj0UmJ.d.ts +16 -0
- package/dist/viem.cjs +3 -0
- package/dist/viem.cjs.map +1 -0
- package/dist/viem.d.cts +30 -0
- package/dist/viem.d.ts +30 -0
- package/dist/viem.js +2 -0
- package/dist/viem.js.map +1 -0
- package/package.json +4 -3
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use strict';var core=require('@aave/core'),types=require('@aave/types'),thirdweb=require('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 types.txHash(r.transactionHash)}function i(a,n){let r=thirdweb.Engine.serverWallet({client:a,address:n.from});return types.ResultAsync.fromPromise(f(r,n),e=>core.SigningError.from(e)).map(async e=>thirdweb.waitForReceipt({client:a,chain:{id:n.chainId,rpc:`https://${n.chainId}.rpc.thirdweb.com/${a.clientId}`},transactionHash:e})).andThen(e=>{let t=types.txHash(e.transactionHash);return e.status==="reverted"?types.errAsync(core.TransactionError.new({txHash:t,request:n})):types.okAsync({txHash:t,operation:n.operation})})}function x(a){return n=>{switch(n.__typename){case "TransactionRequest":return i(a,n);case "ApprovalRequired":return i(a,n.approval).andThen(()=>i(a,n.originalTransaction));case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(n))}}}async function g(a,n){let e=await thirdweb.Engine.serverWallet({client:a,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(e)}function P(a){return n=>types.ResultAsync.fromPromise(g(a,n),r=>core.SigningError.from(r)).map(r=>({deadline:n.message.deadline,value:r}))}
|
|
2
|
+
exports.sendWith=x;exports.signERC20PermitWith=P;//# sourceMappingURL=thirdweb.cjs.map
|
|
3
|
+
//# sourceMappingURL=thirdweb.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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.cjs","sourcesContent":["import { SigningError, TransactionError, ValidationError } from '@aave/core';\nimport 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 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: {\n id: request.chainId,\n rpc: `https://${request.chainId}.rpc.thirdweb.com/${client.clientId}`,\n },\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"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ThirdwebClient } from 'thirdweb';
|
|
2
|
+
import { E as ExecutionPlanHandler, P as PermitHandler } from './types-ieyj0UmJ.cjs';
|
|
3
|
+
import '@aave/core';
|
|
4
|
+
import '@aave/graphql';
|
|
5
|
+
import '@aave/types';
|
|
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 };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ThirdwebClient } from 'thirdweb';
|
|
2
|
+
import { E as ExecutionPlanHandler, P as PermitHandler } from './types-ieyj0UmJ.js';
|
|
3
|
+
import '@aave/core';
|
|
4
|
+
import '@aave/graphql';
|
|
5
|
+
import '@aave/types';
|
|
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
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import'./chunk-FW4363Y4.js';import {ValidationError,SigningError,TransactionError}from'@aave/core';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 i(a,n){let r=Engine.serverWallet({client:a,address:n.from});return ResultAsync.fromPromise(f(r,n),e=>SigningError.from(e)).map(async e=>waitForReceipt({client:a,chain:{id:n.chainId,rpc:`https://${n.chainId}.rpc.thirdweb.com/${a.clientId}`},transactionHash:e})).andThen(e=>{let t=txHash(e.transactionHash);return e.status==="reverted"?errAsync(TransactionError.new({txHash:t,request:n})):okAsync({txHash:t,operation:n.operation})})}function x(a){return n=>{switch(n.__typename){case "TransactionRequest":return i(a,n);case "ApprovalRequired":return i(a,n.approval).andThen(()=>i(a,n.originalTransaction));case "InsufficientBalanceError":return errAsync(ValidationError.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=>SigningError.from(r)).map(r=>({deadline:n.message.deadline,value:r}))}
|
|
2
|
+
export{x as sendWith,P as signERC20PermitWith};//# sourceMappingURL=thirdweb.js.map
|
|
3
|
+
//# sourceMappingURL=thirdweb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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 { SigningError, TransactionError, ValidationError } from '@aave/core';\nimport 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 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: {\n id: request.chainId,\n rpc: `https://${request.chainId}.rpc.thirdweb.com/${client.clientId}`,\n },\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"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SigningError, TransactionError, ValidationError } from '@aave/core';
|
|
2
|
+
import { OperationType, ExecutionPlan, InsufficientBalanceError, PermitTypedDataResponse, ERC712Signature, HasProcessedKnownTransactionRequest } from '@aave/graphql';
|
|
3
|
+
import { TxHash, ResultAsync } from '@aave/types';
|
|
4
|
+
|
|
5
|
+
type TransactionExecutionResult = {
|
|
6
|
+
txHash: TxHash;
|
|
7
|
+
operation: OperationType | null;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
declare function isHasProcessedKnownTransactionRequest(result: TransactionExecutionResult): result is HasProcessedKnownTransactionRequest;
|
|
13
|
+
type ExecutionPlanHandler<T extends ExecutionPlan = ExecutionPlan> = (result: T) => ResultAsync<TransactionExecutionResult, SigningError | TransactionError | ValidationError<InsufficientBalanceError>>;
|
|
14
|
+
type PermitHandler = (result: PermitTypedDataResponse) => ResultAsync<ERC712Signature, SigningError>;
|
|
15
|
+
|
|
16
|
+
export { type ExecutionPlanHandler as E, type PermitHandler as P, type TransactionExecutionResult as T, isHasProcessedKnownTransactionRequest as i };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SigningError, TransactionError, ValidationError } from '@aave/core';
|
|
2
|
+
import { OperationType, ExecutionPlan, InsufficientBalanceError, PermitTypedDataResponse, ERC712Signature, HasProcessedKnownTransactionRequest } from '@aave/graphql';
|
|
3
|
+
import { TxHash, ResultAsync } from '@aave/types';
|
|
4
|
+
|
|
5
|
+
type TransactionExecutionResult = {
|
|
6
|
+
txHash: TxHash;
|
|
7
|
+
operation: OperationType | null;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
declare function isHasProcessedKnownTransactionRequest(result: TransactionExecutionResult): result is HasProcessedKnownTransactionRequest;
|
|
13
|
+
type ExecutionPlanHandler<T extends ExecutionPlan = ExecutionPlan> = (result: T) => ResultAsync<TransactionExecutionResult, SigningError | TransactionError | ValidationError<InsufficientBalanceError>>;
|
|
14
|
+
type PermitHandler = (result: PermitTypedDataResponse) => ResultAsync<ERC712Signature, SigningError>;
|
|
15
|
+
|
|
16
|
+
export { type ExecutionPlanHandler as E, type PermitHandler as P, type TransactionExecutionResult as T, isHasProcessedKnownTransactionRequest as i };
|
package/dist/viem.cjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use strict';var core=require('@aave/core'),types=require('@aave/types'),viem=require('viem'),actions=require('viem/actions'),chains=require('viem/chains');var x=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"}}}),R=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"}}}),j={[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(x.id)]:x,[types.chainId(R.id)]:R};async function $(a,n){return actions.sendTransaction(a,{account:n.from,data:n.data,to:n.to,value:BigInt(n.value),chain:a.chain})}function F(a,n,e){let t=a?.blockExplorers?.default?.url,H=t&&`${t.replace(/\/+$/,"")}/tx/${n}`;return core.TransactionError.new({txHash:n,request:e,link:H})}function i(a,n){return types.ResultAsync.fromPromise($(a,n),e=>core.SigningError.from(e)).map(async e=>actions.waitForTransactionReceipt(a,{hash:e,pollingInterval:100,retryCount:20,retryDelay:50})).andThen(e=>{let t=types.txHash(e.transactionHash);return e.status==="reverted"?types.errAsync(F(a.chain,t,n)):types.okAsync({txHash:t,operation:n.operation})})}function J(a){return n=>{switch(n.__typename){case "TransactionRequest":return i(a,n);case "ApprovalRequired":return i(a,n.approval).andThen(()=>i(a,n.originalTransaction));case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(n))}}}function K(a){return n=>(types.invariant(a.account,"Wallet account is required"),types.ResultAsync.fromPromise(actions.signTypedData(a,{account:a.account,domain:n.domain,types:n.types,primaryType:n.primaryType,message:n.message}),e=>core.SigningError.from(e)).map(e=>({deadline:n.message.deadline,value:types.signatureFrom(e)})))}
|
|
2
|
+
exports.sendTransactionAndWait=i;exports.sendWith=J;exports.signERC20PermitWith=K;exports.supportedChains=j;exports.transactionError=F;//# sourceMappingURL=viem.cjs.map
|
|
3
|
+
//# sourceMappingURL=viem.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/viem.ts"],"names":["sonic","defineChain","soneium","supportedChains","chainId","mainnet","arbitrum","avalanche","base","baseSepolia","bsc","celo","gnosis","linea","metis","optimism","polygon","scroll","zksync","sendTransaction","walletClient","request","sendEip1559Transaction","transactionError","chain","txHash","baseUrl","link","TransactionError","sendTransactionAndWait","ResultAsync","err","SigningError","hash","waitForTransactionReceipt","receipt","errAsync","okAsync","sendWith","result","ValidationError","signERC20PermitWith","invariant","signTypedData","hex","signatureFrom"],"mappings":"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","file":"viem.cjs","sourcesContent":["import { SigningError, TransactionError, ValidationError } from '@aave/core';\nimport 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 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
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TransactionError, SigningError } from '@aave/core';
|
|
2
|
+
import { TransactionRequest } from '@aave/graphql';
|
|
3
|
+
import { ChainId, TxHash, ResultAsync } from '@aave/types';
|
|
4
|
+
import { defineChain, Chain, WalletClient } from 'viem';
|
|
5
|
+
import { T as TransactionExecutionResult, E as ExecutionPlanHandler, P as PermitHandler } from './types-ieyj0UmJ.cjs';
|
|
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
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TransactionError, SigningError } from '@aave/core';
|
|
2
|
+
import { TransactionRequest } from '@aave/graphql';
|
|
3
|
+
import { ChainId, TxHash, ResultAsync } from '@aave/types';
|
|
4
|
+
import { defineChain, Chain, WalletClient } from 'viem';
|
|
5
|
+
import { T as TransactionExecutionResult, E as ExecutionPlanHandler, P as PermitHandler } from './types-ieyj0UmJ.js';
|
|
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
ADDED
package/dist/viem.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"viem.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aave/client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "The official JavaScript client for the Aave API",
|
|
5
5
|
"repository": {
|
|
6
6
|
"directory": "packages/client",
|
|
@@ -70,8 +70,9 @@
|
|
|
70
70
|
"dependencies": {
|
|
71
71
|
"@urql/core": "^5.2.0",
|
|
72
72
|
"graphql": "^16.11.0",
|
|
73
|
-
"@aave/graphql": "0.
|
|
74
|
-
"@aave/
|
|
73
|
+
"@aave/graphql": "0.7.0",
|
|
74
|
+
"@aave/core": "0.1.0",
|
|
75
|
+
"@aave/types": "0.2.0"
|
|
75
76
|
},
|
|
76
77
|
"devDependencies": {
|
|
77
78
|
"@bgd-labs/aave-address-book": "^4.25.3",
|