@etherkit/viem-tx-tracker 0.0.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/LICENSE +21 -0
- package/README.md +322 -0
- package/dist/TrackedWalletClient.d.ts +17 -0
- package/dist/TrackedWalletClient.d.ts.map +1 -0
- package/dist/TrackedWalletClient.js +264 -0
- package/dist/TrackedWalletClient.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +189 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +59 -0
- package/src/TrackedWalletClient.ts +472 -0
- package/src/index.ts +15 -0
- package/src/types.ts +328 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import type { Abi, Account, Address, Chain, ContractFunctionArgs, ContractFunctionName, Hash, PublicClient, SendTransactionParameters, TransactionReceipt, TransactionSerialized, Transport, WalletClient, WriteContractParameters } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Block tags that can be used to specify nonce fetching strategy
|
|
4
|
+
*/
|
|
5
|
+
export type BlockTag = 'latest' | 'pending' | 'earliest' | 'safe' | 'finalized';
|
|
6
|
+
/**
|
|
7
|
+
* Nonce can be:
|
|
8
|
+
* - number: exact nonce to use
|
|
9
|
+
* - BlockTag: fetch nonce using this block tag
|
|
10
|
+
* - undefined: fetch nonce using 'pending' (default)
|
|
11
|
+
*/
|
|
12
|
+
export type NonceOption = number | BlockTag;
|
|
13
|
+
/**
|
|
14
|
+
* Expected event for success detection.
|
|
15
|
+
* Even if tx hash changes due to replacement, we can detect success by watching for this event.
|
|
16
|
+
*/
|
|
17
|
+
export interface ExpectedEvent {
|
|
18
|
+
address: Address;
|
|
19
|
+
eventName: string;
|
|
20
|
+
args?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Metadata that can be attached to a transaction for tracking purposes.
|
|
24
|
+
* All fields are optional and extensible.
|
|
25
|
+
*/
|
|
26
|
+
export interface TransactionMetadata {
|
|
27
|
+
/**
|
|
28
|
+
* Optional custom ID - if provided, used instead of tx hash for tracking.
|
|
29
|
+
* Useful for correlating transactions with business logic (e.g., order IDs).
|
|
30
|
+
*/
|
|
31
|
+
id?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Human-readable title for the transaction.
|
|
34
|
+
*/
|
|
35
|
+
title?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Detailed description of what the transaction does.
|
|
38
|
+
*/
|
|
39
|
+
description?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Expected event signature/filter for success detection.
|
|
42
|
+
* Even if tx hash changes due to replacement, we can detect success by watching for this event.
|
|
43
|
+
*/
|
|
44
|
+
expectedEvent?: ExpectedEvent;
|
|
45
|
+
/**
|
|
46
|
+
* Extensible: user can add any additional fields.
|
|
47
|
+
*/
|
|
48
|
+
[key: string]: unknown;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* A tracked transaction record with all relevant information for tracking.
|
|
52
|
+
*/
|
|
53
|
+
export interface TrackedTransaction<M extends TransactionMetadata = TransactionMetadata> {
|
|
54
|
+
/**
|
|
55
|
+
* Tracking ID - either metadata.id or auto-generated UUID.
|
|
56
|
+
*/
|
|
57
|
+
trackingId: string;
|
|
58
|
+
/**
|
|
59
|
+
* The transaction hash once known.
|
|
60
|
+
*/
|
|
61
|
+
txHash: Hash;
|
|
62
|
+
/**
|
|
63
|
+
* Sender address.
|
|
64
|
+
*/
|
|
65
|
+
from: Address;
|
|
66
|
+
/**
|
|
67
|
+
* Transaction nonce (actual nonce from fetched tx, or intended if fetch failed).
|
|
68
|
+
*/
|
|
69
|
+
nonce: number;
|
|
70
|
+
/**
|
|
71
|
+
* Chain ID.
|
|
72
|
+
*/
|
|
73
|
+
chainId: number;
|
|
74
|
+
/**
|
|
75
|
+
* The full metadata provided by the caller.
|
|
76
|
+
*/
|
|
77
|
+
metadata: M;
|
|
78
|
+
/**
|
|
79
|
+
* Timestamp when the transaction was initiated (ms since epoch).
|
|
80
|
+
*/
|
|
81
|
+
initiatedAt: number;
|
|
82
|
+
/**
|
|
83
|
+
* The original transaction request data.
|
|
84
|
+
*/
|
|
85
|
+
request: unknown;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Extended WriteContractParameters with optional metadata and flexible nonce.
|
|
89
|
+
*/
|
|
90
|
+
export type TrackedWriteContractParameters<TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends ContractFunctionName<TAbi, 'nonpayable' | 'payable'> = ContractFunctionName<TAbi, 'nonpayable' | 'payable'>, TArgs extends ContractFunctionArgs<TAbi, 'nonpayable' | 'payable', TFunctionName> = ContractFunctionArgs<TAbi, 'nonpayable' | 'payable', TFunctionName>, TChain extends Chain | undefined = Chain | undefined, TAccount extends Account | undefined = Account | undefined, TChainOverride extends Chain | undefined = Chain | undefined> = Omit<WriteContractParameters<TAbi, TFunctionName, TArgs, TChain, TAccount, TChainOverride>, 'nonce'> & {
|
|
91
|
+
/**
|
|
92
|
+
* Optional metadata to attach to the transaction for tracking.
|
|
93
|
+
*/
|
|
94
|
+
metadata?: TransactionMetadata;
|
|
95
|
+
/**
|
|
96
|
+
* Nonce option:
|
|
97
|
+
* - number: exact nonce to use
|
|
98
|
+
* - BlockTag ('latest', 'pending', etc.): fetch nonce using this block tag
|
|
99
|
+
* - undefined: fetch nonce using 'pending' (default)
|
|
100
|
+
*/
|
|
101
|
+
nonce?: NonceOption;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Extended SendTransactionParameters with optional metadata and flexible nonce.
|
|
105
|
+
*/
|
|
106
|
+
export type TrackedSendTransactionParameters<TChain extends Chain | undefined = Chain | undefined, TAccount extends Account | undefined = Account | undefined, TChainOverride extends Chain | undefined = Chain | undefined> = Omit<SendTransactionParameters<TChain, TAccount, TChainOverride>, 'nonce'> & {
|
|
107
|
+
/**
|
|
108
|
+
* Optional metadata to attach to the transaction for tracking.
|
|
109
|
+
*/
|
|
110
|
+
metadata?: TransactionMetadata;
|
|
111
|
+
/**
|
|
112
|
+
* Nonce option:
|
|
113
|
+
* - number: exact nonce to use
|
|
114
|
+
* - BlockTag ('latest', 'pending', etc.): fetch nonce using this block tag
|
|
115
|
+
* - undefined: fetch nonce using 'pending' (default)
|
|
116
|
+
*/
|
|
117
|
+
nonce?: NonceOption;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Parameters for sendRawTransaction with optional metadata.
|
|
121
|
+
* The serialized transaction already contains from/nonce which will be decoded.
|
|
122
|
+
*/
|
|
123
|
+
export interface TrackedRawTransactionParameters {
|
|
124
|
+
/**
|
|
125
|
+
* The RLP-encoded signed transaction.
|
|
126
|
+
*/
|
|
127
|
+
serializedTransaction: TransactionSerialized;
|
|
128
|
+
/**
|
|
129
|
+
* Optional metadata to attach to the transaction for tracking.
|
|
130
|
+
*/
|
|
131
|
+
metadata?: TransactionMetadata;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* A wallet client wrapper that tracks transactions with metadata.
|
|
135
|
+
*/
|
|
136
|
+
export interface TrackedWalletClient<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends Account | undefined = Account | undefined> {
|
|
137
|
+
/**
|
|
138
|
+
* The underlying wallet client.
|
|
139
|
+
*/
|
|
140
|
+
readonly walletClient: WalletClient<TTransport, TChain, TAccount>;
|
|
141
|
+
/**
|
|
142
|
+
* The public client used for nonce fetching and tx verification.
|
|
143
|
+
*/
|
|
144
|
+
readonly publicClient: PublicClient;
|
|
145
|
+
/**
|
|
146
|
+
* Write to a contract with optional metadata tracking.
|
|
147
|
+
* Returns immediately after broadcast with the transaction hash.
|
|
148
|
+
*/
|
|
149
|
+
writeContract<const TAbi extends Abi | readonly unknown[], TFunctionName extends ContractFunctionName<TAbi, 'nonpayable' | 'payable'>, TArgs extends ContractFunctionArgs<TAbi, 'nonpayable' | 'payable', TFunctionName>, TChainOverride extends Chain | undefined = undefined>(args: TrackedWriteContractParameters<TAbi, TFunctionName, TArgs, TChain, TAccount, TChainOverride>): Promise<Hash>;
|
|
150
|
+
/**
|
|
151
|
+
* Send a transaction with optional metadata tracking.
|
|
152
|
+
* Returns immediately after broadcast with the transaction hash.
|
|
153
|
+
*/
|
|
154
|
+
sendTransaction<TChainOverride extends Chain | undefined = undefined>(args: TrackedSendTransactionParameters<TChain, TAccount, TChainOverride>): Promise<Hash>;
|
|
155
|
+
/**
|
|
156
|
+
* Send a signed raw transaction with optional metadata tracking.
|
|
157
|
+
* The nonce and from address are decoded from the serialized transaction.
|
|
158
|
+
* Returns immediately after broadcast with the transaction hash.
|
|
159
|
+
*/
|
|
160
|
+
sendRawTransaction(args: TrackedRawTransactionParameters): Promise<Hash>;
|
|
161
|
+
/**
|
|
162
|
+
* Write to a contract and wait for confirmation.
|
|
163
|
+
* Returns the transaction receipt after the transaction is confirmed.
|
|
164
|
+
*/
|
|
165
|
+
writeContractSync<const TAbi extends Abi | readonly unknown[], TFunctionName extends ContractFunctionName<TAbi, 'nonpayable' | 'payable'>, TArgs extends ContractFunctionArgs<TAbi, 'nonpayable' | 'payable', TFunctionName>, TChainOverride extends Chain | undefined = undefined>(args: TrackedWriteContractParameters<TAbi, TFunctionName, TArgs, TChain, TAccount, TChainOverride>): Promise<TransactionReceipt>;
|
|
166
|
+
/**
|
|
167
|
+
* Send a transaction and wait for confirmation.
|
|
168
|
+
* Returns the transaction receipt after the transaction is confirmed.
|
|
169
|
+
*/
|
|
170
|
+
sendTransactionSync<TChainOverride extends Chain | undefined = undefined>(args: TrackedSendTransactionParameters<TChain, TAccount, TChainOverride>): Promise<TransactionReceipt>;
|
|
171
|
+
/**
|
|
172
|
+
* Send a signed raw transaction and wait for confirmation.
|
|
173
|
+
* Returns the transaction receipt after the transaction is confirmed.
|
|
174
|
+
*/
|
|
175
|
+
sendRawTransactionSync(args: TrackedRawTransactionParameters): Promise<TransactionReceipt>;
|
|
176
|
+
/**
|
|
177
|
+
* Subscribe to transaction broadcast events.
|
|
178
|
+
* Called immediately after a transaction is successfully broadcast.
|
|
179
|
+
* @param listener - Callback function receiving TrackedTransaction
|
|
180
|
+
* @returns Unsubscribe function
|
|
181
|
+
*/
|
|
182
|
+
onTransactionBroadcasted(listener: (event: TrackedTransaction) => void): () => void;
|
|
183
|
+
/**
|
|
184
|
+
* Unsubscribe from transaction broadcast events.
|
|
185
|
+
* @param listener - The same listener function passed to onTransactionBroadcasted
|
|
186
|
+
*/
|
|
187
|
+
offTransactionBroadcasted(listener: (event: TrackedTransaction) => void): void;
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@etherkit/viem-tx-tracker",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Ronan Sandford",
|
|
7
|
+
"homepage": "https://github.com/wighawag/etherkit#readme",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/wighawag/etherkit.git",
|
|
11
|
+
"directory": "packages/viem-tx-tracker"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/wighawag/etherkit/issues"
|
|
15
|
+
},
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"type": "module",
|
|
20
|
+
"main": "./dist/index.js",
|
|
21
|
+
"module": "./dist/index.js",
|
|
22
|
+
"types": "./dist/index.d.ts",
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"import": "./dist/index.js"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist",
|
|
31
|
+
"src"
|
|
32
|
+
],
|
|
33
|
+
"sideEffects": false,
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"radiate": "^0.3.2"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"viem": "^2.46.3"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@types/node": "^25.2.0",
|
|
42
|
+
"as-soon": "^0.1.5",
|
|
43
|
+
"prettier": "^3.8.0",
|
|
44
|
+
"prool": "^0.2.2",
|
|
45
|
+
"typescript": "^5.3.3",
|
|
46
|
+
"viem": "^2.46.3",
|
|
47
|
+
"vitest": "^4.0.18"
|
|
48
|
+
},
|
|
49
|
+
"scripts": {
|
|
50
|
+
"format": "prettier --write .",
|
|
51
|
+
"format:check": "prettier --check .",
|
|
52
|
+
"build": "tsc",
|
|
53
|
+
"dev": "as-soon -w src pnpm build",
|
|
54
|
+
"typecheck": "tsc --noEmit -p tsconfig-check.json",
|
|
55
|
+
"test": "vitest run",
|
|
56
|
+
"test:watch": "vitest",
|
|
57
|
+
"test:coverage": "vitest run --coverage"
|
|
58
|
+
}
|
|
59
|
+
}
|