@coinbase/agentkit 0.10.0 → 0.10.2

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 (169) hide show
  1. package/README.md +195 -23
  2. package/dist/action-providers/across/acrossActionProvider.js +3 -3
  3. package/dist/action-providers/across/schemas.d.ts +1 -1
  4. package/dist/action-providers/baseAccount/baseAccountActionProvider.d.ts +46 -0
  5. package/dist/action-providers/baseAccount/baseAccountActionProvider.js +404 -0
  6. package/dist/action-providers/baseAccount/baseAccountActionProvider.test.d.ts +1 -0
  7. package/dist/action-providers/baseAccount/baseAccountActionProvider.test.js +325 -0
  8. package/dist/action-providers/baseAccount/index.d.ts +2 -0
  9. package/dist/action-providers/baseAccount/index.js +18 -0
  10. package/dist/action-providers/baseAccount/schemas.d.ts +43 -0
  11. package/dist/action-providers/baseAccount/schemas.js +62 -0
  12. package/dist/action-providers/baseAccount/types.d.ts +17 -0
  13. package/dist/action-providers/baseAccount/types.js +2 -0
  14. package/dist/action-providers/baseAccount/utils.d.ts +14 -0
  15. package/dist/action-providers/baseAccount/utils.js +57 -0
  16. package/dist/action-providers/cdp/cdpApiActionProvider.d.ts +3 -12
  17. package/dist/action-providers/cdp/cdpApiActionProvider.js +2 -81
  18. package/dist/action-providers/cdp/cdpApiActionProvider.test.js +0 -125
  19. package/dist/action-providers/cdp/cdpEvmWalletActionProvider.d.ts +18 -3
  20. package/dist/action-providers/cdp/cdpEvmWalletActionProvider.js +224 -23
  21. package/dist/action-providers/cdp/cdpEvmWalletActionProvider.test.js +280 -0
  22. package/dist/action-providers/cdp/cdpSmartWalletActionProvider.d.ts +17 -2
  23. package/dist/action-providers/cdp/cdpSmartWalletActionProvider.js +224 -18
  24. package/dist/action-providers/cdp/cdpSmartWalletActionProvider.test.js +267 -1
  25. package/dist/action-providers/cdp/schemas.d.ts +12 -12
  26. package/dist/action-providers/cdp/schemas.js +17 -5
  27. package/dist/action-providers/cdp/swapUtils.d.ts +23 -0
  28. package/dist/action-providers/cdp/swapUtils.js +106 -0
  29. package/dist/action-providers/clanker/clankerActionProvider.d.ts +43 -0
  30. package/dist/action-providers/clanker/clankerActionProvider.js +130 -0
  31. package/dist/action-providers/clanker/clankerActionProvider.test.d.ts +4 -0
  32. package/dist/action-providers/clanker/clankerActionProvider.test.js +119 -0
  33. package/dist/action-providers/clanker/index.d.ts +2 -0
  34. package/dist/action-providers/clanker/index.js +18 -0
  35. package/dist/action-providers/clanker/schemas.d.ts +56 -0
  36. package/dist/action-providers/clanker/schemas.js +47 -0
  37. package/dist/action-providers/clanker/utils.d.ts +9 -0
  38. package/dist/action-providers/clanker/utils.js +23 -0
  39. package/dist/action-providers/compound/constants.d.ts +1 -1
  40. package/dist/action-providers/compound/constants.js +2 -2
  41. package/dist/action-providers/erc20/constants.d.ts +35 -135
  42. package/dist/action-providers/erc20/constants.js +37 -189
  43. package/dist/action-providers/erc20/erc20ActionProvider.d.ts +9 -1
  44. package/dist/action-providers/erc20/erc20ActionProvider.js +87 -35
  45. package/dist/action-providers/erc20/erc20ActionProvider.test.js +115 -52
  46. package/dist/action-providers/erc20/schemas.d.ts +25 -12
  47. package/dist/action-providers/erc20/schemas.js +34 -6
  48. package/dist/action-providers/erc20/utils.d.ts +19 -0
  49. package/dist/action-providers/erc20/utils.js +54 -0
  50. package/dist/action-providers/flaunch/client_utils.d.ts +25 -0
  51. package/dist/action-providers/flaunch/client_utils.js +62 -0
  52. package/dist/action-providers/flaunch/constants.d.ts +42 -21
  53. package/dist/action-providers/flaunch/constants.js +113 -38
  54. package/dist/action-providers/flaunch/flaunchActionProvider.d.ts +4 -43
  55. package/dist/action-providers/flaunch/flaunchActionProvider.js +133 -209
  56. package/dist/action-providers/flaunch/flaunchActionProvider.test.js +113 -13
  57. package/dist/action-providers/flaunch/metadata_utils.d.ts +12 -0
  58. package/dist/action-providers/flaunch/metadata_utils.js +216 -0
  59. package/dist/action-providers/flaunch/schemas.d.ts +39 -3
  60. package/dist/action-providers/flaunch/schemas.js +62 -10
  61. package/dist/action-providers/flaunch/{utils.d.ts → swap_utils.d.ts} +17 -19
  62. package/dist/action-providers/flaunch/{utils.js → swap_utils.js} +137 -172
  63. package/dist/action-providers/index.d.ts +4 -0
  64. package/dist/action-providers/index.js +4 -0
  65. package/dist/action-providers/jupiter/schemas.d.ts +1 -1
  66. package/dist/action-providers/moonwell/schemas.d.ts +2 -2
  67. package/dist/action-providers/morpho/morphoActionProvider.js +5 -5
  68. package/dist/action-providers/morpho/schemas.d.ts +2 -2
  69. package/dist/action-providers/pyth/pythActionProvider.d.ts +2 -2
  70. package/dist/action-providers/pyth/pythActionProvider.js +83 -26
  71. package/dist/action-providers/pyth/pythActionProvider.test.js +179 -23
  72. package/dist/action-providers/pyth/schemas.d.ts +6 -0
  73. package/dist/action-providers/pyth/schemas.js +9 -1
  74. package/dist/action-providers/superfluid/constants.d.ts +814 -0
  75. package/dist/action-providers/superfluid/constants.js +2826 -0
  76. package/dist/action-providers/superfluid/graphQueries/endpoints.d.ts +2 -0
  77. package/dist/action-providers/superfluid/graphQueries/endpoints.js +5 -0
  78. package/dist/action-providers/superfluid/graphQueries/queries.d.ts +1 -0
  79. package/dist/action-providers/superfluid/graphQueries/queries.js +35 -0
  80. package/dist/action-providers/superfluid/graphQueries/superfluidGraphQueries.d.ts +8 -0
  81. package/dist/action-providers/superfluid/graphQueries/superfluidGraphQueries.js +24 -0
  82. package/dist/action-providers/superfluid/graphQueries/types.d.ts +27 -0
  83. package/dist/action-providers/superfluid/graphQueries/types.js +2 -0
  84. package/dist/action-providers/superfluid/index.d.ts +7 -0
  85. package/dist/action-providers/superfluid/index.js +23 -0
  86. package/dist/action-providers/superfluid/schemas.d.ts +86 -0
  87. package/dist/action-providers/superfluid/schemas.js +103 -0
  88. package/dist/action-providers/superfluid/superfluidActionProvider.d.ts +20 -0
  89. package/dist/action-providers/superfluid/superfluidActionProvider.js +36 -0
  90. package/dist/action-providers/superfluid/superfluidPoolActionProvider.d.ts +46 -0
  91. package/dist/action-providers/superfluid/superfluidPoolActionProvider.js +143 -0
  92. package/dist/action-providers/superfluid/superfluidPoolActionProvider.test.d.ts +1 -0
  93. package/dist/action-providers/superfluid/superfluidPoolActionProvider.test.js +92 -0
  94. package/dist/action-providers/superfluid/superfluidQueryActionProvider.d.ts +27 -0
  95. package/dist/action-providers/superfluid/superfluidQueryActionProvider.js +71 -0
  96. package/dist/action-providers/superfluid/superfluidQueryActionProvider.test.d.ts +1 -0
  97. package/dist/action-providers/superfluid/superfluidQueryActionProvider.test.js +57 -0
  98. package/dist/action-providers/superfluid/superfluidStreamActionProvider.d.ts +56 -0
  99. package/dist/action-providers/superfluid/superfluidStreamActionProvider.js +191 -0
  100. package/dist/action-providers/superfluid/superfluidStreamActionProvider.test.d.ts +1 -0
  101. package/dist/action-providers/superfluid/superfluidStreamActionProvider.test.js +80 -0
  102. package/dist/action-providers/superfluid/superfluidSuperTokenCreatorActionProvider.d.ts +30 -0
  103. package/dist/action-providers/superfluid/superfluidSuperTokenCreatorActionProvider.js +109 -0
  104. package/dist/action-providers/superfluid/superfluidSuperTokenCreatorActionProvider.test.d.ts +1 -0
  105. package/dist/action-providers/superfluid/superfluidSuperTokenCreatorActionProvider.test.js +75 -0
  106. package/dist/action-providers/superfluid/superfluidWrapperActionProvider.d.ts +32 -0
  107. package/dist/action-providers/superfluid/superfluidWrapperActionProvider.js +101 -0
  108. package/dist/action-providers/superfluid/superfluidWrapperActionProvider.test.d.ts +1 -0
  109. package/dist/action-providers/superfluid/superfluidWrapperActionProvider.test.js +85 -0
  110. package/dist/action-providers/superfluid/utils/parseLogs.d.ts +19 -0
  111. package/dist/action-providers/superfluid/utils/parseLogs.js +81 -0
  112. package/dist/action-providers/truemarkets/truemarketsActionProvider.d.ts +4 -16
  113. package/dist/action-providers/truemarkets/truemarketsActionProvider.js +20 -41
  114. package/dist/action-providers/truemarkets/truemarketsActionProvider.test.js +11 -33
  115. package/dist/action-providers/wallet/walletActionProvider.js +24 -10
  116. package/dist/action-providers/wallet/walletActionProvider.test.js +6 -2
  117. package/dist/action-providers/x402/schemas.d.ts +7 -0
  118. package/dist/action-providers/x402/schemas.js +11 -1
  119. package/dist/action-providers/x402/utils.d.ts +55 -0
  120. package/dist/action-providers/x402/utils.js +160 -0
  121. package/dist/action-providers/x402/x402ActionProvider.d.ts +9 -9
  122. package/dist/action-providers/x402/x402ActionProvider.js +158 -39
  123. package/dist/action-providers/x402/x402ActionProvider.test.js +116 -10
  124. package/dist/action-providers/zeroX/index.d.ts +1 -0
  125. package/dist/action-providers/zeroX/index.js +17 -0
  126. package/dist/action-providers/zeroX/schemas.d.ts +51 -0
  127. package/dist/action-providers/zeroX/schemas.js +82 -0
  128. package/dist/action-providers/zeroX/utils.d.ts +23 -0
  129. package/dist/action-providers/zeroX/utils.js +106 -0
  130. package/dist/action-providers/zeroX/zeroXActionProvider.d.ts +57 -0
  131. package/dist/action-providers/zeroX/zeroXActionProvider.js +407 -0
  132. package/dist/action-providers/zeroX/zeroXActionProvider.test.d.ts +1 -0
  133. package/dist/action-providers/zeroX/zeroXActionProvider.test.js +445 -0
  134. package/dist/utils.d.ts +10 -0
  135. package/dist/utils.js +43 -13
  136. package/dist/wallet-providers/cdpEvmWalletProvider.d.ts +27 -2
  137. package/dist/wallet-providers/cdpEvmWalletProvider.js +54 -36
  138. package/dist/wallet-providers/cdpEvmWalletProvider.test.js +7 -0
  139. package/dist/wallet-providers/cdpShared.d.ts +5 -0
  140. package/dist/wallet-providers/cdpSmartWalletProvider.d.ts +29 -3
  141. package/dist/wallet-providers/cdpSmartWalletProvider.js +66 -25
  142. package/dist/wallet-providers/cdpSmartWalletProvider.test.js +6 -10
  143. package/dist/wallet-providers/cdpSolanaWalletProvider.d.ts +1 -1
  144. package/dist/wallet-providers/cdpSolanaWalletProvider.js +7 -7
  145. package/dist/wallet-providers/cdpSolanaWalletProvider.test.js +15 -12
  146. package/dist/wallet-providers/evmWalletProvider.d.ts +13 -2
  147. package/dist/wallet-providers/evmWalletProvider.js +4 -0
  148. package/dist/wallet-providers/legacyCdpSmartWalletProvider.d.ts +18 -2
  149. package/dist/wallet-providers/legacyCdpSmartWalletProvider.js +23 -2
  150. package/dist/wallet-providers/legacyCdpWalletProvider.d.ts +19 -2
  151. package/dist/wallet-providers/legacyCdpWalletProvider.js +27 -2
  152. package/dist/wallet-providers/legacyCdpWalletProvider.test.js +6 -0
  153. package/dist/wallet-providers/privyEvmDelegatedEmbeddedWalletProvider.d.ts +17 -2
  154. package/dist/wallet-providers/privyEvmDelegatedEmbeddedWalletProvider.js +39 -3
  155. package/dist/wallet-providers/privyEvmDelegatedEmbeddedWalletProvider.test.js +1 -1
  156. package/dist/wallet-providers/privyEvmWalletProvider.d.ts +2 -0
  157. package/dist/wallet-providers/privyEvmWalletProvider.js +2 -1
  158. package/dist/wallet-providers/privyEvmWalletProvider.test.js +12 -1
  159. package/dist/wallet-providers/solanaKeypairWalletProvider.d.ts +1 -1
  160. package/dist/wallet-providers/solanaKeypairWalletProvider.js +3 -4
  161. package/dist/wallet-providers/solanaKeypairWalletProvider.test.js +4 -2
  162. package/dist/wallet-providers/viemWalletProvider.d.ts +20 -3
  163. package/dist/wallet-providers/viemWalletProvider.js +33 -4
  164. package/dist/wallet-providers/viemWalletProvider.test.js +27 -6
  165. package/dist/wallet-providers/walletProvider.d.ts +1 -1
  166. package/dist/wallet-providers/zeroDevWalletProvider.d.ts +17 -2
  167. package/dist/wallet-providers/zeroDevWalletProvider.js +26 -5
  168. package/dist/wallet-providers/zeroDevWalletProvider.test.js +12 -2
  169. package/package.json +8 -4
