@coinbase/agentkit 0.9.1 → 0.10.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 +181 -54
- package/dist/action-providers/across/acrossActionProvider.js +3 -3
- package/dist/action-providers/cdp/cdpApiActionProvider.d.ts +3 -12
- package/dist/action-providers/cdp/cdpApiActionProvider.js +2 -79
- package/dist/action-providers/cdp/cdpApiActionProvider.test.js +0 -125
- package/dist/action-providers/cdp/cdpEvmWalletActionProvider.d.ts +58 -0
- package/dist/action-providers/cdp/cdpEvmWalletActionProvider.js +351 -0
- package/dist/action-providers/cdp/cdpEvmWalletActionProvider.test.d.ts +1 -0
- package/dist/action-providers/cdp/cdpEvmWalletActionProvider.test.js +520 -0
- package/dist/action-providers/cdp/cdpSmartWalletActionProvider.d.ts +57 -0
- package/dist/action-providers/cdp/cdpSmartWalletActionProvider.js +337 -0
- package/dist/action-providers/cdp/cdpSmartWalletActionProvider.test.d.ts +1 -0
- package/dist/action-providers/cdp/cdpSmartWalletActionProvider.test.js +463 -0
- package/dist/action-providers/cdp/index.d.ts +3 -0
- package/dist/action-providers/cdp/index.js +3 -0
- package/dist/action-providers/cdp/schemas.d.ts +38 -9
- package/dist/action-providers/cdp/schemas.js +49 -6
- package/dist/action-providers/cdp/spendPermissionUtils.d.ts +24 -0
- package/dist/action-providers/cdp/spendPermissionUtils.js +66 -0
- package/dist/action-providers/cdp/swapUtils.d.ts +32 -0
- package/dist/action-providers/cdp/swapUtils.js +142 -0
- package/dist/action-providers/clanker/clankerActionProvider.d.ts +43 -0
- package/dist/action-providers/clanker/clankerActionProvider.js +130 -0
- package/dist/action-providers/clanker/clankerActionProvider.test.d.ts +4 -0
- package/dist/action-providers/clanker/clankerActionProvider.test.js +119 -0
- package/dist/action-providers/clanker/index.d.ts +2 -0
- package/dist/action-providers/clanker/index.js +18 -0
- package/dist/action-providers/clanker/schemas.d.ts +56 -0
- package/dist/action-providers/clanker/schemas.js +47 -0
- package/dist/action-providers/clanker/utils.d.ts +9 -0
- package/dist/action-providers/clanker/utils.js +23 -0
- package/dist/action-providers/compound/constants.d.ts +1 -1
- package/dist/action-providers/compound/constants.js +2 -2
- package/dist/action-providers/erc20/constants.d.ts +35 -135
- package/dist/action-providers/erc20/constants.js +37 -189
- package/dist/action-providers/erc20/erc20ActionProvider.d.ts +9 -1
- package/dist/action-providers/erc20/erc20ActionProvider.js +87 -35
- package/dist/action-providers/erc20/erc20ActionProvider.test.js +115 -52
- package/dist/action-providers/erc20/schemas.d.ts +25 -12
- package/dist/action-providers/erc20/schemas.js +34 -6
- package/dist/action-providers/erc20/utils.d.ts +19 -0
- package/dist/action-providers/erc20/utils.js +54 -0
- package/dist/action-providers/flaunch/constants.d.ts +1 -1
- package/dist/action-providers/flaunch/constants.js +2 -2
- package/dist/action-providers/flaunch/flaunchActionProvider.js +3 -11
- package/dist/action-providers/flaunch/flaunchActionProvider.test.js +5 -0
- package/dist/action-providers/index.d.ts +4 -0
- package/dist/action-providers/index.js +4 -0
- package/dist/action-providers/jupiter/schemas.d.ts +1 -1
- package/dist/action-providers/moonwell/schemas.d.ts +2 -2
- package/dist/action-providers/morpho/morphoActionProvider.js +5 -5
- package/dist/action-providers/morpho/schemas.d.ts +2 -2
- package/dist/action-providers/pyth/pythActionProvider.js +5 -0
- package/dist/action-providers/pyth/pythActionProvider.test.js +5 -1
- package/dist/action-providers/superfluid/constants.d.ts +814 -0
- package/dist/action-providers/superfluid/constants.js +2826 -0
- package/dist/action-providers/superfluid/graphQueries/endpoints.d.ts +2 -0
- package/dist/action-providers/superfluid/graphQueries/endpoints.js +5 -0
- package/dist/action-providers/superfluid/graphQueries/queries.d.ts +1 -0
- package/dist/action-providers/superfluid/graphQueries/queries.js +35 -0
- package/dist/action-providers/superfluid/graphQueries/superfluidGraphQueries.d.ts +8 -0
- package/dist/action-providers/superfluid/graphQueries/superfluidGraphQueries.js +24 -0
- package/dist/action-providers/superfluid/graphQueries/types.d.ts +27 -0
- package/dist/action-providers/superfluid/graphQueries/types.js +2 -0
- package/dist/action-providers/superfluid/index.d.ts +7 -0
- package/dist/action-providers/superfluid/index.js +23 -0
- package/dist/action-providers/superfluid/schemas.d.ts +86 -0
- package/dist/action-providers/superfluid/schemas.js +103 -0
- package/dist/action-providers/superfluid/superfluidActionProvider.d.ts +20 -0
- package/dist/action-providers/superfluid/superfluidActionProvider.js +36 -0
- package/dist/action-providers/superfluid/superfluidPoolActionProvider.d.ts +46 -0
- package/dist/action-providers/superfluid/superfluidPoolActionProvider.js +143 -0
- package/dist/action-providers/superfluid/superfluidPoolActionProvider.test.d.ts +1 -0
- package/dist/action-providers/superfluid/superfluidPoolActionProvider.test.js +92 -0
- package/dist/action-providers/superfluid/superfluidQueryActionProvider.d.ts +27 -0
- package/dist/action-providers/superfluid/superfluidQueryActionProvider.js +71 -0
- package/dist/action-providers/superfluid/superfluidQueryActionProvider.test.d.ts +1 -0
- package/dist/action-providers/superfluid/superfluidQueryActionProvider.test.js +57 -0
- package/dist/action-providers/superfluid/superfluidStreamActionProvider.d.ts +56 -0
- package/dist/action-providers/superfluid/superfluidStreamActionProvider.js +191 -0
- package/dist/action-providers/superfluid/superfluidStreamActionProvider.test.d.ts +1 -0
- package/dist/action-providers/superfluid/superfluidStreamActionProvider.test.js +80 -0
- package/dist/action-providers/superfluid/superfluidSuperTokenCreatorActionProvider.d.ts +30 -0
- package/dist/action-providers/superfluid/superfluidSuperTokenCreatorActionProvider.js +108 -0
- package/dist/action-providers/superfluid/superfluidSuperTokenCreatorActionProvider.test.d.ts +1 -0
- package/dist/action-providers/superfluid/superfluidSuperTokenCreatorActionProvider.test.js +75 -0
- package/dist/action-providers/superfluid/superfluidWrapperActionProvider.d.ts +32 -0
- package/dist/action-providers/superfluid/superfluidWrapperActionProvider.js +101 -0
- package/dist/action-providers/superfluid/superfluidWrapperActionProvider.test.d.ts +1 -0
- package/dist/action-providers/superfluid/superfluidWrapperActionProvider.test.js +85 -0
- package/dist/action-providers/superfluid/utils/parseLogs.d.ts +18 -0
- package/dist/action-providers/superfluid/utils/parseLogs.js +78 -0
- package/dist/action-providers/truemarkets/truemarketsActionProvider.d.ts +4 -16
- package/dist/action-providers/truemarkets/truemarketsActionProvider.js +20 -41
- package/dist/action-providers/truemarkets/truemarketsActionProvider.test.js +11 -33
- package/dist/action-providers/wallet/walletActionProvider.js +21 -10
- package/dist/action-providers/wallet/walletActionProvider.test.js +6 -2
- package/dist/action-providers/zerion/constants.d.ts +1 -0
- package/dist/action-providers/zerion/constants.js +4 -0
- package/dist/action-providers/zerion/index.d.ts +2 -0
- package/dist/action-providers/zerion/index.js +18 -0
- package/dist/action-providers/zerion/schemas.d.ts +11 -0
- package/dist/action-providers/zerion/schemas.js +15 -0
- package/dist/action-providers/zerion/types.d.ts +125 -0
- package/dist/action-providers/zerion/types.js +16 -0
- package/dist/action-providers/zerion/utils.d.ts +3 -0
- package/dist/action-providers/zerion/utils.js +45 -0
- package/dist/action-providers/zerion/zerionActionProvider.d.ts +57 -0
- package/dist/action-providers/zerion/zerionActionProvider.js +159 -0
- package/dist/action-providers/zerion/zerionActionProvider.test.d.ts +1 -0
- package/dist/action-providers/zerion/zerionActionProvider.test.js +213 -0
- package/dist/action-providers/zeroX/index.d.ts +1 -0
- package/dist/action-providers/zeroX/index.js +17 -0
- package/dist/action-providers/zeroX/schemas.d.ts +51 -0
- package/dist/action-providers/zeroX/schemas.js +82 -0
- package/dist/action-providers/zeroX/utils.d.ts +23 -0
- package/dist/action-providers/zeroX/utils.js +106 -0
- package/dist/action-providers/zeroX/zeroXActionProvider.d.ts +57 -0
- package/dist/action-providers/zeroX/zeroXActionProvider.js +407 -0
- package/dist/action-providers/zeroX/zeroXActionProvider.test.d.ts +1 -0
- package/dist/action-providers/zeroX/zeroXActionProvider.test.js +445 -0
- package/dist/wallet-providers/cdpEvmWalletProvider.d.ts +20 -2
- package/dist/wallet-providers/cdpEvmWalletProvider.js +40 -15
- package/dist/wallet-providers/cdpShared.d.ts +9 -0
- package/dist/wallet-providers/cdpSmartWalletProvider.d.ts +29 -3
- package/dist/wallet-providers/cdpSmartWalletProvider.js +64 -28
- package/dist/wallet-providers/cdpSolanaWalletProvider.d.ts +1 -1
- package/dist/wallet-providers/cdpSolanaWalletProvider.js +7 -7
- package/dist/wallet-providers/cdpSolanaWalletProvider.test.js +15 -12
- package/dist/wallet-providers/evmWalletProvider.d.ts +5 -1
- package/dist/wallet-providers/legacyCdpSmartWalletProvider.d.ts +9 -2
- package/dist/wallet-providers/legacyCdpSmartWalletProvider.js +12 -2
- package/dist/wallet-providers/legacyCdpWalletProvider.d.ts +12 -2
- package/dist/wallet-providers/legacyCdpWalletProvider.js +11 -2
- package/dist/wallet-providers/privyEvmDelegatedEmbeddedWalletProvider.d.ts +10 -2
- package/dist/wallet-providers/privyEvmDelegatedEmbeddedWalletProvider.js +12 -3
- package/dist/wallet-providers/privyEvmDelegatedEmbeddedWalletProvider.test.js +1 -1
- package/dist/wallet-providers/privyEvmWalletProvider.d.ts +2 -0
- package/dist/wallet-providers/privyEvmWalletProvider.js +2 -1
- package/dist/wallet-providers/privyEvmWalletProvider.test.js +1 -1
- package/dist/wallet-providers/solanaKeypairWalletProvider.d.ts +1 -1
- package/dist/wallet-providers/solanaKeypairWalletProvider.js +3 -4
- package/dist/wallet-providers/solanaKeypairWalletProvider.test.js +4 -2
- package/dist/wallet-providers/viemWalletProvider.d.ts +12 -2
- package/dist/wallet-providers/viemWalletProvider.js +12 -3
- package/dist/wallet-providers/viemWalletProvider.test.js +6 -5
- package/dist/wallet-providers/walletProvider.d.ts +1 -1
- package/dist/wallet-providers/zeroDevWalletProvider.d.ts +10 -2
- package/dist/wallet-providers/zeroDevWalletProvider.js +14 -5
- package/dist/wallet-providers/zeroDevWalletProvider.test.js +2 -2
- package/package.json +4 -2
|
@@ -183,14 +183,16 @@ describe("SolanaKeypairWalletProvider", () => {
|
|
|
183
183
|
});
|
|
184
184
|
it("should transfer native tokens", async () => {
|
|
185
185
|
const destination = "EQJqzeeVEnm8rKWQJ5SMTtQBD4xEgixwgzNWKkpeFRZ9";
|
|
186
|
-
const signature = await wallet.nativeTransfer(destination, "0.1
|
|
186
|
+
const signature = await wallet.nativeTransfer(destination, "100000000"); // 0.1 SOL in lamports
|
|
187
187
|
expect(signature).toBe("signature123");
|
|
188
188
|
});
|
|
189
189
|
it("should handle insufficient balance when transferring", async () => {
|
|
190
190
|
const connection = wallet.getConnection();
|
|
191
191
|
connection.getBalance.mockResolvedValueOnce(100);
|
|
192
192
|
const destination = "EQJqzeeVEnm8rKWQJ5SMTtQBD4xEgixwgzNWKkpeFRZ9";
|
|
193
|
-
await expect(wallet.nativeTransfer(destination, "
|
|
193
|
+
await expect(wallet.nativeTransfer(destination, "1000000000")).rejects.toThrow(
|
|
194
|
+
// 1 SOL in lamports
|
|
195
|
+
"Insufficient balance");
|
|
194
196
|
});
|
|
195
197
|
it("should handle transaction failure when sending", async () => {
|
|
196
198
|
const connection = wallet.getConnection();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WalletClient as ViemWalletClient, TransactionRequest, ReadContractParameters, ReadContractReturnType, Abi, ContractFunctionName, ContractFunctionArgs } from "viem";
|
|
1
|
+
import { WalletClient as ViemWalletClient, TransactionRequest, PublicClient as ViemPublicClient, ReadContractParameters, ReadContractReturnType, Abi, ContractFunctionName, ContractFunctionArgs } from "viem";
|
|
2
2
|
import { EvmWalletProvider } from "./evmWalletProvider";
|
|
3
3
|
import { Network } from "../network";
|
|
4
4
|
/**
|
|
@@ -13,6 +13,10 @@ export interface ViemWalletProviderGasConfig {
|
|
|
13
13
|
* An internal multiplier on fee per gas estimation.
|
|
14
14
|
*/
|
|
15
15
|
feePerGasMultiplier?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Optional RPC URL override for Viem public client.
|
|
18
|
+
*/
|
|
19
|
+
rpcUrl?: string;
|
|
16
20
|
}
|
|
17
21
|
/**
|
|
18
22
|
* A wallet provider that uses the Viem library.
|
|
@@ -72,6 +76,12 @@ export declare class ViemWalletProvider extends EvmWalletProvider {
|
|
|
72
76
|
* @returns The name of the wallet provider.
|
|
73
77
|
*/
|
|
74
78
|
getName(): string;
|
|
79
|
+
/**
|
|
80
|
+
* Gets the Viem PublicClient used for read-only operations.
|
|
81
|
+
*
|
|
82
|
+
* @returns The Viem PublicClient instance used for read-only operations.
|
|
83
|
+
*/
|
|
84
|
+
getPublicClient(): ViemPublicClient;
|
|
75
85
|
/**
|
|
76
86
|
* Gets the balance of the wallet.
|
|
77
87
|
*
|
|
@@ -96,7 +106,7 @@ export declare class ViemWalletProvider extends EvmWalletProvider {
|
|
|
96
106
|
* Transfer the native asset of the network.
|
|
97
107
|
*
|
|
98
108
|
* @param to - The destination address.
|
|
99
|
-
* @param value - The amount to transfer in
|
|
109
|
+
* @param value - The amount to transfer in atomic units (Wei)
|
|
100
110
|
* @returns The transaction hash.
|
|
101
111
|
*/
|
|
102
112
|
nativeTransfer(to: `0x${string}`, value: string): Promise<`0x${string}`>;
|
|
@@ -36,9 +36,10 @@ class ViemWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
|
|
|
36
36
|
_ViemWalletProvider_gasLimitMultiplier.set(this, void 0);
|
|
37
37
|
_ViemWalletProvider_feePerGasMultiplier.set(this, void 0);
|
|
38
38
|
__classPrivateFieldSet(this, _ViemWalletProvider_walletClient, walletClient, "f");
|
|
39
|
+
const rpcUrl = gasConfig?.rpcUrl || process.env.RPC_URL;
|
|
39
40
|
__classPrivateFieldSet(this, _ViemWalletProvider_publicClient, (0, viem_1.createPublicClient)({
|
|
40
41
|
chain: walletClient.chain,
|
|
41
|
-
transport: (0, viem_1.http)(),
|
|
42
|
+
transport: rpcUrl ? (0, viem_1.http)(rpcUrl) : (0, viem_1.http)(),
|
|
42
43
|
}), "f");
|
|
43
44
|
__classPrivateFieldSet(this, _ViemWalletProvider_gasLimitMultiplier, Math.max(gasConfig?.gasLimitMultiplier ?? 1.2, 1), "f");
|
|
44
45
|
__classPrivateFieldSet(this, _ViemWalletProvider_feePerGasMultiplier, Math.max(gasConfig?.feePerGasMultiplier ?? 1, 1), "f");
|
|
@@ -152,6 +153,14 @@ class ViemWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
|
|
|
152
153
|
getName() {
|
|
153
154
|
return "viem_wallet_provider";
|
|
154
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Gets the Viem PublicClient used for read-only operations.
|
|
158
|
+
*
|
|
159
|
+
* @returns The Viem PublicClient instance used for read-only operations.
|
|
160
|
+
*/
|
|
161
|
+
getPublicClient() {
|
|
162
|
+
return __classPrivateFieldGet(this, _ViemWalletProvider_publicClient, "f");
|
|
163
|
+
}
|
|
155
164
|
/**
|
|
156
165
|
* Gets the balance of the wallet.
|
|
157
166
|
*
|
|
@@ -186,11 +195,11 @@ class ViemWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
|
|
|
186
195
|
* Transfer the native asset of the network.
|
|
187
196
|
*
|
|
188
197
|
* @param to - The destination address.
|
|
189
|
-
* @param value - The amount to transfer in
|
|
198
|
+
* @param value - The amount to transfer in atomic units (Wei)
|
|
190
199
|
* @returns The transaction hash.
|
|
191
200
|
*/
|
|
192
201
|
async nativeTransfer(to, value) {
|
|
193
|
-
const atomicAmount = (
|
|
202
|
+
const atomicAmount = BigInt(value);
|
|
194
203
|
const tx = await this.sendTransaction({
|
|
195
204
|
to: to,
|
|
196
205
|
value: atomicAmount,
|
|
@@ -284,15 +284,16 @@ describe("ViemWalletProvider", () => {
|
|
|
284
284
|
});
|
|
285
285
|
describe("native token operations", () => {
|
|
286
286
|
it("should transfer native tokens", async () => {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
287
|
+
const hash = await provider.nativeTransfer(MOCK_ADDRESS_TO, "1000000000000000000");
|
|
288
|
+
expect(mockWalletClient.sendTransaction).toHaveBeenCalledWith(expect.objectContaining({
|
|
289
|
+
to: MOCK_ADDRESS_TO,
|
|
290
|
+
value: BigInt("1000000000000000000"),
|
|
291
|
+
}));
|
|
291
292
|
expect(hash).toBe(MOCK_TRANSACTION_HASH);
|
|
292
293
|
});
|
|
293
294
|
it("should handle native transfer errors", async () => {
|
|
294
295
|
mockWalletClient.sendTransaction.mockRejectedValueOnce(new Error("Transaction failed"));
|
|
295
|
-
await expect(provider.nativeTransfer(MOCK_ADDRESS_TO, "
|
|
296
|
+
await expect(provider.nativeTransfer(MOCK_ADDRESS_TO, "1000000000000000000")).rejects.toThrow("Transaction failed");
|
|
296
297
|
});
|
|
297
298
|
it("should handle invalid address in native transfer", async () => {
|
|
298
299
|
const invalidAddress = "not_a_valid_address";
|
|
@@ -41,7 +41,7 @@ export declare abstract class WalletProvider {
|
|
|
41
41
|
* Transfer the native asset of the network.
|
|
42
42
|
*
|
|
43
43
|
* @param to - The destination address.
|
|
44
|
-
* @param value - The amount to transfer in
|
|
44
|
+
* @param value - The amount to transfer in atomic units (e.g. Wei for EVM, Lamports for Solana)
|
|
45
45
|
* @returns The transaction hash.
|
|
46
46
|
*/
|
|
47
47
|
abstract nativeTransfer(to: string, value: string): Promise<string>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { KernelSmartAccountImplementation } from "@zerodev/sdk";
|
|
2
2
|
import { createIntentClient, type GetCABParameters, type GetCABResult } from "@zerodev/intent";
|
|
3
|
-
import { Abi, Address, ContractFunctionArgs, ContractFunctionName, ReadContractParameters, ReadContractReturnType, TransactionRequest, Hex, Hash, Account } from "viem";
|
|
3
|
+
import { Abi, Address, ContractFunctionArgs, ContractFunctionName, PublicClient, ReadContractParameters, ReadContractReturnType, TransactionRequest, Hex, Hash, Account } from "viem";
|
|
4
4
|
import { SmartAccount } from "viem/account-abstraction";
|
|
5
5
|
import { EvmWalletProvider } from "./evmWalletProvider";
|
|
6
6
|
import { type Network } from "../network";
|
|
@@ -30,6 +30,8 @@ export interface ZeroDevWalletProviderConfig {
|
|
|
30
30
|
* If not provided, it will be computed from the signer.
|
|
31
31
|
*/
|
|
32
32
|
address?: Address;
|
|
33
|
+
/** Optional RPC URL override for Viem public client */
|
|
34
|
+
rpcUrl?: string;
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* A wallet provider that uses ZeroDev's account abstraction.
|
|
@@ -111,6 +113,12 @@ export declare class ZeroDevWalletProvider extends EvmWalletProvider {
|
|
|
111
113
|
* @returns The name of the wallet provider.
|
|
112
114
|
*/
|
|
113
115
|
getName(): string;
|
|
116
|
+
/**
|
|
117
|
+
* Gets the Viem PublicClient used for read-only operations.
|
|
118
|
+
*
|
|
119
|
+
* @returns The Viem PublicClient instance used for read-only operations.
|
|
120
|
+
*/
|
|
121
|
+
getPublicClient(): PublicClient;
|
|
114
122
|
/**
|
|
115
123
|
* Gets the balance of the wallet.
|
|
116
124
|
*
|
|
@@ -121,7 +129,7 @@ export declare class ZeroDevWalletProvider extends EvmWalletProvider {
|
|
|
121
129
|
* Transfer the native asset of the network.
|
|
122
130
|
*
|
|
123
131
|
* @param to - The destination address.
|
|
124
|
-
* @param value - The amount to transfer in
|
|
132
|
+
* @param value - The amount to transfer in atomic units (Wei).
|
|
125
133
|
* @returns The transaction hash.
|
|
126
134
|
*/
|
|
127
135
|
nativeTransfer(to: string, value: string): Promise<string>;
|
|
@@ -51,9 +51,10 @@ class ZeroDevWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
|
|
|
51
51
|
__classPrivateFieldSet(this, _ZeroDevWalletProvider_kernelAccount, kernelAccount, "f");
|
|
52
52
|
__classPrivateFieldSet(this, _ZeroDevWalletProvider_intentClient, intentClient, "f");
|
|
53
53
|
// Create public client
|
|
54
|
+
const rpcUrl = config.rpcUrl || process.env.RPC_URL;
|
|
54
55
|
__classPrivateFieldSet(this, _ZeroDevWalletProvider_publicClient, (0, viem_1.createPublicClient)({
|
|
55
56
|
chain: network_1.NETWORK_ID_TO_VIEM_CHAIN[__classPrivateFieldGet(this, _ZeroDevWalletProvider_network, "f").networkId],
|
|
56
|
-
transport: (0, viem_1.http)(),
|
|
57
|
+
transport: rpcUrl ? (0, viem_1.http)(rpcUrl) : (0, viem_1.http)(),
|
|
57
58
|
}), "f");
|
|
58
59
|
}
|
|
59
60
|
/**
|
|
@@ -73,9 +74,10 @@ class ZeroDevWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
|
|
|
73
74
|
const chain = network_1.NETWORK_ID_TO_VIEM_CHAIN[networkId];
|
|
74
75
|
const bundlerRpc = `https://rpc.zerodev.app/api/v3/bundler/${config.projectId}`;
|
|
75
76
|
// Create public client
|
|
77
|
+
const rpcUrl = config.rpcUrl || process.env.RPC_URL;
|
|
76
78
|
const publicClient = (0, viem_1.createPublicClient)({
|
|
77
79
|
chain,
|
|
78
|
-
transport: (0, viem_1.http)(),
|
|
80
|
+
transport: rpcUrl ? (0, viem_1.http)(rpcUrl) : (0, viem_1.http)(),
|
|
79
81
|
});
|
|
80
82
|
// Create ECDSA validator
|
|
81
83
|
const entryPoint = (0, constants_1.getEntryPoint)(config.entryPointVersion || "0.7");
|
|
@@ -228,6 +230,14 @@ class ZeroDevWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
|
|
|
228
230
|
getName() {
|
|
229
231
|
return "zerodev_wallet_provider";
|
|
230
232
|
}
|
|
233
|
+
/**
|
|
234
|
+
* Gets the Viem PublicClient used for read-only operations.
|
|
235
|
+
*
|
|
236
|
+
* @returns The Viem PublicClient instance used for read-only operations.
|
|
237
|
+
*/
|
|
238
|
+
getPublicClient() {
|
|
239
|
+
return __classPrivateFieldGet(this, _ZeroDevWalletProvider_publicClient, "f");
|
|
240
|
+
}
|
|
231
241
|
/**
|
|
232
242
|
* Gets the balance of the wallet.
|
|
233
243
|
*
|
|
@@ -242,12 +252,11 @@ class ZeroDevWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
|
|
|
242
252
|
* Transfer the native asset of the network.
|
|
243
253
|
*
|
|
244
254
|
* @param to - The destination address.
|
|
245
|
-
* @param value - The amount to transfer in
|
|
255
|
+
* @param value - The amount to transfer in atomic units (Wei).
|
|
246
256
|
* @returns The transaction hash.
|
|
247
257
|
*/
|
|
248
258
|
async nativeTransfer(to, value) {
|
|
249
|
-
|
|
250
|
-
const valueInWei = BigInt(parseFloat(value) * 10 ** 18);
|
|
259
|
+
const valueInWei = BigInt(value);
|
|
251
260
|
// Get the chain ID from the network
|
|
252
261
|
const chainId = parseInt(__classPrivateFieldGet(this, _ZeroDevWalletProvider_network, "f").chainId || "1");
|
|
253
262
|
const intent = await __classPrivateFieldGet(this, _ZeroDevWalletProvider_intentClient, "f").sendUserIntent({
|
|
@@ -283,8 +283,8 @@ describe("ZeroDevWalletProvider", () => {
|
|
|
283
283
|
});
|
|
284
284
|
it("should handle native transfers using nativeTransfer method", async () => {
|
|
285
285
|
const to = "0x1234567890123456789012345678901234567890";
|
|
286
|
-
const value = "
|
|
287
|
-
const valueInWei = BigInt(
|
|
286
|
+
const value = "1000000000000000000"; // 1 ETH in wei
|
|
287
|
+
const valueInWei = BigInt(value);
|
|
288
288
|
const txHash = await provider.nativeTransfer(to, value);
|
|
289
289
|
expect(mockIntentClient.sendUserIntent).toHaveBeenCalledWith({
|
|
290
290
|
calls: [
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@coinbase/agentkit",
|
|
3
3
|
"description": "Coinbase AgentKit core primitives",
|
|
4
4
|
"repository": "https://github.com/coinbase/agentkit",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.10.1",
|
|
6
6
|
"author": "Coinbase Inc.",
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
8
|
"main": "dist/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@across-protocol/app-sdk": "^0.2.0",
|
|
26
26
|
"@alloralabs/allora-sdk": "^0.1.0",
|
|
27
|
-
"@coinbase/cdp-sdk": "^1.
|
|
27
|
+
"@coinbase/cdp-sdk": "^1.36.1",
|
|
28
28
|
"@coinbase/coinbase-sdk": "^0.20.0",
|
|
29
29
|
"@jup-ag/api": "^6.0.39",
|
|
30
30
|
"@privy-io/public-api": "2.18.5",
|
|
@@ -38,8 +38,10 @@
|
|
|
38
38
|
"axios": "^1.9.0",
|
|
39
39
|
"bs58": "^4.0.1",
|
|
40
40
|
"canonicalize": "^2.1.0",
|
|
41
|
+
"clanker-sdk": "^4.1.18",
|
|
41
42
|
"decimal.js": "^10.5.0",
|
|
42
43
|
"ethers": "^6.13.5",
|
|
44
|
+
"graphql-request": "^7.2.0",
|
|
43
45
|
"md5": "^2.3.0",
|
|
44
46
|
"opensea-js": "^7.1.18",
|
|
45
47
|
"reflect-metadata": "^0.2.2",
|