@feelyourprotocol/evm 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.
Files changed (565) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +690 -0
  3. package/dist/cjs/binaryTreeAccessWitness.d.ts +61 -0
  4. package/dist/cjs/binaryTreeAccessWitness.d.ts.map +1 -0
  5. package/dist/cjs/binaryTreeAccessWitness.js +314 -0
  6. package/dist/cjs/binaryTreeAccessWitness.js.map +1 -0
  7. package/dist/cjs/chunkCache.d.ts +13 -0
  8. package/dist/cjs/chunkCache.d.ts.map +1 -0
  9. package/dist/cjs/chunkCache.js +30 -0
  10. package/dist/cjs/chunkCache.js.map +1 -0
  11. package/dist/cjs/constructors.d.ts +11 -0
  12. package/dist/cjs/constructors.d.ts.map +1 -0
  13. package/dist/cjs/constructors.js +30 -0
  14. package/dist/cjs/constructors.js.map +1 -0
  15. package/dist/cjs/eip7708.d.ts +24 -0
  16. package/dist/cjs/eip7708.d.ts.map +1 -0
  17. package/dist/cjs/eip7708.js +37 -0
  18. package/dist/cjs/eip7708.js.map +1 -0
  19. package/dist/cjs/eof/constants.d.ts +22 -0
  20. package/dist/cjs/eof/constants.d.ts.map +1 -0
  21. package/dist/cjs/eof/constants.js +31 -0
  22. package/dist/cjs/eof/constants.js.map +1 -0
  23. package/dist/cjs/eof/container.d.ts +87 -0
  24. package/dist/cjs/eof/container.d.ts.map +1 -0
  25. package/dist/cjs/eof/container.js +380 -0
  26. package/dist/cjs/eof/container.js.map +1 -0
  27. package/dist/cjs/eof/errors.d.ts +66 -0
  28. package/dist/cjs/eof/errors.d.ts.map +1 -0
  29. package/dist/cjs/eof/errors.js +200 -0
  30. package/dist/cjs/eof/errors.js.map +1 -0
  31. package/dist/cjs/eof/setup.d.ts +9 -0
  32. package/dist/cjs/eof/setup.d.ts.map +1 -0
  33. package/dist/cjs/eof/setup.js +26 -0
  34. package/dist/cjs/eof/setup.js.map +1 -0
  35. package/dist/cjs/eof/stackDelta.d.ts +10 -0
  36. package/dist/cjs/eof/stackDelta.d.ts.map +1 -0
  37. package/dist/cjs/eof/stackDelta.js +164 -0
  38. package/dist/cjs/eof/stackDelta.js.map +1 -0
  39. package/dist/cjs/eof/util.d.ts +8 -0
  40. package/dist/cjs/eof/util.d.ts.map +1 -0
  41. package/dist/cjs/eof/util.js +18 -0
  42. package/dist/cjs/eof/util.js.map +1 -0
  43. package/dist/cjs/eof/verify.d.ts +38 -0
  44. package/dist/cjs/eof/verify.d.ts.map +1 -0
  45. package/dist/cjs/eof/verify.js +436 -0
  46. package/dist/cjs/eof/verify.js.map +1 -0
  47. package/dist/cjs/errors.d.ts +40 -0
  48. package/dist/cjs/errors.d.ts.map +1 -0
  49. package/dist/cjs/errors.js +43 -0
  50. package/dist/cjs/errors.js.map +1 -0
  51. package/dist/cjs/evm.d.ts +181 -0
  52. package/dist/cjs/evm.d.ts.map +1 -0
  53. package/dist/cjs/evm.js +1142 -0
  54. package/dist/cjs/evm.js.map +1 -0
  55. package/dist/cjs/frameContext.d.ts +50 -0
  56. package/dist/cjs/frameContext.d.ts.map +1 -0
  57. package/dist/cjs/frameContext.js +17 -0
  58. package/dist/cjs/frameContext.js.map +1 -0
  59. package/dist/cjs/index.d.ts +18 -0
  60. package/dist/cjs/index.d.ts.map +1 -0
  61. package/dist/cjs/index.js +43 -0
  62. package/dist/cjs/index.js.map +1 -0
  63. package/dist/cjs/interpreter.d.ts +361 -0
  64. package/dist/cjs/interpreter.d.ts.map +1 -0
  65. package/dist/cjs/interpreter.js +1057 -0
  66. package/dist/cjs/interpreter.js.map +1 -0
  67. package/dist/cjs/journal.d.ts +69 -0
  68. package/dist/cjs/journal.d.ts.map +1 -0
  69. package/dist/cjs/journal.js +247 -0
  70. package/dist/cjs/journal.js.map +1 -0
  71. package/dist/cjs/logger.d.ts +38 -0
  72. package/dist/cjs/logger.d.ts.map +1 -0
  73. package/dist/cjs/logger.js +126 -0
  74. package/dist/cjs/logger.js.map +1 -0
  75. package/dist/cjs/memory.d.ts +29 -0
  76. package/dist/cjs/memory.d.ts.map +1 -0
  77. package/dist/cjs/memory.js +75 -0
  78. package/dist/cjs/memory.js.map +1 -0
  79. package/dist/cjs/message.d.ts +70 -0
  80. package/dist/cjs/message.d.ts.map +1 -0
  81. package/dist/cjs/message.js +51 -0
  82. package/dist/cjs/message.js.map +1 -0
  83. package/dist/cjs/opcodes/EIP1283.d.ts +13 -0
  84. package/dist/cjs/opcodes/EIP1283.d.ts.map +1 -0
  85. package/dist/cjs/opcodes/EIP1283.js +58 -0
  86. package/dist/cjs/opcodes/EIP1283.js.map +1 -0
  87. package/dist/cjs/opcodes/EIP2200.d.ts +13 -0
  88. package/dist/cjs/opcodes/EIP2200.d.ts.map +1 -0
  89. package/dist/cjs/opcodes/EIP2200.js +64 -0
  90. package/dist/cjs/opcodes/EIP2200.js.map +1 -0
  91. package/dist/cjs/opcodes/EIP2929.d.ts +68 -0
  92. package/dist/cjs/opcodes/EIP2929.d.ts.map +1 -0
  93. package/dist/cjs/opcodes/EIP2929.js +146 -0
  94. package/dist/cjs/opcodes/EIP2929.js.map +1 -0
  95. package/dist/cjs/opcodes/codes.d.ts +45 -0
  96. package/dist/cjs/opcodes/codes.d.ts.map +1 -0
  97. package/dist/cjs/opcodes/codes.js +453 -0
  98. package/dist/cjs/opcodes/codes.js.map +1 -0
  99. package/dist/cjs/opcodes/functions.d.ts +11 -0
  100. package/dist/cjs/opcodes/functions.d.ts.map +1 -0
  101. package/dist/cjs/opcodes/functions.js +1778 -0
  102. package/dist/cjs/opcodes/functions.js.map +1 -0
  103. package/dist/cjs/opcodes/gas.d.ts +15 -0
  104. package/dist/cjs/opcodes/gas.d.ts.map +1 -0
  105. package/dist/cjs/opcodes/gas.js +1016 -0
  106. package/dist/cjs/opcodes/gas.js.map +1 -0
  107. package/dist/cjs/opcodes/index.d.ts +4 -0
  108. package/dist/cjs/opcodes/index.d.ts.map +1 -0
  109. package/dist/cjs/opcodes/index.js +20 -0
  110. package/dist/cjs/opcodes/index.js.map +1 -0
  111. package/dist/cjs/opcodes/util.d.ts +86 -0
  112. package/dist/cjs/opcodes/util.d.ts.map +1 -0
  113. package/dist/cjs/opcodes/util.js +281 -0
  114. package/dist/cjs/opcodes/util.js.map +1 -0
  115. package/dist/cjs/package.json +3 -0
  116. package/dist/cjs/params.d.ts +3 -0
  117. package/dist/cjs/params.d.ts.map +1 -0
  118. package/dist/cjs/params.js +424 -0
  119. package/dist/cjs/params.js.map +1 -0
  120. package/dist/cjs/precompiles/01-ecrecover.d.ts +4 -0
  121. package/dist/cjs/precompiles/01-ecrecover.d.ts.map +1 -0
  122. package/dist/cjs/precompiles/01-ecrecover.js +58 -0
  123. package/dist/cjs/precompiles/01-ecrecover.js.map +1 -0
  124. package/dist/cjs/precompiles/02-sha256.d.ts +4 -0
  125. package/dist/cjs/precompiles/02-sha256.d.ts.map +1 -0
  126. package/dist/cjs/precompiles/02-sha256.js +27 -0
  127. package/dist/cjs/precompiles/02-sha256.js.map +1 -0
  128. package/dist/cjs/precompiles/03-ripemd160.d.ts +4 -0
  129. package/dist/cjs/precompiles/03-ripemd160.d.ts.map +1 -0
  130. package/dist/cjs/precompiles/03-ripemd160.js +26 -0
  131. package/dist/cjs/precompiles/03-ripemd160.js.map +1 -0
  132. package/dist/cjs/precompiles/04-identity.d.ts +4 -0
  133. package/dist/cjs/precompiles/04-identity.d.ts.map +1 -0
  134. package/dist/cjs/precompiles/04-identity.js +24 -0
  135. package/dist/cjs/precompiles/04-identity.js.map +1 -0
  136. package/dist/cjs/precompiles/05-modexp.d.ts +5 -0
  137. package/dist/cjs/precompiles/05-modexp.d.ts.map +1 -0
  138. package/dist/cjs/precompiles/05-modexp.js +185 -0
  139. package/dist/cjs/precompiles/05-modexp.js.map +1 -0
  140. package/dist/cjs/precompiles/06-bn254-add.d.ts +4 -0
  141. package/dist/cjs/precompiles/06-bn254-add.d.ts.map +1 -0
  142. package/dist/cjs/precompiles/06-bn254-add.js +42 -0
  143. package/dist/cjs/precompiles/06-bn254-add.js.map +1 -0
  144. package/dist/cjs/precompiles/07-bn254-mul.d.ts +4 -0
  145. package/dist/cjs/precompiles/07-bn254-mul.d.ts.map +1 -0
  146. package/dist/cjs/precompiles/07-bn254-mul.js +43 -0
  147. package/dist/cjs/precompiles/07-bn254-mul.js.map +1 -0
  148. package/dist/cjs/precompiles/08-bn254-pairing.d.ts +4 -0
  149. package/dist/cjs/precompiles/08-bn254-pairing.d.ts.map +1 -0
  150. package/dist/cjs/precompiles/08-bn254-pairing.js +45 -0
  151. package/dist/cjs/precompiles/08-bn254-pairing.js.map +1 -0
  152. package/dist/cjs/precompiles/09-blake2f.d.ts +5 -0
  153. package/dist/cjs/precompiles/09-blake2f.d.ts.map +1 -0
  154. package/dist/cjs/precompiles/09-blake2f.js +201 -0
  155. package/dist/cjs/precompiles/09-blake2f.js.map +1 -0
  156. package/dist/cjs/precompiles/0a-kzg-point-evaluation.d.ts +5 -0
  157. package/dist/cjs/precompiles/0a-kzg-point-evaluation.d.ts.map +1 -0
  158. package/dist/cjs/precompiles/0a-kzg-point-evaluation.js +68 -0
  159. package/dist/cjs/precompiles/0a-kzg-point-evaluation.js.map +1 -0
  160. package/dist/cjs/precompiles/0b-bls12-g1add.d.ts +4 -0
  161. package/dist/cjs/precompiles/0b-bls12-g1add.d.ts.map +1 -0
  162. package/dist/cjs/precompiles/0b-bls12-g1add.js +49 -0
  163. package/dist/cjs/precompiles/0b-bls12-g1add.js.map +1 -0
  164. package/dist/cjs/precompiles/0c-bls12-g1msm.d.ts +4 -0
  165. package/dist/cjs/precompiles/0c-bls12-g1msm.d.ts.map +1 -0
  166. package/dist/cjs/precompiles/0c-bls12-g1msm.js +62 -0
  167. package/dist/cjs/precompiles/0c-bls12-g1msm.js.map +1 -0
  168. package/dist/cjs/precompiles/0d-bls12-g2add.d.ts +4 -0
  169. package/dist/cjs/precompiles/0d-bls12-g2add.d.ts.map +1 -0
  170. package/dist/cjs/precompiles/0d-bls12-g2add.js +51 -0
  171. package/dist/cjs/precompiles/0d-bls12-g2add.js.map +1 -0
  172. package/dist/cjs/precompiles/0e-bls12-g2msm.d.ts +4 -0
  173. package/dist/cjs/precompiles/0e-bls12-g2msm.d.ts.map +1 -0
  174. package/dist/cjs/precompiles/0e-bls12-g2msm.js +60 -0
  175. package/dist/cjs/precompiles/0e-bls12-g2msm.js.map +1 -0
  176. package/dist/cjs/precompiles/0f-bls12-pairing.d.ts +4 -0
  177. package/dist/cjs/precompiles/0f-bls12-pairing.d.ts.map +1 -0
  178. package/dist/cjs/precompiles/0f-bls12-pairing.js +66 -0
  179. package/dist/cjs/precompiles/0f-bls12-pairing.js.map +1 -0
  180. package/dist/cjs/precompiles/10-bls12-map-fp-to-g1.d.ts +4 -0
  181. package/dist/cjs/precompiles/10-bls12-map-fp-to-g1.d.ts.map +1 -0
  182. package/dist/cjs/precompiles/10-bls12-map-fp-to-g1.js +44 -0
  183. package/dist/cjs/precompiles/10-bls12-map-fp-to-g1.js.map +1 -0
  184. package/dist/cjs/precompiles/100-p256verify.d.ts +4 -0
  185. package/dist/cjs/precompiles/100-p256verify.d.ts.map +1 -0
  186. package/dist/cjs/precompiles/100-p256verify.js +131 -0
  187. package/dist/cjs/precompiles/100-p256verify.js.map +1 -0
  188. package/dist/cjs/precompiles/11-bls12-map-fp2-to-g2.d.ts +4 -0
  189. package/dist/cjs/precompiles/11-bls12-map-fp2-to-g2.d.ts.map +1 -0
  190. package/dist/cjs/precompiles/11-bls12-map-fp2-to-g2.js +47 -0
  191. package/dist/cjs/precompiles/11-bls12-map-fp2-to-g2.js.map +1 -0
  192. package/dist/cjs/precompiles/bls12_381/constants.d.ts +10 -0
  193. package/dist/cjs/precompiles/bls12_381/constants.d.ts.map +1 -0
  194. package/dist/cjs/precompiles/bls12_381/constants.js +274 -0
  195. package/dist/cjs/precompiles/bls12_381/constants.js.map +1 -0
  196. package/dist/cjs/precompiles/bls12_381/index.d.ts +5 -0
  197. package/dist/cjs/precompiles/bls12_381/index.d.ts.map +1 -0
  198. package/dist/cjs/precompiles/bls12_381/index.js +24 -0
  199. package/dist/cjs/precompiles/bls12_381/index.js.map +1 -0
  200. package/dist/cjs/precompiles/bls12_381/mcl.d.ts +45 -0
  201. package/dist/cjs/precompiles/bls12_381/mcl.d.ts.map +1 -0
  202. package/dist/cjs/precompiles/bls12_381/mcl.js +264 -0
  203. package/dist/cjs/precompiles/bls12_381/mcl.js.map +1 -0
  204. package/dist/cjs/precompiles/bls12_381/noble.d.ts +39 -0
  205. package/dist/cjs/precompiles/bls12_381/noble.d.ts.map +1 -0
  206. package/dist/cjs/precompiles/bls12_381/noble.js +228 -0
  207. package/dist/cjs/precompiles/bls12_381/noble.js.map +1 -0
  208. package/dist/cjs/precompiles/bls12_381/util.d.ts +35 -0
  209. package/dist/cjs/precompiles/bls12_381/util.d.ts.map +1 -0
  210. package/dist/cjs/precompiles/bls12_381/util.js +68 -0
  211. package/dist/cjs/precompiles/bls12_381/util.js.map +1 -0
  212. package/dist/cjs/precompiles/bn254/index.d.ts +3 -0
  213. package/dist/cjs/precompiles/bn254/index.d.ts.map +1 -0
  214. package/dist/cjs/precompiles/bn254/index.js +8 -0
  215. package/dist/cjs/precompiles/bn254/index.js.map +1 -0
  216. package/dist/cjs/precompiles/bn254/noble.d.ts +13 -0
  217. package/dist/cjs/precompiles/bn254/noble.d.ts.map +1 -0
  218. package/dist/cjs/precompiles/bn254/noble.js +124 -0
  219. package/dist/cjs/precompiles/bn254/noble.js.map +1 -0
  220. package/dist/cjs/precompiles/bn254/rustbn.d.ts +16 -0
  221. package/dist/cjs/precompiles/bn254/rustbn.d.ts.map +1 -0
  222. package/dist/cjs/precompiles/bn254/rustbn.js +33 -0
  223. package/dist/cjs/precompiles/bn254/rustbn.js.map +1 -0
  224. package/dist/cjs/precompiles/index.d.ts +67 -0
  225. package/dist/cjs/precompiles/index.d.ts.map +1 -0
  226. package/dist/cjs/precompiles/index.js +262 -0
  227. package/dist/cjs/precompiles/index.js.map +1 -0
  228. package/dist/cjs/precompiles/types.d.ts +13 -0
  229. package/dist/cjs/precompiles/types.d.ts.map +1 -0
  230. package/dist/cjs/precompiles/types.js +3 -0
  231. package/dist/cjs/precompiles/types.js.map +1 -0
  232. package/dist/cjs/precompiles/util.d.ts +30 -0
  233. package/dist/cjs/precompiles/util.d.ts.map +1 -0
  234. package/dist/cjs/precompiles/util.js +63 -0
  235. package/dist/cjs/precompiles/util.js.map +1 -0
  236. package/dist/cjs/stack.d.ts +55 -0
  237. package/dist/cjs/stack.d.ts.map +1 -0
  238. package/dist/cjs/stack.js +143 -0
  239. package/dist/cjs/stack.js.map +1 -0
  240. package/dist/cjs/stemCache.d.ts +20 -0
  241. package/dist/cjs/stemCache.d.ts.map +1 -0
  242. package/dist/cjs/stemCache.js +37 -0
  243. package/dist/cjs/stemCache.js.map +1 -0
  244. package/dist/cjs/transientStorage.d.ts +54 -0
  245. package/dist/cjs/transientStorage.d.ts.map +1 -0
  246. package/dist/cjs/transientStorage.js +113 -0
  247. package/dist/cjs/transientStorage.js.map +1 -0
  248. package/dist/cjs/types.d.ts +465 -0
  249. package/dist/cjs/types.d.ts.map +1 -0
  250. package/dist/cjs/types.js +28 -0
  251. package/dist/cjs/types.js.map +1 -0
  252. package/dist/esm/binaryTreeAccessWitness.d.ts +61 -0
  253. package/dist/esm/binaryTreeAccessWitness.d.ts.map +1 -0
  254. package/dist/esm/binaryTreeAccessWitness.js +308 -0
  255. package/dist/esm/binaryTreeAccessWitness.js.map +1 -0
  256. package/dist/esm/chunkCache.d.ts +13 -0
  257. package/dist/esm/chunkCache.d.ts.map +1 -0
  258. package/dist/esm/chunkCache.js +26 -0
  259. package/dist/esm/chunkCache.js.map +1 -0
  260. package/dist/esm/constructors.d.ts +11 -0
  261. package/dist/esm/constructors.d.ts.map +1 -0
  262. package/dist/esm/constructors.js +27 -0
  263. package/dist/esm/constructors.js.map +1 -0
  264. package/dist/esm/eip7708.d.ts +24 -0
  265. package/dist/esm/eip7708.d.ts.map +1 -0
  266. package/dist/esm/eip7708.js +32 -0
  267. package/dist/esm/eip7708.js.map +1 -0
  268. package/dist/esm/eof/constants.d.ts +22 -0
  269. package/dist/esm/eof/constants.d.ts.map +1 -0
  270. package/dist/esm/eof/constants.js +28 -0
  271. package/dist/esm/eof/constants.js.map +1 -0
  272. package/dist/esm/eof/container.d.ts +87 -0
  273. package/dist/esm/eof/container.d.ts.map +1 -0
  274. package/dist/esm/eof/container.js +375 -0
  275. package/dist/esm/eof/container.js.map +1 -0
  276. package/dist/esm/eof/errors.d.ts +66 -0
  277. package/dist/esm/eof/errors.d.ts.map +1 -0
  278. package/dist/esm/eof/errors.js +195 -0
  279. package/dist/esm/eof/errors.js.map +1 -0
  280. package/dist/esm/eof/setup.d.ts +9 -0
  281. package/dist/esm/eof/setup.d.ts.map +1 -0
  282. package/dist/esm/eof/setup.js +23 -0
  283. package/dist/esm/eof/setup.js.map +1 -0
  284. package/dist/esm/eof/stackDelta.d.ts +10 -0
  285. package/dist/esm/eof/stackDelta.d.ts.map +1 -0
  286. package/dist/esm/eof/stackDelta.js +161 -0
  287. package/dist/esm/eof/stackDelta.js.map +1 -0
  288. package/dist/esm/eof/util.d.ts +8 -0
  289. package/dist/esm/eof/util.d.ts.map +1 -0
  290. package/dist/esm/eof/util.js +14 -0
  291. package/dist/esm/eof/util.js.map +1 -0
  292. package/dist/esm/eof/verify.d.ts +38 -0
  293. package/dist/esm/eof/verify.d.ts.map +1 -0
  294. package/dist/esm/eof/verify.js +432 -0
  295. package/dist/esm/eof/verify.js.map +1 -0
  296. package/dist/esm/errors.d.ts +40 -0
  297. package/dist/esm/errors.d.ts.map +1 -0
  298. package/dist/esm/errors.js +39 -0
  299. package/dist/esm/errors.js.map +1 -0
  300. package/dist/esm/evm.d.ts +181 -0
  301. package/dist/esm/evm.d.ts.map +1 -0
  302. package/dist/esm/evm.js +1131 -0
  303. package/dist/esm/evm.js.map +1 -0
  304. package/dist/esm/frameContext.d.ts +50 -0
  305. package/dist/esm/frameContext.d.ts.map +1 -0
  306. package/dist/esm/frameContext.js +14 -0
  307. package/dist/esm/frameContext.js.map +1 -0
  308. package/dist/esm/index.d.ts +18 -0
  309. package/dist/esm/index.d.ts.map +1 -0
  310. package/dist/esm/index.js +15 -0
  311. package/dist/esm/index.js.map +1 -0
  312. package/dist/esm/interpreter.d.ts +361 -0
  313. package/dist/esm/interpreter.d.ts.map +1 -0
  314. package/dist/esm/interpreter.js +1054 -0
  315. package/dist/esm/interpreter.js.map +1 -0
  316. package/dist/esm/journal.d.ts +69 -0
  317. package/dist/esm/journal.d.ts.map +1 -0
  318. package/dist/esm/journal.js +243 -0
  319. package/dist/esm/journal.js.map +1 -0
  320. package/dist/esm/logger.d.ts +38 -0
  321. package/dist/esm/logger.d.ts.map +1 -0
  322. package/dist/esm/logger.js +121 -0
  323. package/dist/esm/logger.js.map +1 -0
  324. package/dist/esm/memory.d.ts +29 -0
  325. package/dist/esm/memory.d.ts.map +1 -0
  326. package/dist/esm/memory.js +71 -0
  327. package/dist/esm/memory.js.map +1 -0
  328. package/dist/esm/message.d.ts +70 -0
  329. package/dist/esm/message.d.ts.map +1 -0
  330. package/dist/esm/message.js +47 -0
  331. package/dist/esm/message.js.map +1 -0
  332. package/dist/esm/opcodes/EIP1283.d.ts +13 -0
  333. package/dist/esm/opcodes/EIP1283.d.ts.map +1 -0
  334. package/dist/esm/opcodes/EIP1283.js +55 -0
  335. package/dist/esm/opcodes/EIP1283.js.map +1 -0
  336. package/dist/esm/opcodes/EIP2200.d.ts +13 -0
  337. package/dist/esm/opcodes/EIP2200.d.ts.map +1 -0
  338. package/dist/esm/opcodes/EIP2200.js +61 -0
  339. package/dist/esm/opcodes/EIP2200.js.map +1 -0
  340. package/dist/esm/opcodes/EIP2929.d.ts +68 -0
  341. package/dist/esm/opcodes/EIP2929.d.ts.map +1 -0
  342. package/dist/esm/opcodes/EIP2929.js +138 -0
  343. package/dist/esm/opcodes/EIP2929.js.map +1 -0
  344. package/dist/esm/opcodes/codes.d.ts +45 -0
  345. package/dist/esm/opcodes/codes.d.ts.map +1 -0
  346. package/dist/esm/opcodes/codes.js +448 -0
  347. package/dist/esm/opcodes/codes.js.map +1 -0
  348. package/dist/esm/opcodes/functions.d.ts +11 -0
  349. package/dist/esm/opcodes/functions.d.ts.map +1 -0
  350. package/dist/esm/opcodes/functions.js +1775 -0
  351. package/dist/esm/opcodes/functions.js.map +1 -0
  352. package/dist/esm/opcodes/gas.d.ts +15 -0
  353. package/dist/esm/opcodes/gas.d.ts.map +1 -0
  354. package/dist/esm/opcodes/gas.js +1013 -0
  355. package/dist/esm/opcodes/gas.js.map +1 -0
  356. package/dist/esm/opcodes/index.d.ts +4 -0
  357. package/dist/esm/opcodes/index.d.ts.map +1 -0
  358. package/dist/esm/opcodes/index.js +4 -0
  359. package/dist/esm/opcodes/index.js.map +1 -0
  360. package/dist/esm/opcodes/util.d.ts +86 -0
  361. package/dist/esm/opcodes/util.d.ts.map +1 -0
  362. package/dist/esm/opcodes/util.js +257 -0
  363. package/dist/esm/opcodes/util.js.map +1 -0
  364. package/dist/esm/package.json +3 -0
  365. package/dist/esm/params.d.ts +3 -0
  366. package/dist/esm/params.d.ts.map +1 -0
  367. package/dist/esm/params.js +421 -0
  368. package/dist/esm/params.js.map +1 -0
  369. package/dist/esm/precompiles/01-ecrecover.d.ts +4 -0
  370. package/dist/esm/precompiles/01-ecrecover.d.ts.map +1 -0
  371. package/dist/esm/precompiles/01-ecrecover.js +55 -0
  372. package/dist/esm/precompiles/01-ecrecover.js.map +1 -0
  373. package/dist/esm/precompiles/02-sha256.d.ts +4 -0
  374. package/dist/esm/precompiles/02-sha256.d.ts.map +1 -0
  375. package/dist/esm/precompiles/02-sha256.js +24 -0
  376. package/dist/esm/precompiles/02-sha256.js.map +1 -0
  377. package/dist/esm/precompiles/03-ripemd160.d.ts +4 -0
  378. package/dist/esm/precompiles/03-ripemd160.d.ts.map +1 -0
  379. package/dist/esm/precompiles/03-ripemd160.js +23 -0
  380. package/dist/esm/precompiles/03-ripemd160.js.map +1 -0
  381. package/dist/esm/precompiles/04-identity.d.ts +4 -0
  382. package/dist/esm/precompiles/04-identity.d.ts.map +1 -0
  383. package/dist/esm/precompiles/04-identity.js +21 -0
  384. package/dist/esm/precompiles/04-identity.js.map +1 -0
  385. package/dist/esm/precompiles/05-modexp.d.ts +5 -0
  386. package/dist/esm/precompiles/05-modexp.d.ts.map +1 -0
  387. package/dist/esm/precompiles/05-modexp.js +181 -0
  388. package/dist/esm/precompiles/05-modexp.js.map +1 -0
  389. package/dist/esm/precompiles/06-bn254-add.d.ts +4 -0
  390. package/dist/esm/precompiles/06-bn254-add.d.ts.map +1 -0
  391. package/dist/esm/precompiles/06-bn254-add.js +39 -0
  392. package/dist/esm/precompiles/06-bn254-add.js.map +1 -0
  393. package/dist/esm/precompiles/07-bn254-mul.d.ts +4 -0
  394. package/dist/esm/precompiles/07-bn254-mul.d.ts.map +1 -0
  395. package/dist/esm/precompiles/07-bn254-mul.js +40 -0
  396. package/dist/esm/precompiles/07-bn254-mul.js.map +1 -0
  397. package/dist/esm/precompiles/08-bn254-pairing.d.ts +4 -0
  398. package/dist/esm/precompiles/08-bn254-pairing.d.ts.map +1 -0
  399. package/dist/esm/precompiles/08-bn254-pairing.js +42 -0
  400. package/dist/esm/precompiles/08-bn254-pairing.js.map +1 -0
  401. package/dist/esm/precompiles/09-blake2f.d.ts +5 -0
  402. package/dist/esm/precompiles/09-blake2f.d.ts.map +1 -0
  403. package/dist/esm/precompiles/09-blake2f.js +197 -0
  404. package/dist/esm/precompiles/09-blake2f.js.map +1 -0
  405. package/dist/esm/precompiles/0a-kzg-point-evaluation.d.ts +5 -0
  406. package/dist/esm/precompiles/0a-kzg-point-evaluation.d.ts.map +1 -0
  407. package/dist/esm/precompiles/0a-kzg-point-evaluation.js +64 -0
  408. package/dist/esm/precompiles/0a-kzg-point-evaluation.js.map +1 -0
  409. package/dist/esm/precompiles/0b-bls12-g1add.d.ts +4 -0
  410. package/dist/esm/precompiles/0b-bls12-g1add.d.ts.map +1 -0
  411. package/dist/esm/precompiles/0b-bls12-g1add.js +46 -0
  412. package/dist/esm/precompiles/0b-bls12-g1add.js.map +1 -0
  413. package/dist/esm/precompiles/0c-bls12-g1msm.d.ts +4 -0
  414. package/dist/esm/precompiles/0c-bls12-g1msm.d.ts.map +1 -0
  415. package/dist/esm/precompiles/0c-bls12-g1msm.js +59 -0
  416. package/dist/esm/precompiles/0c-bls12-g1msm.js.map +1 -0
  417. package/dist/esm/precompiles/0d-bls12-g2add.d.ts +4 -0
  418. package/dist/esm/precompiles/0d-bls12-g2add.d.ts.map +1 -0
  419. package/dist/esm/precompiles/0d-bls12-g2add.js +48 -0
  420. package/dist/esm/precompiles/0d-bls12-g2add.js.map +1 -0
  421. package/dist/esm/precompiles/0e-bls12-g2msm.d.ts +4 -0
  422. package/dist/esm/precompiles/0e-bls12-g2msm.d.ts.map +1 -0
  423. package/dist/esm/precompiles/0e-bls12-g2msm.js +57 -0
  424. package/dist/esm/precompiles/0e-bls12-g2msm.js.map +1 -0
  425. package/dist/esm/precompiles/0f-bls12-pairing.d.ts +4 -0
  426. package/dist/esm/precompiles/0f-bls12-pairing.d.ts.map +1 -0
  427. package/dist/esm/precompiles/0f-bls12-pairing.js +63 -0
  428. package/dist/esm/precompiles/0f-bls12-pairing.js.map +1 -0
  429. package/dist/esm/precompiles/10-bls12-map-fp-to-g1.d.ts +4 -0
  430. package/dist/esm/precompiles/10-bls12-map-fp-to-g1.d.ts.map +1 -0
  431. package/dist/esm/precompiles/10-bls12-map-fp-to-g1.js +41 -0
  432. package/dist/esm/precompiles/10-bls12-map-fp-to-g1.js.map +1 -0
  433. package/dist/esm/precompiles/100-p256verify.d.ts +4 -0
  434. package/dist/esm/precompiles/100-p256verify.d.ts.map +1 -0
  435. package/dist/esm/precompiles/100-p256verify.js +128 -0
  436. package/dist/esm/precompiles/100-p256verify.js.map +1 -0
  437. package/dist/esm/precompiles/11-bls12-map-fp2-to-g2.d.ts +4 -0
  438. package/dist/esm/precompiles/11-bls12-map-fp2-to-g2.d.ts.map +1 -0
  439. package/dist/esm/precompiles/11-bls12-map-fp2-to-g2.js +44 -0
  440. package/dist/esm/precompiles/11-bls12-map-fp2-to-g2.js.map +1 -0
  441. package/dist/esm/precompiles/bls12_381/constants.d.ts +10 -0
  442. package/dist/esm/precompiles/bls12_381/constants.d.ts.map +1 -0
  443. package/dist/esm/precompiles/bls12_381/constants.js +271 -0
  444. package/dist/esm/precompiles/bls12_381/constants.js.map +1 -0
  445. package/dist/esm/precompiles/bls12_381/index.d.ts +5 -0
  446. package/dist/esm/precompiles/bls12_381/index.d.ts.map +1 -0
  447. package/dist/esm/precompiles/bls12_381/index.js +5 -0
  448. package/dist/esm/precompiles/bls12_381/index.js.map +1 -0
  449. package/dist/esm/precompiles/bls12_381/mcl.d.ts +45 -0
  450. package/dist/esm/precompiles/bls12_381/mcl.d.ts.map +1 -0
  451. package/dist/esm/precompiles/bls12_381/mcl.js +254 -0
  452. package/dist/esm/precompiles/bls12_381/mcl.js.map +1 -0
  453. package/dist/esm/precompiles/bls12_381/noble.d.ts +39 -0
  454. package/dist/esm/precompiles/bls12_381/noble.d.ts.map +1 -0
  455. package/dist/esm/precompiles/bls12_381/noble.js +218 -0
  456. package/dist/esm/precompiles/bls12_381/noble.js.map +1 -0
  457. package/dist/esm/precompiles/bls12_381/util.d.ts +35 -0
  458. package/dist/esm/precompiles/bls12_381/util.d.ts.map +1 -0
  459. package/dist/esm/precompiles/bls12_381/util.js +63 -0
  460. package/dist/esm/precompiles/bls12_381/util.js.map +1 -0
  461. package/dist/esm/precompiles/bn254/index.d.ts +3 -0
  462. package/dist/esm/precompiles/bn254/index.d.ts.map +1 -0
  463. package/dist/esm/precompiles/bn254/index.js +3 -0
  464. package/dist/esm/precompiles/bn254/index.js.map +1 -0
  465. package/dist/esm/precompiles/bn254/noble.d.ts +13 -0
  466. package/dist/esm/precompiles/bn254/noble.d.ts.map +1 -0
  467. package/dist/esm/precompiles/bn254/noble.js +120 -0
  468. package/dist/esm/precompiles/bn254/noble.js.map +1 -0
  469. package/dist/esm/precompiles/bn254/rustbn.d.ts +16 -0
  470. package/dist/esm/precompiles/bn254/rustbn.d.ts.map +1 -0
  471. package/dist/esm/precompiles/bn254/rustbn.js +29 -0
  472. package/dist/esm/precompiles/bn254/rustbn.js.map +1 -0
  473. package/dist/esm/precompiles/index.d.ts +67 -0
  474. package/dist/esm/precompiles/index.d.ts.map +1 -0
  475. package/dist/esm/precompiles/index.js +251 -0
  476. package/dist/esm/precompiles/index.js.map +1 -0
  477. package/dist/esm/precompiles/types.d.ts +13 -0
  478. package/dist/esm/precompiles/types.d.ts.map +1 -0
  479. package/dist/esm/precompiles/types.js +2 -0
  480. package/dist/esm/precompiles/types.js.map +1 -0
  481. package/dist/esm/precompiles/util.d.ts +30 -0
  482. package/dist/esm/precompiles/util.d.ts.map +1 -0
  483. package/dist/esm/precompiles/util.js +57 -0
  484. package/dist/esm/precompiles/util.js.map +1 -0
  485. package/dist/esm/stack.d.ts +55 -0
  486. package/dist/esm/stack.d.ts.map +1 -0
  487. package/dist/esm/stack.js +139 -0
  488. package/dist/esm/stack.js.map +1 -0
  489. package/dist/esm/stemCache.d.ts +20 -0
  490. package/dist/esm/stemCache.d.ts.map +1 -0
  491. package/dist/esm/stemCache.js +33 -0
  492. package/dist/esm/stemCache.js.map +1 -0
  493. package/dist/esm/transientStorage.d.ts +54 -0
  494. package/dist/esm/transientStorage.d.ts.map +1 -0
  495. package/dist/esm/transientStorage.js +109 -0
  496. package/dist/esm/transientStorage.js.map +1 -0
  497. package/dist/esm/types.d.ts +465 -0
  498. package/dist/esm/types.d.ts.map +1 -0
  499. package/dist/esm/types.js +23 -0
  500. package/dist/esm/types.js.map +1 -0
  501. package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -0
  502. package/dist/tsconfig.prod.esm.tsbuildinfo +1 -0
  503. package/package.json +98 -0
  504. package/src/binaryTreeAccessWitness.ts +447 -0
  505. package/src/chunkCache.ts +36 -0
  506. package/src/constructors.ts +35 -0
  507. package/src/eip7708.ts +47 -0
  508. package/src/eof/constants.ts +36 -0
  509. package/src/eof/container.ts +495 -0
  510. package/src/eof/errors.ts +214 -0
  511. package/src/eof/setup.ts +27 -0
  512. package/src/eof/stackDelta.ts +169 -0
  513. package/src/eof/util.ts +16 -0
  514. package/src/eof/verify.ts +531 -0
  515. package/src/errors.ts +45 -0
  516. package/src/evm.ts +1415 -0
  517. package/src/frameContext.ts +56 -0
  518. package/src/index.ts +75 -0
  519. package/src/interpreter.ts +1437 -0
  520. package/src/journal.ts +317 -0
  521. package/src/logger.ts +180 -0
  522. package/src/memory.ts +82 -0
  523. package/src/message.ts +114 -0
  524. package/src/opcodes/EIP1283.ts +77 -0
  525. package/src/opcodes/EIP2200.ts +87 -0
  526. package/src/opcodes/EIP2929.ts +173 -0
  527. package/src/opcodes/codes.ts +528 -0
  528. package/src/opcodes/functions.ts +1937 -0
  529. package/src/opcodes/gas.ts +1329 -0
  530. package/src/opcodes/index.ts +3 -0
  531. package/src/opcodes/util.ts +313 -0
  532. package/src/params.ts +423 -0
  533. package/src/precompiles/01-ecrecover.ts +77 -0
  534. package/src/precompiles/02-sha256.ts +32 -0
  535. package/src/precompiles/03-ripemd160.ts +32 -0
  536. package/src/precompiles/04-identity.ts +29 -0
  537. package/src/precompiles/05-modexp.ts +215 -0
  538. package/src/precompiles/06-bn254-add.ts +49 -0
  539. package/src/precompiles/07-bn254-mul.ts +50 -0
  540. package/src/precompiles/08-bn254-pairing.ts +54 -0
  541. package/src/precompiles/09-blake2f.ts +243 -0
  542. package/src/precompiles/0a-kzg-point-evaluation.ts +94 -0
  543. package/src/precompiles/0b-bls12-g1add.ts +63 -0
  544. package/src/precompiles/0c-bls12-g1msm.ts +87 -0
  545. package/src/precompiles/0d-bls12-g2add.ts +66 -0
  546. package/src/precompiles/0e-bls12-g2msm.ts +84 -0
  547. package/src/precompiles/0f-bls12-pairing.ts +86 -0
  548. package/src/precompiles/10-bls12-map-fp-to-g1.ts +58 -0
  549. package/src/precompiles/100-p256verify.ts +152 -0
  550. package/src/precompiles/11-bls12-map-fp2-to-g2.ts +61 -0
  551. package/src/precompiles/bls12_381/constants.ts +278 -0
  552. package/src/precompiles/bls12_381/index.ts +4 -0
  553. package/src/precompiles/bls12_381/mcl.ts +376 -0
  554. package/src/precompiles/bls12_381/noble.ts +307 -0
  555. package/src/precompiles/bls12_381/util.ts +78 -0
  556. package/src/precompiles/bn254/index.ts +2 -0
  557. package/src/precompiles/bn254/noble.ts +156 -0
  558. package/src/precompiles/bn254/rustbn.ts +35 -0
  559. package/src/precompiles/index.ts +344 -0
  560. package/src/precompiles/types.ts +15 -0
  561. package/src/precompiles/util.ts +70 -0
  562. package/src/stack.ts +166 -0
  563. package/src/stemCache.ts +45 -0
  564. package/src/transientStorage.ts +131 -0
  565. package/src/types.ts +538 -0
