embedded-chain 0.0.1 → 0.0.3

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/index.d.ts CHANGED
@@ -18,9 +18,13 @@ export type EmbeddedChainOptions = {
18
18
  miningConfig?: MemoryClientOptions['miningConfig'];
19
19
  initialBalances?: Record<`0x${string}`, bigint>;
20
20
  providerOptions?: EmbeddedChainProviderOptions;
21
+ gasEstimationOverrides?: {
22
+ addToEstimation?: bigint;
23
+ };
21
24
  };
22
25
  export type EmbeddedChain = {
23
26
  provider: EIP1193ProviderWithoutEvents;
27
+ mineBlock(): Promise<void>;
24
28
  };
25
29
  export declare function createEmbeddedChain(options: EmbeddedChainOptions): Promise<EmbeddedChain>;
26
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AAG5E,OAAO,EAAC,4BAA4B,EAA8B,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAEpH,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG;IACjF,WAAW,CAAC,EACT;QACA,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;KAC1B,GACD;QACA,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;KACrB,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,WAAW,CAAC,EAAE;QACb,IAAI,EAAE,WAAW,CAAC;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,YAAY,CAAC,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,4BAA4B,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,4BAA4B,CAAC;CACvC,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAwE/F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AAG5E,OAAO,EAAC,4BAA4B,EAA8B,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAIpH,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG;IACjF,WAAW,CAAC,EACT;QACA,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;KAC1B,GACD;QACA,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;KACrB,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,WAAW,CAAC,EAAE;QACb,IAAI,EAAE,WAAW,CAAC;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,YAAY,CAAC,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,4BAA4B,CAAC;IAC/C,sBAAsB,CAAC,EAAE;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,4BAA4B,CAAC;IACvC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAuG/F"}
package/dist/index.js CHANGED
@@ -2,6 +2,8 @@ import { createMemoryClient } from '@tevm/memory-client';
2
2
  import { createSyncStoragePersister } from '@tevm/sync-storage-persister';
3
3
  import { IndexedDBStorage } from './indexeddb-storage.js';
4
4
  import { extendProviderWithAccounts } from 'eip-1193-accounts-wrapper';
5
+ import { logs } from 'named-logs';
6
+ const console = logs('embedded-chain');
5
7
  export async function createEmbeddedChain(options) {
6
8
  const { persistence, miningConfig, initialBalances, providerOptions } = options;
7
9
  let persister;
@@ -17,12 +19,25 @@ export async function createEmbeddedChain(options) {
17
19
  key,
18
20
  });
19
21
  }
22
+ function mine() {
23
+ console.debug(`mining...`);
24
+ client.tevmMine();
25
+ }
26
+ let miningTimer;
27
+ function startAutoMining(interval) {
28
+ miningTimer = setInterval(mine, interval);
29
+ }
30
+ let actualMiningConfig = miningConfig;
31
+ if (miningConfig?.type === 'interval') {
32
+ actualMiningConfig = {
33
+ type: 'manual',
34
+ };
35
+ startAutoMining(miningConfig.interval || miningConfig.blockTime);
36
+ }
20
37
  const client = createMemoryClient({
21
38
  persister,
22
- miningConfig,
39
+ miningConfig: actualMiningConfig,
23
40
  });
24
- // Initialize client
25
- await client.tevmReady();
26
41
  // Set up initial balances if provided
27
42
  if (initialBalances) {
28
43
  for (const [address, balance] of Object.entries(initialBalances)) {
@@ -47,7 +62,7 @@ export async function createEmbeddedChain(options) {
47
62
  }
48
63
  }
49
64
  }
