@dynamic-labs-wallet/node-evm 0.0.183 → 0.0.185
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/index.cjs.js +62 -0
- package/index.esm.js +61 -1
- package/package.json +9 -4
- package/src/client/client.d.ts +2 -0
- package/src/client/client.d.ts.map +1 -1
- package/src/delegatedClient.d.ts +19 -1
- package/src/delegatedClient.d.ts.map +1 -1
- package/src/zerodev/client.d.ts +15 -0
- package/src/zerodev/client.d.ts.map +1 -0
- package/src/zerodev/storage.d.ts +17 -0
- package/src/zerodev/storage.d.ts.map +1 -0
- package/src/zerodev/types.d.ts +27 -0
- package/src/zerodev/types.d.ts.map +1 -0
- package/src/zerodev/viemSignerAdapter.d.ts +17 -0
- package/src/zerodev/viemSignerAdapter.d.ts.map +1 -0
package/index.cjs.js
CHANGED
|
@@ -61,6 +61,12 @@ const deriveAccountAddress = ({ rawPublicKey })=>{
|
|
|
61
61
|
};
|
|
62
62
|
|
|
63
63
|
class DynamicEvmWalletClient extends node.DynamicWalletClient {
|
|
64
|
+
get jwtAuthToken() {
|
|
65
|
+
return this.baseJWTAuthToken;
|
|
66
|
+
}
|
|
67
|
+
get apiUrl() {
|
|
68
|
+
return this.baseApiUrl;
|
|
69
|
+
}
|
|
64
70
|
createViemPublicClient({ chain, rpcUrl }) {
|
|
65
71
|
return viem.createPublicClient({
|
|
66
72
|
chain,
|
|
@@ -455,6 +461,60 @@ class DynamicEvmWalletClient extends node.DynamicWalletClient {
|
|
|
455
461
|
throw error;
|
|
456
462
|
}
|
|
457
463
|
};
|
|
464
|
+
/**
|
|
465
|
+
* Signs typed data using delegated signing for EVM
|
|
466
|
+
*/ const delegatedSignTypedData = async (client, { walletId, walletApiKey, keyShare, typedData })=>{
|
|
467
|
+
try {
|
|
468
|
+
if (!keyShare || !walletId || !walletApiKey) {
|
|
469
|
+
throw new Error('Delegated key share, wallet ID, and wallet API key are required to sign typed data');
|
|
470
|
+
}
|
|
471
|
+
const formattedTypedData = formatTypedData(typedData);
|
|
472
|
+
const signatureEcdsa = await node.delegatedSignMessage(client, {
|
|
473
|
+
walletId,
|
|
474
|
+
walletApiKey,
|
|
475
|
+
keyShare,
|
|
476
|
+
message: formattedTypedData,
|
|
477
|
+
chainName: client.chainName,
|
|
478
|
+
isFormatted: true,
|
|
479
|
+
context: {
|
|
480
|
+
evmTypedData: typedData
|
|
481
|
+
}
|
|
482
|
+
});
|
|
483
|
+
const serializedSignature = serializeECDSASignature(signatureEcdsa);
|
|
484
|
+
return serializedSignature;
|
|
485
|
+
} catch (error) {
|
|
486
|
+
client.logger.error('Error in delegatedSignTypedData', error);
|
|
487
|
+
throw error;
|
|
488
|
+
}
|
|
489
|
+
};
|
|
490
|
+
/**
|
|
491
|
+
* Signs EIP-7702 authorization using delegated signing for EVM
|
|
492
|
+
*/ const delegatedSignAuthorization = async (client, { walletId, walletApiKey, keyShare, authorization })=>{
|
|
493
|
+
try {
|
|
494
|
+
if (!keyShare || !walletId || !walletApiKey) {
|
|
495
|
+
throw new Error('Delegated key share, wallet ID, and wallet API key are required to sign authorization');
|
|
496
|
+
}
|
|
497
|
+
const digest = utils.hashAuthorization(authorization);
|
|
498
|
+
const prehashed = digest.startsWith('0x') ? digest.slice(2) : digest;
|
|
499
|
+
const signatureEcdsa = await node.delegatedSignMessage(client, {
|
|
500
|
+
walletId,
|
|
501
|
+
walletApiKey,
|
|
502
|
+
keyShare,
|
|
503
|
+
message: prehashed,
|
|
504
|
+
chainName: client.chainName,
|
|
505
|
+
isFormatted: true,
|
|
506
|
+
context: {
|
|
507
|
+
eip7702Auth: authorization
|
|
508
|
+
}
|
|
509
|
+
});
|
|
510
|
+
const serializedSignature = serializeECDSASignature(signatureEcdsa);
|
|
511
|
+
const signature = viem.parseSignature(serializedSignature);
|
|
512
|
+
return signature;
|
|
513
|
+
} catch (error) {
|
|
514
|
+
client.logger.error('Error in delegatedSignAuthorization', error);
|
|
515
|
+
throw error;
|
|
516
|
+
}
|
|
517
|
+
};
|
|
458
518
|
/**
|
|
459
519
|
* Revoke delegation - delegates to the node package
|
|
460
520
|
*/ const revokeDelegation = async (client, params)=>{
|
|
@@ -470,8 +530,10 @@ exports.ERROR_SIGN_TYPED_DATA = ERROR_SIGN_TYPED_DATA;
|
|
|
470
530
|
exports.ERROR_VERIFY_MESSAGE_SIGNATURE = ERROR_VERIFY_MESSAGE_SIGNATURE;
|
|
471
531
|
exports.EVM_SIGN_MESSAGE_PREFIX = EVM_SIGN_MESSAGE_PREFIX;
|
|
472
532
|
exports.createDelegatedEvmWalletClient = createDelegatedEvmWalletClient;
|
|
533
|
+
exports.delegatedSignAuthorization = delegatedSignAuthorization;
|
|
473
534
|
exports.delegatedSignMessage = delegatedSignMessage;
|
|
474
535
|
exports.delegatedSignTransaction = delegatedSignTransaction;
|
|
536
|
+
exports.delegatedSignTypedData = delegatedSignTypedData;
|
|
475
537
|
exports.deriveAccountAddress = deriveAccountAddress;
|
|
476
538
|
exports.formatEVMMessage = formatEVMMessage;
|
|
477
539
|
exports.formatTypedData = formatTypedData;
|
package/index.esm.js
CHANGED
|
@@ -59,6 +59,12 @@ const deriveAccountAddress = ({ rawPublicKey })=>{
|
|
|
59
59
|
};
|
|
60
60
|
|
|
61
61
|
class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
62
|
+
get jwtAuthToken() {
|
|
63
|
+
return this.baseJWTAuthToken;
|
|
64
|
+
}
|
|
65
|
+
get apiUrl() {
|
|
66
|
+
return this.baseApiUrl;
|
|
67
|
+
}
|
|
62
68
|
createViemPublicClient({ chain, rpcUrl }) {
|
|
63
69
|
return createPublicClient({
|
|
64
70
|
chain,
|
|
@@ -453,10 +459,64 @@ class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
|
453
459
|
throw error;
|
|
454
460
|
}
|
|
455
461
|
};
|
|
462
|
+
/**
|
|
463
|
+
* Signs typed data using delegated signing for EVM
|
|
464
|
+
*/ const delegatedSignTypedData = async (client, { walletId, walletApiKey, keyShare, typedData })=>{
|
|
465
|
+
try {
|
|
466
|
+
if (!keyShare || !walletId || !walletApiKey) {
|
|
467
|
+
throw new Error('Delegated key share, wallet ID, and wallet API key are required to sign typed data');
|
|
468
|
+
}
|
|
469
|
+
const formattedTypedData = formatTypedData(typedData);
|
|
470
|
+
const signatureEcdsa = await delegatedSignMessage$1(client, {
|
|
471
|
+
walletId,
|
|
472
|
+
walletApiKey,
|
|
473
|
+
keyShare,
|
|
474
|
+
message: formattedTypedData,
|
|
475
|
+
chainName: client.chainName,
|
|
476
|
+
isFormatted: true,
|
|
477
|
+
context: {
|
|
478
|
+
evmTypedData: typedData
|
|
479
|
+
}
|
|
480
|
+
});
|
|
481
|
+
const serializedSignature = serializeECDSASignature(signatureEcdsa);
|
|
482
|
+
return serializedSignature;
|
|
483
|
+
} catch (error) {
|
|
484
|
+
client.logger.error('Error in delegatedSignTypedData', error);
|
|
485
|
+
throw error;
|
|
486
|
+
}
|
|
487
|
+
};
|
|
488
|
+
/**
|
|
489
|
+
* Signs EIP-7702 authorization using delegated signing for EVM
|
|
490
|
+
*/ const delegatedSignAuthorization = async (client, { walletId, walletApiKey, keyShare, authorization })=>{
|
|
491
|
+
try {
|
|
492
|
+
if (!keyShare || !walletId || !walletApiKey) {
|
|
493
|
+
throw new Error('Delegated key share, wallet ID, and wallet API key are required to sign authorization');
|
|
494
|
+
}
|
|
495
|
+
const digest = hashAuthorization(authorization);
|
|
496
|
+
const prehashed = digest.startsWith('0x') ? digest.slice(2) : digest;
|
|
497
|
+
const signatureEcdsa = await delegatedSignMessage$1(client, {
|
|
498
|
+
walletId,
|
|
499
|
+
walletApiKey,
|
|
500
|
+
keyShare,
|
|
501
|
+
message: prehashed,
|
|
502
|
+
chainName: client.chainName,
|
|
503
|
+
isFormatted: true,
|
|
504
|
+
context: {
|
|
505
|
+
eip7702Auth: authorization
|
|
506
|
+
}
|
|
507
|
+
});
|
|
508
|
+
const serializedSignature = serializeECDSASignature(signatureEcdsa);
|
|
509
|
+
const signature = parseSignature(serializedSignature);
|
|
510
|
+
return signature;
|
|
511
|
+
} catch (error) {
|
|
512
|
+
client.logger.error('Error in delegatedSignAuthorization', error);
|
|
513
|
+
throw error;
|
|
514
|
+
}
|
|
515
|
+
};
|
|
456
516
|
/**
|
|
457
517
|
* Revoke delegation - delegates to the node package
|
|
458
518
|
*/ const revokeDelegation = async (client, params)=>{
|
|
459
519
|
return revokeDelegation$1(client, params);
|
|
460
520
|
};
|
|
461
521
|
|
|
462
|
-
export { DynamicEvmWalletClient, ERROR_ACCOUNT_ADDRESS_REQUIRED, ERROR_CREATE_WALLET_ACCOUNT, ERROR_KEYGEN_FAILED, ERROR_SIGN_MESSAGE, ERROR_SIGN_TYPED_DATA, ERROR_VERIFY_MESSAGE_SIGNATURE, EVM_SIGN_MESSAGE_PREFIX, createDelegatedEvmWalletClient, delegatedSignMessage, delegatedSignTransaction, deriveAccountAddress, formatEVMMessage, formatTypedData, revokeDelegation, serializeECDSASignature };
|
|
522
|
+
export { DynamicEvmWalletClient, ERROR_ACCOUNT_ADDRESS_REQUIRED, ERROR_CREATE_WALLET_ACCOUNT, ERROR_KEYGEN_FAILED, ERROR_SIGN_MESSAGE, ERROR_SIGN_TYPED_DATA, ERROR_VERIFY_MESSAGE_SIGNATURE, EVM_SIGN_MESSAGE_PREFIX, createDelegatedEvmWalletClient, delegatedSignAuthorization, delegatedSignMessage, delegatedSignTransaction, delegatedSignTypedData, deriveAccountAddress, formatEVMMessage, formatTypedData, revokeDelegation, serializeECDSASignature };
|
package/package.json
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs-wallet/node-evm",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.185",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@dynamic-labs-wallet/node": "0.0.
|
|
8
|
-
"@dynamic-labs/sdk-api-core": "^0.0.801"
|
|
7
|
+
"@dynamic-labs-wallet/node": "0.0.185",
|
|
8
|
+
"@dynamic-labs/sdk-api-core": "^0.0.801",
|
|
9
|
+
"@dynamic-labs-sdk/client": "^0.1.0-alpha.22",
|
|
10
|
+
"@dynamic-labs-sdk/zerodev": "^0.1.0-alpha.22",
|
|
11
|
+
"@dynamic-labs-sdk/evm": "^0.1.0-alpha.22",
|
|
12
|
+
"@zerodev/ecdsa-validator": "5.4.9",
|
|
13
|
+
"@zerodev/sdk": "5.4.36"
|
|
9
14
|
},
|
|
10
15
|
"publishConfig": {
|
|
11
16
|
"access": "public"
|
|
12
17
|
},
|
|
13
18
|
"peerDependencies": {
|
|
14
|
-
"viem": "
|
|
19
|
+
"viem": "2.38.2"
|
|
15
20
|
},
|
|
16
21
|
"devDependencies": {
|
|
17
22
|
"typescript": "^5.0.0",
|
package/src/client/client.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ import { type Chain, type PublicClient, type SignableMessage, type TransactionSe
|
|
|
4
4
|
export declare class DynamicEvmWalletClient extends DynamicWalletClient {
|
|
5
5
|
readonly chainName = "EVM";
|
|
6
6
|
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, debug, }: DynamicWalletClientProps);
|
|
7
|
+
get jwtAuthToken(): string | undefined;
|
|
8
|
+
get apiUrl(): string | undefined;
|
|
7
9
|
createViemPublicClient({ chain, rpcUrl, }: {
|
|
8
10
|
chain: Chain;
|
|
9
11
|
rpcUrl?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
package/src/delegatedClient.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DelegatedWalletClient, ServerKeyShare } from '@dynamic-labs-wallet/node';
|
|
2
2
|
import type { SignMessageContext } from '@dynamic-labs/sdk-api-core';
|
|
3
|
-
import { type TransactionSerializable } from 'viem';
|
|
3
|
+
import { type TransactionSerializable, type TypedData } from 'viem';
|
|
4
4
|
export type DelegatedEvmClientConfig = {
|
|
5
5
|
environmentId: string;
|
|
6
6
|
baseApiUrl?: string;
|
|
@@ -35,6 +35,24 @@ export declare const delegatedSignTransaction: (client: DelegatedEvmWalletClient
|
|
|
35
35
|
keyShare: ServerKeyShare;
|
|
36
36
|
transaction: TransactionSerializable;
|
|
37
37
|
}) => Promise<string>;
|
|
38
|
+
/**
|
|
39
|
+
* Signs typed data using delegated signing for EVM
|
|
40
|
+
*/
|
|
41
|
+
export declare const delegatedSignTypedData: (client: DelegatedEvmWalletClient, { walletId, walletApiKey, keyShare, typedData, }: {
|
|
42
|
+
walletId: string;
|
|
43
|
+
walletApiKey: string;
|
|
44
|
+
keyShare: ServerKeyShare;
|
|
45
|
+
typedData: TypedData;
|
|
46
|
+
}) => Promise<string>;
|
|
47
|
+
/**
|
|
48
|
+
* Signs EIP-7702 authorization using delegated signing for EVM
|
|
49
|
+
*/
|
|
50
|
+
export declare const delegatedSignAuthorization: (client: DelegatedEvmWalletClient, { walletId, walletApiKey, keyShare, authorization, }: {
|
|
51
|
+
walletId: string;
|
|
52
|
+
walletApiKey: string;
|
|
53
|
+
keyShare: ServerKeyShare;
|
|
54
|
+
authorization: any;
|
|
55
|
+
}) => Promise<any>;
|
|
38
56
|
/**
|
|
39
57
|
* Revoke delegation - delegates to the node package
|
|
40
58
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegatedClient.d.ts","sourceRoot":"","sources":["../../packages/src/delegatedClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EAErB,cAAc,EACf,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,
|
|
1
|
+
{"version":3,"file":"delegatedClient.d.ts","sourceRoot":"","sources":["../../packages/src/delegatedClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EAErB,cAAc,EACf,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACf,MAAM,MAAM,CAAC;AAQd,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,qBAAqB,GAAG;IAC7D,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,sEAMxC,wBAAwB,KAAG,wBAe7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,WACvB,wBAAwB,oEAQ7B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,KACA,OAAO,CAAC,MAAM,CA0BhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,WAC3B,wBAAwB,sDAM7B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,uBAAuB,CAAC;CACtC,KACA,OAAO,CAAC,MAAM,CA8ChB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,WACzB,wBAAwB,oDAM7B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,SAAS,CAAC;CACtB,KACA,OAAO,CAAC,MAAM,CA6BhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,WAC7B,wBAAwB,wDAM7B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,GAAG,CAAC;CACpB,KACA,OAAO,CAAC,GAAG,CA+Bb,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,WACnB,wBAAwB,UACxB,GAAG,kBAGZ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { EvmClientBase, KernelClient, ZeroDevKernelOptions } from './types.js';
|
|
2
|
+
export declare class DynamicEvmZeroDevClient {
|
|
3
|
+
private readonly dynamicClient;
|
|
4
|
+
private readonly evmClient;
|
|
5
|
+
constructor(evmClient: EvmClientBase);
|
|
6
|
+
initialize(): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Get network data by networkId from project configuration
|
|
9
|
+
*/
|
|
10
|
+
private getNetworkData;
|
|
11
|
+
createKernelClientForAddress(options: ZeroDevKernelOptions): Promise<KernelClient>;
|
|
12
|
+
private createKernelAccountWithCustomSigner;
|
|
13
|
+
}
|
|
14
|
+
export declare const createZerodevClient: (evmClient: EvmClientBase) => Promise<DynamicEvmZeroDevClient>;
|
|
15
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/zerodev/client.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAGpB,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyC;IACvE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;gBAE9B,SAAS,EAAE,aAAa;IAsB9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC;;OAEG;IACH,OAAO,CAAC,cAAc;IAehB,4BAA4B,CAChC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,YAAY,CAAC;YAuEV,mCAAmC;CAoElD;AAED,eAAO,MAAM,mBAAmB,cACnB,aAAa,KACvB,OAAO,CAAC,uBAAuB,CAMjC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface StorageAdapter {
|
|
2
|
+
getItem: (key: string) => Promise<string | null>;
|
|
3
|
+
setItem: (key: string, value: string) => Promise<void>;
|
|
4
|
+
removeItem: (key: string) => Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
export declare class MemoryStorageAdapter implements StorageAdapter {
|
|
7
|
+
private readonly store;
|
|
8
|
+
private readonly jwt;
|
|
9
|
+
constructor(jwt: string | null);
|
|
10
|
+
getItem(key: string): Promise<string | null>;
|
|
11
|
+
setItem(key: string, value: string): Promise<void>;
|
|
12
|
+
removeItem(key: string): Promise<void>;
|
|
13
|
+
clear(): void;
|
|
14
|
+
get size(): number;
|
|
15
|
+
}
|
|
16
|
+
export declare const createMemoryStorageAdapter: (jwt: string | null) => StorageAdapter;
|
|
17
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/zerodev/storage.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAExB,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkB5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED,eAAO,MAAM,0BAA0B,QAChC,MAAM,GAAG,IAAI,KACjB,cAEF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ServerKeyShare } from '@dynamic-labs-wallet/node';
|
|
2
|
+
import type { ZerodevBundlerProvider } from '@dynamic-labs/sdk-api-core';
|
|
3
|
+
import type { KernelAccountClient } from '@zerodev/sdk';
|
|
4
|
+
import type { Chain, Client, Hex, RpcSchema, Transport } from 'viem';
|
|
5
|
+
import type { SmartAccount } from 'viem/account-abstraction';
|
|
6
|
+
import type { DynamicEvmWalletClient } from '../client/client.js';
|
|
7
|
+
import type { createDelegatedEvmWalletClient, DelegatedEvmWalletClient } from '../delegatedClient.js';
|
|
8
|
+
export type ZeroDevKernelOptions = {
|
|
9
|
+
address: `0x${string}`;
|
|
10
|
+
networkId: string;
|
|
11
|
+
password?: string;
|
|
12
|
+
externalServerKeyShares?: ServerKeyShare[];
|
|
13
|
+
delegated?: {
|
|
14
|
+
delegatedClient: ReturnType<typeof createDelegatedEvmWalletClient>;
|
|
15
|
+
walletId: string;
|
|
16
|
+
walletApiKey: string;
|
|
17
|
+
keyShare: ServerKeyShare;
|
|
18
|
+
};
|
|
19
|
+
withSponsorship?: boolean;
|
|
20
|
+
bundlerProvider?: ZerodevBundlerProvider;
|
|
21
|
+
bundlerRpc?: string;
|
|
22
|
+
paymasterRpc?: string;
|
|
23
|
+
gasTokenAddress?: Hex;
|
|
24
|
+
};
|
|
25
|
+
export type KernelClient = KernelAccountClient<Transport, Chain, SmartAccount, Client, RpcSchema>;
|
|
26
|
+
export type EvmClientBase = DynamicEvmWalletClient | DelegatedEvmWalletClient;
|
|
27
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/zerodev/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EACV,8BAA8B,EAC9B,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3C,SAAS,CAAC,EAAE;QACV,eAAe,EAAE,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC;QACnE,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,cAAc,CAAC;KAC1B,CAAC;IACF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,mBAAmB,CAC5C,SAAS,EACT,KAAK,EACL,YAAY,EACZ,MAAM,EACN,SAAS,CACV,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,sBAAsB,GAAG,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ServerKeyShare } from '@dynamic-labs-wallet/node';
|
|
2
|
+
import type { Account } from 'viem';
|
|
3
|
+
import { type createDelegatedEvmWalletClient } from '../delegatedClient.js';
|
|
4
|
+
import type { EvmClientBase } from './types.js';
|
|
5
|
+
export declare const createViemSignerAdapter: ({ evmClient, accountAddress, password, externalServerKeyShares, delegated, }: {
|
|
6
|
+
evmClient: EvmClientBase;
|
|
7
|
+
accountAddress: `0x${string}`;
|
|
8
|
+
password?: string;
|
|
9
|
+
externalServerKeyShares?: ServerKeyShare[];
|
|
10
|
+
delegated?: {
|
|
11
|
+
delegatedClient: ReturnType<typeof createDelegatedEvmWalletClient>;
|
|
12
|
+
walletId: string;
|
|
13
|
+
walletApiKey: string;
|
|
14
|
+
keyShare: ServerKeyShare;
|
|
15
|
+
};
|
|
16
|
+
}) => Account;
|
|
17
|
+
//# sourceMappingURL=viemSignerAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viemSignerAdapter.d.ts","sourceRoot":"","sources":["../../src/zerodev/viemSignerAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,MAAM,CAAC;AAGpD,OAAO,EACL,KAAK,8BAA8B,EAKpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,uBAAuB,iFAMjC;IACD,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3C,SAAS,CAAC,EAAE;QACV,eAAe,EAAE,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC;QACnE,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,cAAc,CAAC;KAC1B,CAAC;CACH,KAAG,OAsGH,CAAC"}
|