@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.
Files changed (151) hide show
  1. package/README.md +181 -54
  2. package/dist/action-providers/across/acrossActionProvider.js +3 -3
  3. package/dist/action-providers/cdp/cdpApiActionProvider.d.ts +3 -12
  4. package/dist/action-providers/cdp/cdpApiActionProvider.js +2 -79
  5. package/dist/action-providers/cdp/cdpApiActionProvider.test.js +0 -125
  6. package/dist/action-providers/cdp/cdpEvmWalletActionProvider.d.ts +58 -0
  7. package/dist/action-providers/cdp/cdpEvmWalletActionProvider.js +351 -0
  8. package/dist/action-providers/cdp/cdpEvmWalletActionProvider.test.d.ts +1 -0
  9. package/dist/action-providers/cdp/cdpEvmWalletActionProvider.test.js +520 -0
  10. package/dist/action-providers/cdp/cdpSmartWalletActionProvider.d.ts +57 -0
  11. package/dist/action-providers/cdp/cdpSmartWalletActionProvider.js +337 -0
  12. package/dist/action-providers/cdp/cdpSmartWalletActionProvider.test.d.ts +1 -0
  13. package/dist/action-providers/cdp/cdpSmartWalletActionProvider.test.js +463 -0
  14. package/dist/action-providers/cdp/index.d.ts +3 -0
  15. package/dist/action-providers/cdp/index.js +3 -0
  16. package/dist/action-providers/cdp/schemas.d.ts +38 -9
  17. package/dist/action-providers/cdp/schemas.js +49 -6
  18. package/dist/action-providers/cdp/spendPermissionUtils.d.ts +24 -0
  19. package/dist/action-providers/cdp/spendPermissionUtils.js +66 -0
  20. package/dist/action-providers/cdp/swapUtils.d.ts +32 -0
  21. package/dist/action-providers/cdp/swapUtils.js +142 -0
  22. package/dist/action-providers/clanker/clankerActionProvider.d.ts +43 -0
  23. package/dist/action-providers/clanker/clankerActionProvider.js +130 -0
  24. package/dist/action-providers/clanker/clankerActionProvider.test.d.ts +4 -0
  25. package/dist/action-providers/clanker/clankerActionProvider.test.js +119 -0
  26. package/dist/action-providers/clanker/index.d.ts +2 -0
  27. package/dist/action-providers/clanker/index.js +18 -0
  28. package/dist/action-providers/clanker/schemas.d.ts +56 -0
  29. package/dist/action-providers/clanker/schemas.js +47 -0
  30. package/dist/action-providers/clanker/utils.d.ts +9 -0
  31. package/dist/action-providers/clanker/utils.js +23 -0
  32. package/dist/action-providers/compound/constants.d.ts +1 -1
  33. package/dist/action-providers/compound/constants.js +2 -2
  34. package/dist/action-providers/erc20/constants.d.ts +35 -135
  35. package/dist/action-providers/erc20/constants.js +37 -189
  36. package/dist/action-providers/erc20/erc20ActionProvider.d.ts +9 -1
  37. package/dist/action-providers/erc20/erc20ActionProvider.js +87 -35
  38. package/dist/action-providers/erc20/erc20ActionProvider.test.js +115 -52
  39. package/dist/action-providers/erc20/schemas.d.ts +25 -12
  40. package/dist/action-providers/erc20/schemas.js +34 -6
  41. package/dist/action-providers/erc20/utils.d.ts +19 -0
  42. package/dist/action-providers/erc20/utils.js +54 -0
  43. package/dist/action-providers/flaunch/constants.d.ts +1 -1
  44. package/dist/action-providers/flaunch/constants.js +2 -2
  45. package/dist/action-providers/flaunch/flaunchActionProvider.js +3 -11
  46. package/dist/action-providers/flaunch/flaunchActionProvider.test.js +5 -0
  47. package/dist/action-providers/index.d.ts +4 -0
  48. package/dist/action-providers/index.js +4 -0
  49. package/dist/action-providers/jupiter/schemas.d.ts +1 -1
  50. package/dist/action-providers/moonwell/schemas.d.ts +2 -2
  51. package/dist/action-providers/morpho/morphoActionProvider.js +5 -5
  52. package/dist/action-providers/morpho/schemas.d.ts +2 -2
  53. package/dist/action-providers/pyth/pythActionProvider.js +5 -0
  54. package/dist/action-providers/pyth/pythActionProvider.test.js +5 -1
  55. package/dist/action-providers/superfluid/constants.d.ts +814 -0
  56. package/dist/action-providers/superfluid/constants.js +2826 -0
  57. package/dist/action-providers/superfluid/graphQueries/endpoints.d.ts +2 -0
  58. package/dist/action-providers/superfluid/graphQueries/endpoints.js +5 -0
  59. package/dist/action-providers/superfluid/graphQueries/queries.d.ts +1 -0
  60. package/dist/action-providers/superfluid/graphQueries/queries.js +35 -0
  61. package/dist/action-providers/superfluid/graphQueries/superfluidGraphQueries.d.ts +8 -0
  62. package/dist/action-providers/superfluid/graphQueries/superfluidGraphQueries.js +24 -0
  63. package/dist/action-providers/superfluid/graphQueries/types.d.ts +27 -0
  64. package/dist/action-providers/superfluid/graphQueries/types.js +2 -0
  65. package/dist/action-providers/superfluid/index.d.ts +7 -0
  66. package/dist/action-providers/superfluid/index.js +23 -0
  67. package/dist/action-providers/superfluid/schemas.d.ts +86 -0
  68. package/dist/action-providers/superfluid/schemas.js +103 -0
  69. package/dist/action-providers/superfluid/superfluidActionProvider.d.ts +20 -0
  70. package/dist/action-providers/superfluid/superfluidActionProvider.js +36 -0
  71. package/dist/action-providers/superfluid/superfluidPoolActionProvider.d.ts +46 -0
  72. package/dist/action-providers/superfluid/superfluidPoolActionProvider.js +143 -0
  73. package/dist/action-providers/superfluid/superfluidPoolActionProvider.test.d.ts +1 -0
  74. package/dist/action-providers/superfluid/superfluidPoolActionProvider.test.js +92 -0
  75. package/dist/action-providers/superfluid/superfluidQueryActionProvider.d.ts +27 -0
  76. package/dist/action-providers/superfluid/superfluidQueryActionProvider.js +71 -0
  77. package/dist/action-providers/superfluid/superfluidQueryActionProvider.test.d.ts +1 -0
  78. package/dist/action-providers/superfluid/superfluidQueryActionProvider.test.js +57 -0
  79. package/dist/action-providers/superfluid/superfluidStreamActionProvider.d.ts +56 -0
  80. package/dist/action-providers/superfluid/superfluidStreamActionProvider.js +191 -0
  81. package/dist/action-providers/superfluid/superfluidStreamActionProvider.test.d.ts +1 -0
  82. package/dist/action-providers/superfluid/superfluidStreamActionProvider.test.js +80 -0
  83. package/dist/action-providers/superfluid/superfluidSuperTokenCreatorActionProvider.d.ts +30 -0
  84. package/dist/action-providers/superfluid/superfluidSuperTokenCreatorActionProvider.js +108 -0
  85. package/dist/action-providers/superfluid/superfluidSuperTokenCreatorActionProvider.test.d.ts +1 -0
  86. package/dist/action-providers/superfluid/superfluidSuperTokenCreatorActionProvider.test.js +75 -0
  87. package/dist/action-providers/superfluid/superfluidWrapperActionProvider.d.ts +32 -0
  88. package/dist/action-providers/superfluid/superfluidWrapperActionProvider.js +101 -0
  89. package/dist/action-providers/superfluid/superfluidWrapperActionProvider.test.d.ts +1 -0
  90. package/dist/action-providers/superfluid/superfluidWrapperActionProvider.test.js +85 -0
  91. package/dist/action-providers/superfluid/utils/parseLogs.d.ts +18 -0
  92. package/dist/action-providers/superfluid/utils/parseLogs.js +78 -0
  93. package/dist/action-providers/truemarkets/truemarketsActionProvider.d.ts +4 -16
  94. package/dist/action-providers/truemarkets/truemarketsActionProvider.js +20 -41
  95. package/dist/action-providers/truemarkets/truemarketsActionProvider.test.js +11 -33
  96. package/dist/action-providers/wallet/walletActionProvider.js +21 -10
  97. package/dist/action-providers/wallet/walletActionProvider.test.js +6 -2
  98. package/dist/action-providers/zerion/constants.d.ts +1 -0
  99. package/dist/action-providers/zerion/constants.js +4 -0
  100. package/dist/action-providers/zerion/index.d.ts +2 -0
  101. package/dist/action-providers/zerion/index.js +18 -0
  102. package/dist/action-providers/zerion/schemas.d.ts +11 -0
  103. package/dist/action-providers/zerion/schemas.js +15 -0
  104. package/dist/action-providers/zerion/types.d.ts +125 -0
  105. package/dist/action-providers/zerion/types.js +16 -0
  106. package/dist/action-providers/zerion/utils.d.ts +3 -0
  107. package/dist/action-providers/zerion/utils.js +45 -0
  108. package/dist/action-providers/zerion/zerionActionProvider.d.ts +57 -0
  109. package/dist/action-providers/zerion/zerionActionProvider.js +159 -0
  110. package/dist/action-providers/zerion/zerionActionProvider.test.d.ts +1 -0
  111. package/dist/action-providers/zerion/zerionActionProvider.test.js +213 -0
  112. package/dist/action-providers/zeroX/index.d.ts +1 -0
  113. package/dist/action-providers/zeroX/index.js +17 -0
  114. package/dist/action-providers/zeroX/schemas.d.ts +51 -0
  115. package/dist/action-providers/zeroX/schemas.js +82 -0
  116. package/dist/action-providers/zeroX/utils.d.ts +23 -0
  117. package/dist/action-providers/zeroX/utils.js +106 -0
  118. package/dist/action-providers/zeroX/zeroXActionProvider.d.ts +57 -0
  119. package/dist/action-providers/zeroX/zeroXActionProvider.js +407 -0
  120. package/dist/action-providers/zeroX/zeroXActionProvider.test.d.ts +1 -0
  121. package/dist/action-providers/zeroX/zeroXActionProvider.test.js +445 -0
  122. package/dist/wallet-providers/cdpEvmWalletProvider.d.ts +20 -2
  123. package/dist/wallet-providers/cdpEvmWalletProvider.js +40 -15
  124. package/dist/wallet-providers/cdpShared.d.ts +9 -0
  125. package/dist/wallet-providers/cdpSmartWalletProvider.d.ts +29 -3
  126. package/dist/wallet-providers/cdpSmartWalletProvider.js +64 -28
  127. package/dist/wallet-providers/cdpSolanaWalletProvider.d.ts +1 -1
  128. package/dist/wallet-providers/cdpSolanaWalletProvider.js +7 -7
  129. package/dist/wallet-providers/cdpSolanaWalletProvider.test.js +15 -12
  130. package/dist/wallet-providers/evmWalletProvider.d.ts +5 -1
  131. package/dist/wallet-providers/legacyCdpSmartWalletProvider.d.ts +9 -2
  132. package/dist/wallet-providers/legacyCdpSmartWalletProvider.js +12 -2
  133. package/dist/wallet-providers/legacyCdpWalletProvider.d.ts +12 -2
  134. package/dist/wallet-providers/legacyCdpWalletProvider.js +11 -2
  135. package/dist/wallet-providers/privyEvmDelegatedEmbeddedWalletProvider.d.ts +10 -2
  136. package/dist/wallet-providers/privyEvmDelegatedEmbeddedWalletProvider.js +12 -3
  137. package/dist/wallet-providers/privyEvmDelegatedEmbeddedWalletProvider.test.js +1 -1
  138. package/dist/wallet-providers/privyEvmWalletProvider.d.ts +2 -0
  139. package/dist/wallet-providers/privyEvmWalletProvider.js +2 -1
  140. package/dist/wallet-providers/privyEvmWalletProvider.test.js +1 -1
  141. package/dist/wallet-providers/solanaKeypairWalletProvider.d.ts +1 -1
  142. package/dist/wallet-providers/solanaKeypairWalletProvider.js +3 -4
  143. package/dist/wallet-providers/solanaKeypairWalletProvider.test.js +4 -2
  144. package/dist/wallet-providers/viemWalletProvider.d.ts +12 -2
  145. package/dist/wallet-providers/viemWalletProvider.js +12 -3
  146. package/dist/wallet-providers/viemWalletProvider.test.js +6 -5
  147. package/dist/wallet-providers/walletProvider.d.ts +1 -1
  148. package/dist/wallet-providers/zeroDevWalletProvider.d.ts +10 -2
  149. package/dist/wallet-providers/zeroDevWalletProvider.js +14 -5
  150. package/dist/wallet-providers/zeroDevWalletProvider.test.js +2 -2
  151. 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, "1.0")).rejects.toThrow("Insufficient balance");
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 whole units (e.g. ETH)
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 whole units (e.g. ETH)
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 = (0, viem_1.parseEther)(value);
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
- viem.parseEther.mockReturnValueOnce(BigInt(1000000000000000000));
288
- const hash = await provider.nativeTransfer(MOCK_ADDRESS_TO, "1.0");
289
- expect(viem.parseEther).toHaveBeenCalledWith("1.0");
290
- expect(mockWalletClient.sendTransaction).toHaveBeenCalled();
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, "1.0")).rejects.toThrow("Transaction failed");
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 whole units (e.g. ETH)
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 whole units (e.g. ETH).
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 whole units (e.g. ETH).
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
- // Convert value to wei (assuming value is in whole units)
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 = "1.0";
287
- const valueInWei = BigInt(parseFloat(value) * 10 ** 18);
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.9.1",
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.26.0",
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",