@etherkit/viem-tx-tracker 0.0.4 → 0.0.6
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/dist/TrackedWalletClient.d.ts +34 -3
- package/dist/TrackedWalletClient.d.ts.map +1 -1
- package/dist/TrackedWalletClient.js +433 -97
- package/dist/TrackedWalletClient.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +257 -38
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/TrackedWalletClient.ts +785 -112
- package/src/index.ts +1 -0
- package/src/types.ts +407 -38
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Account, type Chain, type PublicClient, type Transport, type WalletClient } from 'viem';
|
|
2
|
-
import type { TrackedWalletClient } from './types.js';
|
|
2
|
+
import type { PopulatedMetadata, TrackedWalletClient, TrackedWalletClientAutoPopulate } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Infer transport type from WalletClient
|
|
5
5
|
*/
|
|
@@ -25,6 +25,22 @@ export interface TrackedWalletClientBuilder<TMetadata> {
|
|
|
25
25
|
*/
|
|
26
26
|
using<TClient extends WalletClient>(walletClient: TClient, publicClient: PublicClient): TrackedWalletClient<TMetadata, InferTransport<TClient>, InferChain<TClient>, InferAccount<TClient>>;
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Builder interface returned by createTrackedWalletClient with populateMetadata: true.
|
|
30
|
+
* This builder returns a TrackedWalletClientAutoPopulate that auto-populates operation, functionName and args.
|
|
31
|
+
* TMetadata must be a type where FunctionCallMetadata is assignable to it.
|
|
32
|
+
*/
|
|
33
|
+
export interface TrackedWalletClientAutoPopulateBuilder<TMetadata> {
|
|
34
|
+
/**
|
|
35
|
+
* Create the tracked wallet client using the provided wallet and public clients.
|
|
36
|
+
* writeContract and writeContractSync will automatically populate operation, functionName and args.
|
|
37
|
+
*
|
|
38
|
+
* @param walletClient - The underlying viem WalletClient
|
|
39
|
+
* @param publicClient - A PublicClient for nonce fetching and tx verification
|
|
40
|
+
* @returns A TrackedWalletClientAutoPopulate instance
|
|
41
|
+
*/
|
|
42
|
+
using<TClient extends WalletClient>(walletClient: TClient, publicClient: PublicClient): TrackedWalletClientAutoPopulate<TMetadata, InferTransport<TClient>, InferChain<TClient>, InferAccount<TClient>>;
|
|
43
|
+
}
|
|
28
44
|
/**
|
|
29
45
|
* Create a tracked wallet client that wraps a viem WalletClient.
|
|
30
46
|
*
|
|
@@ -39,15 +55,30 @@ export interface TrackedWalletClientBuilder<TMetadata> {
|
|
|
39
55
|
*
|
|
40
56
|
* @example
|
|
41
57
|
* ```typescript
|
|
42
|
-
* //
|
|
58
|
+
* // Standard mode with required metadata
|
|
43
59
|
* const tracked = createTrackedWalletClient<{purpose: string}>()
|
|
44
60
|
* .using(walletClient, publicClient);
|
|
45
61
|
*
|
|
46
|
-
* //
|
|
62
|
+
* // Standard mode with optional metadata
|
|
47
63
|
* const tracked = createTrackedWalletClient<{purpose: string} | undefined>()
|
|
48
64
|
* .using(walletClient, publicClient);
|
|
65
|
+
*
|
|
66
|
+
* // Auto-populate mode - functionName and args are auto-populated
|
|
67
|
+
* const tracked = createTrackedWalletClient({ populateMetadata: true })
|
|
68
|
+
* .using(walletClient, publicClient);
|
|
69
|
+
*
|
|
70
|
+
* // Auto-populate mode with extended metadata
|
|
71
|
+
* type MyMetadata = OperationMetadata & { purpose: string };
|
|
72
|
+
* const tracked = createTrackedWalletClient<MyMetadata>({ populateMetadata: true })
|
|
73
|
+
* .using(walletClient, publicClient);
|
|
49
74
|
* ```
|
|
50
75
|
*/
|
|
51
76
|
export declare function createTrackedWalletClient<TMetadata>(): TrackedWalletClientBuilder<TMetadata>;
|
|
77
|
+
export declare function createTrackedWalletClient(options: {
|
|
78
|
+
populateMetadata: true;
|
|
79
|
+
}): TrackedWalletClientAutoPopulateBuilder<PopulatedMetadata>;
|
|
80
|
+
export declare function createTrackedWalletClient<TMetadata>(options: {
|
|
81
|
+
populateMetadata: true;
|
|
82
|
+
}): TrackedWalletClientAutoPopulateBuilder<TMetadata>;
|
|
52
83
|
export {};
|
|
53
84
|
//# sourceMappingURL=TrackedWalletClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackedWalletClient.d.ts","sourceRoot":"","sources":["../src/TrackedWalletClient.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"TrackedWalletClient.d.ts","sourceRoot":"","sources":["../src/TrackedWalletClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,KAAK,OAAO,EAEZ,KAAK,KAAK,EAIV,KAAK,YAAY,EAIjB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAMX,iBAAiB,EAIjB,mBAAmB,EACnB,+BAA+B,EAI/B,MAAM,YAAY,CAAC;AA+RpB;;GAEG;AACH,KAAK,cAAc,CAAC,CAAC,IACpB,CAAC,SAAS,YAAY,CAAC,MAAM,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;AAE7E;;GAEG;AACH,KAAK,UAAU,CAAC,CAAC,IAChB,CAAC,SAAS,YAAY,CAAC,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAE7E;;GAEG;AACH,KAAK,YAAY,CAAC,CAAC,IAClB,CAAC,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC,GAC7C,QAAQ,GACR,OAAO,GAAG,SAAS,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,0BAA0B,CAAC,SAAS;IACpD;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,SAAS,YAAY,EACjC,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,YAAY,GACxB,mBAAmB,CACrB,SAAS,EACT,cAAc,CAAC,OAAO,CAAC,EACvB,UAAU,CAAC,OAAO,CAAC,EACnB,YAAY,CAAC,OAAO,CAAC,CACrB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,sCAAsC,CAAC,SAAS;IAChE;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,SAAS,YAAY,EACjC,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,YAAY,GACxB,+BAA+B,CACjC,SAAS,EACT,cAAc,CAAC,OAAO,CAAC,EACvB,UAAU,CAAC,OAAO,CAAC,EACnB,YAAY,CAAC,OAAO,CAAC,CACrB,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,wBAAgB,yBAAyB,CACxC,SAAS,KACL,0BAA0B,CAAC,SAAS,CAAC,CAAC;AAG3C,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAClD,gBAAgB,EAAE,IAAI,CAAC;CACvB,GAAG,sCAAsC,CAAC,iBAAiB,CAAC,CAAC;AAG9D,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,OAAO,EAAE;IAC7D,gBAAgB,EAAE,IAAI,CAAC;CACvB,GAAG,sCAAsC,CAAC,SAAS,CAAC,CAAC"}
|