@@ -0,0 +1,465 @@
1
+ import type { BinaryTreeAccessWitnessInterface, Common, ParamsDict, StateManagerInterface } from '@feelyourprotocol/common';
2
+ import type { Account, Address, BlockLevelAccessList, PrefixedHexString } from '@feelyourprotocol/util';
3
+ import type { EventEmitter } from 'eventemitter3';
4
+ import type { BinaryTreeAccessWitness } from './binaryTreeAccessWitness.ts';
5
+ import type { EOFContainer } from './eof/container.ts';
6
+ import type { EVMError } from './errors.ts';
7
+ import type { FrameExecutionContext } from './frameContext.ts';
8
+ import type { InterpreterStep, RunState } from './interpreter.ts';
9
+ import type { Message } from './message.ts';
10
+ import type { AsyncDynamicGasHandler, SyncDynamicGasHandler } from './opcodes/gas.ts';
11
+ import type { OpHandler } from './opcodes/index.ts';
12
+ import type { CustomPrecompile } from './precompiles/index.ts';
13
+ import type { PrecompileFunc } from './precompiles/types.ts';
14
+ export type DeleteOpcode = {
15
+ opcode: number;
16
+ };
17
+ export type AddOpcode = {
18
+ opcode: number;
19
+ opcodeName: string;
20
+ baseFee: number;
21
+ gasFunction?: AsyncDynamicGasHandler | SyncDynamicGasHandler;
22
+ logicFunction: OpHandler;
23
+ };
24
+ export type SelfdestructMap = Map<PrefixedHexString, PrefixedHexString>;
25
+ export type CustomOpcode = AddOpcode | DeleteOpcode;
26
+ export declare function isAddOpcode(customOpcode: CustomOpcode): customOpcode is AddOpcode;
27
+ /**
28
+ * Base options for the `EVM.runCode()` / `EVM.runCall()` method.
29
+ */
30
+ interface EVMRunOpts {
31
+ /**
32
+ * The `block` the `tx` belongs to. If omitted a default blank block will be used.
33
+ */
34
+ block?: Block;
35
+ /**
36
+ * The gas price for the call. Defaults to `0`
37
+ */
38
+ gasPrice?: bigint;
39
+ /**
40
+ * The address where the call originated from. Defaults to the zero address.
41
+ */
42
+ origin?: Address;
43
+ /**
44
+ * The address that ran this code (`msg.sender`). Defaults to the zero address.
45
+ */
46
+ caller?: Address;
47
+ /**
48
+ * The EVM code to run.
49
+ */
50
+ code?: Uint8Array;
51
+ /**
52
+ * The input data.
53
+ */
54
+ data?: Uint8Array;
55
+ /**
56
+ * The gas limit for the call. Defaults to `16777215` (`0xffffff`)
57
+ */
58
+ gasLimit?: bigint;
59
+ /**
60
+ * The value in ether that is being sent to `opts.address`. Defaults to `0`
61
+ */
62
+ value?: bigint;
63
+ /**
64
+ * The call depth. Defaults to `0`
65
+ */
66
+ depth?: number;
67
+ /**
68
+ * If the call should be executed statically. Defaults to false.
69
+ */
70
+ isStatic?: boolean;
71
+ /**
72
+ * Selfdestructed addresses mapped to their beneficiary. Defaults to the empty map.
73
+ */
74
+ selfdestruct?: SelfdestructMap;
75
+ /**
76
+ * The address of the account that is executing this code (`address(this)`). Defaults to the zero address.
77
+ */
78
+ to?: Address;
79
+ /**
80
+ * Versioned hashes for each blob in a blob transaction
81
+ */
82
+ blobVersionedHashes?: PrefixedHexString[];
83
+ }
84
+ export interface EVMRunCodeOpts extends EVMRunOpts {
85
+ pc?: number;
86
+ }
87
+ /**
88
+ * Options for running a call (or create) operation with `EVM.runCall()`
89
+ */
90
+ export interface EVMRunCallOpts extends EVMRunOpts {
91
+ /**
92
+ * If the code location is a precompile.
93
+ */
94
+ isCompiled?: boolean;
95
+ /**
96
+ * An optional salt to pass to CREATE2.
97
+ */
98
+ salt?: Uint8Array;
99
+ /**
100
+ * Created addresses in current context. Used in EIP 6780
101
+ */
102
+ createdAddresses?: Set<PrefixedHexString>;
103
+ /**
104
+ * Skip balance checks if true. If caller balance is less than message value,
105
+ * sets balance to message value to ensure execution doesn't fail.
106
+ */
107
+ skipBalance?: boolean;
108
+ /**
109
+ * If the call is a DELEGATECALL. Defaults to false.
110
+ */
111
+ delegatecall?: boolean;
112
+ /**
113
+ * Refund counter. Defaults to `0`
114
+ */
115
+ gasRefund?: bigint;
116
+ /**
117
+ * Optionally pass in an already-built message.
118
+ */
119
+ message?: Message;
120
+ accessWitness?: BinaryTreeAccessWitnessInterface;
121
+ }
122
+ interface NewContractEvent {
123
+ address: Address;
124
+ code: Uint8Array;
125
+ }
126
+ export type EVMEvent = {
127
+ newContract: (data: NewContractEvent, resolve?: (result?: any) => void) => void;
128
+ beforeMessage: (data: Message, resolve?: (result?: any) => void) => void;
129
+ afterMessage: (data: EVMResult, resolve?: (result?: any) => void) => void;
130
+ step: (data: InterpreterStep, resolve?: (result?: any) => void) => void;
131
+ };
132
+ export interface EVMInterface {
133
+ common: Common;
134
+ journal: {
135
+ commit(): Promise<void>;
136
+ revert(): Promise<void>;
137
+ checkpoint(): Promise<void>;
138
+ cleanJournal(): void;
139
+ cleanup(): Promise<void>;
140
+ putAccount(address: Address, account: Account): Promise<void>;
141
+ deleteAccount(address: Address): Promise<void>;
142
+ accessList?: Map<string, Set<string>>;
143
+ preimages?: Map<PrefixedHexString, Uint8Array>;
144
+ addAlwaysWarmAddress(address: string, addToAccessList?: boolean): void;
145
+ addAlwaysWarmSlot(address: string, slot: string, addToAccessList?: boolean): void;
146
+ startReportingAccessList(): void;
147
+ startReportingPreimages?(): void;
148
+ };
149
+ stateManager: StateManagerInterface;
150
+ precompiles: Map<string, PrecompileFunc>;
151
+ getPrecompile?(address: Address | PrefixedHexString): PrecompileFunc | undefined;
152
+ runCall(opts: EVMRunCallOpts): Promise<EVMResult>;
153
+ runCode(opts: EVMRunCodeOpts): Promise<ExecResult>;
154
+ events?: EventEmitter<EVMEvent>;
155
+ binaryTreeAccessWitness?: BinaryTreeAccessWitness;
156
+ systemBinaryTreeAccessWitness?: BinaryTreeAccessWitness;
157
+ blockLevelAccessList?: BlockLevelAccessList;
158
+ frameExecutionContext?: FrameExecutionContext;
159
+ }
160
+ export type EVMProfilerOpts = {
161
+ enabled: boolean;
162
+ };
163
+ /**
164
+ * Options for instantiating a {@link EVM}.
165
+ */
166
+ export interface EVMOpts {
167
+ /**
168
+ * Use a {@link Common} instance for EVM instantiation.
169
+ *
170
+ * ### Supported EIPs
171
+ *
172
+ * - [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) - Transient storage opcodes (Cancun)
173
+ * - [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) - Fee market change for ETH 1.0 chain
174
+ * - [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - Precompile for BLS12-381 curve operations (Prague)
175
+ * - [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565) - ModExp gas cost
176
+ * - [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) - Typed Transaction Envelope
177
+ * - [EIP-2935](https://eips.ethereum.org/EIPS/eip-2935) - Serve historical block hashes from state (Prague)
178
+ * - [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) - gas cost increases for state access opcodes
179
+ * - [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) - Optional access list tx type
180
+ * - [EIP-3074](https://eips.ethereum.org/EIPS/eip-3074) - AUTH and AUTHCALL opcodes
181
+ * - [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) - Base fee Opcode
182
+ * - [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) - Reduction in refunds
183
+ * - [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) - Reject new contracts starting with the 0xEF byte
184
+ * - [EIP-3554](https://eips.ethereum.org/EIPS/eip-3554) - Difficulty Bomb Delay to December 2021 (only PoW networks)
185
+ * - [EIP-3607](https://eips.ethereum.org/EIPS/eip-3607) - Reject transactions from senders with deployed code
186
+ * - [EIP-3651](https://eips.ethereum.org/EIPS/eip-3651) - Warm COINBASE (Shanghai)
187
+ * - [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675) - Upgrade consensus to Proof-of-Stake
188
+ * - [EIP-3855](https://eips.ethereum.org/EIPS/eip-3855) - Push0 opcode (Shanghai)
189
+ * - [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860) - Limit and meter initcode (Shanghai)
190
+ * - [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345) - Difficulty Bomb Delay to June 2022
191
+ * - [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399) - Supplant DIFFICULTY opcode with PREVRANDAO (Merge)
192
+ * - [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788) - Beacon block root in the EVM (Cancun)
193
+ * - [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) - Shard Blob Transactions (Cancun)
194
+ * - [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) - Beacon chain push withdrawals as operations (Shanghai)
195
+ * - [EIP-5133](https://eips.ethereum.org/EIPS/eip-5133) - Delaying Difficulty Bomb to mid-September 2022 (Gray Glacier)
196
+ * - [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) - MCOPY - Memory copying instruction (Cancun)
197
+ * - [EIP-6110](https://eips.ethereum.org/EIPS/eip-6110) - Supply validator deposits on chain (Prague)
198
+ * - [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) - SELFDESTRUCT only in same transaction (Cancun)
199
+ * - [EIP-7002](https://eips.ethereum.org/EIPS/eip-7002) - Execution layer triggerable exits (Prague)
200
+ * - [EIP-7251](https://eips.ethereum.org/EIPS/eip-7251) - Increase the MAX_EFFECTIVE_BALANCE (Prague)
201
+ * - [EIP-7516](https://eips.ethereum.org/EIPS/eip-7516) - BLOBBASEFEE opcode (Cancun)
202
+ * - [EIP-7623](https://eips.ethereum.org/EIPS/eip-7623) - Increase calldata cost (Prague)
203
+ * - [EIP-7685](https://eips.ethereum.org/EIPS/eip-7685) - General purpose execution layer requests (Prague)
204
+ * - [EIP-7691](https://eips.ethereum.org/EIPS/eip-7691) - Blob throughput increase (Prague)
205
+ * - [EIP-7692](https://eips.ethereum.org/EIPS/eip-7692) - EVM Object Format (EOF) v1 (`experimental`)
206
+ * - [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) - Set EOA account code (Prague)
207
+ * - [EIP-7709](https://eips.ethereum.org/EIPS/eip-7709) - Read BLOCKHASH from storage and update cost (Verkle)
208
+ * - [EIP-7934](https://eips.ethereum.org/EIPS/eip-7934) - RLP Execution Block Size Limit
209
+ *
210
+ * *Annotations:*
211
+ *
212
+ * - `experimental`: behaviour can change on patch versions
213
+ */
214
+ common?: Common;
215
+ /**
216
+ * Allows unlimited contract sizes while debugging. By setting this to `true`, the check for
217
+ * contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed.
218
+ *
219
+ * Default: `false` [ONLY set to `true` during debugging]
220
+ */
221
+ allowUnlimitedContractSize?: boolean;
222
+ /**
223
+ * Allows unlimited contract code-size init while debugging. This (partially) disables EIP-3860.
224
+ * Gas cost for initcode size analysis will still be charged. Use with caution.
225
+ */
226
+ allowUnlimitedInitCodeSize?: boolean;
227
+ /**
228
+ * EVM parameters sorted by EIP can be found in the exported `paramsEVM` dictionary,
229
+ * which is internally passed to the associated `@feelyourprotocol/common` instance which
230
+ * manages parameter selection based on the hardfork and EIP settings.
231
+ *
232
+ * This option allows providing a custom set of parameters. Note that parameters
233
+ * get fully overwritten, so you need to extend the default parameter dict
234
+ * to provide the full parameter set.
235
+ *
236
+ * It is recommended to deep-clone the params object for this to avoid side effects:
237
+ *
238
+ * ```ts
239
+ * const params = JSON.parse(JSON.stringify(paramsEVM))
240
+ * params['1679']['bn254AddGas'] = 100 // 150
241
+ * ```
242
+ */
243
+ params?: ParamsDict;
244
+ /**
245
+ * Override or add custom opcodes to the EVM instruction set
246
+ * These custom opcodes are EIP-agnostic and are always statically added
247
+ * To delete an opcode, add an entry of format `{opcode: number}`. This will delete that opcode from the EVM.
248
+ * If this opcode is then used in the EVM, the `INVALID` opcode would instead be used.
249
+ * To add an opcode, add an entry of the following format:
250
+ * {
251
+ * // The opcode number which will invoke the custom opcode logic
252
+ * opcode: number
253
+ * // The name of the opcode (as seen in the `step` event)
254
+ * opcodeName: string
255
+ * // The base fee of the opcode
256
+ * baseFee: number
257
+ * // If the opcode charges dynamic gas, add this here. To charge the gas, use the `i` methods of the BN, to update the charged gas
258
+ * gasFunction?: function(runState: RunState, gas: BN, common: Common)
259
+ * // The logic of the opcode which holds the logic of changing the current state
260
+ * logicFunction: function(runState: RunState)
261
+ * }
262
+ * Note: gasFunction and logicFunction can both be async or synchronous functions
263
+ */
264
+ customOpcodes?: CustomOpcode[];
265
+ customPrecompiles?: CustomPrecompile[];
266
+ /**
267
+ * For the EIP-2537 BLS Precompiles, the native JS `ethereum-cryptography` (`@noble/curves`)
268
+ * https://github.com/ethereum/js-ethereum-cryptography BLS12-381 curve implementation
269
+ * is used (see `noble.ts` file in the `precompiles/bls12_381/` folder).
270
+ *
271
+ * To use an alternative implementation this option can be used by passing
272
+ * in a wrapper implementation integrating the desired library and adhering
273
+ * to the `EVMBLSInterface` specification.
274
+ *
275
+ * An interface for the MCL WASM implementation https://github.com/herumi/mcl-wasm
276
+ * is shipped with this library which can be used as follows (with `mcl-wasm` being
277
+ * explicitly added to the set of dependencies):
278
+ *
279
+ * ```ts
280
+ * import * as mcl from 'mcl-wasm'
281
+ *
282
+ * await mcl.init(mcl.BLS12_381)
283
+ * const evm = await createEVM({ bls: new MCLBLS(mcl) })
284
+ * ```
285
+ */
286
+ bls?: EVMBLSInterface;
287
+ /**
288
+ * For the EIP-196/EIP-197 BN254 (alt_BN128) EC precompiles, the native JS `ethereum-cryptography`
289
+ * (`@noble/curves`) https://github.com/ethereum/js-ethereum-cryptography BN254 curve implementation
290
+ * is used (see `noble.ts` file in the `precompiles/bn254/` folder).
291
+ *
292
+ * To use an alternative implementation this option can be used by passing
293
+ * in a wrapper implementation integrating the desired library and adhering
294
+ * to the `EVMBN254Interface` specification.
295
+ *
296
+ * An interface for a WASM wrapper https://github.com/ethereumjs/rustbn.js around the
297
+ * Parity fork of the Zcash bn pairing cryptography library is shipped with this library
298
+ * which can be used as follows (with `rustbn.js` being explicitly added to the set of
299
+ * dependencies):
300
+ *
301
+ * ```ts
302
+ * import { initRustBN } from 'rustbn-wasm'
303
+ *
304
+ * const bn254 = await initRustBN()
305
+ * const evm = await createEVM({ bn254: new RustBN254(bn254) })
306
+ * ```
307
+ */
308
+ bn254?: EVMBN254Interface;
309
+ stateManager?: StateManagerInterface;
310
+ /**
311
+ * The EVM comes with a basic mock blockchain interface and implementation for
312
+ * non-block containing use cases.
313
+ *
314
+ * For block-containing setups use the full blockchain implementation from the
315
+ * `@feelyourprotocol/blockchain package.
316
+ */
317
+ blockchain?: EVMMockBlockchainInterface;
318
+ /**
319
+ *
320
+ */
321
+ profiler?: EVMProfilerOpts;
322
+ /**
323
+ * If EIP-7928 is activated, a block-level access list can be provided here.
324
+ * If not provided, a new one will be created if EIP-7928 is activated
325
+ */
326
+ blockLevelAccessList?: BlockLevelAccessList;
327
+ /**
328
+ * When running the EVM with PoA consensus, the `cliqueSigner` function from the `@feelyourprotocol/block` class
329
+ * must be provided along with a `BlockHeader` so that the coinbase can be correctly retrieved when the
330
+ * `Interpreter.getBlockCoinbase` method is called.
331
+ */
332
+ cliqueSigner?: (header: Block['header']) => Address;
333
+ }
334
+ /**
335
+ * Result of executing a message via the {@link EVM}.
336
+ */
337
+ export interface EVMResult {
338
+ /**
339
+ * Address of created account during transaction, if any
340
+ */
341
+ createdAddress?: Address;
342
+ /**
343
+ * Contains the results from running the code, if any, as described in {@link runCode}
344
+ */
345
+ execResult: ExecResult;
346
+ }
347
+ /**
348
+ * Result of executing a call via the {@link EVM}.
349
+ */
350
+ export interface ExecResult {
351
+ runState?: RunState;
352
+ /**
353
+ * Description of the exception, if any occurred
354
+ */
355
+ exceptionError?: EVMError;
356
+ /**
357
+ * Amount of gas left
358
+ */
359
+ gas?: bigint;
360
+ /**
361
+ * Amount of gas the code used to run
362
+ */
363
+ executionGasUsed: bigint;
364
+ /**
365
+ * Return value from the contract
366
+ */
367
+ returnValue: Uint8Array;
368
+ /**
369
+ * Array of logs that the contract emitted
370
+ */
371
+ logs?: Log[];
372
+ /**
373
+ * Selfdestructed accounts mapped to their beneficiary
374
+ */
375
+ selfdestruct?: SelfdestructMap;
376
+ /**
377
+ * Map of addresses which were created (used in EIP 6780)
378
+ */
379
+ createdAddresses?: Set<PrefixedHexString>;
380
+ /**
381
+ * The gas refund counter
382
+ */
383
+ gasRefund?: bigint;
384
+ /**
385
+ * Amount of blob gas consumed by the transaction
386
+ */
387
+ blobGasUsed?: bigint;
388
+ }
389
+ /**
390
+ * High level wrapper for BLS libraries used
391
+ * for the BLS precompiles
392
+ */
393
+ export type EVMBLSInterface = {
394
+ init?(): void;
395
+ addG1(input: Uint8Array): Uint8Array;
396
+ addG2(input: Uint8Array): Uint8Array;
397
+ mapFPtoG1(input: Uint8Array): Uint8Array;
398
+ mapFP2toG2(input: Uint8Array): Uint8Array;
399
+ msmG1(input: Uint8Array): Uint8Array;
400
+ msmG2(input: Uint8Array): Uint8Array;
401
+ pairingCheck(input: Uint8Array): Uint8Array;
402
+ };
403
+ /**
404
+ * High level wrapper for BN254 (alt_BN128) libraries
405
+ * used for the BN254 (alt_BN128) EC precompiles
406
+ */
407
+ export type EVMBN254Interface = {
408
+ add: (input: Uint8Array) => Uint8Array;
409
+ mul: (input: Uint8Array) => Uint8Array;
410
+ pairing: (input: Uint8Array) => Uint8Array;
411
+ };
412
+ /**
413
+ * Log that the contract emits.
414
+ */
415
+ export type Log = [address: Uint8Array, topics: Uint8Array[], data: Uint8Array];
416
+ export type Block = {
417
+ header: {
418
+ number: bigint;
419
+ coinbase: Address;
420
+ timestamp: bigint;
421
+ difficulty: bigint;
422
+ prevRandao: Uint8Array;
423
+ gasLimit: bigint;
424
+ baseFeePerGas?: bigint;
425
+ slotNumber?: bigint;
426
+ getBlobGasPrice(): bigint | undefined;
427
+ };
428
+ };
429
+ export interface TransientStorageInterface {
430
+ get(addr: Address, key: Uint8Array): Uint8Array;
431
+ put(addr: Address, key: Uint8Array, value: Uint8Array): void;
432
+ commit(): void;
433
+ checkpoint(): void;
434
+ revert(): void;
435
+ toJSON(): {
436
+ [address: string]: {
437
+ [key: string]: string;
438
+ };
439
+ };
440
+ clear(): void;
441
+ }
442
+ export type EVMMockBlock = {
443
+ hash(): Uint8Array;
444
+ };
445
+ export interface EVMMockBlockchainInterface {
446
+ getBlock(blockId: number): Promise<EVMMockBlock>;
447
+ putBlock(block: EVMMockBlock): Promise<void>;
448
+ shallowCopy(): EVMMockBlockchainInterface;
449
+ }
450
+ export declare class EVMMockBlockchain implements EVMMockBlockchainInterface {
451
+ getBlock(): Promise<{
452
+ hash(): Uint8Array<ArrayBuffer>;
453
+ }>;
454
+ putBlock(): Promise<void>;
455
+ shallowCopy(): this;
456
+ }
457
+ export type EOFEnv = {
458
+ container: EOFContainer;
459
+ eofRunState: {
460
+ returnStack: number[];
461
+ };
462
+ };
463
+ export declare const DELEGATION_7702_FLAG: Uint8Array<ArrayBuffer>;
464
+ export {};
465
+ //# 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,23 @@
1
+ // Typeguard
2
+ export function isAddOpcode(customOpcode) {
3
+ return ('opcode' in customOpcode &&
4
+ 'opcodeName' in customOpcode &&
5
+ 'baseFee' in customOpcode &&
6
+ 'logicFunction' in customOpcode);
7
+ }
8
+ export class EVMMockBlockchain {
9
+ async getBlock() {
10
+ return {
11
+ hash() {
12
+ return new Uint8Array(32);
13
+ },
14
+ };
15
+ }
16
+ async putBlock() { }
17
+ shallowCopy() {
18
+ return this;
19
+ }
20
+ }
21
+ // EIP-7702 flag: if contract code starts with these 3 bytes, it is a 7702-delegated EOA
22
+ export const DELEGATION_7702_FLAG = new Uint8Array([0xef, 0x01, 0x00]);
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAmCA,YAAY;AACZ,MAAM,UAAU,WAAW,CAAC,YAA0B;IACpD,OAAO,CACL,QAAQ,IAAI,YAAY;QACxB,YAAY,IAAI,YAAY;QAC5B,SAAS,IAAI,YAAY;QACzB,eAAe,IAAI,YAAY,CAChC,CAAA;AACH,CAAC;AAudD,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAC,QAAQ;QACZ,OAAO;YACL,IAAI;gBACF,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;YAC3B,CAAC;SACF,CAAA;IACH,CAAC;IACD,KAAK,CAAC,QAAQ,KAAI,CAAC;IACnB,WAAW;QACT,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAUD,wFAAwF;AACxF,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA"}