embedded-chain 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.
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -21,10 +21,22 @@ export type EmbeddedChainOptions = {
|
|
|
21
21
|
gasEstimationOverrides?: {
|
|
22
22
|
addToEstimation?: bigint;
|
|
23
23
|
};
|
|
24
|
+
recordRequests?: 'all' | string[];
|
|
24
25
|
};
|
|
25
26
|
export type EmbeddedChain = {
|
|
27
|
+
recordedRequests: RecordedRequests;
|
|
26
28
|
provider: EIP1193ProviderWithoutEvents;
|
|
27
29
|
mineBlock(): Promise<void>;
|
|
28
30
|
};
|
|
31
|
+
export type RecordedRequests = ({
|
|
32
|
+
request: {
|
|
33
|
+
method: string;
|
|
34
|
+
params?: any[];
|
|
35
|
+
};
|
|
36
|
+
} & ({
|
|
37
|
+
response: any;
|
|
38
|
+
} | {
|
|
39
|
+
error: any;
|
|
40
|
+
}))[];
|
|
29
41
|
export declare function createEmbeddedChain(options: EmbeddedChainOptions): Promise<EmbeddedChain>;
|
|
30
42
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;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;
|
|
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;IACF,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,EAAE,4BAA4B,CAAC;IACvC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC;IAC/B,OAAO,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAC,CAAC;CAC1C,GAAG,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAC,GAAG;IAAC,KAAK,EAAE,GAAG,CAAA;CAAC,CAAC,CAAC,EAAE,CAAC;AAExC,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAuJ/F"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { logs } from 'named-logs';
|
|
|
6
6
|
const console = logs('embedded-chain');
|
|
7
7
|
export async function createEmbeddedChain(options) {
|
|
8
8
|
const { persistence, miningConfig, initialBalances, providerOptions } = options;
|
|
9
|
+
const recordedRequests = [];
|
|
9
10
|
let persister;
|
|
10
11
|
if (persistence) {
|
|
11
12
|
// Create persistence
|
|
@@ -77,22 +78,70 @@ export async function createEmbeddedChain(options) {
|
|
|
77
78
|
actualProviderOptions = providerOptions;
|
|
78
79
|
}
|
|
79
80
|
}
|
|
81
|
+
let providerToWrap = client;
|
|
82
|
+
if (options?.recordRequests === 'all') {
|
|
83
|
+
providerToWrap = {
|
|
84
|
+
async request(args) {
|
|
85
|
+
try {
|
|
86
|
+
const response = await client.request(args);
|
|
87
|
+
recordedRequests.push({
|
|
88
|
+
request: args,
|
|
89
|
+
response,
|
|
90
|
+
});
|
|
91
|
+
return response;
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
recordedRequests.push({
|
|
95
|
+
request: args,
|
|
96
|
+
error: err,
|
|
97
|
+
});
|
|
98
|
+
throw err;
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
else if (options.recordRequests) {
|
|
104
|
+
for (const method of options.recordRequests) {
|
|
105
|
+
const existingHandlers = actualProviderOptions.handlers;
|
|
106
|
+
const existingHandler = existingHandlers?.[method];
|
|
107
|
+
const handlers = (actualProviderOptions.handlers = existingHandlers || {});
|
|
108
|
+
handlers[method] = async (provider, params) => {
|
|
109
|
+
const args = { method, params };
|
|
110
|
+
try {
|
|
111
|
+
const response = await (existingHandler ? existingHandler(provider, params) : provider.request(args));
|
|
112
|
+
recordedRequests.push({
|
|
113
|
+
request: args,
|
|
114
|
+
response,
|
|
115
|
+
});
|
|
116
|
+
return response;
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
recordedRequests.push({
|
|
120
|
+
request: args,
|
|
121
|
+
error: err,
|
|
122
|
+
});
|
|
123
|
+
throw err;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
80
128
|
const estimationAddition = options.gasEstimationOverrides?.addToEstimation;
|
|
81
129
|
if (estimationAddition) {
|
|
82
130
|
const existingHandlers = actualProviderOptions.handlers;
|
|
83
131
|
const existingEstimateHandler = existingHandlers?.['eth_estimateGas'];
|
|
84
132
|
const handlers = (actualProviderOptions.handlers = existingHandlers || {});
|
|
85
|
-
handlers['eth_estimateGas'] = async (params) => {
|
|
133
|
+
handlers['eth_estimateGas'] = async (provider, params) => {
|
|
86
134
|
const result = await (existingEstimateHandler
|
|
87
|
-
? existingEstimateHandler(params)
|
|
88
|
-
:
|
|
135
|
+
? existingEstimateHandler(provider, params)
|
|
136
|
+
: provider.request({ method: 'eth_estimateGas', params }));
|
|
89
137
|
let resultAsBigInt = BigInt(result);
|
|
90
138
|
resultAsBigInt += estimationAddition;
|
|
91
139
|
return `0x${resultAsBigInt.toString(16)}`;
|
|
92
140
|
};
|
|
93
141
|
}
|
|
94
|
-
const provider = extendProviderWithAccounts(
|
|
142
|
+
const provider = extendProviderWithAccounts(providerToWrap, actualProviderOptions);
|
|
95
143
|
return {
|
|
144
|
+
recordedRequests,
|
|
96
145
|
provider,
|
|
97
146
|
async mineBlock() {
|
|
98
147
|
await client.tevmMine();
|
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;AACpH,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AAChC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,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.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "embedded chain",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -23,7 +23,7 @@
|
|
|
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.
|
|
26
|
+
"eip-1193-accounts-wrapper": "^0.0.9",
|
|
27
27
|
"named-logs": "^0.4.1",
|
|
28
28
|
"viem": "^2.43.3"
|
|
29
29
|
},
|