@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,424 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.paramsEVM = void 0;
4
+ const util_1 = require("@feelyourprotocol/util");
5
+ exports.paramsEVM = {
6
+ /**
7
+ * Frontier/Chainstart
8
+ */
9
+ 1: {
10
+ // gasConfig
11
+ maxRefundQuotient: 2, // Maximum refund quotient; max tx refund is min(tx.gasUsed/maxRefundQuotient, tx.gasRefund)
12
+ // gasPrices
13
+ basefeeGas: 2, // Gas base cost, used e.g. for ChainID opcode (Istanbul)
14
+ expGas: 10, // Base fee of the EXP opcode
15
+ expByteGas: 10, // Times ceil(log256(exponent)) for the EXP instruction
16
+ keccak256Gas: 30, // Base fee of the SHA3 opcode
17
+ keccak256WordGas: 6, // Once per word of the SHA3 operation's data
18
+ sloadGas: 50, // Base fee of the SLOAD opcode
19
+ sstoreSetGas: 20000, // Once per SSTORE operation if the zeroness changes from zero
20
+ sstoreResetGas: 5000, // Once per SSTORE operation if the zeroness does not change from zero
21
+ sstoreRefundGas: 15000, // Once per SSTORE operation if the zeroness changes to zero
22
+ jumpdestGas: 1, // Base fee of the JUMPDEST opcode
23
+ logGas: 375, // Base fee of the LOG opcode
24
+ logDataGas: 8, // Per byte in a LOG* operation's data
25
+ logTopicGas: 375, // Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas
26
+ createGas: 32000, // Base fee of the CREATE opcode
27
+ callGas: 40, // Base fee of the CALL opcode
28
+ callStipendGas: 2300, // Free gas given at beginning of call
29
+ callValueTransferGas: 9000, // Paid for CALL when the value transfer is non-zero
30
+ callNewAccountGas: 25000, // Paid for CALL when the destination address didn't exist prior
31
+ selfdestructRefundGas: 24000, // Refunded following a selfdestruct operation
32
+ memoryGas: 3, // Times the address of the (highest referenced byte in memory + 1). NOTE: referencing happens on read, write and in instructions such as RETURN and CALL
33
+ quadCoefficientDivGas: 512, // Divisor for the quadratic particle of the memory cost equation
34
+ createDataGas: 200, //
35
+ copyGas: 3, // Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added
36
+ ecRecoverGas: 3000,
37
+ sha256Gas: 60,
38
+ sha256WordGas: 12,
39
+ ripemd160Gas: 600,
40
+ ripemd160WordGas: 120,
41
+ identityGas: 15,
42
+ identityWordGas: 3,
43
+ stopGas: 0, // Base fee of the STOP opcode
44
+ addGas: 3, // Base fee of the ADD opcode
45
+ mulGas: 5, // Base fee of the MUL opcode
46
+ subGas: 3, // Base fee of the SUB opcode
47
+ divGas: 5, // Base fee of the DIV opcode
48
+ sdivGas: 5, // Base fee of the SDIV opcode
49
+ modGas: 5, // Base fee of the MOD opcode
50
+ smodGas: 5, // Base fee of the SMOD opcode
51
+ addmodGas: 8, // Base fee of the ADDMOD opcode
52
+ mulmodGas: 8, // Base fee of the MULMOD opcode
53
+ signextendGas: 5, // Base fee of the SIGNEXTEND opcode
54
+ ltGas: 3, // Base fee of the LT opcode
55
+ gtGas: 3, // Base fee of the GT opcode
56
+ sltGas: 3, // Base fee of the SLT opcode
57
+ sgtGas: 3, // Base fee of the SGT opcode
58
+ eqGas: 3, // Base fee of the EQ opcode
59
+ iszeroGas: 3, // Base fee of the ISZERO opcode
60
+ andGas: 3, // Base fee of the AND opcode
61
+ orGas: 3, // Base fee of the OR opcode
62
+ xorGas: 3, // Base fee of the XOR opcode
63
+ notGas: 3, // Base fee of the NOT opcode
64
+ byteGas: 3, // Base fee of the BYTE opcode
65
+ addressGas: 2, // Base fee of the ADDRESS opcode
66
+ balanceGas: 20, // Base fee of the BALANCE opcode
67
+ originGas: 2, // Base fee of the ORIGIN opcode
68
+ callerGas: 2, // Base fee of the CALLER opcode
69
+ callvalueGas: 2, // Base fee of the CALLVALUE opcode
70
+ calldataloadGas: 3, // Base fee of the CALLDATALOAD opcode
71
+ calldatasizeGas: 2, // Base fee of the CALLDATASIZE opcode
72
+ calldatacopyGas: 3, // Base fee of the CALLDATACOPY opcode
73
+ codesizeGas: 2, // Base fee of the CODESIZE opcode
74
+ codecopyGas: 3, // Base fee of the CODECOPY opcode
75
+ gaspriceGas: 2, // Base fee of the GASPRICE opcode
76
+ extcodesizeGas: 20, // Base fee of the EXTCODESIZE opcode
77
+ extcodecopyGas: 20, // Base fee of the EXTCODECOPY opcode
78
+ blockhashGas: 20, // Base fee of the BLOCKHASH opcode
79
+ coinbaseGas: 2, // Base fee of the COINBASE opcode
80
+ timestampGas: 2, // Base fee of the TIMESTAMP opcode
81
+ numberGas: 2, // Base fee of the NUMBER opcode
82
+ difficultyGas: 2, // Base fee of the DIFFICULTY opcode
83
+ gaslimitGas: 2, // Base fee of the GASLIMIT opcode
84
+ slotnumGas: 2, // Base fee of the SLOTNUM opcode (EIP-7843)
85
+ popGas: 2, // Base fee of the POP opcode
86
+ mloadGas: 3, // Base fee of the MLOAD opcode
87
+ mstoreGas: 3, // Base fee of the MSTORE opcode
88
+ mstore8Gas: 3, // Base fee of the MSTORE8 opcode
89
+ sstoreGas: 0, // Base fee of the SSTORE opcode
90
+ jumpGas: 8, // Base fee of the JUMP opcode
91
+ jumpiGas: 10, // Base fee of the JUMPI opcode
92
+ pcGas: 2, // Base fee of the PC opcode
93
+ msizeGas: 2, // Base fee of the MSIZE opcode
94
+ gasGas: 2, // Base fee of the GAS opcode
95
+ pushGas: 3, // Base fee of the PUSH opcode
96
+ dupGas: 3, // Base fee of the DUP opcode
97
+ swapGas: 3, // Base fee of the SWAP opcode
98
+ callcodeGas: 40, // Base fee of the CALLCODE opcode
99
+ returnGas: 0, // Base fee of the RETURN opcode
100
+ invalidGas: 0, // Base fee of the INVALID opcode
101
+ selfdestructGas: 0, // Base fee of the SELFDESTRUCT opcode
102
+ prevrandaoGas: 0, // TODO: these below 0-gas additions might also point to non-clean implementations in the code base
103
+ // evm
104
+ stackLimit: 1024, // Maximum size of VM stack allowed
105
+ },
106
+ /**
107
+ . * Homestead HF Meta EIP
108
+ . */
109
+ 606: {
110
+ // gasPrices
111
+ delegatecallGas: 40, // Base fee of the DELEGATECALL opcode
112
+ },
113
+ /**
114
+ . * TangerineWhistle HF Meta EIP
115
+ . */
116
+ 608: {
117
+ // gasPrices
118
+ sloadGas: 200, // Once per SLOAD operation
119
+ callGas: 700, // Once per CALL operation & message call transaction
120
+ extcodesizeGas: 700, // Base fee of the EXTCODESIZE opcode
121
+ extcodecopyGas: 700, // Base fee of the EXTCODECOPY opcode
122
+ balanceGas: 400, // Base fee of the BALANCE opcode
123
+ delegatecallGas: 700, // Base fee of the DELEGATECALL opcode
124
+ callcodeGas: 700, // Base fee of the CALLCODE opcode
125
+ selfdestructGas: 5000, // Base fee of the SELFDESTRUCT opcode
126
+ },
127
+ /**
128
+ . * Spurious Dragon HF Meta EIP
129
+ . */
130
+ 607: {
131
+ // gasPrices
132
+ expByteGas: 50, // Times ceil(log256(exponent)) for the EXP instruction
133
+ // evm
134
+ maxCodeSize: 24576, // Maximum length of contract code
135
+ },
136
+ /**
137
+ . * Byzantium HF Meta EIP
138
+ . */
139
+ 609: {
140
+ // gasPrices
141
+ modexpGquaddivisorGas: 20, // Gquaddivisor from modexp precompile for gas calculation
142
+ bn254AddGas: 500, // Gas costs for curve addition precompile
143
+ bn254MulGas: 40000, // Gas costs for curve multiplication precompile
144
+ bn254PairingGas: 100000, // Base gas costs for curve pairing precompile
145
+ bn254PairingWordGas: 80000, // Gas costs regarding curve pairing precompile input length
146
+ revertGas: 0, // Base fee of the REVERT opcode
147
+ staticcallGas: 700, // Base fee of the STATICCALL opcode
148
+ returndatasizeGas: 2, // Base fee of the RETURNDATASIZE opcode
149
+ returndatacopyGas: 3, // Base fee of the RETURNDATACOPY opcode
150
+ },
151
+ /**
152
+ . * Constantinople HF Meta EIP
153
+ . */
154
+ 1013: {
155
+ // gasPrices
156
+ netSstoreNoopGas: 200, // Once per SSTORE operation if the value doesn't change
157
+ netSstoreInitGas: 20000, // Once per SSTORE operation from clean zero
158
+ netSstoreCleanGas: 5000, // Once per SSTORE operation from clean non-zero
159
+ netSstoreDirtyGas: 200, // Once per SSTORE operation from dirty
160
+ netSstoreClearRefundGas: 15000, // Once per SSTORE operation for clearing an originally existing storage slot
161
+ netSstoreResetRefundGas: 4800, // Once per SSTORE operation for resetting to the original non-zero value
162
+ netSstoreResetClearRefundGas: 19800, // Once per SSTORE operation for resetting to the original zero value
163
+ shlGas: 3, // Base fee of the SHL opcode
164
+ shrGas: 3, // Base fee of the SHR opcode
165
+ sarGas: 3, // Base fee of the SAR opcode
166
+ extcodehashGas: 400, // Base fee of the EXTCODEHASH opcode
167
+ create2Gas: 32000, // Base fee of the CREATE2 opcode
168
+ },
169
+ /**
170
+ . * Petersburg HF Meta EIP
171
+ . */
172
+ 1716: {
173
+ // gasPrices
174
+ netSstoreNoopGas: null, // Removed along EIP-1283
175
+ netSstoreInitGas: null, // Removed along EIP-1283
176
+ netSstoreCleanGas: null, // Removed along EIP-1283
177
+ netSstoreDirtyGas: null, // Removed along EIP-1283
178
+ netSstoreClearRefundGas: null, // Removed along EIP-1283
179
+ netSstoreResetRefundGas: null, // Removed along EIP-1283
180
+ netSstoreResetClearRefundGas: null, // Removed along EIP-1283
181
+ },
182
+ /**
183
+ . * Istanbul HF Meta EIP
184
+ . */
185
+ 1679: {
186
+ // gasPrices
187
+ blake2RoundGas: 1, // Gas cost per round for the Blake2 F precompile
188
+ bn254AddGas: 150, // Gas costs for curve addition precompile
189
+ bn254MulGas: 6000, // Gas costs for curve multiplication precompile
190
+ bn254PairingGas: 45000, // Base gas costs for curve pairing precompile
191
+ bn254PairingWordGas: 34000, // Gas costs regarding curve pairing precompile input length
192
+ sstoreSentryEIP2200Gas: 2300, // Minimum gas required to be present for an SSTORE call, not consumed
193
+ sstoreNoopEIP2200Gas: 800, // Once per SSTORE operation if the value doesn't change
194
+ sstoreDirtyEIP2200Gas: 800, // Once per SSTORE operation if a dirty value is changed
195
+ sstoreInitEIP2200Gas: 20000, // Once per SSTORE operation from clean zero to non-zero
196
+ sstoreInitRefundEIP2200Gas: 19200, // Once per SSTORE operation for resetting to the original zero value
197
+ sstoreCleanEIP2200Gas: 5000, // Once per SSTORE operation from clean non-zero to something else
198
+ sstoreCleanRefundEIP2200Gas: 4200, // Once per SSTORE operation for resetting to the original non-zero value
199
+ sstoreClearRefundEIP2200Gas: 15000, // Once per SSTORE operation for clearing an originally existing storage slot
200
+ balanceGas: 700, // Base fee of the BALANCE opcode
201
+ extcodehashGas: 700, // Base fee of the EXTCODEHASH opcode
202
+ chainidGas: 2, // Base fee of the CHAINID opcode
203
+ selfbalanceGas: 5, // Base fee of the SELFBALANCE opcode
204
+ sloadGas: 800, // Base fee of the SLOAD opcode
205
+ },
206
+ /**
207
+ . * DUPN, SWAPN and EXCHANGE instructions
208
+ . */
209
+ 8024: {
210
+ // gasPrices
211
+ dupnGas: 3, // Base fee of the DUPN opcode
212
+ swapnGas: 3, // Base fee of the SWAPN opcode
213
+ exchangeGas: 3, // Base fee of the EXCHANGE opcode
214
+ },
215
+ /**
216
+ . * Transient storage opcodes
217
+ . */
218
+ 1153: {
219
+ // gasPrices
220
+ tstoreGas: 100, // Base fee of the TSTORE opcode
221
+ tloadGas: 100, // Base fee of the TLOAD opcode
222
+ },
223
+ 1559: {
224
+ elasticityMultiplier: 2, // Maximum block gas target elasticity
225
+ },
226
+ /**
227
+ . * ModExp gas cost
228
+ . */
229
+ 2565: {
230
+ // gasPrices
231
+ modexpGquaddivisorGas: 3, // Gquaddivisor from modexp precompile for gas calculation
232
+ },
233
+ /**
234
+ * BLS12-381 precompiles
235
+ */
236
+ 2537: {
237
+ // gasPrices
238
+ bls12381G1AddGas: 375, // Gas cost of a single BLS12-381 G1 addition precompile-call
239
+ bls12381G1MulGas: 12000, // Gas cost of a single BLS12-381 G1 multiplication precompile-call
240
+ bls12381G2AddGas: 600, // Gas cost of a single BLS12-381 G2 addition precompile-call
241
+ bls12381G2MulGas: 22500, // Gas cost of a single BLS12-381 G2 multiplication precompile-call
242
+ bls12381PairingBaseGas: 37700, // Base gas cost of BLS12-381 pairing check
243
+ bls12381PairingPerPairGas: 32600, // Per-pair gas cost of BLS12-381 pairing check
244
+ bls12381MapG1Gas: 5500, // Gas cost of BLS12-381 map field element to G1
245
+ bls12381MapG2Gas: 23800, // Gas cost of BLS12-381 map field element to G2
246
+ },
247
+ /**
248
+ . * Gas cost increases for state access opcodes
249
+ . */
250
+ 2929: {
251
+ // gasPrices
252
+ coldsloadGas: 2100, // Gas cost of the first read of storage from a given location (per transaction)
253
+ coldaccountaccessGas: 2600, // Gas cost of the first read of a given address (per transaction)
254
+ warmstoragereadGas: 100, // Gas cost of reading storage locations which have already loaded 'cold'
255
+ sstoreCleanEIP2200Gas: 2900, // Once per SSTORE operation from clean non-zero to something else
256
+ sstoreNoopEIP2200Gas: 100, // Once per SSTORE operation if the value doesn't change
257
+ sstoreDirtyEIP2200Gas: 100, // Once per SSTORE operation if a dirty value is changed
258
+ sstoreInitRefundEIP2200Gas: 19900, // Once per SSTORE operation for resetting to the original zero value
259
+ sstoreCleanRefundEIP2200Gas: 4900, // Once per SSTORE operation for resetting to the original non-zero value
260
+ callGas: 0, // Base fee of the CALL opcode
261
+ callcodeGas: 0, // Base fee of the CALLCODE opcode
262
+ delegatecallGas: 0, // Base fee of the DELEGATECALL opcode
263
+ staticcallGas: 0, // Base fee of the STATICCALL opcode
264
+ balanceGas: 0, // Base fee of the BALANCE opcode
265
+ extcodesizeGas: 0, // Base fee of the EXTCODESIZE opcode
266
+ extcodecopyGas: 0, // Base fee of the EXTCODECOPY opcode
267
+ extcodehashGas: 0, // Base fee of the EXTCODEHASH opcode
268
+ sloadGas: 0, // Base fee of the SLOAD opcode
269
+ sstoreGas: 0, // Base fee of the SSTORE opcode
270
+ },
271
+ /**
272
+ * Save historical block hashes in state (Verkle related usage, UNSTABLE)
273
+ */
274
+ 2935: {
275
+ // evm
276
+ historyStorageAddress: '0x0000F90827F1C53A10CB7A02335B175320002935', // The address where the historical blockhashes are stored
277
+ historyServeWindow: 8192, // The amount of blocks to be served by the historical blockhash contract
278
+ systemAddress: util_1.SYSTEM_ADDRESS, // The system address
279
+ },
280
+ /**
281
+ . * BASEFEE opcode
282
+ . */
283
+ 3198: {
284
+ // gasPrices
285
+ basefeeGas: 2, // Gas cost of the BASEFEE opcode
286
+ },
287
+ /**
288
+ . * Reduction in refunds
289
+ . */
290
+ 3529: {
291
+ // gasConfig
292
+ maxRefundQuotient: 5, // Maximum refund quotient; max tx refund is min(tx.gasUsed/maxRefundQuotient, tx.gasRefund)
293
+ // gasPrices
294
+ selfdestructRefundGas: 0, // Refunded following a selfdestruct operation
295
+ sstoreClearRefundEIP2200Gas: 4800, // Once per SSTORE operation for clearing an originally existing storage slot
296
+ },
297
+ /**
298
+ . * PUSH0 instruction
299
+ . */
300
+ 3855: {
301
+ // gasPrices
302
+ push0Gas: 2, // Base fee of the PUSH0 opcode
303
+ },
304
+ /**
305
+ . * Limit and meter initcode
306
+ . */
307
+ 3860: {
308
+ // gasPrices
309
+ initCodeWordGas: 2, // Gas to pay for each word (32 bytes) of initcode when creating a contract
310
+ // vm
311
+ maxInitCodeSize: 49152, // Maximum length of initialization code when creating a contract
312
+ },
313
+ /**
314
+ * EOF - Static relative jumps
315
+ */
316
+ 4200: {
317
+ // gasPrices
318
+ rjumpGas: 2, // Base fee of the RJUMP opcode
319
+ rjumpiGas: 4, // Base fee of the RJUMPI opcode
320
+ rjumpvGas: 4, // Base fee of the RJUMPV opcode
321
+ },
322
+ /**
323
+ . * Supplant DIFFICULTY opcode with PREVRANDAO
324
+ . */
325
+ 4399: {
326
+ // gasPrices
327
+ prevrandaoGas: 2, // Base fee of the PREVRANDAO opcode (previously DIFFICULTY)
328
+ },
329
+ /**
330
+ * EOF - Functions
331
+ */
332
+ 4750: {
333
+ // gasPrices
334
+ callfGas: 5, // Base fee of the CALLF opcode
335
+ retfGas: 3, // Base fee of the RETF opcode
336
+ },
337
+ /**
338
+ . * Shard Blob Transactions
339
+ . */
340
+ 4844: {
341
+ kzgPointEvaluationPrecompileGas: 50000, // The fee associated with the point evaluation precompile
342
+ blobhashGas: 3, // Base fee of the BLOBHASH opcode
343
+ // sharding
344
+ blobCommitmentVersionKzg: 1, // The number indicated a versioned hash is a KZG commitment
345
+ fieldElementsPerBlob: 4096, // The number of field elements allowed per blob
346
+ },
347
+ /**
348
+ * MCOPY - Memory copying instruction
349
+ */
350
+ 5656: {
351
+ // gasPrices
352
+ mcopyGas: 3, // Base fee of the MCOPY opcode
353
+ },
354
+ /**
355
+ * EOF - JUMPF and non-returning functions
356
+ */
357
+ 6206: {
358
+ // gasPrices
359
+ jumpfGas: 5, // Base fee of the JUMPF opcode
360
+ },
361
+ /**
362
+ . * Revamped CALL instructions
363
+ . */
364
+ 7069: {
365
+ /* Note: per EIP these are the additionally required EIPs:
366
+ EIP 150 - This is the entire Tangerine Whistle hardfork
367
+ EIP 211 - (RETURNDATASIZE / RETURNDATACOPY) - Included in Byzantium
368
+ EIP 214 - (STATICCALL) - Included in Byzantium
369
+ */
370
+ // gasPrices
371
+ extcallGas: 0, // Base fee of the EXTCALL opcode
372
+ extdelegatecallGas: 0, // Base fee of the EXTDELEGATECALL opcode
373
+ extstaticcallGas: 0, // Base fee of the EXTSTATICCALL opcode
374
+ returndataloadGas: 3, // Base fee of the RETURNDATALOAD opcode
375
+ minRetainedGas: 5000, // Minimum gas retained prior to executing an EXT*CALL opcode (this is the minimum gas available after performing the EXT*CALL)
376
+ minCalleeGas: 2300, //Minimum gas available to the the address called by an EXT*CALL opcode
377
+ },
378
+ /**
379
+ * EOF - Data section access instructions
380
+ */
381
+ 7480: {
382
+ // gasPrices
383
+ dataloadGas: 4, // Base fee of the DATALOAD opcode
384
+ dataloadnGas: 3, // Base fee of the DATALOADN opcode
385
+ datasizeGas: 2, // Base fee of the DATASIZE opcode
386
+ datacopyGas: 3, // Base fee of the DATACOPY opcode
387
+ },
388
+ /**
389
+ . * BLOBBASEFEE opcode
390
+ . */
391
+ 7516: {
392
+ // gasPrices
393
+ blobbasefeeGas: 2, // Gas cost of the BLOBBASEFEE opcode
394
+ },
395
+ /**
396
+ . * EOF Contract Creation
397
+ . */
398
+ 7620: {
399
+ /* Note: per EIP these are the additionally required EIPs:
400
+ EIP 170 - (Max contract size) - Included in Spurious Dragon
401
+ */
402
+ // gasPrices
403
+ eofcreateGas: 32000, // Base fee of the EOFCREATE opcode (Same as CREATE/CREATE2)
404
+ returncontractGas: 0, // Base fee of the RETURNCONTRACT opcode
405
+ },
406
+ /**
407
+ . * Count leading zeros (CLZ) opcode
408
+ . */
409
+ 7939: {
410
+ // gasPrices
411
+ clzGas: 5, // Base fee of the CLZ opcode (matching MUL as per EIP-7939)
412
+ },
413
+ /**
414
+ * EIP-8141: Frame Transaction
415
+ */
416
+ 8141: {
417
+ // gasPrices
418
+ approveGas: 0, // Base fee of the APPROVE opcode (terminates frame like RETURN)
419
+ txparamGas: 2, // Base fee of the TXPARAM opcode
420
+ framedataloadGas: 3, // Base fee of the FRAMEDATALOAD opcode (matches CALLDATALOAD)
421
+ framedatacopyGas: 3, // Base fee of the FRAMEDATACOPY opcode (matches CALLDATACOPY)
422
+ },
423
+ };
424
+ //# sourceMappingURL=params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/params.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ExecResult } from '../types.ts';
2
+ import type { PrecompileInput } from './types.ts';
3
+ export declare function precompile01(opts: PrecompileInput): ExecResult;
4
+ //# sourceMappingURL=01-ecrecover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"01-ecrecover.d.ts","sourceRoot":"","sources":["../../../src/precompiles/01-ecrecover.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,CAyD9D"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.precompile01 = precompile01;
4
+ const util_1 = require("@feelyourprotocol/util");
5
+ const evm_ts_1 = require("../evm.js");
6
+ const index_ts_1 = require("./index.js");
7
+ const util_ts_1 = require("./util.js");
8
+ function precompile01(opts) {
9
+ const pName = (0, index_ts_1.getPrecompileName)('01');
10
+ const ecrecoverFunction = opts.common.customCrypto.ecrecover ?? util_1.ecrecover;
11
+ const gasUsed = opts.common.param('ecRecoverGas');
12
+ if (!(0, util_ts_1.gasLimitCheck)(opts, gasUsed, pName)) {
13
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
14
+ }
15
+ const data = (0, util_1.setLengthRight)(opts.data, 128, { allowTruncate: true });
16
+ const msgHash = data.subarray(0, 32);
17
+ const v = data.subarray(32, 64);
18
+ const vBigInt = (0, util_1.bytesToBigInt)(v);
19
+ // Guard against util's `ecrecover`: without providing chainId this will return
20
+ // a signature in most of the cases in the cases that `v=0` or `v=1`
21
+ // However, this should throw, only 27 and 28 is allowed as input
22
+ if (vBigInt !== util_1.BIGINT_27 && vBigInt !== util_1.BIGINT_28) {
23
+ if (opts._debug !== undefined) {
24
+ opts._debug(`${pName} failed: v neither 27 nor 28`);
25
+ }
26
+ return {
27
+ executionGasUsed: gasUsed,
28
+ returnValue: new Uint8Array(),
29
+ };
30
+ }
31
+ const r = data.subarray(64, 96);
32
+ const s = data.subarray(96, 128);
33
+ let publicKey;
34
+ try {
35
+ if (opts._debug !== undefined) {
36
+ opts._debug(`${pName}: PK recovery with msgHash=${(0, util_1.bytesToHex)(msgHash)} v=${(0, util_1.bytesToHex)(v)} r=${(0, util_1.bytesToHex)(r)}s=${(0, util_1.bytesToHex)(s)}}`);
37
+ }
38
+ publicKey = ecrecoverFunction(msgHash, (0, util_1.bytesToBigInt)(v), r, s);
39
+ }
40
+ catch {
41
+ if (opts._debug !== undefined) {
42
+ opts._debug(`${pName} failed: PK recovery failed`);
43
+ }
44
+ return {
45
+ executionGasUsed: gasUsed,
46
+ returnValue: new Uint8Array(0),
47
+ };
48
+ }
49
+ const address = (0, util_1.setLengthLeft)((0, util_1.publicToAddress)(publicKey), 32);
50
+ if (opts._debug !== undefined) {
51
+ opts._debug(`${pName} return address=${(0, util_1.bytesToHex)(address)}`);
52
+ }
53
+ return {
54
+ executionGasUsed: gasUsed,
55
+ returnValue: address,
56
+ };
57
+ }
58
+ //# sourceMappingURL=01-ecrecover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"01-ecrecover.js","sourceRoot":"","sources":["../../../src/precompiles/01-ecrecover.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ExecResult } from '../types.ts';
2
+ import type { PrecompileInput } from './types.ts';
3
+ export declare function precompile02(opts: PrecompileInput): ExecResult;
4
+ //# sourceMappingURL=02-sha256.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"02-sha256.d.ts","sourceRoot":"","sources":["../../../src/precompiles/02-sha256.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,CAoB9D"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.precompile02 = precompile02;
4
+ const util_1 = require("@feelyourprotocol/util");
5
+ const sha2_js_1 = require("@noble/hashes/sha2.js");
6
+ const evm_ts_1 = require("../evm.js");
7
+ const index_ts_1 = require("./index.js");
8
+ const util_ts_1 = require("./util.js");
9
+ function precompile02(opts) {
10
+ const pName = (0, index_ts_1.getPrecompileName)('02');
11
+ const data = opts.data;
12
+ const sha256Function = opts.common.customCrypto.sha256 ?? sha2_js_1.sha256;
13
+ let gasUsed = opts.common.param('sha256Gas');
14
+ gasUsed += opts.common.param('sha256WordGas') * BigInt(Math.ceil(data.length / 32));
15
+ if (!(0, util_ts_1.gasLimitCheck)(opts, gasUsed, pName)) {
16
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
17
+ }
18
+ const hash = sha256Function(data);
19
+ if (opts._debug !== undefined) {
20
+ opts._debug(`${pName} return hash=${(0, util_1.bytesToHex)(hash)}`);
21
+ }
22
+ return {
23
+ executionGasUsed: gasUsed,
24
+ returnValue: hash,
25
+ };
26
+ }
27
+ //# sourceMappingURL=02-sha256.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"02-sha256.js","sourceRoot":"","sources":["../../../src/precompiles/02-sha256.ts"],"names":[],"mappings":";;AAWA,oCAoBC;AA/BD,2CAA6C;AAC7C,mDAA8C;AAE9C,sCAAqC;AAErC,yCAA8C;AAC9C,uCAAyC;AAKzC,SAAgB,YAAY,CAAC,IAAqB;IAChD,MAAM,KAAK,GAAG,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IACtB,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,IAAI,gBAAM,CAAA;IAChE,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC5C,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAA;IAEnF,IAAI,CAAC,IAAA,uBAAa,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,gBAAgB,IAAA,iBAAU,EAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,OAAO;QACzB,WAAW,EAAE,IAAI;KAClB,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ExecResult } from '../types.ts';
2
+ import type { PrecompileInput } from './types.ts';
3
+ export declare function precompile03(opts: PrecompileInput): ExecResult;
4
+ //# sourceMappingURL=03-ripemd160.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"03-ripemd160.d.ts","sourceRoot":"","sources":["../../../src/precompiles/03-ripemd160.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,CAoB9D"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.precompile03 = precompile03;
4
+ const util_1 = require("@feelyourprotocol/util");
5
+ const legacy_js_1 = require("@noble/hashes/legacy.js");
6
+ const evm_ts_1 = require("../evm.js");
7
+ const index_ts_1 = require("./index.js");
8
+ const util_ts_1 = require("./util.js");
9
+ function precompile03(opts) {
10
+ const pName = (0, index_ts_1.getPrecompileName)('03');
11
+ const data = opts.data;
12
+ let gasUsed = opts.common.param('ripemd160Gas');
13
+ gasUsed += opts.common.param('ripemd160WordGas') * BigInt(Math.ceil(data.length / 32));
14
+ if (!(0, util_ts_1.gasLimitCheck)(opts, gasUsed, pName)) {
15
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
16
+ }
17
+ const hash = (0, util_1.setLengthLeft)((0, legacy_js_1.ripemd160)(data), 32);
18
+ if (opts._debug !== undefined) {
19
+ opts._debug(`${pName} return hash=${(0, util_1.bytesToHex)(hash)}`);
20
+ }
21
+ return {
22
+ executionGasUsed: gasUsed,
23
+ returnValue: (0, util_1.setLengthLeft)((0, legacy_js_1.ripemd160)(data), 32),
24
+ };
25
+ }
26
+ //# sourceMappingURL=03-ripemd160.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"03-ripemd160.js","sourceRoot":"","sources":["../../../src/precompiles/03-ripemd160.ts"],"names":[],"mappings":";;AAWA,oCAoBC;AA/BD,2CAA4D;AAC5D,uDAAmD;AAEnD,sCAAqC;AAErC,yCAA8C;AAC9C,uCAAyC;AAKzC,SAAgB,YAAY,CAAC,IAAqB;IAChD,MAAM,KAAK,GAAG,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IAEtB,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAC/C,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAA;IAEtF,IAAI,CAAC,IAAA,uBAAa,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,oBAAa,EAAC,IAAA,qBAAS,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,gBAAgB,IAAA,iBAAU,EAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,OAAO;QACzB,WAAW,EAAE,IAAA,oBAAa,EAAC,IAAA,qBAAS,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC;KAChD,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ExecResult } from '../types.ts';
2
+ import type { PrecompileInput } from './types.ts';
3
+ export declare function precompile04(opts: PrecompileInput): ExecResult;
4
+ //# sourceMappingURL=04-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"04-identity.d.ts","sourceRoot":"","sources":["../../../src/precompiles/04-identity.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,CAkB9D"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.precompile04 = precompile04;
4
+ const util_1 = require("@feelyourprotocol/util");
5
+ const evm_ts_1 = require("../evm.js");
6
+ const index_ts_1 = require("./index.js");
7
+ const util_ts_1 = require("./util.js");
8
+ function precompile04(opts) {
9
+ const pName = (0, index_ts_1.getPrecompileName)('04');
10
+ const data = opts.data;
11
+ let gasUsed = opts.common.param('identityGas');
12
+ gasUsed += opts.common.param('identityWordGas') * BigInt(Math.ceil(data.length / 32));
13
+ if (!(0, util_ts_1.gasLimitCheck)(opts, gasUsed, pName)) {
14
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
15
+ }
16
+ if (opts._debug !== undefined) {
17
+ opts._debug(`${pName} return data=${(0, util_1.short)(opts.data)}`);
18
+ }
19
+ return {
20
+ executionGasUsed: gasUsed,
21
+ returnValue: Uint8Array.from(data), // Copy the memory (`Uint8Array.from()`)
22
+ };
23
+ }
24
+ //# sourceMappingURL=04-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"04-identity.js","sourceRoot":"","sources":["../../../src/precompiles/04-identity.ts"],"names":[],"mappings":";;AAUA,oCAkBC;AA5BD,2CAAwC;AAExC,sCAAqC;AAErC,yCAA8C;AAC9C,uCAAyC;AAKzC,SAAgB,YAAY,CAAC,IAAqB;IAChD,MAAM,KAAK,GAAG,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IAEtB,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC9C,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAA;IACrF,IAAI,CAAC,IAAA,uBAAa,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,gBAAgB,IAAA,YAAK,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,OAAO;QACzB,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,wCAAwC;KAC7E,CAAA;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ExecResult } from '../types.ts';
2
+ import type { PrecompileInput } from './types.ts';
3
+ export declare function expMod(a: bigint, power: bigint, modulo: bigint): bigint;
4
+ export declare function precompile05(opts: PrecompileInput): ExecResult;
5
+ //# sourceMappingURL=05-modexp.d.ts.map