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