prool 0.0.3 → 0.0.5

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 (52) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/_lib/exports/index.d.ts +1 -1
  3. package/_lib/exports/processes.d.ts +2 -0
  4. package/_lib/exports/processes.d.ts.map +1 -0
  5. package/_lib/exports/processes.js +2 -0
  6. package/_lib/exports/processes.js.map +1 -0
  7. package/_lib/instance.d.ts +9 -6
  8. package/_lib/instance.d.ts.map +1 -1
  9. package/_lib/instance.js +22 -3
  10. package/_lib/instance.js.map +1 -1
  11. package/_lib/instances/anvil.d.ts +1 -5
  12. package/_lib/instances/anvil.d.ts.map +1 -1
  13. package/_lib/instances/anvil.js +18 -44
  14. package/_lib/instances/anvil.js.map +1 -1
  15. package/_lib/instances/stackup.d.ts +86 -0
  16. package/_lib/instances/stackup.d.ts.map +1 -0
  17. package/_lib/instances/stackup.js +89 -0
  18. package/_lib/instances/stackup.js.map +1 -0
  19. package/_lib/pool.d.ts +7 -6
  20. package/_lib/pool.d.ts.map +1 -1
  21. package/_lib/pool.js +60 -53
  22. package/_lib/pool.js.map +1 -1
  23. package/_lib/processes/execa.d.ts +27 -0
  24. package/_lib/processes/execa.d.ts.map +1 -0
  25. package/_lib/processes/execa.js +63 -0
  26. package/_lib/processes/execa.js.map +1 -0
  27. package/_lib/server.d.ts +3 -3
  28. package/_lib/server.d.ts.map +1 -1
  29. package/_lib/server.js +42 -34
  30. package/_lib/server.js.map +1 -1
  31. package/_lib/utils.d.ts +4 -3
  32. package/_lib/utils.d.ts.map +1 -1
  33. package/_lib/utils.js +2 -2
  34. package/_lib/utils.js.map +1 -1
  35. package/exports/index.ts +2 -2
  36. package/exports/processes.test.ts +10 -0
  37. package/exports/processes.ts +8 -0
  38. package/instance.test.ts +34 -2
  39. package/instance.ts +46 -13
  40. package/instances/anvil.test.ts +5 -3
  41. package/instances/anvil.ts +21 -49
  42. package/instances/stackup.test.ts +106 -0
  43. package/instances/stackup.ts +162 -0
  44. package/package.json +6 -2
  45. package/pool.test.ts +203 -138
  46. package/pool.ts +83 -66
  47. package/processes/execa.test.ts +143 -0
  48. package/processes/execa.ts +100 -0
  49. package/server.test.ts +162 -85
  50. package/server.ts +46 -38
  51. package/tsconfig.build.tsbuildinfo +1 -1
  52. package/utils.ts +11 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # prool
2
2
 