50
- let actualProviderOptions;
65
+ let actualProviderOptions = {};
51
66
  if (providerOptions) {
52
67
  if ('impersonate' in providerOptions && providerOptions.impersonate) {
53
68
  actualProviderOptions = {
@@ -62,9 +77,26 @@ export async function createEmbeddedChain(options) {
62
77
  actualProviderOptions = providerOptions;
63
78
  }
64
79
  }
65
- const provider = await extendProviderWithAccounts(client, actualProviderOptions);
80
+ const estimationAddition = options.gasEstimationOverrides?.addToEstimation;
81
+ if (estimationAddition) {
82
+ const existingHandlers = actualProviderOptions.handlers;
83
+ const existingEstimateHandler = existingHandlers?.['eth_estimateGas'];
84
+ const handlers = (actualProviderOptions.handlers = existingHandlers || {});
85
+ handlers['eth_estimateGas'] = async (params) => {
86
+ const result = await (existingEstimateHandler
87
+ ? existingEstimateHandler(params)
88
+ : client.request({ method: 'eth_estimateGas', params }));
89
+ let resultAsBigInt = BigInt(result);
90
+ resultAsBigInt += estimationAddition;
91
+ return `0x${resultAsBigInt.toString(16)}`;
92
+ };
93
+ }
94
+ const provider = extendProviderWithAccounts(client, actualProviderOptions);
66
95
  return {
67
96
  provider,
97
+ async mineBlock() {
98
+ await client.tevmMine();
99
+ },
68
100
  };
69
101
  }
70
102
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAsB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAC,0BAA0B,EAAuB,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAA+B,0BAA0B,EAAkB,MAAM,2BAA2B,CAAC;AA6BpH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAA6B;IACtE,MAAM,EAAC,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAC,GAAG,OAAO,CAAC;IAE9E,IAAI,SAA2C,CAAC;IAChD,IAAI,WAAW,EAAE,CAAC;QACjB,qBAAqB;QACrB,MAAM,EAAE,GAAG,WAAW,EAAE,EAAE,IAAI,cAAc,CAAC;QAC7C,MAAM,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,UAAU,CAAC;QAC/C,MAAM,GAAG,GAAG,WAAW,EAAE,GAAG,IAAI,YAAY,CAAC;QAE7C,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,gBAAgB,CAAC,UAAU,EAAE,CAAC;QAEpC,SAAS,GAAG,0BAA0B,CAAC;YACtC,OAAO,EAAE,gBAAgB;YACzB,GAAG;SACH,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC;QACjC,SAAS;QACT,YAAY;KACZ,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;IAEzB,sCAAsC;IACtC,IAAI,eAAe,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YAClE,IAAI,cAAc,CAAC;YACnB,IAAI,CAAC;gBACJ,cAAc,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;oBACxC,OAAO,EAAE,OAAwB;iBACjC,CAAC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACR,cAAc,GAAG,EAAE,CAAC;YACrB,CAAC;YAED,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;gBAC3B,MAAM,MAAM,CAAC,cAAc,CAAC;oBAC3B,OAAO,EAAE,OAAwB;oBACjC,OAAO;iBACP,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,4BAA4B,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;YACxF,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,+BAA+B,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;YAClG,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI,qBAAkD,CAAC;IAEvD,IAAI,eAAe,EAAE,CAAC;QACrB,IAAI,aAAa,IAAI,eAAe,IAAI,eAAe,CAAC,WAAW,EAAE,CAAC;YACrE,qBAAqB,GAAG;gBACvB,GAAG,eAAe;gBAClB,WAAW,EAAE;oBACZ,GAAG,eAAe,CAAC,WAAW;oBAC9B,YAAY,EAAE,MAAM;iBACpB;aACD,CAAC;QACH,CAAC;aAAM,CAAC;YACP,qBAAqB,GAAG,eAAkC,CAAC;QAC5D,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,MAAsC,EAAE,qBAAqB,CAAC,CAAC;IAEjH,OAAO;QACN,QAAQ;KACR,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "embedded-chain",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "embedded chain",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,9 +23,9 @@
23
23
  "dependencies": {
24
24
  "@tevm/memory-client": "1.0.0-next.148",
25
25
  "@tevm/sync-storage-persister": "1.0.0-next.148",
26
- "eip-1193-accounts-wrapper": "^0.0.1",
26
+ "eip-1193-accounts-wrapper": "^0.0.8",
27
27
  "named-logs": "^0.4.1",
28
- "viem": "^2.41.2"
28
+ "viem": "^2.43.3"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@vitest/browser-playwright": "^4.0.16",