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