@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 @@
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"}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.expMod = expMod;
4
+ exports.precompile05 = precompile05;
5
+ const util_1 = require("@feelyourprotocol/util");
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
+ const BIGINT_4 = BigInt(4);
10
+ const BIGINT_16 = BigInt(16);
11
+ const BIGINT_480 = BigInt(480);
12
+ const BIGINT_200 = BigInt(200);
13
+ const BIGINT_500 = BigInt(500);
14
+ const BIGINT_1024 = BigInt(1024);
15
+ const BIGINT_3072 = BigInt(3072);
16
+ const BIGINT_199680 = BigInt(199680);
17
+ const BIGINT_2147483647 = BigInt(2147483647);
18
+ const maxInt = BigInt(Number.MAX_SAFE_INTEGER);
19
+ function multiplicationComplexity(x) {
20
+ let fac1;
21
+ let fac2;
22
+ if (x <= util_1.BIGINT_64) {
23
+ return x ** util_1.BIGINT_2;
24
+ }
25
+ else if (x <= BIGINT_1024) {
26
+ // return Math.floor(Math.pow(x, 2) / 4) + 96 * x - 3072
27
+ fac1 = x ** util_1.BIGINT_2 / BIGINT_4;
28
+ fac2 = x * util_1.BIGINT_96;
29
+ return fac1 + fac2 - BIGINT_3072;
30
+ }
31
+ else {
32
+ // return Math.floor(Math.pow(x, 2) / 16) + 480 * x - 199680
33
+ fac1 = x ** util_1.BIGINT_2 / BIGINT_16;
34
+ fac2 = x * BIGINT_480;
35
+ return fac1 + fac2 - BIGINT_199680;
36
+ }
37
+ }
38
+ function getAdjustedExponentLength(data, opts) {
39
+ let expBytesStart;
40
+ try {
41
+ const baseLen = (0, util_1.bytesToBigInt)(data.subarray(0, 32));
42
+ expBytesStart = 96 + Number(baseLen); // 96 for base length, then exponent length, and modulus length, then baseLen for the base data, then exponent bytes start
43
+ }
44
+ catch {
45
+ expBytesStart = Number.MAX_SAFE_INTEGER - 32;
46
+ }
47
+ const expLen = (0, util_1.bytesToBigInt)(data.subarray(32, 64));
48
+ let firstExpBytes = data.subarray(expBytesStart, expBytesStart + 32); // first word of the exponent data
49
+ firstExpBytes = (0, util_1.setLengthRight)(firstExpBytes, 32); // reading past the data reads virtual zeros
50
+ let firstExpBigInt = (0, util_1.bytesToBigInt)(firstExpBytes);
51
+ let max32expLen = 0;
52
+ if (expLen < util_1.BIGINT_32) {
53
+ max32expLen = 32 - Number(expLen);
54
+ }
55
+ firstExpBigInt = firstExpBigInt >> (util_1.BIGINT_8 * BigInt(Math.max(max32expLen, 0)));
56
+ let bitLen = -1;
57
+ while (firstExpBigInt > util_1.BIGINT_0) {
58
+ bitLen = bitLen + 1;
59
+ firstExpBigInt = firstExpBigInt >> util_1.BIGINT_1;
60
+ }
61
+ let expLenMinus32OrZero = expLen - util_1.BIGINT_32;
62
+ if (expLenMinus32OrZero < util_1.BIGINT_0) {
63
+ expLenMinus32OrZero = util_1.BIGINT_0;
64
+ }
65
+ let adjustedExpLen = expLenMinus32OrZero * (opts.common.isActivatedEIP(7883) === true ? BIGINT_16 : util_1.BIGINT_8);
66
+ if (bitLen > 0) {
67
+ adjustedExpLen += BigInt(bitLen);
68
+ }
69
+ return adjustedExpLen;
70
+ }
71
+ function expMod(a, power, modulo) {
72
+ if (power === util_1.BIGINT_0) {
73
+ return util_1.BIGINT_1 % modulo;
74
+ }
75
+ let res = util_1.BIGINT_1;
76
+ while (power > util_1.BIGINT_0) {
77
+ if (power & util_1.BIGINT_1)
78
+ res = (res * a) % modulo;
79
+ a = (a * a) % modulo;
80
+ power >>= util_1.BIGINT_1;
81
+ }
82
+ return res;
83
+ }
84
+ function precompile05(opts) {
85
+ const pName = (0, index_ts_1.getPrecompileName)('05');
86
+ const data = opts.data.length < 96 ? (0, util_1.setLengthRight)(opts.data, 96) : opts.data;
87
+ let adjustedELen = getAdjustedExponentLength(data, opts);
88
+ if (adjustedELen < util_1.BIGINT_1) {
89
+ adjustedELen = util_1.BIGINT_1;
90
+ }
91
+ const bLen = (0, util_1.bytesToBigInt)(data.subarray(0, 32));
92
+ const eLen = (0, util_1.bytesToBigInt)(data.subarray(32, 64));
93
+ const mLen = (0, util_1.bytesToBigInt)(data.subarray(64, 96));
94
+ let maxLen = bLen;
95
+ if (maxLen < mLen) {
96
+ maxLen = mLen;
97
+ }
98
+ const Gquaddivisor = opts.common.param('modexpGquaddivisorGas');
99
+ let gasUsed;
100
+ const bStart = util_1.BIGINT_96;
101
+ const bEnd = bStart + bLen;
102
+ const eStart = bEnd;
103
+ const eEnd = eStart + eLen;
104
+ const mStart = eEnd;
105
+ const mEnd = mStart + mLen;
106
+ if (opts.common.isActivatedEIP(2565)) {
107
+ const words = (maxLen + util_1.BIGINT_7) / util_1.BIGINT_8;
108
+ if (opts.common.isActivatedEIP(7883)) {
109
+ gasUsed = adjustedELen * (maxLen > util_1.BIGINT_32 ? util_1.BIGINT_2 * words * words : BIGINT_16);
110
+ if (gasUsed < BIGINT_500) {
111
+ gasUsed = BIGINT_500;
112
+ }
113
+ }
114
+ else {
115
+ gasUsed = (adjustedELen * words * words) / Gquaddivisor;
116
+ if (gasUsed < BIGINT_200) {
117
+ gasUsed = BIGINT_200;
118
+ }
119
+ }
120
+ }
121
+ else {
122
+ gasUsed = (adjustedELen * multiplicationComplexity(maxLen)) / Gquaddivisor;
123
+ }
124
+ if (!(0, util_ts_1.gasLimitCheck)(opts, gasUsed, pName)) {
125
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
126
+ }
127
+ // Upper bounds by EIP-7823 (Osaka and upwards) or otherwise
128
+ // @feelyourprotocol/util setLengthRight limitation
129
+ const maxSize = opts.common.isActivatedEIP(7823) ? BIGINT_1024 : BIGINT_2147483647;
130
+ if (opts._debug !== undefined) {
131
+ // Lengths value debugging
132
+ const total = BigInt(96) + bLen + eLen + mLen;
133
+ const data = BigInt(opts.data.length);
134
+ let msg = `${pName} length values: maxSize(b/e/m)=${maxSize} bLen=${bLen} eLen=${eLen} mLen=${mLen} 96+b+e+m=${total} `;
135
+ msg += `data=${data} lengthMatch=${total === data}`;
136
+ opts._debug(msg);
137
+ }
138
+ // Optimization: do not compute for b and m being 0 but return early
139
+ if (!opts.common.isActivatedEIP(7823) && bLen === util_1.BIGINT_0 && mLen === util_1.BIGINT_0) {
140
+ return {
141
+ executionGasUsed: gasUsed,
142
+ returnValue: new Uint8Array(),
143
+ };
144
+ }
145
+ if (bLen > maxSize || eLen > maxSize || mLen > maxSize) {
146
+ if (opts._debug !== undefined) {
147
+ opts._debug(`${pName} failed: one or more input values too large`);
148
+ }
149
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
150
+ }
151
+ if (mEnd > maxInt) {
152
+ if (opts._debug !== undefined) {
153
+ opts._debug(`${pName} failed: total input too large`);
154
+ }
155
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
156
+ }
157
+ const B = (0, util_1.bytesToBigInt)((0, util_1.setLengthRight)(data.subarray(Number(bStart), Number(bEnd)), Number(bLen)));
158
+ const E = (0, util_1.bytesToBigInt)((0, util_1.setLengthRight)(data.subarray(Number(eStart), Number(eEnd)), Number(eLen)));
159
+ const M = (0, util_1.bytesToBigInt)((0, util_1.setLengthRight)(data.subarray(Number(mStart), Number(mEnd)), Number(mLen)));
160
+ if (opts._debug !== undefined) {
161
+ opts._debug(`${pName} input: B=${B} E=${E} M=${M}`);
162
+ }
163
+ let R;
164
+ if (M === util_1.BIGINT_0) {
165
+ R = new Uint8Array();
166
+ }
167
+ else {
168
+ R = expMod(B, E, M);
169
+ if (R === util_1.BIGINT_0) {
170
+ R = new Uint8Array();
171
+ }
172
+ else {
173
+ R = (0, util_1.bigIntToBytes)(R);
174
+ }
175
+ }
176
+ const res = (0, util_1.setLengthLeft)(R, Number(mLen));
177
+ if (opts._debug !== undefined) {
178
+ opts._debug(`${pName} return value=${(0, util_1.bytesToHex)(res)}`);
179
+ }
180
+ return {
181
+ executionGasUsed: gasUsed,
182
+ returnValue: res,
183
+ };
184
+ }
185
+ //# sourceMappingURL=05-modexp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"05-modexp.js","sourceRoot":"","sources":["../../../src/precompiles/05-modexp.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 precompile06(opts: PrecompileInput): ExecResult;
4
+ //# sourceMappingURL=06-bn254-add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"06-bn254-add.d.ts","sourceRoot":"","sources":["../../../src/precompiles/06-bn254-add.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,CAqC9D"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.precompile06 = precompile06;
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 precompile06(opts) {
9
+ const pName = (0, index_ts_1.getPrecompileName)('06');
10
+ const gasUsed = opts.common.param('bn254AddGas');
11
+ if (!(0, util_ts_1.gasLimitCheck)(opts, gasUsed, pName)) {
12
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
13
+ }
14
+ // > 128 bytes: chop off extra bytes
15
+ // < 128 bytes: right-pad with 0-s
16
+ const input = (0, util_1.setLengthRight)(opts.data.subarray(0, 128), 128);
17
+ let returnData;
18
+ try {
19
+ returnData = opts._EVM['_bn254'].add(input);
20
+ }
21
+ catch (e) {
22
+ if (opts._debug !== undefined) {
23
+ opts._debug(`${pName} failed: ${e.message}`);
24
+ }
25
+ return (0, evm_ts_1.EVMErrorResult)(e, opts.gasLimit);
26
+ }
27
+ // check ecadd success or failure by comparing the output length
28
+ if (returnData.length !== 64) {
29
+ if (opts._debug !== undefined) {
30
+ opts._debug(`${pName} failed: OOG`);
31
+ }
32
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
33
+ }
34
+ if (opts._debug !== undefined) {
35
+ opts._debug(`${pName} return value=${(0, util_1.bytesToHex)(returnData)}`);
36
+ }
37
+ return {
38
+ executionGasUsed: gasUsed,
39
+ returnValue: returnData,
40
+ };
41
+ }
42
+ //# sourceMappingURL=06-bn254-add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"06-bn254-add.js","sourceRoot":"","sources":["../../../src/precompiles/06-bn254-add.ts"],"names":[],"mappings":";;AAWA,oCAqCC;AAhDD,2CAA6D;AAE7D,sCAAqD;AAErD,yCAA8C;AAC9C,uCAAyC;AAMzC,SAAgB,YAAY,CAAC,IAAqB;IAChD,MAAM,KAAK,GAAG,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAChD,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,oCAAoC;IACpC,kCAAkC;IAClC,MAAM,KAAK,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IAE7D,IAAI,UAAU,CAAA;IACd,IAAI,CAAC;QACH,UAAU,GAAI,IAAI,CAAC,IAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACtD,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,IAAA,uBAAc,EAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,gEAAgE;IAChE,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,cAAc,CAAC,CAAA;QACrC,CAAC;QACD,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,iBAAiB,IAAA,iBAAU,EAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,OAAO;QACzB,WAAW,EAAE,UAAU;KACxB,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 precompile07(opts: PrecompileInput): ExecResult;
4
+ //# sourceMappingURL=07-bn254-mul.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"07-bn254-mul.d.ts","sourceRoot":"","sources":["../../../src/precompiles/07-bn254-mul.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,CAsC9D"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.precompile07 = precompile07;
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 precompile07(opts) {
9
+ const pName = (0, index_ts_1.getPrecompileName)('07');
10
+ const gasUsed = opts.common.param('bn254MulGas');
11
+ if (!(0, util_ts_1.gasLimitCheck)(opts, gasUsed, pName)) {
12
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
13
+ }
14
+ // > 128 bytes: chop off extra bytes
15
+ // < 128 bytes: right-pad with 0-s
16
+ const input = (0, util_1.setLengthRight)(opts.data.subarray(0, 128), 128);
17
+ let returnData;
18
+ try {
19
+ returnData = opts._EVM['_bn254'].mul(input);
20
+ }
21
+ catch (e) {
22
+ if (opts._debug !== undefined) {
23
+ opts._debug(`${pName} failed: ${e.message}`);
24
+ }
25
+ return (0, evm_ts_1.EVMErrorResult)(e, opts.gasLimit);
26
+ }
27
+ // check ecmul success or failure by comparing the output length
28
+ if (returnData.length !== 64) {
29
+ if (opts._debug !== undefined) {
30
+ opts._debug(`${pName} failed: OOG`);
31
+ }
32
+ // TODO: should this really return OOG?
33
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
34
+ }
35
+ if (opts._debug !== undefined) {
36
+ opts._debug(`${pName} return value=${(0, util_1.bytesToHex)(returnData)}`);
37
+ }
38
+ return {
39
+ executionGasUsed: gasUsed,
40
+ returnValue: returnData,
41
+ };
42
+ }
43
+ //# sourceMappingURL=07-bn254-mul.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"07-bn254-mul.js","sourceRoot":"","sources":["../../../src/precompiles/07-bn254-mul.ts"],"names":[],"mappings":";;AAWA,oCAsCC;AAjDD,2CAA6D;AAE7D,sCAAqD;AAErD,yCAA8C;AAC9C,uCAAyC;AAMzC,SAAgB,YAAY,CAAC,IAAqB;IAChD,MAAM,KAAK,GAAG,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAChD,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,oCAAoC;IACpC,kCAAkC;IAClC,MAAM,KAAK,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IAE7D,IAAI,UAAU,CAAA;IACd,IAAI,CAAC;QACH,UAAU,GAAI,IAAI,CAAC,IAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACtD,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,IAAA,uBAAc,EAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,gEAAgE;IAChE,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,cAAc,CAAC,CAAA;QACrC,CAAC;QACD,uCAAuC;QACvC,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,iBAAiB,IAAA,iBAAU,EAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,OAAO;QACzB,WAAW,EAAE,UAAU;KACxB,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 precompile08(opts: PrecompileInput): ExecResult;
4
+ //# sourceMappingURL=08-bn254-pairing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"08-bn254-pairing.d.ts","sourceRoot":"","sources":["../../../src/precompiles/08-bn254-pairing.ts"],"names":[],"mappings":"AASA,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,CAyC9D"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.precompile08 = precompile08;
4
+ const util_1 = require("@feelyourprotocol/util");
5
+ const errors_ts_1 = require("../errors.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 precompile08(opts) {
10
+ const pName = (0, index_ts_1.getPrecompileName)('08');
11
+ if (!(0, util_ts_1.moduloLengthCheck)(opts, 192, pName)) {
12
+ return (0, evm_ts_1.EVMErrorResult)(new errors_ts_1.EVMError(errors_ts_1.EVMError.errorMessages.INVALID_INPUT_LENGTH), opts.gasLimit);
13
+ }
14
+ const inputDataSize = BigInt(Math.floor(opts.data.length / 192));
15
+ const gasUsed = opts.common.param('bn254PairingGas') + inputDataSize * opts.common.param('bn254PairingWordGas');
16
+ if (!(0, util_ts_1.gasLimitCheck)(opts, gasUsed, pName)) {
17
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
18
+ }
19
+ let returnData;
20
+ try {
21
+ returnData = opts._EVM['_bn254'].pairing(opts.data);
22
+ }
23
+ catch (e) {
24
+ if (opts._debug !== undefined) {
25
+ opts._debug(`${pName} failed: ${e.message}`);
26
+ }
27
+ return (0, evm_ts_1.EVMErrorResult)(e, opts.gasLimit);
28
+ }
29
+ // check ecpairing success or failure by comparing the output length
30
+ if (returnData.length !== 32) {
31
+ if (opts._debug !== undefined) {
32
+ opts._debug(`${pName} failed: OOG`);
33
+ }
34
+ // TODO: should this really return OOG?
35
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
36
+ }
37
+ if (opts._debug !== undefined) {
38
+ opts._debug(`${pName} return value=${(0, util_1.bytesToHex)(returnData)}`);
39
+ }
40
+ return {
41
+ executionGasUsed: gasUsed,
42
+ returnValue: returnData,
43
+ };
44
+ }
45
+ //# sourceMappingURL=08-bn254-pairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"08-bn254-pairing.js","sourceRoot":"","sources":["../../../src/precompiles/08-bn254-pairing.ts"],"names":[],"mappings":";;AAYA,oCAyCC;AArDD,2CAA6C;AAE7C,4CAAuC;AACvC,sCAAqD;AAErD,yCAA8C;AAC9C,uCAA4D;AAM5D,SAAgB,YAAY,CAAC,IAAqB;IAChD,MAAM,KAAK,GAAG,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IACrC,IAAI,CAAC,IAAA,2BAAiB,EAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,IAAA,uBAAc,EAAC,IAAI,oBAAQ,CAAC,oBAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjG,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAA;IAChE,MAAM,OAAO,GACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAEjG,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,UAAU,CAAA;IACd,IAAI,CAAC;QACH,UAAU,GAAI,IAAI,CAAC,IAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9D,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,IAAA,uBAAc,EAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,oEAAoE;IACpE,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,cAAc,CAAC,CAAA;QACrC,CAAC;QACD,uCAAuC;QACvC,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,iBAAiB,IAAA,iBAAU,EAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,OAAO;QACzB,WAAW,EAAE,UAAU;KACxB,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 F(h: Uint32Array, m: Uint32Array, t: Uint32Array, f: boolean, rounds: number): void;
4
+ export declare function precompile09(opts: PrecompileInput): ExecResult;
5
+ //# sourceMappingURL=09-blake2f.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"09-blake2f.d.ts","sourceRoot":"","sources":["../../../src/precompiles/09-blake2f.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAwHjD,wBAAgB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QA0C3F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,CAqE9D"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.F = F;
4
+ exports.precompile09 = precompile09;
5
+ const util_1 = require("@feelyourprotocol/util");
6
+ const errors_ts_1 = require("../errors.js");
7
+ const evm_ts_1 = require("../evm.js");
8
+ const index_ts_1 = require("./index.js");
9
+ const util_ts_1 = require("./util.js");
10
+ // The following blake2 code has been taken from (license: Creative Commons CC0):
11
+ // https://github.com/dcposch/blakejs/blob/410c640d0f08d3b26904c6d1ab3d81df3619d282/blake2b.js
12
+ // The modifications include:
13
+ // - Avoiding the use of context in F
14
+ // - F accepts number of rounds as parameter
15
+ // - Expect 2 64-byte t values, xor them both
16
+ // - Take modulo 10 for indices of SIGMA
17
+ // - Added type annotations
18
+ // - Moved previously global `v` and `m` variables inside the F function
19
+ // 64-bit unsigned addition
20
+ // Sets v[a,a+1] += v[b,b+1]
21
+ // v should be a Uint32Array
22
+ function ADD64AA(v, a, b) {
23
+ const o0 = v[a] + v[b];
24
+ let o1 = v[a + 1] + v[b + 1];
25
+ if (o0 >= 0x100000000) {
26
+ o1++;
27
+ }
28
+ v[a] = o0;
29
+ v[a + 1] = o1;
30
+ }
31
+ // 64-bit unsigned addition
32
+ // Sets v[a,a+1] += b
33
+ // b0 is the low 32 bits of b, b1 represents the high 32 bits
34
+ function ADD64AC(v, a, b0, b1) {
35
+ let o0 = v[a] + b0;
36
+ if (b0 < 0) {
37
+ o0 += 0x100000000;
38
+ }
39
+ let o1 = v[a + 1] + b1;
40
+ if (o0 >= 0x100000000) {
41
+ o1++;
42
+ }
43
+ v[a] = o0;
44
+ v[a + 1] = o1;
45
+ }
46
+ // G Mixing function
47
+ // The ROTRs are inlined for speed
48
+ function B2B_G(v, mw, a, b, c, d, ix, iy) {
49
+ const x0 = mw[ix];
50
+ const x1 = mw[ix + 1];
51
+ const y0 = mw[iy];
52
+ const y1 = mw[iy + 1];
53
+ ADD64AA(v, a, b); // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s
54
+ ADD64AC(v, a, x0, x1); // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits
55
+ // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits
56
+ let xor0 = v[d] ^ v[a];
57
+ let xor1 = v[d + 1] ^ v[a + 1];
58
+ v[d] = xor1;
59
+ v[d + 1] = xor0;
60
+ ADD64AA(v, c, d);
61
+ // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits
62
+ xor0 = v[b] ^ v[c];
63
+ xor1 = v[b + 1] ^ v[c + 1];
64
+ v[b] = (xor0 >>> 24) ^ (xor1 << 8);
65
+ v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8);
66
+ ADD64AA(v, a, b);
67
+ ADD64AC(v, a, y0, y1);
68
+ // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits
69
+ xor0 = v[d] ^ v[a];
70
+ xor1 = v[d + 1] ^ v[a + 1];
71
+ v[d] = (xor0 >>> 16) ^ (xor1 << 16);
72
+ v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16);
73
+ ADD64AA(v, c, d);
74
+ // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits
75
+ xor0 = v[b] ^ v[c];
76
+ xor1 = v[b + 1] ^ v[c + 1];
77
+ v[b] = (xor1 >>> 31) ^ (xor0 << 1);
78
+ v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1);
79
+ }
80
+ // Initialization Vector
81
+ // prettier-ignore
82
+ const BLAKE2B_IV32 = new Uint32Array([
83
+ 0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372, 0x5f1d36f1, 0xa54ff53a,
84
+ 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c, 0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19,
85
+ ]);
86
+ // prettier-ignore
87
+ const SIGMA8 = [
88
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11,
89
+ 7, 5, 3, 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4, 7, 9, 3, 1, 13, 12, 11, 14, 2, 6,
90
+ 5, 10, 4, 0, 15, 8, 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13, 2, 12, 6, 10, 0, 11, 8,
91
+ 3, 4, 13, 7, 5, 15, 14, 1, 9, 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11, 13, 11, 7, 14,
92
+ 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10, 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5, 10,
93
+ 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
94
+ 14, 15, 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,
95
+ ];
96
+ // These are offsets into a uint64 buffer.
97
+ // Multiply them all by 2 to make them offsets into a uint32 buffer,
98
+ // because this is Javascript and we don't have uint64s
99
+ const SIGMA82 = new Uint8Array(SIGMA8.map(function (x) {
100
+ return x * 2;
101
+ }));
102
+ function F(h, m, t, f, rounds) {
103
+ const v = new Uint32Array(32);
104
+ let i = 0;
105
+ // init work variables
106
+ for (i = 0; i < 16; i++) {
107
+ v[i] = h[i];
108
+ v[i + 16] = BLAKE2B_IV32[i];
109
+ }
110
+ // 128 bits of offset
111
+ v[24] = v[24] ^ t[0];
112
+ v[25] = v[25] ^ t[1];
113
+ v[26] = v[26] ^ t[2];
114
+ v[27] = v[27] ^ t[3];
115
+ // last block flag set ?
116
+ if (f) {
117
+ v[28] = ~v[28];
118
+ v[29] = ~v[29];
119
+ }
120
+ // twelve rounds of mixing
121
+ // uncomment the DebugPrint calls to log the computation
122
+ // and match the RFC sample documentation
123
+ // util.debugPrint(' m[16]', m, 64)
124
+ for (i = 0; i < rounds; i++) {
125
+ // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)
126
+ const ri = (i % 10) * 16;
127
+ B2B_G(v, m, 0, 8, 16, 24, SIGMA82[ri + 0], SIGMA82[ri + 1]);
128
+ B2B_G(v, m, 2, 10, 18, 26, SIGMA82[ri + 2], SIGMA82[ri + 3]);
129
+ B2B_G(v, m, 4, 12, 20, 28, SIGMA82[ri + 4], SIGMA82[ri + 5]);
130
+ B2B_G(v, m, 6, 14, 22, 30, SIGMA82[ri + 6], SIGMA82[ri + 7]);
131
+ B2B_G(v, m, 0, 10, 20, 30, SIGMA82[ri + 8], SIGMA82[ri + 9]);
132
+ B2B_G(v, m, 2, 12, 22, 24, SIGMA82[ri + 10], SIGMA82[ri + 11]);
133
+ B2B_G(v, m, 4, 14, 16, 26, SIGMA82[ri + 12], SIGMA82[ri + 13]);
134
+ B2B_G(v, m, 6, 8, 18, 28, SIGMA82[ri + 14], SIGMA82[ri + 15]);
135
+ }
136
+ for (i = 0; i < 16; i++) {
137
+ h[i] = h[i] ^ v[i] ^ v[i + 16];
138
+ }
139
+ }
140
+ function precompile09(opts) {
141
+ const pName = (0, index_ts_1.getPrecompileName)('09');
142
+ const data = opts.data;
143
+ if (data.length !== 213) {
144
+ if (opts._debug !== undefined) {
145
+ opts._debug(`${pName} failed: OUT_OF_RANGE dataLength=${data.length}`);
146
+ }
147
+ return {
148
+ returnValue: new Uint8Array(0),
149
+ executionGasUsed: opts.gasLimit,
150
+ exceptionError: new errors_ts_1.EVMError(errors_ts_1.EVMError.errorMessages.OUT_OF_RANGE),
151
+ };
152
+ }
153
+ const lastByte = data.subarray(212, 213)[0];
154
+ if (lastByte !== 1 && lastByte !== 0) {
155
+ if (opts._debug !== undefined) {
156
+ opts._debug(`${pName} failed: OUT_OF_RANGE lastByte=${lastByte}`);
157
+ }
158
+ return {
159
+ returnValue: new Uint8Array(0),
160
+ executionGasUsed: opts.gasLimit,
161
+ exceptionError: new errors_ts_1.EVMError(errors_ts_1.EVMError.errorMessages.OUT_OF_RANGE),
162
+ };
163
+ }
164
+ const rounds = new DataView(data.buffer, data.byteOffset).getUint32(0);
165
+ const hRaw = new DataView(data.buffer, data.byteOffset + 4, 64);
166
+ const mRaw = new DataView(data.buffer, data.byteOffset + 68, 128);
167
+ const tRaw = new DataView(data.buffer, data.byteOffset + 196, 16);
168
+ // final
169
+ const f = lastByte === 1;
170
+ let gasUsed = opts.common.param('blake2RoundGas');
171
+ gasUsed *= BigInt(rounds);
172
+ if (!(0, util_ts_1.gasLimitCheck)(opts, gasUsed, pName)) {
173
+ return (0, evm_ts_1.OOGResult)(opts.gasLimit);
174
+ }
175
+ const h = new Uint32Array(16);
176
+ for (let i = 0; i < 16; i++) {
177
+ h[i] = hRaw.getUint32(i * 4, true);
178
+ }
179
+ const m = new Uint32Array(32);
180
+ for (let i = 0; i < 32; i++) {
181
+ m[i] = mRaw.getUint32(i * 4, true);
182
+ }
183
+ const t = new Uint32Array(4);
184
+ for (let i = 0; i < 4; i++) {
185
+ t[i] = tRaw.getUint32(i * 4, true);
186
+ }
187
+ F(h, m, t, f, rounds);
188
+ const output = new Uint8Array(64);
189
+ const outputView = new DataView(output.buffer);
190
+ for (let i = 0; i < 16; i++) {
191
+ outputView.setUint32(i * 4, h[i], true);
192
+ }
193
+ if (opts._debug !== undefined) {
194
+ opts._debug(`${pName} return hash=${(0, util_1.bytesToHex)(output)}`);
195
+ }
196
+ return {
197
+ executionGasUsed: gasUsed,
198
+ returnValue: output,
199
+ };
200
+ }
201
+ //# sourceMappingURL=09-blake2f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"09-blake2f.js","sourceRoot":"","sources":["../../../src/precompiles/09-blake2f.ts"],"names":[],"mappings":"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AAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IACjG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IAC/F,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAChG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;IACjG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EA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"}
@@ -0,0 +1,5 @@
1
+ import type { ExecResult } from '../types.ts';
2
+ import type { PrecompileInput } from './types.ts';
3
+ export declare const BLS_MODULUS: bigint;
4
+ export declare function precompile0a(opts: PrecompileInput): Promise<ExecResult>;
5
+ //# sourceMappingURL=0a-kzg-point-evaluation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"0a-kzg-point-evaluation.d.ts","sourceRoot":"","sources":["../../../src/precompiles/0a-kzg-point-evaluation.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,eAAO,MAAM,WAAW,QAEvB,CAAA;AAID,wBAAsB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAqE7E"}