3
+ ## 0.0.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [`cb371f6`](https://github.com/wevm/prool/commit/cb371f64ddd50d3611aa959f618506f18688f46d) Thanks [@jxom](https://github.com/jxom)! - Added `stackup` instance.
8
+
9
+ - [`c7348a3`](https://github.com/wevm/prool/commit/c7348a3e6b54881b45e5ce0caf25198dacfb2a7c) Thanks [@jxom](https://github.com/jxom)! - Added support for a callback `instance`.
10
+
11
+ ## 0.0.4
12
+
13
+ ### Patch Changes
14
+
15
+ - [`c208423`](https://github.com/wevm/prool/commit/c2084231b277cecb840e4f9957cc4fc2e5b0b7a2) Thanks [@jxom](https://github.com/jxom)! - Added `/restart` endpoint to the Pool Server.
16
+ Added `restart` method to pool instances.
17
+
3
18
  ## 0.0.3
4
19
 
5
20
  ### Patch Changes
@@ -1,4 +1,4 @@
1
1
  export { type DefineInstanceFn, type Instance, type InstanceOptions, type InstanceStartOptions, defineInstance, } from '../instance.js';
2
2
  export { type DefinePoolParameters, type DefinePoolReturnType, type Pool, definePool, } from '../pool.js';
3
- export { type createServerParameters, type createServerReturnType, createServer, } from '../server.js';
3
+ export { type CreateServerParameters, type CreateServerReturnType, createServer, } from '../server.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,2 @@
1
+ export { type ExecaParameters, type ExecaProcess, type ExecaReturnType, type ExecaStartOptions, type Process_internal, execa, } from '../processes/execa.js';
2
+ //# sourceMappingURL=processes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../../exports/processes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,GACN,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { execa, } from '../processes/execa.js';
2
+ //# sourceMappingURL=processes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processes.js","sourceRoot":"","sources":["../../exports/processes.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GACN,MAAM,uBAAuB,CAAA"}
@@ -7,11 +7,11 @@ type EventTypes = {
7
7
  stderr: [message: string];
8
8
  stdout: [message: string];
9
9
  };
10
- type InstanceStartOptions_internal = {
10
+ export type InstanceStartOptions_internal = {
11
11
  emitter: EventEmitter<EventTypes>;
12
12
  status: Instance['status'];
13
13
  };
14
- type InstanceStopOptions_internal = {
14
+ export type InstanceStopOptions_internal = {
15
15
  emitter: EventEmitter<EventTypes>;
16
16
  status: Instance['status'];
17
17
  };
@@ -23,8 +23,8 @@ export type InstanceStartOptions = {
23
23
  };
24
24
  export type DefineInstanceFn<parameters, _internal extends object | undefined = object | undefined> = (parameters: parameters) => Pick<Instance, 'host' | 'name' | 'port'> & {
25
25
  _internal?: _internal | undefined;
26
- start(options: InstanceStartOptions & InstanceStartOptions_internal): Promise<void>;
27
- stop(options: InstanceStopOptions_internal): Promise<void>;
26
+ start(options: InstanceStartOptions, options_internal: InstanceStartOptions_internal): Promise<void>;
27
+ stop(options_internal: InstanceStopOptions_internal): Promise<void>;
28
28
  };
29
29
  export type Instance<_internal extends object | undefined = object | undefined> = Pick<EventEmitter<EventTypes>, 'addListener' | 'off' | 'on' | 'once' | 'removeAllListeners' | 'removeListener'> & {
30
30
  _internal: _internal;
@@ -59,16 +59,19 @@ export type Instance<_internal extends object | undefined = object | undefined>
59
59
  clear(): void;
60
60
  get(): string[];
61
61
  };
62
+ /**
63
+ * Retarts the instance.
64
+ */
65
+ restart(): Promise<void>;
62
66
  /**
63
67
  * Status of the instance.
64
68
  *
65
69
  * @default "idle"
66
70
  */
67
- status: 'idle' | 'stopped' | 'starting' | 'started' | 'stopping';
71
+ status: 'idle' | 'restarting' | 'stopped' | 'starting' | 'started' | 'stopping';
68
72
  /**
69
73
  * Starts the instance.
70
74
  *
71
- * @param options - Options for starting the instance.
72
75
  * @returns A function to stop the instance.
73
76
  */
74
77
  start(): Promise<() => void>;
@@ -1 +1 @@
1
- {"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../instance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../instance.ts"],"names":[],"mappings":"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"}
package/_lib/instance.js CHANGED
@@ -30,12 +30,14 @@ export function defineInstance(fn) {
30
30
  ...fn(parameters),
31
31
  ...createParameters,
32
32
  };
33
- const { messageBuffer = 20, timeout = 10_000 } = options;
33
+ const { messageBuffer = 20, timeout } = options;
34
+ let restartResolver = Promise.withResolvers();
34
35
  let startResolver = Promise.withResolvers();
35
36
  let stopResolver = Promise.withResolvers();
36
37
  const emitter = new EventEmitter();
37
38
  let messages = [];
38
39
  let status = 'idle';
40
+ let restarting = false;
39
41
  function onExit() {
40
42
  status = 'stopped';
41
43
  }
@@ -61,6 +63,8 @@ export function defineInstance(fn) {
61
63
  name,
62
64
  port,
63
65
  get status() {
66
+ if (restarting)
67
+ return 'restarting';
64
68
  return status;
65
69
  },
66
70
  async start() {
@@ -79,14 +83,15 @@ export function defineInstance(fn) {
79
83
  emitter.on('exit', onExit);
80
84
  status = 'starting';
81
85
  start({
82
- emitter,
83
86
  port,
87
+ }, {
88
+ emitter,
84
89
  status: this.status,
85
90
  })
86
91
  .then(() => {
87
92
  status = 'started';
88
93
  stopResolver = Promise.withResolvers();
89
- startResolver.resolve(this.stop);
94
+ startResolver.resolve(this.stop.bind(this));
90
95
  })
91
96
  .catch((error) => {
92
97
  status = 'idle';
@@ -127,6 +132,20 @@ export function defineInstance(fn) {
127
132
  });
128
133
  return stopResolver.promise;
129
134
  },
135
+ async restart() {
136
+ if (restarting)
137
+ return restartResolver.promise;
138
+ restarting = true;
139
+ this.stop()
140
+ .then(() => this.start.bind(this)())
141
+ .then(() => restartResolver.resolve())
142
+ .catch(restartResolver.reject)
143
+ .finally(() => {
144
+ restartResolver = Promise.withResolvers();
145
+ restarting = false;
146
+ });
147
+ return restartResolver.promise;
148
+ },
130
149
  addListener: emitter.addListener.bind(emitter),
131
150
  off: emitter.off.bind(emitter),
132
151
  on: emitter.on.bind(emitter),
@@ -1 +1 @@
1
- {"version":3,"file":"instance.js","sourceRoot":"","sources":["../instance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instance.js","sourceRoot":"","sources":["../instance.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { type ResultPromise } from 'execa';
2
1
  export type AnvilParameters = {
3
2
  /**
4
3
  * Number of dev accounts to generate and configure.
@@ -451,9 +450,6 @@ export declare const anvil: import("../instance.js").DefineInstanceReturnType<{
451
450
  */
452
451
  transactionBlockKeeper?: number | undefined;
453
452
  };
454
- readonly process: ResultPromise<{
455
- cleanup: true;
456
- reject: false;
457
- }>;
453
+ readonly process: import("../processes/execa.js").Process_internal;
458
454
  }, AnvilParameters | undefined>;
459
455
  //# sourceMappingURL=anvil.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"anvil.d.ts","sourceRoot":"","sources":["../../instances/anvil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anvil.d.ts","sourceRoot":"","sources":["../../instances/anvil.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import { execa } from 'execa';
2
1
  import { defineInstance } from '../instance.js';
3
- import { stripColors } from '../utils.js';
2
+ import { execa } from '../processes/execa.js';
4
3
  import { toArgs } from '../utils.js';
5
4
  /**
6
5
  * Defines an Anvil instance.
@@ -15,59 +14,34 @@ import { toArgs } from '../utils.js';
15
14
  */
16
15
  export const anvil = defineInstance((parameters) => {
17
16
  const { binary = 'anvil', ...args } = parameters || {};
18
- let process;
19
- async function stop() {
20
- const killed = process.kill();
21
- if (!killed)
22
- throw new Error('Failed to stop anvil');
23
- return new Promise((resolve) => process.on('close', resolve));
24
- }
17
+ const name = 'anvil';
18
+ const process = execa({ name });
25
19
  return {
26
20
  _internal: {
27
21
  args,
28
22
  get process() {
29
- return process;
23
+ return process._internal.process;
30
24
  },
31
25
  },
32
26
  host: args.host ?? 'localhost',
33
- name: 'anvil',
27
+ name,
34
28
  port: args.port ?? 8545,
35
- async start({ emitter, port = args.port, status }) {
36
- const { promise, resolve, reject } = Promise.withResolvers();
37
- process = execa(binary, toArgs({ ...args, port }), {
38
- cleanup: true,
39
- reject: false,
29
+ async start({ port = args.port }, options) {
30
+ return await process.start(($) => $ `${binary} ${toArgs({ ...args, port })}`, {
31
+ ...options,
32
+ // Resolve when the process is listening via a "Listening on" message.
33
+ resolver({ process, reject, resolve }) {
34
+ process.stdout.on('data', (data) => {
35
+ const message = data.toString();
36
+ if (message.includes('Listening on'))
37
+ resolve();
38
+ });
39
+ process.stderr.on('data', reject);
40
+ },
40
41
  });
41
- process.stdout.on('data', (data) => {
42
- const message = stripColors(data.toString());
43
- emitter.emit('message', message);
44
- emitter.emit('stdout', message);
45
- if (message.includes('Listening on')) {
46
- emitter.emit('listening');
47
- resolve();
48
- }
49
- });
50
- process.stderr.on('data', async (data) => {
51
- const message = stripColors(data.toString());
52
- emitter.emit('message', message);
53
- emitter.emit('stderr', message);
54
- await stop();
55
- reject(new Error(`Failed to start anvil: ${data.toString()}`));
56
- });
57
- process.on('close', () => process.removeAllListeners());
58
- process.on('exit', (code, signal) => {
59
- emitter.emit('exit', code, signal);
60
- if (!code) {
61
- process.removeAllListeners();
62
- if (status === 'starting')
63
- reject(new Error('Failed to start anvil: exited.'));
64
- }
65
- });
66
- return promise;
67
42
  },
68
43
  async stop() {
69
- process.removeAllListeners();
70
- await stop();
44
+ await process.stop();
71
45
  },
72
46
  };
73
47
  });
@@ -1 +1 @@
1
- {"version":3,"file":"anvil.js","sourceRoot":"","sources":["../../instances/anvil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anvil.js","sourceRoot":"","sources":["../../instances/anvil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAoPpC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,UAA4B,EAAE,EAAE;IACnE,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,IAAI,EAAE,CAAA;IAEtD,MAAM,IAAI,GAAG,OAAO,CAAA;IACpB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAE/B,OAAO;QACL,SAAS,EAAE;YACT,IAAI;YACJ,IAAI,OAAO;gBACT,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,CAAA;YAClC,CAAC;SACF;QACD,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,WAAW;QAC9B,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;QACvB,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO;YACvC,OAAO,MAAM,OAAO,CAAC,KAAK,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA,GAAG,MAAM,IAAI,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,EAChD;gBACE,GAAG,OAAO;gBACV,sEAAsE;gBACtE,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;oBACnC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;wBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;wBAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;4BAAE,OAAO,EAAE,CAAA;oBACjD,CAAC,CAAC,CAAA;oBACF,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBACnC,CAAC;aACF,CACF,CAAA;QACH,CAAC;QACD,KAAK,CAAC,IAAI;YACR,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;QACtB,CAAC;KACF,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,86 @@
1
+ export type StackupParameters = {
2
+ /**
3
+ * The name of the native tracer to use during validation. This will be "bundlerCollectorTracer" if using builds from ERC-4337 execution client repo.
4
+ * Defaults to address of `privateKey`.
5
+ */
6
+ beneficiary?: string | undefined;
7
+ /**
8
+ * Directory to store the embedded database.
9
+ * @default /tmp/stackup_bundler
10
+ */
11
+ dataDirectory?: string | undefined;
12
+ /**
13
+ * RPC url to the execution client.
14
+ */
15
+ ethClientUrl: string;
16
+ /**
17
+ * A boolean value for bundlers on an Arbitrum stack network to properly account for the L1 callData cost.
18
+ * @default false
19
+ */
20
+ isArbStackNetwork?: boolean | undefined;
21
+ /**
22
+ * A boolean value for bundlers on an OP stack network to properly account for the L1 callData cost.
23
+ * @default false
24
+ */
25
+ isOpStackNetwork?: boolean | undefined;
26
+ /**
27
+ * A boolean value for bundlers on a network that supports RIP-7212 precompile for secp256r1 signature verification.
28
+ * @default false
29
+ */
30
+ isRip7212Supported?: boolean | undefined;
31
+ /**
32
+ * The maximum gas limit that can be submitted per UserOperation batch.
33
+ * @default 18_000_000
34
+ */
35
+ maxBatchGasLimit?: number | undefined;
36
+ /**
37
+ * The maximum duration that a userOp can stay in the mempool before getting dropped.
38
+ * @default 180
39
+ */
40
+ maxOpTtlSeconds?: number | undefined;
41
+ /**
42
+ * The maximum verificationGasLimit on a received UserOperation.
43
+ * @default 6_000_000
44
+ */
45
+ maxVerificationGas?: number | undefined;
46
+ /**
47
+ * The maximum block range when looking up a User Operation with eth_getUserOperationReceipt or eth_getUserOperationByHash.
48
+ *
49
+ * Higher limits allow for fetching older User Operations but will result in higher request latency due to additional compute on the underlying node.
50
+ *
51
+ * @default 2_000
52
+ */
53
+ opLookupLimit?: number | undefined;
54
+ /**
55
+ * Port to start the instance on.
56
+ */
57
+ port?: number | undefined;
58
+ /**
59
+ * The private key for the EOA used to relay User Operation bundles to the EntryPoint.
60
+ */
61
+ privateKey: string;
62
+ /**
63
+ * EntryPoint addresses to support. The first address is the preferred EntryPoint.
64
+ */
65
+ supportedEntryPoints?: string[];
66
+ };
67
+ /**
68
+ * Defines an Anvil instance.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * const instance = stackup({
73
+ * ethClientUrl: 'http://localhost:8545',
74
+ * port: 4337,
75
+ * privateKey: '0x...'
76
+ * })
77
+ * await instance.start()
78
+ * // ...
79
+ * await instance.stop()
80
+ * ```
81
+ */
82
+ export declare const stackup: import("../instance.js").DefineInstanceReturnType<{
83
+ args: StackupParameters;
84
+ readonly process: import("../processes/execa.js").Process_internal;
85
+ }, StackupParameters | undefined>;
86
+ //# sourceMappingURL=stackup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stackup.d.ts","sourceRoot":"","sources":["../../instances/stackup.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACvC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;CAChC,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,OAAO;;;iCA4ElB,CAAA"}
@@ -0,0 +1,89 @@
1
+ import { defineInstance } from '../instance.js';
2
+ import { execa } from '../processes/execa.js';
3
+ /**
4
+ * Defines an Anvil instance.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * const instance = stackup({
9
+ * ethClientUrl: 'http://localhost:8545',
10
+ * port: 4337,
11
+ * privateKey: '0x...'
12
+ * })
13
+ * await instance.start()
14
+ * // ...
15
+ * await instance.stop()
16
+ * ```
17
+ */
18
+ export const stackup = defineInstance((parameters) => {
19
+ const args = (parameters || {});
20
+ const host = 'localhost';
21
+ const name = 'stackup';
22
+ const process = execa({ name });
23
+ return {
24
+ _internal: {
25
+ args,
26
+ get process() {
27
+ return process._internal.process;
28
+ },
29
+ },
30
+ host,
31
+ name,
32
+ port: args.port ?? 4337,
33
+ async start({ port = args.port }, options) {
34
+ const args_ = [
35
+ '--net',
36
+ 'host',
37
+ '--add-host',
38
+ 'host.docker.internal:host-gateway',
39
+ '--add-host',
40
+ 'localhost:host-gateway',
41
+ '-p',
42
+ `${port}:${port}`,
43
+ '-e',
44
+ `ERC4337_BUNDLER_PORT=${port}`,
45
+ ...Object.entries(args).flatMap(([key, value]) => {
46
+ if (key === 'port')
47
+ return [];
48
+ if (value === undefined)
49
+ return [];
50
+ if (key === 'ethClientUrl')
51
+ value = value.replaceAll(/127\.0\.0\.1|0\.0\.0\.0/g, 'host.docker.internal');
52
+ if (key === 'privateKey')
53
+ value = value.replace('0x', '');
54
+ return [
55
+ '-e',
56
+ `ERC4337_BUNDLER_${key
57
+ .replace(/([a-z])([A-Z])/g, '$1_$2')
58
+ .toUpperCase()}=${value}`,
59
+ ];
60
+ }),
61
+ 'stackupwallet/stackup-bundler:latest',
62
+ '/app/stackup-bundler',
63
+ 'start',
64
+ '--mode',
65
+ 'private',
66
+ ];
67
+ return await process.start(($) => $ `docker run ${args_}`, {
68
+ ...options,
69
+ resolver({ process, resolve, reject }) {
70
+ process.stderr.on('data', async (data) => {
71
+ const message = data.toString();
72
+ // For some reason, `stackup-bundler` logs to stderr. So we have to try
73
+ // and dissect what is an error, and what is not. 😅
74
+ if (message.includes('Set nextTxnTs to'))
75
+ setTimeout(() => resolve(), 100);
76
+ else if (message
77
+ .toLowerCase()
78
+ .match(/panic|error|connection refused|address already in use/))
79
+ reject(data);
80
+ });
81
+ },
82
+ });
83
+ },
84
+ async stop() {
85
+ await process.stop();
86
+ },
87
+ };
88
+ });
89
+ //# sourceMappingURL=stackup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stackup.js","sourceRoot":"","sources":["../../instances/stackup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAqE7C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,UAA8B,EAAE,EAAE;IACvE,MAAM,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,CAAsB,CAAA;IAEpD,MAAM,IAAI,GAAG,WAAW,CAAA;IACxB,MAAM,IAAI,GAAG,SAAS,CAAA;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAE/B,OAAO;QACL,SAAS,EAAE;YACT,IAAI;YACJ,IAAI,OAAO;gBACT,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,CAAA;YAClC,CAAC;SACF;QACD,IAAI;QACJ,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;QACvB,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO;YACvC,MAAM,KAAK,GAAG;gBACZ,OAAO;gBACP,MAAM;gBACN,YAAY;gBACZ,mCAAmC;gBACnC,YAAY;gBACZ,wBAAwB;gBACxB,IAAI;gBACJ,GAAG,IAAI,IAAI,IAAI,EAAE;gBACjB,IAAI;gBACJ,wBAAwB,IAAI,EAAE;gBAC9B,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBAC/C,IAAI,GAAG,KAAK,MAAM;wBAAE,OAAO,EAAE,CAAA;oBAC7B,IAAI,KAAK,KAAK,SAAS;wBAAE,OAAO,EAAE,CAAA;oBAElC,IAAI,GAAG,KAAK,cAAc;wBACxB,KAAK,GAAI,KAAgB,CAAC,UAAU,CAClC,0BAA0B,EAC1B,sBAAsB,CACvB,CAAA;oBACH,IAAI,GAAG,KAAK,YAAY;wBAAE,KAAK,GAAI,KAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;oBAErE,OAAO;wBACL,IAAI;wBACJ,mBAAmB,GAAG;6BACnB,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;6BACnC,WAAW,EAAE,IAAI,KAAK,EAAE;qBAC5B,CAAA;gBACH,CAAC,CAAC;gBACF,sCAAsC;gBACtC,sBAAsB;gBACtB,OAAO;gBACP,QAAQ;gBACR,SAAS;aACV,CAAA;YACD,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA,cAAc,KAAK,EAAE,EAAE;gBACxD,GAAG,OAAO;gBACV,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;oBACnC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;wBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;wBAC/B,uEAAuE;wBACvE,oDAAoD;wBACpD,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;4BACtC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAA;6BAC7B,IACH,OAAO;6BACJ,WAAW,EAAE;6BACb,KAAK,CAAC,uDAAuD,CAAC;4BAEjE,MAAM,CAAC,IAAI,CAAC,CAAA;oBAChB,CAAC,CAAC,CAAA;gBACJ,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,CAAC,IAAI;YACR,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;QACtB,CAAC;KACF,CAAA;AACH,CAAC,CAAC,CAAA"}
package/_lib/pool.d.ts CHANGED
@@ -1,24 +1,25 @@
1
1
  import type { Instance } from './instance.js';
2
2
  type Instance_ = Omit<Instance, 'create'>;
3
- export type Pool<key = number> = Pick<Map<key, Instance_>, 'entries' | 'keys' | 'forEach' | 'get' | 'has' | 'size' | 'values'> & {
3
+ export type Pool<key extends number | string = number | string> = Pick<Map<key, Instance_>, 'entries' | 'keys' | 'forEach' | 'get' | 'has' | 'size' | 'values'> & {
4
4
  _internal: {
5
- instance: Instance_;
5
+ instance: Instance_ | ((key: key) => Instance_);
6
6
  };
7
7
  destroy(key: key): Promise<void>;
8
8
  destroyAll(): Promise<void>;
9
+ restart(key: key): Promise<void>;
9
10
  start(key: key, options?: {
10
11
  port?: number;
11
12
  }): Promise<Instance_>;
12
13
  stop(key: key): Promise<void>;
13
14
  stopAll(): Promise<void>;
14
15
  };
15
- export type DefinePoolParameters = {
16
+ export type DefinePoolParameters<key extends number | string = number | string> = {
16
17
  /** Instance for the pool. */
17
- instance: Instance;
18
+ instance: Instance | ((key: key) => Instance);
18
19
  /** The maximum number of instances that can be started. */
19
20
  limit?: number | number;
20
21
  };
21
- export type DefinePoolReturnType<key = number> = Pool<key>;
22
+ export type DefinePoolReturnType<key extends number | string = number | string> = Pool<key>;
22
23
  /**
23
24
  * Defines an instance pool. Instances can be started, cached, and stopped against an identifier.
24
25
  *
@@ -33,6 +34,6 @@ export type DefinePoolReturnType<key = number> = Pool<key>;
33
34
  * const instance_3 = await pool.start(3)
34
35
  * ```
35
36
  */
36
- export declare function definePool<key = number>(parameters: DefinePoolParameters): DefinePoolReturnType<key>;
37
+ export declare function definePool<key extends number | string = number>(parameters: DefinePoolParameters<key>): DefinePoolReturnType<key>;
37
38
  export {};
38
39
  //# sourceMappingURL=pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../pool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,KAAK,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAEzC,MAAM,MAAM,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,IAAI,CACnC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EACnB,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CACnE,GAAG;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,SAAS,CAAA;KACpB,CAAA;IACD,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAChE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,6BAA6B;IAC7B,QAAQ,EAAE,QAAQ,CAAA;IAClB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;AAE1D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAG,MAAM,EACrC,UAAU,EAAE,oBAAoB,GAC/B,oBAAoB,CAAC,GAAG,CAAC,CAyI3B"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../pool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,KAAK,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAEzC,MAAM,MAAM,IAAI,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,IAAI,CACpE,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,EACnB,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CACnE,GAAG;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC,CAAA;KAChD,CAAA;IACD,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAChE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,oBAAoB,CAC9B,GAAG,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAC3C;IACF,6BAA6B;IAC7B,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAA;IAC7C,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,oBAAoB,CAC9B,GAAG,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAC3C,IAAI,CAAC,GAAG,CAAC,CAAA;AAEb;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAC7D,UAAU,EAAE,oBAAoB,CAAC,GAAG,CAAC,GACpC,oBAAoB,CAAC,GAAG,CAAC,CAqJ3B"}