@@ -104,6 +104,8 @@ jest.mock("viem", () => {
104
104
  fromHex: jest.fn(),
105
105
  formatEther: jest.fn(),
106
106
  privateKeyToAccount: jest.fn(),
107
+ isHex: jest.fn(value => typeof value === "string" && value.startsWith("0x")),
108
+ toHex: jest.fn(value => `0x${value}`),
107
109
  };
108
110
  });
109
111
  jest.mock("viem/accounts", () => {
@@ -119,6 +121,7 @@ describe("ViemWalletProvider", () => {
119
121
  jest.clearAllMocks();
120
122
  const mockAccount = {
121
123
  address: MOCK_ADDRESS,
124
+ sign: jest.fn().mockResolvedValue(MOCK_SIGNATURE),
122
125
  };
123
126
  mockPublicClient = {
124
127
  chain: MOCK_CHAIN,
@@ -209,11 +212,28 @@ describe("ViemWalletProvider", () => {
209
212
  });
210
213
  });
211
214
  describe("signing operations", () => {
215
+ it("should sign a hash", async () => {
216
+ const testHash = "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef";
217
+ const signature = await provider.sign(testHash);
218
+ expect(mockWalletClient.account?.sign).toHaveBeenCalledWith({
219
+ hash: testHash,
220
+ });
221
+ expect(signature).toBe(MOCK_SIGNATURE);
222
+ });
212
223
  it("should sign a message", async () => {
213
224
  const signature = await provider.signMessage(MOCK_MESSAGE);
214
225
  expect(mockWalletClient.signMessage).toHaveBeenCalledWith({
215
226
  account: mockWalletClient.account,
216
- message: MOCK_MESSAGE,
227
+ message: { raw: `0x${MOCK_MESSAGE}` },
228
+ });
229
+ expect(signature).toBe(MOCK_SIGNATURE);
230
+ });
231
+ it("should sign a hex message", async () => {
232
+ const hexMessage = "0x48656c6c6f2c20576f726c6421"; // "Hello, World!" in hex
233
+ const signature = await provider.signMessage(hexMessage);
234
+ expect(mockWalletClient.signMessage).toHaveBeenCalledWith({
235
+ account: mockWalletClient.account,
236
+ message: { raw: hexMessage },
217
237
  });
218
238
  expect(signature).toBe(MOCK_SIGNATURE);
219
239
  });
@@ -284,15 +304,16 @@ describe("ViemWalletProvider", () => {
284
304
  });
285
305
  describe("native token operations", () => {
286
306
  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();
307
+ const hash = await provider.nativeTransfer(MOCK_ADDRESS_TO, "1000000000000000000");
308
+ expect(mockWalletClient.sendTransaction).toHaveBeenCalledWith(expect.objectContaining({
309
+ to: MOCK_ADDRESS_TO,
310
+ value: BigInt("1000000000000000000"),
311
+ }));
291
312
  expect(hash).toBe(MOCK_TRANSACTION_HASH);
292
313
  });
293
314
  it("should handle native transfer errors", async () => {
294
315
  mockWalletClient.sendTransaction.mockRejectedValueOnce(new Error("Transaction failed"));
295
- await expect(provider.nativeTransfer(MOCK_ADDRESS_TO, "1.0")).rejects.toThrow("Transaction failed");
316
+ await expect(provider.nativeTransfer(MOCK_ADDRESS_TO, "1000000000000000000")).rejects.toThrow("Transaction failed");
296
317
  });
297
318
  it("should handle invalid address in native transfer", async () => {
298
319
  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.
@@ -51,6 +53,13 @@ export declare class ZeroDevWalletProvider extends EvmWalletProvider {
51
53
  * @returns A Promise that resolves to a new ZeroDevWalletProvider instance.
52
54
  */
53
55
  static configureWithWallet(config: ZeroDevWalletProviderConfig): Promise<ZeroDevWalletProvider>;
56
+ /**
57
+ * Signs a raw hash using the Kernel account.
58
+ *
59
+ * @param hash - The hash to sign.
60
+ * @returns The signed hash.
61
+ */
62
+ sign(hash: `0x${string}`): Promise<Hex>;
54
63
  /**
55
64
  * Signs a message using the Kernel account.
56
65
  *
@@ -111,6 +120,12 @@ export declare class ZeroDevWalletProvider extends EvmWalletProvider {
111
120
  * @returns The name of the wallet provider.
112
121
  */
113
122
  getName(): string;
123
+ /**
124
+ * Gets the Viem PublicClient used for read-only operations.
125
+ *
126
+ * @returns The Viem PublicClient instance used for read-only operations.
127
+ */
128
+ getPublicClient(): PublicClient;
114
129
  /**
115
130
  * Gets the balance of the wallet.
116
131
  *
@@ -121,7 +136,7 @@ export declare class ZeroDevWalletProvider extends EvmWalletProvider {
121
136
  * Transfer the native asset of the network.
122
137
  *
123
138
  * @param to - The destination address.
124
- * @param value - The amount to transfer in whole units (e.g. ETH).
139
+ * @param value - The amount to transfer in atomic units (Wei).
125
140
  * @returns The transaction hash.
126
141
  */
127
142
  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");
@@ -103,6 +105,18 @@ class ZeroDevWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
103
105
  });
104
106
  return new ZeroDevWalletProvider(config, kernelAccount, intentClient);
105
107
  }
108
+ /**
109
+ * Signs a raw hash using the Kernel account.
110
+ *
111
+ * @param hash - The hash to sign.
112
+ * @returns The signed hash.
113
+ */
114
+ async sign(hash) {
115
+ if (!__classPrivateFieldGet(this, _ZeroDevWalletProvider_kernelAccount, "f").sign) {
116
+ throw new Error("Kernel account does not support raw hash signing");
117
+ }
118
+ return __classPrivateFieldGet(this, _ZeroDevWalletProvider_kernelAccount, "f").sign({ hash });
119
+ }
106
120
  /**
107
121
  * Signs a message using the Kernel account.
108
122
  *
@@ -228,6 +242,14 @@ class ZeroDevWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
228
242
  getName() {
229
243
  return "zerodev_wallet_provider";
230
244
  }
245
+ /**
246
+ * Gets the Viem PublicClient used for read-only operations.
247
+ *
248
+ * @returns The Viem PublicClient instance used for read-only operations.
249
+ */
250
+ getPublicClient() {
251
+ return __classPrivateFieldGet(this, _ZeroDevWalletProvider_publicClient, "f");
252
+ }
231
253
  /**
232
254
  * Gets the balance of the wallet.
233
255
  *
@@ -242,12 +264,11 @@ class ZeroDevWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
242
264
  * Transfer the native asset of the network.
243
265
  *
244
266
  * @param to - The destination address.
245
- * @param value - The amount to transfer in whole units (e.g. ETH).
267
+ * @param value - The amount to transfer in atomic units (Wei).
246
268
  * @returns The transaction hash.
247
269
  */
248
270
  async nativeTransfer(to, value) {
249
- // Convert value to wei (assuming value is in whole units)
250
- const valueInWei = BigInt(parseFloat(value) * 10 ** 18);
271
+ const valueInWei = BigInt(value);
251
272
  // Get the chain ID from the network
252
273
  const chainId = parseInt(__classPrivateFieldGet(this, _ZeroDevWalletProvider_network, "f").chainId || "1");
253
274
  const intent = await __classPrivateFieldGet(this, _ZeroDevWalletProvider_intentClient, "f").sendUserIntent({
@@ -65,6 +65,7 @@ jest.mock("../analytics", () => ({
65
65
  // =========================================================
66
66
  const mockKernelAccount = {
67
67
  address: MOCK_ADDRESS,
68
+ sign: jest.fn(),
68
69
  signMessage: jest.fn(),
69
70
  signTypedData: jest.fn(),
70
71
  };
@@ -101,6 +102,7 @@ describe("ZeroDevWalletProvider", () => {
101
102
  transactionHash: MOCK_TRANSACTION_HASH,
102
103
  });
103
104
  mockPublicClient.getBalance.mockResolvedValue(BigInt(1000000000000000000));
105
+ mockKernelAccount.sign.mockResolvedValue(MOCK_SIGNATURE);
104
106
  mockKernelAccount.signMessage.mockResolvedValue(MOCK_SIGNATURE);
105
107
  mockKernelAccount.signTypedData.mockResolvedValue(MOCK_SIGNATURE);
106
108
  // Mock Intent Client behavior
@@ -193,6 +195,14 @@ describe("ZeroDevWalletProvider", () => {
193
195
  // Signing Operations Tests
194
196
  // =========================================================
195
197
  describe("signing operations", () => {
198
+ it("should sign a hash", async () => {
199
+ const testHash = "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef";
200
+ const signature = await provider.sign(testHash);
201
+ expect(mockKernelAccount.sign).toHaveBeenCalledWith({
202
+ hash: testHash,
203
+ });
204
+ expect(signature).toBe(MOCK_SIGNATURE);
205
+ });
196
206
  it("should sign messages", async () => {
197
207
  const message = "Hello, world!";
198
208
  const signature = await provider.signMessage(message);
@@ -283,8 +293,8 @@ describe("ZeroDevWalletProvider", () => {
283
293
  });
284
294
  it("should handle native transfers using nativeTransfer method", async () => {
285
295
  const to = "0x1234567890123456789012345678901234567890";
286
- const value = "1.0";
287
- const valueInWei = BigInt(parseFloat(value) * 10 ** 18);
296
+ const value = "1000000000000000000"; // 1 ETH in wei
297
+ const valueInWei = BigInt(value);
288
298
  const txHash = await provider.nativeTransfer(to, value);
289
299
  expect(mockIntentClient.sendUserIntent).toHaveBeenCalledWith({
290
300
  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.10.0",
5
+ "version": "0.10.2",
6
6
  "author": "Coinbase Inc.",
7
7
  "license": "Apache-2.0",
8
8
  "main": "dist/index.js",
@@ -24,8 +24,10 @@
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.34.0",
27
+ "@base-org/account": "^2.2.0",
28
+ "@coinbase/cdp-sdk": "^1.38.0",
28
29
  "@coinbase/coinbase-sdk": "^0.20.0",
30
+ "@coinbase/x402": "^0.6.3",
29
31
  "@jup-ag/api": "^6.0.39",
30
32
  "@privy-io/public-api": "2.18.5",
31
33
  "@privy-io/server-auth": "1.18.4",
@@ -38,15 +40,17 @@
38
40
  "axios": "^1.9.0",
39
41
  "bs58": "^4.0.1",
40
42
  "canonicalize": "^2.1.0",
43
+ "clanker-sdk": "^4.1.18",
41
44
  "decimal.js": "^10.5.0",
42
45
  "ethers": "^6.13.5",
46
+ "graphql-request": "^7.2.0",
43
47
  "md5": "^2.3.0",
44
48
  "opensea-js": "^7.1.18",
45
49
  "reflect-metadata": "^0.2.2",
46
50
  "twitter-api-v2": "^1.18.2",
47
51
  "viem": "^2.22.16",
48
- "x402": "^0.4.1",
49
- "x402-axios": "^0.3.3",
52
+ "x402": "^0.6.0",
53
+ "x402-axios": "^0.6.0",
50
54
  "zod": "^3.23.8"
51
55
  },
52
56
  "devDependencies": {