@rocketh/core 0.17.8 → 0.17.9

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 (40) hide show
  1. package/README.md +6 -0
  2. package/dist/account.d.ts +43 -0
  3. package/dist/account.d.ts.map +1 -0
  4. package/dist/account.js +61 -0
  5. package/dist/account.js.map +1 -0
  6. package/dist/account.test.d.ts +2 -0
  7. package/dist/account.test.d.ts.map +1 -0
  8. package/dist/account.test.js +324 -0
  9. package/dist/account.test.js.map +1 -0
  10. package/dist/artifacts.test.d.ts +2 -0
  11. package/dist/artifacts.test.d.ts.map +1 -0
  12. package/dist/artifacts.test.js +682 -0
  13. package/dist/artifacts.test.js.map +1 -0
  14. package/dist/environment.integration.test.d.ts +13 -0
  15. package/dist/environment.integration.test.d.ts.map +1 -0
  16. package/dist/environment.integration.test.js +296 -0
  17. package/dist/environment.integration.test.js.map +1 -0
  18. package/dist/index.d.ts +6 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +10 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/json.test.d.ts +2 -0
  23. package/dist/json.test.d.ts.map +1 -0
  24. package/dist/json.test.js +383 -0
  25. package/dist/json.test.js.map +1 -0
  26. package/dist/providers/TransactionHashTracker.test.d.ts +2 -0
  27. package/dist/providers/TransactionHashTracker.test.d.ts.map +1 -0
  28. package/dist/providers/TransactionHashTracker.test.js +284 -0
  29. package/dist/providers/TransactionHashTracker.test.js.map +1 -0
  30. package/dist/types.d.ts.map +1 -1
  31. package/package.json +16 -7
  32. package/src/account.ts +74 -0
  33. package/src/artifacts.ts +176 -0
  34. package/src/environment.ts +98 -0
  35. package/src/index.ts +24 -0
  36. package/src/json.ts +63 -0
  37. package/src/providers/BaseProvider.ts +13 -0
  38. package/src/providers/TransactionHashTracker.ts +26 -0
  39. package/src/providers/index.ts +1 -0
  40. package/src/types.ts +637 -0
package/README.md CHANGED
@@ -1 +1,7 @@
1
1
  # @rocketh/core
