@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,448 @@
1
+ import { Hardfork } from '@feelyourprotocol/common';
2
+ import { EthereumJSErrorWithoutCode } from '@feelyourprotocol/util';
3
+ import { handlers } from "./functions.js";
4
+ import { dynamicGasHandlers } from "./gas.js";
5
+ import { getFullname } from "./util.js";
6
+ import { isAddOpcode } from "../types.js";
7
+ export class Opcode {
8
+ constructor({ code, name, fullName, fee, isAsync, dynamicGas, }) {
9
+ this.code = code;
10
+ this.name = name;
11
+ this.fullName = fullName;
12
+ this.fee = fee;
13
+ this.feeBigInt = BigInt(fee);
14
+ this.isAsync = isAsync;
15
+ this.dynamicGas = dynamicGas;
16
+ this.isInvalid = this.name === 'INVALID';
17
+ // Opcode isn't subject to change, thus all further modifications are prevented.
18
+ Object.freeze(this);
19
+ }
20
+ }
21
+ // Default: sync and no dynamic gas
22
+ const defaultOp = (name) => {
23
+ return { name, isAsync: false, dynamicGas: false };
24
+ };
25
+ const dynamicGasOp = (name) => {
26
+ return { name, isAsync: false, dynamicGas: true };
27
+ };
28
+ const asyncOp = (name) => {
29
+ return { name, isAsync: true, dynamicGas: false };
30
+ };
31
+ const asyncAndDynamicGasOp = (name) => {
32
+ return { name, isAsync: true, dynamicGas: true };
33
+ };
34
+ // Base opcode list. The opcode list is extended in future hardforks
35
+ const opcodes = {
36
+ // 0x0 range - arithmetic ops
37
+ // name, async
38
+ 0x00: defaultOp('STOP'),
39
+ 0x01: defaultOp('ADD'),
40
+ 0x02: defaultOp('MUL'),
41
+ 0x03: defaultOp('SUB'),
42
+ 0x04: defaultOp('DIV'),
43
+ 0x05: defaultOp('SDIV'),
44
+ 0x06: defaultOp('MOD'),
45
+ 0x07: defaultOp('SMOD'),
46
+ 0x08: defaultOp('ADDMOD'),
47
+ 0x09: defaultOp('MULMOD'),
48
+ 0x0a: dynamicGasOp('EXP'),
49
+ 0x0b: defaultOp('SIGNEXTEND'),
50
+ // 0x10 range - bit ops
51
+ 0x10: defaultOp('LT'),
52
+ 0x11: defaultOp('GT'),
53
+ 0x12: defaultOp('SLT'),
54
+ 0x13: defaultOp('SGT'),
55
+ 0x14: defaultOp('EQ'),
56
+ 0x15: defaultOp('ISZERO'),
57
+ 0x16: defaultOp('AND'),
58
+ 0x17: defaultOp('OR'),
59
+ 0x18: defaultOp('XOR'),
60
+ 0x19: defaultOp('NOT'),
61
+ 0x1a: defaultOp('BYTE'),
62
+ // 0x20 range - crypto
63
+ 0x20: dynamicGasOp('KECCAK256'),
64
+ // 0x30 range - closure state
65
+ 0x30: asyncOp('ADDRESS'),
66
+ 0x31: asyncAndDynamicGasOp('BALANCE'),
67
+ 0x32: asyncOp('ORIGIN'),
68
+ 0x33: asyncOp('CALLER'),
69
+ 0x34: asyncOp('CALLVALUE'),
70
+ 0x35: asyncOp('CALLDATALOAD'),
71
+ 0x36: asyncOp('CALLDATASIZE'),
72
+ 0x37: asyncAndDynamicGasOp('CALLDATACOPY'),
73
+ 0x38: defaultOp('CODESIZE'),
74
+ 0x39: dynamicGasOp('CODECOPY'),
75
+ 0x3a: defaultOp('GASPRICE'),
76
+ 0x3b: asyncAndDynamicGasOp('EXTCODESIZE'),
77
+ 0x3c: asyncAndDynamicGasOp('EXTCODECOPY'),
78
+ // '0x40' range - block operations
79
+ 0x40: asyncOp('BLOCKHASH'),
80
+ 0x41: asyncOp('COINBASE'),
81
+ 0x42: asyncOp('TIMESTAMP'),
82
+ 0x43: asyncOp('NUMBER'),
83
+ 0x44: asyncOp('DIFFICULTY'),
84
+ 0x45: asyncOp('GASLIMIT'),
85
+ // 0x50 range - 'storage' and execution
86
+ 0x50: defaultOp('POP'),
87
+ 0x51: dynamicGasOp('MLOAD'),
88
+ 0x52: dynamicGasOp('MSTORE'),
89
+ 0x53: dynamicGasOp('MSTORE8'),
90
+ 0x54: asyncAndDynamicGasOp('SLOAD'),
91
+ 0x55: asyncAndDynamicGasOp('SSTORE'),
92
+ 0x56: defaultOp('JUMP'),
93
+ 0x57: defaultOp('JUMPI'),
94
+ 0x58: defaultOp('PC'),
95
+ 0x59: defaultOp('MSIZE'),
96
+ 0x5a: defaultOp('GAS'),
97
+ 0x5b: defaultOp('JUMPDEST'),
98
+ // 0x60, range
99
+ 0x60: defaultOp('PUSH'),
100
+ 0x61: defaultOp('PUSH'),
101
+ 0x62: defaultOp('PUSH'),
102
+ 0x63: defaultOp('PUSH'),
103
+ 0x64: defaultOp('PUSH'),
104
+ 0x65: defaultOp('PUSH'),
105
+ 0x66: defaultOp('PUSH'),
106
+ 0x67: defaultOp('PUSH'),
107
+ 0x68: defaultOp('PUSH'),
108
+ 0x69: defaultOp('PUSH'),
109
+ 0x6a: defaultOp('PUSH'),
110
+ 0x6b: defaultOp('PUSH'),
111
+ 0x6c: defaultOp('PUSH'),
112
+ 0x6d: defaultOp('PUSH'),
113
+ 0x6e: defaultOp('PUSH'),
114
+ 0x6f: defaultOp('PUSH'),
115
+ 0x70: defaultOp('PUSH'),
116
+ 0x71: defaultOp('PUSH'),
117
+ 0x72: defaultOp('PUSH'),
118
+ 0x73: defaultOp('PUSH'),
119
+ 0x74: defaultOp('PUSH'),
120
+ 0x75: defaultOp('PUSH'),
121
+ 0x76: defaultOp('PUSH'),
122
+ 0x77: defaultOp('PUSH'),
123
+ 0x78: defaultOp('PUSH'),
124
+ 0x79: defaultOp('PUSH'),
125
+ 0x7a: defaultOp('PUSH'),
126
+ 0x7b: defaultOp('PUSH'),
127
+ 0x7c: defaultOp('PUSH'),
128
+ 0x7d: defaultOp('PUSH'),
129
+ 0x7e: defaultOp('PUSH'),
130
+ 0x7f: defaultOp('PUSH'),
131
+ 0x80: defaultOp('DUP'),
132
+ 0x81: defaultOp('DUP'),
133
+ 0x82: defaultOp('DUP'),
134
+ 0x83: defaultOp('DUP'),
135
+ 0x84: defaultOp('DUP'),
136
+ 0x85: defaultOp('DUP'),
137
+ 0x86: defaultOp('DUP'),
138
+ 0x87: defaultOp('DUP'),
139
+ 0x88: defaultOp('DUP'),
140
+ 0x89: defaultOp('DUP'),
141
+ 0x8a: defaultOp('DUP'),
142
+ 0x8b: defaultOp('DUP'),
143
+ 0x8c: defaultOp('DUP'),
144
+ 0x8d: defaultOp('DUP'),
145
+ 0x8e: defaultOp('DUP'),
146
+ 0x8f: defaultOp('DUP'),
147
+ 0x90: defaultOp('SWAP'),
148
+ 0x91: defaultOp('SWAP'),
149
+ 0x92: defaultOp('SWAP'),
150
+ 0x93: defaultOp('SWAP'),
151
+ 0x94: defaultOp('SWAP'),
152
+ 0x95: defaultOp('SWAP'),
153
+ 0x96: defaultOp('SWAP'),
154
+ 0x97: defaultOp('SWAP'),
155
+ 0x98: defaultOp('SWAP'),
156
+ 0x99: defaultOp('SWAP'),
157
+ 0x9a: defaultOp('SWAP'),
158
+ 0x9b: defaultOp('SWAP'),
159
+ 0x9c: defaultOp('SWAP'),
160
+ 0x9d: defaultOp('SWAP'),
161
+ 0x9e: defaultOp('SWAP'),
162
+ 0x9f: defaultOp('SWAP'),
163
+ 0xa0: dynamicGasOp('LOG'),
164
+ 0xa1: dynamicGasOp('LOG'),
165
+ 0xa2: dynamicGasOp('LOG'),
166
+ 0xa3: dynamicGasOp('LOG'),
167
+ 0xa4: dynamicGasOp('LOG'),
168
+ // '0xf0' range - closures
169
+ 0xf0: asyncAndDynamicGasOp('CREATE'),
170
+ 0xf1: asyncAndDynamicGasOp('CALL'),
171
+ 0xf2: asyncAndDynamicGasOp('CALLCODE'),
172
+ 0xf3: dynamicGasOp('RETURN'),
173
+ // '0x70', range - other
174
+ 0xfe: defaultOp('INVALID'),
175
+ 0xff: asyncAndDynamicGasOp('SELFDESTRUCT'),
176
+ };
177
+ // Array of hard forks in order. These changes are repeatedly applied to `opcodes` until the hard fork is in the future based upon the common
178
+ // TODO: All gas price changes should be moved to common
179
+ // If the base gas cost of any of the operations change, then these should also be added to this list.
180
+ // If there are context variables changed (such as "warm slot reads") which are not the base gas fees,
181
+ // Then this does not have to be added.
182
+ const hardforkOpcodes = [
183
+ {
184
+ hardfork: Hardfork.Homestead,
185
+ opcodes: {
186
+ 0xf4: asyncAndDynamicGasOp('DELEGATECALL'), // EIP-7
187
+ },
188
+ },
189
+ {
190
+ hardfork: Hardfork.TangerineWhistle,
191
+ opcodes: {
192
+ 0x54: asyncAndDynamicGasOp('SLOAD'),
193
+ 0xf1: asyncAndDynamicGasOp('CALL'),
194
+ 0xf2: asyncAndDynamicGasOp('CALLCODE'),
195
+ 0x3b: asyncAndDynamicGasOp('EXTCODESIZE'),
196
+ 0x3c: asyncAndDynamicGasOp('EXTCODECOPY'),
197
+ 0xf4: asyncAndDynamicGasOp('DELEGATECALL'), // EIP-7
198
+ 0xff: asyncAndDynamicGasOp('SELFDESTRUCT'),
199
+ 0x31: asyncAndDynamicGasOp('BALANCE'),
200
+ },
201
+ },
202
+ {
203
+ hardfork: Hardfork.Byzantium,
204
+ opcodes: {
205
+ 0xfd: dynamicGasOp('REVERT'), // EIP-140
206
+ 0xfa: asyncAndDynamicGasOp('STATICCALL'), // EIP-214
207
+ 0x3d: asyncOp('RETURNDATASIZE'), // EIP-211
208
+ 0x3e: asyncAndDynamicGasOp('RETURNDATACOPY'), // EIP-211
209
+ },
210
+ },
211
+ {
212
+ hardfork: Hardfork.Constantinople,
213
+ opcodes: {
214
+ 0x1b: defaultOp('SHL'), // EIP-145
215
+ 0x1c: defaultOp('SHR'), // EIP-145
216
+ 0x1d: defaultOp('SAR'), // EIP-145
217
+ 0x3f: asyncAndDynamicGasOp('EXTCODEHASH'), // EIP-1052
218
+ 0xf5: asyncAndDynamicGasOp('CREATE2'), // EIP-1014
219
+ },
220
+ },
221
+ {
222
+ hardfork: Hardfork.Istanbul,
223
+ opcodes: {
224
+ 0x46: defaultOp('CHAINID'), // EIP-1344
225
+ 0x47: defaultOp('SELFBALANCE'), // EIP-1884
226
+ },
227
+ },
228
+ {
229
+ hardfork: Hardfork.Paris,
230
+ opcodes: {
231
+ 0x44: asyncOp('PREVRANDAO'), // EIP-4399
232
+ },
233
+ },
234
+ ];
235
+ const eipOpcodes = [
236
+ {
237
+ eip: 8024,
238
+ opcodes: {
239
+ 0xe6: defaultOp('DUPN'),
240
+ 0xe7: defaultOp('SWAPN'),
241
+ 0xe8: defaultOp('EXCHANGE'),
242
+ },
243
+ },
244
+ {
245
+ eip: 1153,
246
+ opcodes: {
247
+ 0x5c: defaultOp('TLOAD'),
248
+ 0x5d: defaultOp('TSTORE'),
249
+ },
250
+ },
251
+ {
252
+ eip: 3198,
253
+ opcodes: {
254
+ 0x48: defaultOp('BASEFEE'),
255
+ },
256
+ },
257
+ {
258
+ eip: 3855,
259
+ opcodes: {
260
+ 0x5f: defaultOp('PUSH0'),
261
+ },
262
+ },
263
+ {
264
+ eip: 4200,
265
+ opcodes: {
266
+ 0xe0: defaultOp('RJUMP'),
267
+ 0xe1: defaultOp('RJUMPI'),
268
+ 0xe2: defaultOp('RJUMPV'),
269
+ },
270
+ },
271
+ {
272
+ eip: 4750,
273
+ opcodes: {
274
+ 0xe3: defaultOp('CALLF'),
275
+ 0xe4: defaultOp('RETF'),
276
+ },
277
+ },
278
+ {
279
+ eip: 4844,
280
+ opcodes: {
281
+ 0x49: defaultOp('BLOBHASH'),
282
+ },
283
+ },
284
+ {
285
+ eip: 5656,
286
+ opcodes: {
287
+ 0x5e: dynamicGasOp('MCOPY'),
288
+ },
289
+ },
290
+ {
291
+ eip: 6206,
292
+ opcodes: {
293
+ 0xe5: defaultOp('JUMPF'),
294
+ },
295
+ },
296
+ {
297
+ eip: 7069,
298
+ opcodes: {
299
+ 0xf7: defaultOp('RETURNDATALOAD'),
300
+ 0xf8: asyncAndDynamicGasOp('EXTCALL'),
301
+ 0xf9: asyncAndDynamicGasOp('EXTDELEGATECALL'),
302
+ 0xfb: asyncAndDynamicGasOp('EXTSTATICCALL'),
303
+ },
304
+ },
305
+ {
306
+ eip: 7480,
307
+ opcodes: {
308
+ 0xd0: defaultOp('DATALOAD'),
309
+ 0xd1: defaultOp('DATALOADN'),
310
+ 0xd2: defaultOp('DATASIZE'),
311
+ 0xd3: dynamicGasOp('DATACOPY'),
312
+ },
313
+ },
314
+ {
315
+ eip: 7516,
316
+ opcodes: {
317
+ 0x4a: defaultOp('BLOBBASEFEE'),
318
+ },
319
+ },
320
+ {
321
+ eip: 7843,
322
+ opcodes: {
323
+ 0x4b: asyncOp('SLOTNUM'),
324
+ },
325
+ },
326
+ {
327
+ eip: 7620,
328
+ opcodes: {
329
+ 0xec: asyncAndDynamicGasOp('EOFCREATE'),
330
+ 0xee: asyncAndDynamicGasOp('RETURNCONTRACT'),
331
+ },
332
+ },
333
+ {
334
+ eip: 7939,
335
+ opcodes: {
336
+ 0x1e: defaultOp('CLZ'),
337
+ },
338
+ },
339
+ {
340
+ eip: 8141,
341
+ opcodes: {
342
+ 0xaa: asyncOp('APPROVE'),
343
+ 0xb0: defaultOp('TXPARAM'),
344
+ 0xb1: defaultOp('FRAMEDATALOAD'),
345
+ 0xb2: dynamicGasOp('FRAMEDATACOPY'),
346
+ },
347
+ },
348
+ ];
349
+ /**
350
+ * Convert basic opcode info dictionary into complete OpcodeList instance.
351
+ *
352
+ * @param opcodes {Object} Receive basic opcodes info dictionary.
353
+ * @returns {OpcodeList} Complete Opcode list
354
+ */
355
+ function createOpcodes(opcodes) {
356
+ const result = new Map();
357
+ for (const [key, value] of Object.entries(opcodes)) {
358
+ const code = parseInt(key, 10);
359
+ if (isNaN(value.fee))
360
+ value.fee = 0;
361
+ result.set(code, new Opcode({
362
+ code,
363
+ fullName: getFullname(code, value.name),
364
+ ...value,
365
+ }));
366
+ }
367
+ return result;
368
+ }
369
+ /**
370
+ * Get suitable opcodes for the required hardfork.
371
+ *
372
+ * @param common {Common} Ethereumjs Common metadata object.
373
+ * @param customOpcodes List with custom opcodes (see EVM `customOpcodes` option description).
374
+ * @returns {OpcodeList} Opcodes dictionary object.
375
+ */
376
+ export function getOpcodesForHF(common, customOpcodes) {
377
+ let opcodeBuilder = { ...opcodes };
378
+ const handlersCopy = new Map(handlers);
379
+ const dynamicGasHandlersCopy = new Map(dynamicGasHandlers);
380
+ for (let fork = 0; fork < hardforkOpcodes.length; fork++) {
381
+ if (common.gteHardfork(hardforkOpcodes[fork].hardfork)) {
382
+ opcodeBuilder = { ...opcodeBuilder, ...hardforkOpcodes[fork].opcodes };
383
+ }
384
+ }
385
+ for (const eipOps of eipOpcodes) {
386
+ if (common.isActivatedEIP(eipOps.eip)) {
387
+ opcodeBuilder = { ...opcodeBuilder, ...eipOps.opcodes };
388
+ }
389
+ }
390
+ for (const key in opcodeBuilder) {
391
+ const baseFee = Number(common.param(`${opcodeBuilder[key].name.toLowerCase()}Gas`));
392
+ // explicitly verify that we have defined a base fee
393
+ if (baseFee === undefined) {
394
+ throw EthereumJSErrorWithoutCode(`base fee not defined for: ${opcodeBuilder[key].name}`);
395
+ }
396
+ opcodeBuilder[key].fee = baseFee;
397
+ }
398
+ if (customOpcodes) {
399
+ for (const _code of customOpcodes) {
400
+ const code = _code;
401
+ if (!isAddOpcode(code)) {
402
+ delete opcodeBuilder[code.opcode];
403
+ continue;
404
+ }
405
+ const entry = {
406
+ [code.opcode]: {
407
+ name: code.opcodeName,
408
+ isAsync: true,
409
+ dynamicGas: code.gasFunction !== undefined,
410
+ fee: code.baseFee,
411
+ feeBigInt: BigInt(code.baseFee),
412
+ },
413
+ };
414
+ opcodeBuilder = { ...opcodeBuilder, ...entry };
415
+ if (code.gasFunction !== undefined) {
416
+ dynamicGasHandlersCopy.set(code.opcode, code.gasFunction);
417
+ }
418
+ // logicFunction is never undefined
419
+ handlersCopy.set(code.opcode, code.logicFunction);
420
+ }
421
+ }
422
+ //const dynamicGasHandlers = dynamicGasHandlersCopy
423
+ //const handlers = handlersCopy
424
+ const ops = createOpcodes(opcodeBuilder);
425
+ const opcodeMap = [];
426
+ for (const [opNumber, op] of ops) {
427
+ const dynamicGas = dynamicGasHandlersCopy.get(opNumber);
428
+ const handler = handlersCopy.get(opNumber);
429
+ opcodeMap[opNumber] = {
430
+ opcodeInfo: op,
431
+ opHandler: handler,
432
+ gasHandler: dynamicGas,
433
+ };
434
+ }
435
+ const INVALID = opcodeMap[0xfe];
436
+ for (let i = 0x0; i <= 0xff; i++) {
437
+ if (opcodeMap[i] === undefined) {
438
+ opcodeMap[i] = INVALID;
439
+ }
440
+ }
441
+ return {
442
+ dynamicGasHandlers: dynamicGasHandlersCopy,
443
+ handlers: handlersCopy,
444
+ opcodes: ops,
445
+ opcodeMap,
446
+ };
447
+ }
448
+ //# sourceMappingURL=codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codes.js","sourceRoot":"","sources":["../../../src/opcodes/codes.ts"],"names":[],"mappings":"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M,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;IAEvB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;IACtB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"}
@@ -0,0 +1,11 @@
1
+ import type { Common } from '@feelyourprotocol/common';
2
+ import type { RunState } from '../interpreter.ts';
3
+ export interface SyncOpHandler {
4
+ (runState: RunState, common: Common): void;
5
+ }
6
+ export interface AsyncOpHandler {
7
+ (runState: RunState, common: Common): Promise<void>;
8
+ }
9
+ export type OpHandler = SyncOpHandler | AsyncOpHandler;
10
+ export declare const handlers: Map<number, OpHandler>;
11
+ //# sourceMappingURL=functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/opcodes/functions.ts"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD,MAAM,WAAW,aAAa;IAC5B,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD;AAED,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,cAAc,CAAA;AAGtD,eAAO,MAAM,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CA2zD1C,CAAA"}