@feelyourprotocol/vm 8141.0.0
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 +373 -0
- package/README.md +583 -0
- package/dist/cjs/bloom/index.d.ts +29 -0
- package/dist/cjs/bloom/index.d.ts.map +1 -0
- package/dist/cjs/bloom/index.js +76 -0
- package/dist/cjs/bloom/index.js.map +1 -0
- package/dist/cjs/buildBlock.d.ts +118 -0
- package/dist/cjs/buildBlock.d.ts.map +1 -0
- package/dist/cjs/buildBlock.js +363 -0
- package/dist/cjs/buildBlock.js.map +1 -0
- package/dist/cjs/constructors.d.ts +9 -0
- package/dist/cjs/constructors.d.ts.map +1 -0
- package/dist/cjs/constructors.js +75 -0
- package/dist/cjs/constructors.js.map +1 -0
- package/dist/cjs/emitEVMProfile.d.ts +9 -0
- package/dist/cjs/emitEVMProfile.d.ts.map +1 -0
- package/dist/cjs/emitEVMProfile.js +130 -0
- package/dist/cjs/emitEVMProfile.js.map +1 -0
- package/dist/cjs/index.d.ts +11 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +36 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/params.d.ts +3 -0
- package/dist/cjs/params.d.ts.map +1 -0
- package/dist/cjs/params.js +105 -0
- package/dist/cjs/params.js.map +1 -0
- package/dist/cjs/requests.d.ts +11 -0
- package/dist/cjs/requests.d.ts.map +1 -0
- package/dist/cjs/requests.js +208 -0
- package/dist/cjs/requests.js.map +1 -0
- package/dist/cjs/runBlock.d.ts +35 -0
- package/dist/cjs/runBlock.d.ts.map +1 -0
- package/dist/cjs/runBlock.js +797 -0
- package/dist/cjs/runBlock.js.map +1 -0
- package/dist/cjs/runFrameTx.d.ts +18 -0
- package/dist/cjs/runFrameTx.d.ts.map +1 -0
- package/dist/cjs/runFrameTx.js +313 -0
- package/dist/cjs/runFrameTx.js.map +1 -0
- package/dist/cjs/runTx.d.ts +18 -0
- package/dist/cjs/runTx.d.ts.map +1 -0
- package/dist/cjs/runTx.js +900 -0
- package/dist/cjs/runTx.js.map +1 -0
- package/dist/cjs/types.d.ts +452 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/vm.d.ts +75 -0
- package/dist/cjs/vm.d.ts.map +1 -0
- package/dist/cjs/vm.js +111 -0
- package/dist/cjs/vm.js.map +1 -0
- package/dist/esm/bloom/index.d.ts +29 -0
- package/dist/esm/bloom/index.d.ts.map +1 -0
- package/dist/esm/bloom/index.js +72 -0
- package/dist/esm/bloom/index.js.map +1 -0
- package/dist/esm/buildBlock.d.ts +118 -0
- package/dist/esm/buildBlock.d.ts.map +1 -0
- package/dist/esm/buildBlock.js +358 -0
- package/dist/esm/buildBlock.js.map +1 -0
- package/dist/esm/constructors.d.ts +9 -0
- package/dist/esm/constructors.d.ts.map +1 -0
- package/dist/esm/constructors.js +72 -0
- package/dist/esm/constructors.js.map +1 -0
- package/dist/esm/emitEVMProfile.d.ts +9 -0
- package/dist/esm/emitEVMProfile.d.ts.map +1 -0
- package/dist/esm/emitEVMProfile.js +127 -0
- package/dist/esm/emitEVMProfile.js.map +1 -0
- package/dist/esm/index.d.ts +11 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/params.d.ts +3 -0
- package/dist/esm/params.d.ts.map +1 -0
- package/dist/esm/params.js +102 -0
- package/dist/esm/params.js.map +1 -0
- package/dist/esm/requests.d.ts +11 -0
- package/dist/esm/requests.d.ts.map +1 -0
- package/dist/esm/requests.js +204 -0
- package/dist/esm/requests.js.map +1 -0
- package/dist/esm/runBlock.d.ts +35 -0
- package/dist/esm/runBlock.d.ts.map +1 -0
- package/dist/esm/runBlock.js +790 -0
- package/dist/esm/runBlock.js.map +1 -0
- package/dist/esm/runFrameTx.d.ts +18 -0
- package/dist/esm/runFrameTx.d.ts.map +1 -0
- package/dist/esm/runFrameTx.js +310 -0
- package/dist/esm/runFrameTx.js.map +1 -0
- package/dist/esm/runTx.d.ts +18 -0
- package/dist/esm/runTx.d.ts.map +1 -0
- package/dist/esm/runTx.js +896 -0
- package/dist/esm/runTx.js.map +1 -0
- package/dist/esm/types.d.ts +452 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/vm.d.ts +75 -0
- package/dist/esm/vm.d.ts.map +1 -0
- package/dist/esm/vm.js +107 -0
- package/dist/esm/vm.js.map +1 -0
- package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.prod.esm.tsbuildinfo +1 -0
- package/package.json +117 -0
- package/src/bloom/index.ts +83 -0
- package/src/buildBlock.ts +470 -0
- package/src/constructors.ts +91 -0
- package/src/emitEVMProfile.ts +151 -0
- package/src/index.ts +10 -0
- package/src/params.ts +104 -0
- package/src/requests.ts +293 -0
- package/src/runBlock.ts +1022 -0
- package/src/runFrameTx.ts +411 -0
- package/src/runTx.ts +1203 -0
- package/src/types.ts +511 -0
- package/src/vm.ts +147 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runTx.js","sourceRoot":"","sources":["../../src/runTx.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
import type { Block, BlockOptions, HeaderData } from '@feelyourprotocol/block';
|
|
2
|
+
import type { Common, ParamsDict, StateManagerInterface } from '@feelyourprotocol/common';
|
|
3
|
+
import type { EVMInterface, EVMMockBlockchainInterface, EVMOpts, EVMResult, Log } from '@feelyourprotocol/evm';
|
|
4
|
+
import type { AccessList, TypedTransaction } from '@feelyourprotocol/tx';
|
|
5
|
+
import type { BigIntLike, BlockLevelAccessList, CLRequest, CLRequestType, PrefixedHexString, WithdrawalData } from '@feelyourprotocol/util';
|
|
6
|
+
import type { Bloom } from './bloom/index.ts';
|
|
7
|
+
export type TxReceipt = PreByzantiumTxReceipt | PostByzantiumTxReceipt | EIP4844BlobTxReceipt;
|
|
8
|
+
/**
|
|
9
|
+
* Abstract interface with common transaction receipt fields
|
|
10
|
+
*/
|
|
11
|
+
export interface BaseTxReceipt {
|
|
12
|
+
/**
|
|
13
|
+
* Cumulative gas used in the block including this tx
|
|
14
|
+
*/
|
|
15
|
+
cumulativeBlockGasUsed: bigint;
|
|
16
|
+
/**
|
|
17
|
+
* Bloom bitvector
|
|
18
|
+
*/
|
|
19
|
+
bitvector: Uint8Array;
|
|
20
|
+
/**
|
|
21
|
+
* Logs emitted
|
|
22
|
+
*/
|
|
23
|
+
logs: Log[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Pre-Byzantium receipt type with a field
|
|
27
|
+
* for the intermediary state root
|
|
28
|
+
*/
|
|
29
|
+
export interface PreByzantiumTxReceipt extends BaseTxReceipt {
|
|
30
|
+
/**
|
|
31
|
+
* Intermediary state root
|
|
32
|
+
*/
|
|
33
|
+
stateRoot: Uint8Array;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Receipt type for Byzantium and beyond replacing the intermediary
|
|
37
|
+
* state root field with a status code field (EIP-658)
|
|
38
|
+
*/
|
|
39
|
+
export interface PostByzantiumTxReceipt extends BaseTxReceipt {
|
|
40
|
+
/**
|
|
41
|
+
* Status of transaction, `1` if successful, `0` if an exception occurred
|
|
42
|
+
*/
|
|
43
|
+
status: 0 | 1;
|
|
44
|
+
}
|
|
45
|
+
export interface EIP4844BlobTxReceipt extends PostByzantiumTxReceipt {
|
|
46
|
+
/**
|
|
47
|
+
* blob gas consumed by a transaction
|
|
48
|
+
*
|
|
49
|
+
* Note: This value is not included in the receiptRLP used for encoding the receiptsRoot in a block
|
|
50
|
+
* and is only provided as part of receipt metadata.
|
|
51
|
+
*/
|
|
52
|
+
blobGasUsed: bigint;
|
|
53
|
+
/**
|
|
54
|
+
* blob gas price for block transaction was included in
|
|
55
|
+
*
|
|
56
|
+
* Note: This values is not included in the `receiptRLP` used for encoding the `receiptsRoot` in a block
|
|
57
|
+
* and is only provided as part of receipt metadata.
|
|
58
|
+
*/
|
|
59
|
+
blobGasPrice: bigint;
|
|
60
|
+
}
|
|
61
|
+
export type EVMProfilerOpts = {
|
|
62
|
+
enabled: boolean;
|
|
63
|
+
};
|
|
64
|
+
export type VMEvent = {
|
|
65
|
+
beforeBlock: (data: Block, resolve?: (result?: any) => void) => void;
|
|
66
|
+
afterBlock: (data: AfterBlockEvent, resolve?: (result?: any) => void) => void;
|
|
67
|
+
beforeTx: (data: TypedTransaction, resolve?: (result?: any) => void) => void;
|
|
68
|
+
afterTx: (data: AfterTxEvent, resolve?: (result?: any) => void) => void;
|
|
69
|
+
};
|
|
70
|
+
export type VMProfilerOpts = {
|
|
71
|
+
reportAfterTx?: boolean;
|
|
72
|
+
reportAfterBlock?: boolean;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Options for instantiating a {@link VM}.
|
|
76
|
+
*/
|
|
77
|
+
export interface VMOpts {
|
|
78
|
+
/**
|
|
79
|
+
* Use a {@link Common} instance
|
|
80
|
+
* if you want to change the chain setup.
|
|
81
|
+
*
|
|
82
|
+
* ### Possible Values
|
|
83
|
+
*
|
|
84
|
+
* - `chain`: all chains supported by `Common` or a custom chain
|
|
85
|
+
* - `hardfork`: `mainnet` hardforks up to the `Paris` hardfork
|
|
86
|
+
* - `eips`: `2537` (usage e.g. `eips: [ 2537, ]`)
|
|
87
|
+
*
|
|
88
|
+
* Note: check the associated `@feelyourprotocol/evm` instance options
|
|
89
|
+
* documentation for supported EIPs.
|
|
90
|
+
*
|
|
91
|
+
* ### Default Setup
|
|
92
|
+
*
|
|
93
|
+
* Default setup if no `Common` instance is provided:
|
|
94
|
+
*
|
|
95
|
+
* - `chain`: `mainnet`
|
|
96
|
+
* - `hardfork`: `paris`
|
|
97
|
+
* - `eips`: `[]`
|
|
98
|
+
*/
|
|
99
|
+
common?: Common;
|
|
100
|
+
/**
|
|
101
|
+
* A {@link StateManager} instance to use as the state store
|
|
102
|
+
*/
|
|
103
|
+
stateManager?: StateManagerInterface;
|
|
104
|
+
/**
|
|
105
|
+
* A {@link Blockchain} object for storing/retrieving blocks
|
|
106
|
+
*/
|
|
107
|
+
blockchain?: EVMMockBlockchainInterface;
|
|
108
|
+
/**
|
|
109
|
+
* If true, create entries in the state tree for the precompiled contracts, saving some gas the
|
|
110
|
+
* first time each of them is called.
|
|
111
|
+
*
|
|
112
|
+
* If this parameter is false, each call to each of them has to pay an extra 25000 gas
|
|
113
|
+
* for creating the account. If the account is still empty after this call, it will be deleted,
|
|
114
|
+
* such that this extra cost has to be paid again.
|
|
115
|
+
*
|
|
116
|
+
* Setting this to true has the effect of precompiled contracts' gas costs matching mainnet's from
|
|
117
|
+
* the very first call, which is intended for testing networks.
|
|
118
|
+
*
|
|
119
|
+
* Default: `false`
|
|
120
|
+
*/
|
|
121
|
+
activatePrecompiles?: boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Set the hardfork either by timestamp (for HFs from Shanghai onwards) or by block number
|
|
124
|
+
* for older Hfs.
|
|
125
|
+
*
|
|
126
|
+
* Additionally it is possible to pass in a specific TD value to support live-Merge-HF
|
|
127
|
+
* transitions. Note that this should only be needed in very rare and specific scenarios.
|
|
128
|
+
*
|
|
129
|
+
* Default: `false` (HF is set to whatever default HF is set by the {@link Common} instance)
|
|
130
|
+
*/
|
|
131
|
+
setHardfork?: boolean | BigIntLike;
|
|
132
|
+
/**
|
|
133
|
+
* VM parameters sorted by EIP can be found in the exported `paramsVM` dictionary,
|
|
134
|
+
* which is internally passed to the associated `@feelyourprotocol/common` instance which
|
|
135
|
+
* manages parameter selection based on the hardfork and EIP settings.
|
|
136
|
+
*
|
|
137
|
+
* This option allows providing a custom set of parameters. Note that parameters
|
|
138
|
+
* get fully overwritten, so you need to extend the default parameter dict
|
|
139
|
+
* to provide the full parameter set.
|
|
140
|
+
*
|
|
141
|
+
* It is recommended to deep-clone the params object for this to avoid side effects:
|
|
142
|
+
*
|
|
143
|
+
* ```ts
|
|
144
|
+
* const params = JSON.parse(JSON.stringify(paramsVM))
|
|
145
|
+
* params['1559']['elasticityMultiplier'] = 10 // 2
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
params?: ParamsDict;
|
|
149
|
+
/**
|
|
150
|
+
* Use a custom EVM to run Messages on. If this is not present, use the default EVM.
|
|
151
|
+
*/
|
|
152
|
+
evm?: EVMInterface;
|
|
153
|
+
/**
|
|
154
|
+
* Often there is no need to provide a full custom EVM but only a few options need to be
|
|
155
|
+
* adopted. This option allows to provide a custom set of EVM options to be passed.
|
|
156
|
+
*
|
|
157
|
+
* Note: This option will throw if used in conjunction with a full custom EVM passed.
|
|
158
|
+
*/
|
|
159
|
+
evmOpts?: EVMOpts;
|
|
160
|
+
profilerOpts?: VMProfilerOpts;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Options for the block builder.
|
|
164
|
+
*/
|
|
165
|
+
export interface BuilderOpts extends BlockOptions {
|
|
166
|
+
/**
|
|
167
|
+
* Whether to put the block into the vm's blockchain after building it.
|
|
168
|
+
* This is useful for completing a full cycle when building a block so
|
|
169
|
+
* the only next step is to build again, however it may not be desired
|
|
170
|
+
* if the block is being emulated or may be discarded as to not affect
|
|
171
|
+
* the underlying blockchain.
|
|
172
|
+
*
|
|
173
|
+
* Default: true
|
|
174
|
+
*/
|
|
175
|
+
putBlockIntoBlockchain?: boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Provide a clique signer's privateKey to seal this block.
|
|
178
|
+
* Will throw if provided on a non-PoA chain.
|
|
179
|
+
*/
|
|
180
|
+
cliqueSigner?: Uint8Array;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Options for building a block.
|
|
184
|
+
*/
|
|
185
|
+
export interface BuildBlockOpts {
|
|
186
|
+
/**
|
|
187
|
+
* The parent block
|
|
188
|
+
*/
|
|
189
|
+
parentBlock: Block;
|
|
190
|
+
/**
|
|
191
|
+
* The block header data to use.
|
|
192
|
+
* Defaults used for any values not provided.
|
|
193
|
+
*/
|
|
194
|
+
headerData?: HeaderData;
|
|
195
|
+
withdrawals?: WithdrawalData[];
|
|
196
|
+
/**
|
|
197
|
+
* The block and builder options to use.
|
|
198
|
+
*/
|
|
199
|
+
blockOpts?: BuilderOpts;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Options for sealing a block.
|
|
203
|
+
*/
|
|
204
|
+
export interface SealBlockOpts {
|
|
205
|
+
/**
|
|
206
|
+
* For PoW, the nonce.
|
|
207
|
+
* Overrides the value passed in the constructor.
|
|
208
|
+
*/
|
|
209
|
+
nonce?: Uint8Array;
|
|
210
|
+
/**
|
|
211
|
+
* For PoW, the mixHash.
|
|
212
|
+
* Overrides the value passed in the constructor.
|
|
213
|
+
*/
|
|
214
|
+
mixHash?: Uint8Array;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Options for running a block.
|
|
218
|
+
*/
|
|
219
|
+
export interface RunBlockOpts {
|
|
220
|
+
/**
|
|
221
|
+
* The @feelyourprotocol/block to process
|
|
222
|
+
*/
|
|
223
|
+
block: Block;
|
|
224
|
+
/**
|
|
225
|
+
* Root of the state trie
|
|
226
|
+
*/
|
|
227
|
+
root?: Uint8Array;
|
|
228
|
+
/**
|
|
229
|
+
* Clearing the StateManager cache.
|
|
230
|
+
*
|
|
231
|
+
* If state root is not reset for whatever reason this can be set to `false` for better performance.
|
|
232
|
+
*
|
|
233
|
+
* Default: true
|
|
234
|
+
*/
|
|
235
|
+
clearCache?: boolean;
|
|
236
|
+
/**
|
|
237
|
+
* Whether to generate the stateRoot and other related fields.
|
|
238
|
+
* If `true`, `runBlock` will set the fields `stateRoot`, `receiptTrie`, `gasUsed`, and `bloom` (logs bloom) after running the block.
|
|
239
|
+
* If `false`, `runBlock` throws if any fields do not match.
|
|
240
|
+
* Defaults to `false`.
|
|
241
|
+
*/
|
|
242
|
+
generate?: boolean;
|
|
243
|
+
/**
|
|
244
|
+
* If true, will skip "Block validation":
|
|
245
|
+
* Block validation validates the header (with respect to the blockchain),
|
|
246
|
+
* the transactions, the transaction trie and the uncle hash.
|
|
247
|
+
*/
|
|
248
|
+
skipBlockValidation?: boolean;
|
|
249
|
+
/**
|
|
250
|
+
* If true, skips the hardfork validation of vm, block
|
|
251
|
+
* and tx
|
|
252
|
+
*/
|
|
253
|
+
skipHardForkValidation?: boolean;
|
|
254
|
+
/**
|
|
255
|
+
* if true, will skip "Header validation"
|
|
256
|
+
* If the block has been picked from the blockchain to be executed,
|
|
257
|
+
* header has already been validated, and can be skipped especially when
|
|
258
|
+
* consensus of the chain has moved ahead.
|
|
259
|
+
*/
|
|
260
|
+
skipHeaderValidation?: boolean;
|
|
261
|
+
/**
|
|
262
|
+
* If true, skips the nonce check
|
|
263
|
+
*/
|
|
264
|
+
skipNonce?: boolean;
|
|
265
|
+
/**
|
|
266
|
+
* If true, checks the balance of the `from` account for the transaction and sets its
|
|
267
|
+
* balance equal equal to the upfront cost (gas limit * gas price + transaction value)
|
|
268
|
+
*/
|
|
269
|
+
skipBalance?: boolean;
|
|
270
|
+
/**
|
|
271
|
+
* Set the hardfork either by timestamp (for HFs from Shanghai onwards) or by block number
|
|
272
|
+
* for older Hfs.
|
|
273
|
+
*
|
|
274
|
+
* Default: `false` (HF is set to whatever default HF is set by the {@link Common} instance)
|
|
275
|
+
*/
|
|
276
|
+
setHardfork?: boolean;
|
|
277
|
+
/**
|
|
278
|
+
* If true, adds a hashedKey -> preimages mapping of all touched accounts
|
|
279
|
+
* to the `RunTxResult` returned.
|
|
280
|
+
*/
|
|
281
|
+
reportPreimages?: boolean;
|
|
282
|
+
/**
|
|
283
|
+
* If true, will validate block size limit (EIP-7934) when validating block data.
|
|
284
|
+
* Defaults to false.
|
|
285
|
+
*/
|
|
286
|
+
validateBlockSize?: boolean;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Result of {@link applyBlock}
|
|
290
|
+
*/
|
|
291
|
+
export interface ApplyBlockResult {
|
|
292
|
+
/**
|
|
293
|
+
* The Bloom filter
|
|
294
|
+
*/
|
|
295
|
+
bloom: Bloom;
|
|
296
|
+
/**
|
|
297
|
+
* The gas used after executing the block
|
|
298
|
+
*/
|
|
299
|
+
gasUsed: bigint;
|
|
300
|
+
/**
|
|
301
|
+
* The receipt root after executing the block
|
|
302
|
+
*/
|
|
303
|
+
receiptsRoot: Uint8Array;
|
|
304
|
+
/**
|
|
305
|
+
* Receipts generated for transactions in the block
|
|
306
|
+
*/
|
|
307
|
+
receipts: TxReceipt[];
|
|
308
|
+
/**
|
|
309
|
+
* Results of executing the transactions in the block
|
|
310
|
+
*/
|
|
311
|
+
results: RunTxResult[];
|
|
312
|
+
/**
|
|
313
|
+
* Preimages mapping of the touched accounts from the block (see reportPreimages option)
|
|
314
|
+
*/
|
|
315
|
+
preimages?: Map<PrefixedHexString, Uint8Array>;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Result of {@link runBlock}
|
|
319
|
+
*/
|
|
320
|
+
export interface RunBlockResult extends Omit<ApplyBlockResult, 'bloom'> {
|
|
321
|
+
/**
|
|
322
|
+
* The stateRoot after executing the block
|
|
323
|
+
*/
|
|
324
|
+
stateRoot: Uint8Array;
|
|
325
|
+
/**
|
|
326
|
+
* The bloom filter of the LOGs (events) after executing the block
|
|
327
|
+
*/
|
|
328
|
+
logsBloom: Uint8Array;
|
|
329
|
+
/**
|
|
330
|
+
* The requestsHash for any CL requests in the block
|
|
331
|
+
*/
|
|
332
|
+
requestsHash?: Uint8Array;
|
|
333
|
+
/**
|
|
334
|
+
* Any CL requests that were processed in the course of this block
|
|
335
|
+
*/
|
|
336
|
+
requests?: CLRequest<CLRequestType>[];
|
|
337
|
+
/**
|
|
338
|
+
* The block level access list created during execution
|
|
339
|
+
* (if EIP-7928 is active)
|
|
340
|
+
*/
|
|
341
|
+
blockLevelAccessList?: BlockLevelAccessList;
|
|
342
|
+
}
|
|
343
|
+
export interface AfterBlockEvent extends RunBlockResult {
|
|
344
|
+
block: Block;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Options for the `runTx` method.
|
|
348
|
+
*/
|
|
349
|
+
export interface RunTxOpts {
|
|
350
|
+
/**
|
|
351
|
+
* The `@feelyourprotocol/block` the `tx` belongs to.
|
|
352
|
+
* If omitted, a default blank block will be used.
|
|
353
|
+
*/
|
|
354
|
+
block?: Block;
|
|
355
|
+
/**
|
|
356
|
+
* An `@feelyourprotocol/tx` to run
|
|
357
|
+
*/
|
|
358
|
+
tx: TypedTransaction;
|
|
359
|
+
/**
|
|
360
|
+
* If true, skips the nonce check
|
|
361
|
+
*/
|
|
362
|
+
skipNonce?: boolean;
|
|
363
|
+
/**
|
|
364
|
+
* Skip balance checks if true. Adds transaction cost to balance to ensure execution doesn't fail.
|
|
365
|
+
*/
|
|
366
|
+
skipBalance?: boolean;
|
|
367
|
+
/**
|
|
368
|
+
* If true, skips the validation of the tx's gas limit
|
|
369
|
+
* against the block's gas limit.
|
|
370
|
+
*/
|
|
371
|
+
skipBlockGasLimitValidation?: boolean;
|
|
372
|
+
/**
|
|
373
|
+
* If true, skips the hardfork validation of vm, block
|
|
374
|
+
* and tx
|
|
375
|
+
*/
|
|
376
|
+
skipHardForkValidation?: boolean;
|
|
377
|
+
/**
|
|
378
|
+
* If true, adds a generated EIP-2930 access list
|
|
379
|
+
* to the `RunTxResult` returned.
|
|
380
|
+
*
|
|
381
|
+
* Option works with all tx types. EIP-2929 needs to
|
|
382
|
+
* be activated (included in `berlin` HF).
|
|
383
|
+
*
|
|
384
|
+
* Note: if this option is used with a custom {@link StateManager} implementation
|
|
385
|
+
* {@link StateManager.generateAccessList} must be implemented.
|
|
386
|
+
*/
|
|
387
|
+
reportAccessList?: boolean;
|
|
388
|
+
/**
|
|
389
|
+
* If true, adds a hashedKey -> preimages mapping of all touched accounts
|
|
390
|
+
* to the `RunTxResult` returned.
|
|
391
|
+
*/
|
|
392
|
+
reportPreimages?: boolean;
|
|
393
|
+
/**
|
|
394
|
+
* To obtain an accurate tx receipt input the block gas used up until this tx.
|
|
395
|
+
*/
|
|
396
|
+
blockGasUsed?: bigint;
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Execution result of a transaction
|
|
400
|
+
*/
|
|
401
|
+
export interface RunTxResult extends EVMResult {
|
|
402
|
+
/**
|
|
403
|
+
* Bloom filter resulted from transaction
|
|
404
|
+
*/
|
|
405
|
+
bloom: Bloom;
|
|
406
|
+
/**
|
|
407
|
+
* The amount of ether used by this transaction
|
|
408
|
+
*/
|
|
409
|
+
amountSpent: bigint;
|
|
410
|
+
/**
|
|
411
|
+
* The tx receipt
|
|
412
|
+
*/
|
|
413
|
+
receipt: TxReceipt;
|
|
414
|
+
/**
|
|
415
|
+
* The amount of gas used in this transaction, which is paid for
|
|
416
|
+
* This contains the gas units that have been used on execution, plus the upfront cost,
|
|
417
|
+
* which consists of calldata cost, intrinsic cost and optionally the access list costs
|
|
418
|
+
*/
|
|
419
|
+
totalGasSpent: bigint;
|
|
420
|
+
/**
|
|
421
|
+
* The amount of gas accounted for at block level.
|
|
422
|
+
* On EIP-7778 this excludes tx-level refund subtraction.
|
|
423
|
+
*/
|
|
424
|
+
blockGasSpent: bigint;
|
|
425
|
+
/**
|
|
426
|
+
* The amount of gas as that was refunded during the transaction (i.e. `gasUsed = totalGasConsumed - gasRefund`)
|
|
427
|
+
*/
|
|
428
|
+
gasRefund: bigint;
|
|
429
|
+
/**
|
|
430
|
+
* EIP-2930 access list generated for the tx (see `reportAccessList` option)
|
|
431
|
+
*/
|
|
432
|
+
accessList?: AccessList;
|
|
433
|
+
/**
|
|
434
|
+
* Preimages mapping of the touched accounts from the tx (see `reportPreimages` option)
|
|
435
|
+
*/
|
|
436
|
+
preimages?: Map<PrefixedHexString, Uint8Array>;
|
|
437
|
+
/**
|
|
438
|
+
* The value that accrues to the miner by this transaction
|
|
439
|
+
*/
|
|
440
|
+
minerValue: bigint;
|
|
441
|
+
/**
|
|
442
|
+
* This is the blob gas units times the fee per blob gas for 4844 transactions
|
|
443
|
+
*/
|
|
444
|
+
blobGasUsed?: bigint;
|
|
445
|
+
}
|
|
446
|
+
export interface AfterTxEvent extends RunTxResult {
|
|
447
|
+
/**
|
|
448
|
+
* The transaction which just got finished
|
|
449
|
+
*/
|
|
450
|
+
transaction: TypedTransaction;
|
|
451
|
+
}
|
|
452
|
+
//# 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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
package/dist/cjs/vm.d.ts
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { EventEmitter } from 'eventemitter3';
|
|
2
|
+
import type { Common, StateManagerInterface } from '@feelyourprotocol/common';
|
|
3
|
+
import type { EVMInterface, EVMMockBlockchainInterface } from '@feelyourprotocol/evm';
|
|
4
|
+
import type { BigIntLike } from '@feelyourprotocol/util';
|
|
5
|
+
import type { VMEvent, VMOpts } from './types.ts';
|
|
6
|
+
/**
|
|
7
|
+
* The VM is a state transition machine that executes EVM bytecode and updates the state.
|
|
8
|
+
* It can be used to execute transactions, blocks, individual transactions, or snippets of EVM bytecode.
|
|
9
|
+
*
|
|
10
|
+
* A VM can be created with the constructor method:
|
|
11
|
+
*
|
|
12
|
+
* - {@link createVM}
|
|
13
|
+
*/
|
|
14
|
+
export declare class VM {
|
|
15
|
+
/**
|
|
16
|
+
* The StateManager used by the VM
|
|
17
|
+
*/
|
|
18
|
+
readonly stateManager: StateManagerInterface;
|
|
19
|
+
/**
|
|
20
|
+
* The blockchain the VM operates on
|
|
21
|
+
*/
|
|
22
|
+
readonly blockchain: EVMMockBlockchainInterface;
|
|
23
|
+
readonly common: Common;
|
|
24
|
+
readonly events: EventEmitter<VMEvent>;
|
|
25
|
+
/**
|
|
26
|
+
* The EVM used for bytecode execution
|
|
27
|
+
*/
|
|
28
|
+
readonly evm: EVMInterface;
|
|
29
|
+
protected readonly _opts: VMOpts;
|
|
30
|
+
protected _isInitialized: boolean;
|
|
31
|
+
protected readonly _setHardfork: boolean | BigIntLike;
|
|
32
|
+
/**
|
|
33
|
+
* Cached emit() function, not for public usage
|
|
34
|
+
* set to public due to implementation internals
|
|
35
|
+
* @hidden
|
|
36
|
+
*/
|
|
37
|
+
readonly _emit: (topic: string, data: any) => Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* VM is run in DEBUG mode (default: false)
|
|
40
|
+
* Taken from DEBUG environment variable
|
|
41
|
+
*
|
|
42
|
+
* Safeguards on debug() calls are added for
|
|
43
|
+
* performance reasons to avoid string literal evaluation
|
|
44
|
+
* @hidden
|
|
45
|
+
*/
|
|
46
|
+
readonly DEBUG: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Instantiates a new {@link VM} Object.
|
|
49
|
+
*
|
|
50
|
+
* @deprecated The direct usage of this constructor is discouraged since
|
|
51
|
+
* non-finalized async initialization might lead to side effects. Please
|
|
52
|
+
* use the async {@link createVM} constructor instead (same API).
|
|
53
|
+
* @param opts
|
|
54
|
+
*/
|
|
55
|
+
constructor(opts?: VMOpts);
|
|
56
|
+
/**
|
|
57
|
+
* Returns a copy of the {@link VM} instance.
|
|
58
|
+
*
|
|
59
|
+
* Note that the returned copy will share the same db as the original for the blockchain and the statemanager.
|
|
60
|
+
*
|
|
61
|
+
* Associated caches will be deleted and caches will be re-initialized for a more short-term focused
|
|
62
|
+
* usage, being less memory intense (the statemanager caches will switch to using an ORDERED_MAP cache
|
|
63
|
+
* data structure more suitable for short-term usage, the trie node LRU cache will not be activated at all).
|
|
64
|
+
* To fine-tune this behavior (if the shallow-copy-returned object has a longer life span e.g.) you can set
|
|
65
|
+
* the `downlevelCaches` option to `false`.
|
|
66
|
+
*
|
|
67
|
+
* @param downlevelCaches Downlevel (so: adopted for short-term usage) associated state caches (default: true)
|
|
68
|
+
*/
|
|
69
|
+
shallowCopy(downlevelCaches?: boolean): Promise<VM>;
|
|
70
|
+
/**
|
|
71
|
+
* Return a compact error string representation of the object
|
|
72
|
+
*/
|
|
73
|
+
errorStr(): string;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=vm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vm.d.ts","sourceRoot":"","sources":["../../src/vm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAK5C,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAE/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEjD;;;;;;;GAOG;AACH,qBAAa,EAAE;IACb;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAA;IAE5C;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAA;IAE/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEvB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;IACtC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;IAE1B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAChC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAQ;IAEzC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,UAAU,CAAA;IAErD;;;;OAIG;IACH,SAAgB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAElE;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAQ;IAE/B;;;;;;;OAOG;gBACS,IAAI,GAAE,MAAW;IA6B7B;;;;;;;;;;;;OAYG;IACG,WAAW,CAAC,eAAe,UAAO,GAAG,OAAO,CAAC,EAAE,CAAC;IAsBtD;;OAEG;IACH,QAAQ;CAUT"}
|