2
+
3
+ Utilities for other rocketh packages, including shared types, JSON utilities, artifact handling, environment management, providers, and account resolution.
4
+
5
+ For full documentation, visit [rocketh.dev](https://rocketh.dev).
6
+
7
+ For hardhat-deploy documentation, see [rocketh.dev/hardhat-deploy/](https://rocketh.dev/hardhat-deploy/).
@@ -0,0 +1,43 @@
1
+ import type { EIP1193Account } from 'eip-1193';
2
+ import type { Environment } from './types.js';
3
+ /**
4
+ * Resolves an account identifier to an address.
5
+ *
6
+ * If the account starts with '0x', it is returned as-is.
7
+ * Otherwise, it is looked up in the environment's namedAccounts.
8
+ *
9
+ * @param account - The account identifier (either a hex address or a named account)
10
+ * @param env - The environment containing namedAccounts
11
+ * @returns The resolved address
12
+ * @throws {Error} If the account is not found in namedAccounts or if namedAccounts is not configured
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * // Using a hex address
17
+ * const address1 = resolveAccount('0x1234...', env);
18
+ *
19
+ * // Using a named account
20
+ * const address2 = resolveAccount('deployer', env);
21
+ * ```
22
+ */
23
+ export declare function resolveAccount(account: string | EIP1193Account, env: Pick<Environment, 'namedAccounts'>): `0x${string}`;
24
+ /**
25
+ * Resolves an account identifier to an address, returning undefined if not found.
26
+ *
27
+ * This is a safer version of `resolveAccount` that doesn't throw when the account
28
+ * is not found. Instead, it returns undefined.
29
+ *
30
+ * @param account - The account identifier (either a hex address or a named account)
31
+ * @param env - The environment containing namedAccounts
32
+ * @returns The resolved address, or undefined if not found
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * const address = resolveAccountOrUndefined('deployer', env);
37
+ * if (address) {
38
+ * // account was resolved
39
+ * }
40
+ * ```
41
+ */
42
+ export declare function resolveAccountOrUndefined(account: string | EIP1193Account, env: Pick<Environment, 'namedAccounts'>): `0x${string}` | undefined;
43
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAC7B,OAAO,EAAE,MAAM,GAAG,cAAc,EAChC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,GACrC,KAAK,MAAM,EAAE,CAcf;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,MAAM,GAAG,cAAc,EAChC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,GACrC,KAAK,MAAM,EAAE,GAAG,SAAS,CAU3B"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Resolves an account identifier to an address.
3
+ *
4
+ * If the account starts with '0x', it is returned as-is.
5
+ * Otherwise, it is looked up in the environment's namedAccounts.
6
+ *
7
+ * @param account - The account identifier (either a hex address or a named account)
8
+ * @param env - The environment containing namedAccounts
9
+ * @returns The resolved address
10
+ * @throws {Error} If the account is not found in namedAccounts or if namedAccounts is not configured
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * // Using a hex address
15
+ * const address1 = resolveAccount('0x1234...', env);
16
+ *
17
+ * // Using a named account
18
+ * const address2 = resolveAccount('deployer', env);
19
+ * ```
20
+ */
21
+ export function resolveAccount(account, env) {
22
+ if (account.startsWith('0x')) {
23
+ return account;
24
+ }
25
+ if (env.namedAccounts) {
26
+ const address = env.namedAccounts[account];
27
+ if (!address) {
28
+ throw new Error(`no address for ${account}`);
29
+ }
30
+ return address;
31
+ }
32
+ throw new Error(`no accounts setup, cannot get address for ${account}`);
33
+ }
34
+ /**
35
+ * Resolves an account identifier to an address, returning undefined if not found.
36
+ *
37
+ * This is a safer version of `resolveAccount` that doesn't throw when the account
38
+ * is not found. Instead, it returns undefined.
39
+ *
40
+ * @param account - The account identifier (either a hex address or a named account)
41
+ * @param env - The environment containing namedAccounts
42
+ * @returns The resolved address, or undefined if not found
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * const address = resolveAccountOrUndefined('deployer', env);
47
+ * if (address) {
48
+ * // account was resolved
49
+ * }
50
+ * ```
51
+ */
52
+ export function resolveAccountOrUndefined(account, env) {
53
+ if (account.startsWith('0x')) {
54
+ return account;
55
+ }
56
+ if (env.namedAccounts) {
57
+ return env.namedAccounts[account];
58
+ }
59
+ return undefined;
60
+ }
61
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc,CAC7B,OAAgC,EAChC,GAAuC;IAEvC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,OAAwB,CAAC;IACjC,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,6CAA6C,OAAO,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,yBAAyB,CACxC,OAAgC,EAChC,GAAuC;IAEvC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,OAAwB,CAAC;IACjC,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=account.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.test.d.ts","sourceRoot":"","sources":["../src/account.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,324 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { resolveAccount, resolveAccountOrUndefined } from './account.js';
3
+ describe('Account Resolution', () => {
4
+ describe('resolveAccount', () => {
5
+ describe('hex address resolution', () => {
6
+ it('should return hex address as-is when it starts with 0x', () => {
7
+ const env = {
8
+ namedAccounts: {},
9
+ };
10
+ const account = '0x1234567890123456789012345678901234567890';
11
+ const result = resolveAccount(account, env);
12
+ expect(result).toBe('0x1234567890123456789012345678901234567890');
13
+ });
14
+ it('should handle lowercase hex addresses', () => {
15
+ const env = {
16
+ namedAccounts: {},
17
+ };
18
+ const account = '0x1234567890abcdef1234567890abcdef12345678';
19
+ const result = resolveAccount(account, env);
20
+ expect(result).toBe('0x1234567890abcdef1234567890abcdef12345678');
21
+ });
22
+ it('should handle uppercase hex addresses', () => {
23
+ const env = {
24
+ namedAccounts: {},
25
+ };
26
+ const account = '0x1234567890ABCDEF1234567890ABCDEF12345678';
27
+ const result = resolveAccount(account, env);
28
+ expect(result).toBe('0x1234567890ABCDEF1234567890ABCDEF12345678');
29
+ });
30
+ it('should handle mixed case hex addresses', () => {
31
+ const env = {
32
+ namedAccounts: {},
33
+ };
34
+ const account = '0x1234567890AbCdEf1234567890aBcDeF12345678';
35
+ const result = resolveAccount(account, env);
36
+ expect(result).toBe('0x1234567890AbCdEf1234567890aBcDeF12345678');
37
+ });
38
+ it('should handle 20-byte hex addresses (40 chars + 0x)', () => {
39
+ const env = {
40
+ namedAccounts: {},
41
+ };
42
+ const account = '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266';
43
+ const result = resolveAccount(account, env);
44
+ expect(result).toBe('0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266');
45
+ });
46
+ it('should not lookup namedAccounts when account is hex address', () => {
47
+ const env = {
48
+ namedAccounts: {
49
+ deployer: '0x1234567890123456789012345678901234567890',
50
+ },
51
+ };
52
+ const account = '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd';
53
+ const result = resolveAccount(account, env);
54
+ expect(result).toBe('0xabcdefabcdefabcdefabcdefabcdefabcdefabcd');
55
+ });
56
+ });
57
+ describe('named account resolution', () => {
58
+ it('should resolve named account from namedAccounts', () => {
59
+ const env = {
60
+ namedAccounts: {
61
+ deployer: '0x1234567890123456789012345678901234567890',
62
+ user: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
63
+ },
64
+ };
65
+ const account = 'deployer';
66
+ const result = resolveAccount(account, env);
67
+ expect(result).toBe('0x1234567890123456789012345678901234567890');
68
+ });
69
+ it('should resolve multiple named accounts', () => {
70
+ const env = {
71
+ namedAccounts: {
72
+ deployer: '0x1111111111111111111111111111111111111111',
73
+ user1: '0x2222222222222222222222222222222222222222',
74
+ user2: '0x3333333333333333333333333333333333333333',
75
+ },
76
+ };
77
+ expect(resolveAccount('deployer', env)).toBe('0x1111111111111111111111111111111111111111');
78
+ expect(resolveAccount('user1', env)).toBe('0x2222222222222222222222222222222222222222');
79
+ expect(resolveAccount('user2', env)).toBe('0x3333333333333333333333333333333333333333');
80
+ });
81
+ it('should handle named account with typical hardhat-style addresses', () => {
82
+ const env = {
83
+ namedAccounts: {
84
+ deployer: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
85
+ alice: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',
86
+ bob: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
87
+ },
88
+ };
89
+ expect(resolveAccount('deployer', env)).toBe('0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266');
90
+ expect(resolveAccount('alice', env)).toBe('0x70997970C51812dc3A010C7d01b50e0d17dc79C8');
91
+ expect(resolveAccount('bob', env)).toBe('0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC');
92
+ });
93
+ it('should throw error when named account does not exist', () => {
94
+ const env = {
95
+ namedAccounts: {
96
+ deployer: '0x1234567890123456789012345678901234567890',
97
+ },
98
+ };
99
+ const account = 'unknown';
100
+ expect(() => resolveAccount(account, env)).toThrow('no address for unknown');
101
+ });
102
+ it('should throw error when namedAccounts is empty', () => {
103
+ const env = {
104
+ namedAccounts: {},
105
+ };
106
+ const account = 'deployer';
107
+ expect(() => resolveAccount(account, env)).toThrow('no address for deployer');
108
+ });
109
+ });
110
+ describe('error handling', () => {
111
+ it('should throw error when namedAccounts is undefined', () => {
112
+ const env = {
113
+ namedAccounts: undefined,
114
+ };
115
+ const account = 'deployer';
116
+ expect(() => resolveAccount(account, env)).toThrow('no accounts setup, cannot get address for deployer');
117
+ });
118
+ it('should throw descriptive error for missing named account', () => {
119
+ const env = {
120
+ namedAccounts: {
121
+ deployer: '0x1234567890123456789012345678901234567890',
122
+ },
123
+ };
124
+ const account = 'nonexistent';
125
+ expect(() => resolveAccount(account, env)).toThrow('no address for nonexistent');
126
+ });
127
+ it('should throw error when account name is a string but not a hex address', () => {
128
+ const env = {
129
+ namedAccounts: {},
130
+ };
131
+ const account = 'notanaddress';
132
+ expect(() => resolveAccount(account, env)).toThrow('no address for notanaddress');
133
+ });
134
+ });
135
+ describe('edge cases', () => {
136
+ it('should handle zero address', () => {
137
+ const env = {
138
+ namedAccounts: {},
139
+ };
140
+ const account = '0x0000000000000000000000000000000000000000';
141
+ const result = resolveAccount(account, env);
142
+ expect(result).toBe('0x0000000000000000000000000000000000000000');
143
+ });
144
+ it('should handle address starting with 0x but not named account', () => {
145
+ const env = {
146
+ namedAccounts: {
147
+ deployer: '0x1234567890123456789012345678901234567890',
148
+ },
149
+ };
150
+ const account = '0x9876543210987654321098765432109876543210';
151
+ const result = resolveAccount(account, env);
152
+ expect(result).toBe('0x9876543210987654321098765432109876543210');
153
+ });
154
+ it('should not modify the environment object', () => {
155
+ const env = {
156
+ namedAccounts: {
157
+ deployer: '0x1234567890123456789012345678901234567890',
158
+ },
159
+ };
160
+ const account = 'deployer';
161
+ resolveAccount(account, env);
162
+ expect(env.namedAccounts).toEqual({
163
+ deployer: '0x1234567890123456789012345678901234567890',
164
+ });
165
+ });
166
+ });
167
+ });
168
+ describe('resolveAccountOrUndefined', () => {
169
+ describe('hex address resolution', () => {
170
+ it('should return hex address as-is when it starts with 0x', () => {
171
+ const env = {
172
+ namedAccounts: {},
173
+ };
174
+ const account = '0x1234567890123456789012345678901234567890';
175
+ const result = resolveAccountOrUndefined(account, env);
176
+ expect(result).toBe('0x1234567890123456789012345678901234567890');
177
+ });
178
+ it('should handle lowercase hex addresses', () => {
179
+ const env = {
180
+ namedAccounts: {},
181
+ };
182
+ const account = '0x1234567890abcdef1234567890abcdef12345678';
183
+ const result = resolveAccountOrUndefined(account, env);
184
+ expect(result).toBe('0x1234567890abcdef1234567890abcdef12345678');
185
+ });
186
+ it('should not lookup namedAccounts when account is hex address', () => {
187
+ const env = {
188
+ namedAccounts: {
189
+ deployer: '0x1234567890123456789012345678901234567890',
190
+ },
191
+ };
192
+ const account = '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd';
193
+ const result = resolveAccountOrUndefined(account, env);
194
+ expect(result).toBe('0xabcdefabcdefabcdefabcdefabcdefabcdefabcd');
195
+ });
196
+ });
197
+ describe('named account resolution', () => {
198
+ it('should resolve named account from namedAccounts', () => {
199
+ const env = {
200
+ namedAccounts: {
201
+ deployer: '0x1234567890123456789012345678901234567890',
202
+ user: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
203
+ },
204
+ };
205
+ const account = 'deployer';
206
+ const result = resolveAccountOrUndefined(account, env);
207
+ expect(result).toBe('0x1234567890123456789012345678901234567890');
208
+ });
209
+ it('should resolve multiple named accounts', () => {
210
+ const env = {
211
+ namedAccounts: {
212
+ deployer: '0x1111111111111111111111111111111111111111',
213
+ user1: '0x2222222222222222222222222222222222222222',
214
+ user2: '0x3333333333333333333333333333333333333333',
215
+ },
216
+ };
217
+ expect(resolveAccountOrUndefined('deployer', env)).toBe('0x1111111111111111111111111111111111111111');
218
+ expect(resolveAccountOrUndefined('user1', env)).toBe('0x2222222222222222222222222222222222222222');
219
+ expect(resolveAccountOrUndefined('user2', env)).toBe('0x3333333333333333333333333333333333333333');
220
+ });
221
+ });
222
+ describe('undefined return for missing accounts', () => {
223
+ it('should return undefined when named account does not exist', () => {
224
+ const env = {
225
+ namedAccounts: {
226
+ deployer: '0x1234567890123456789012345678901234567890',
227
+ },
228
+ };
229
+ const account = 'unknown';
230
+ const result = resolveAccountOrUndefined(account, env);
231
+ expect(result).toBe(undefined);
232
+ });
233
+ it('should return undefined when namedAccounts is undefined', () => {
234
+ const env = {
235
+ namedAccounts: undefined,
236
+ };
237
+ const account = 'deployer';
238
+ const result = resolveAccountOrUndefined(account, env);
239
+ expect(result).toBe(undefined);
240
+ });
241
+ it('should return undefined when namedAccounts is empty', () => {
242
+ const env = {
243
+ namedAccounts: {},
244
+ };
245
+ const account = 'deployer';
246
+ const result = resolveAccountOrUndefined(account, env);
247
+ expect(result).toBe(undefined);
248
+ });
249
+ it('should return undefined for non-hex string when namedAccounts is undefined', () => {
250
+ const env = {
251
+ namedAccounts: undefined,
252
+ };
253
+ const account = 'notanaddress';
254
+ const result = resolveAccountOrUndefined(account, env);
255
+ expect(result).toBe(undefined);
256
+ });
257
+ it('should return undefined for non-hex string when namedAccounts is empty', () => {
258
+ const env = {
259
+ namedAccounts: {},
260
+ };
261
+ const account = 'notanaddress';
262
+ const result = resolveAccountOrUndefined(account, env);
263
+ expect(result).toBe(undefined);
264
+ });
265
+ });
266
+ describe('edge cases', () => {
267
+ it('should handle zero address', () => {
268
+ const env = {
269
+ namedAccounts: {},
270
+ };
271
+ const account = '0x0000000000000000000000000000000000000000';
272
+ const result = resolveAccountOrUndefined(account, env);
273
+ expect(result).toBe('0x0000000000000000000000000000000000000000');
274
+ });
275
+ it('should not modify the environment object', () => {
276
+ const env = {
277
+ namedAccounts: {
278
+ deployer: '0x1234567890123456789012345678901234567890',
279
+ },
280
+ };
281
+ const account = 'deployer';
282
+ resolveAccountOrUndefined(account, env);
283
+ expect(env.namedAccounts).toEqual({
284
+ deployer: '0x1234567890123456789012345678901234567890',
285
+ });
286
+ });
287
+ it('should return undefined for missing account but not throw', () => {
288
+ const env = {
289
+ namedAccounts: {},
290
+ };
291
+ const account = 'nonexistent';
292
+ expect(() => resolveAccountOrUndefined(account, env)).not.toThrow();
293
+ expect(resolveAccountOrUndefined(account, env)).toBe(undefined);
294
+ });
295
+ });
296
+ });
297
+ describe('comparison between resolveAccount and resolveAccountOrUndefined', () => {
298
+ it('should return same result for existing hex address', () => {
299
+ const env = {
300
+ namedAccounts: {},
301
+ };
302
+ const account = '0x1234567890123456789012345678901234567890';
303
+ expect(resolveAccount(account, env)).toBe(resolveAccountOrUndefined(account, env));
304
+ });
305
+ it('should return same result for existing named account', () => {
306
+ const env = {
307
+ namedAccounts: {
308
+ deployer: '0x1234567890123456789012345678901234567890',
309
+ },
310
+ };
311
+ const account = 'deployer';
312
+ expect(resolveAccount(account, env)).toBe(resolveAccountOrUndefined(account, env));
313
+ });
314
+ it('should throw for missing account in resolveAccount but return undefined in resolveAccountOrUndefined', () => {
315
+ const env = {
316
+ namedAccounts: {},
317
+ };
318
+ const account = 'unknown';
319
+ expect(() => resolveAccount(account, env)).toThrow();
320
+ expect(resolveAccountOrUndefined(account, env)).toBe(undefined);
321
+ });
322
+ });
323
+ });
324
+ //# sourceMappingURL=account.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.test.js","sourceRoot":"","sources":["../src/account.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=artifacts.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.test.d.ts","sourceRoot":"","sources":["../src/artifacts.test.ts"],"names":[],"mappings":""}