@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.
- package/README.md +195 -23
- package/dist/action-providers/across/acrossActionProvider.js +3 -3
- package/dist/action-providers/across/schemas.d.ts +1 -1
- package/dist/action-providers/baseAccount/baseAccountActionProvider.d.ts +46 -0
- package/dist/action-providers/baseAccount/baseAccountActionProvider.js +404 -0
- package/dist/action-providers/baseAccount/baseAccountActionProvider.test.d.ts +1 -0
- package/dist/action-providers/baseAccount/baseAccountActionProvider.test.js +325 -0
- package/dist/action-providers/baseAccount/index.d.ts +2 -0
- package/dist/action-providers/baseAccount/index.js +18 -0
- package/dist/action-providers/baseAccount/schemas.d.ts +43 -0
- package/dist/action-providers/baseAccount/schemas.js +62 -0
- package/dist/action-providers/baseAccount/types.d.ts +17 -0
- package/dist/action-providers/baseAccount/types.js +2 -0
- package/dist/action-providers/baseAccount/utils.d.ts +14 -0
- package/dist/action-providers/baseAccount/utils.js +57 -0
- package/dist/action-providers/cdp/cdpApiActionProvider.d.ts +3 -12
- package/dist/action-providers/cdp/cdpApiActionProvider.js +2 -81
- package/dist/action-providers/cdp/cdpApiActionProvider.test.js +0 -125
- package/dist/action-providers/cdp/cdpEvmWalletActionProvider.d.ts +18 -3
- package/dist/action-providers/cdp/cdpEvmWalletActionProvider.js +224 -23
- package/dist/action-providers/cdp/cdpEvmWalletActionProvider.test.js +280 -0
- package/dist/action-providers/cdp/cdpSmartWalletActionProvider.d.ts +17 -2
- package/dist/action-providers/cdp/cdpSmartWalletActionProvider.js +224 -18
- package/dist/action-providers/cdp/cdpSmartWalletActionProvider.test.js +267 -1
- package/dist/action-providers/cdp/schemas.d.ts +12 -12
- package/dist/action-providers/cdp/schemas.js +17 -5
- package/dist/action-providers/cdp/swapUtils.d.ts +23 -0
- package/dist/action-providers/cdp/swapUtils.js +106 -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/client_utils.d.ts +25 -0
- package/dist/action-providers/flaunch/client_utils.js +62 -0
- package/dist/action-providers/flaunch/constants.d.ts +42 -21
- package/dist/action-providers/flaunch/constants.js +113 -38
- package/dist/action-providers/flaunch/flaunchActionProvider.d.ts +4 -43
- package/dist/action-providers/flaunch/flaunchActionProvider.js +133 -209
- package/dist/action-providers/flaunch/flaunchActionProvider.test.js +113 -13
- package/dist/action-providers/flaunch/metadata_utils.d.ts +12 -0
- package/dist/action-providers/flaunch/metadata_utils.js +216 -0
- package/dist/action-providers/flaunch/schemas.d.ts +39 -3
- package/dist/action-providers/flaunch/schemas.js +62 -10
- package/dist/action-providers/flaunch/{utils.d.ts → swap_utils.d.ts} +17 -19
- package/dist/action-providers/flaunch/{utils.js → swap_utils.js} +137 -172
- 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.d.ts +2 -2
- package/dist/action-providers/pyth/pythActionProvider.js +83 -26
- package/dist/action-providers/pyth/pythActionProvider.test.js +179 -23
- package/dist/action-providers/pyth/schemas.d.ts +6 -0
- package/dist/action-providers/pyth/schemas.js +9 -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 +109 -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 +19 -0
- package/dist/action-providers/superfluid/utils/parseLogs.js +81 -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 +24 -10
- package/dist/action-providers/wallet/walletActionProvider.test.js +6 -2
- package/dist/action-providers/x402/schemas.d.ts +7 -0
- package/dist/action-providers/x402/schemas.js +11 -1
- package/dist/action-providers/x402/utils.d.ts +55 -0
- package/dist/action-providers/x402/utils.js +160 -0
- package/dist/action-providers/x402/x402ActionProvider.d.ts +9 -9
- package/dist/action-providers/x402/x402ActionProvider.js +158 -39
- package/dist/action-providers/x402/x402ActionProvider.test.js +116 -10
- 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/utils.d.ts +10 -0
- package/dist/utils.js +43 -13
- package/dist/wallet-providers/cdpEvmWalletProvider.d.ts +27 -2
- package/dist/wallet-providers/cdpEvmWalletProvider.js +54 -36
- package/dist/wallet-providers/cdpEvmWalletProvider.test.js +7 -0
- package/dist/wallet-providers/cdpShared.d.ts +5 -0
- package/dist/wallet-providers/cdpSmartWalletProvider.d.ts +29 -3
- package/dist/wallet-providers/cdpSmartWalletProvider.js +66 -25
- package/dist/wallet-providers/cdpSmartWalletProvider.test.js +6 -10
- 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 +13 -2
- package/dist/wallet-providers/evmWalletProvider.js +4 -0
- package/dist/wallet-providers/legacyCdpSmartWalletProvider.d.ts +18 -2
- package/dist/wallet-providers/legacyCdpSmartWalletProvider.js +23 -2
- package/dist/wallet-providers/legacyCdpWalletProvider.d.ts +19 -2
- package/dist/wallet-providers/legacyCdpWalletProvider.js +27 -2
- package/dist/wallet-providers/legacyCdpWalletProvider.test.js +6 -0
- package/dist/wallet-providers/privyEvmDelegatedEmbeddedWalletProvider.d.ts +17 -2
- package/dist/wallet-providers/privyEvmDelegatedEmbeddedWalletProvider.js +39 -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 +12 -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 +20 -3
- package/dist/wallet-providers/viemWalletProvider.js +33 -4
- package/dist/wallet-providers/viemWalletProvider.test.js +27 -6
- package/dist/wallet-providers/walletProvider.d.ts +1 -1
- package/dist/wallet-providers/zeroDevWalletProvider.d.ts +17 -2
- package/dist/wallet-providers/zeroDevWalletProvider.js +26 -5
- package/dist/wallet-providers/zeroDevWalletProvider.test.js +12 -2
- 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
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
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, "
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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 = "
|
|
287
|
-
const valueInWei = BigInt(
|
|
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.
|
|
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
|
-
"@
|
|
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.
|
|
49
|
-
"x402-axios": "^0.
|
|
52
|
+
"x402": "^0.6.0",
|
|
53
|
+
"x402-axios": "^0.6.0",
|
|
50
54
|
"zod": "^3.23.8"
|
|
51
55
|
},
|
|
52
56
|
"devDependencies": {
|