@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":"constants.js","sourceRoot":"","sources":["../../../src/eof/constants.ts"],"names":[],"mappings":";AAAA,0EAA0E;;;AAE1E,0CAA0C;AAC7B,QAAA,MAAM,GAAG,IAAI,CAAA;AACb,QAAA,KAAK,GAAG,IAAI,CAAA;AACZ,QAAA,OAAO,GAAG,IAAI,CAAA;AAE3B,qCAAqC;AACxB,QAAA,eAAe,GAAG,EAAE,CAAA,CAAC,2DAA2D;AAChF,QAAA,eAAe,GAAG,KAAK,CAAA,CAAC,8BAA8B;AAEtD,QAAA,SAAS,GAAG,IAAI,CAAA,CAAC,6BAA6B;AAC9C,QAAA,SAAS,GAAG,IAAI,CAAA,CAAC,4BAA4B;AAC7C,QAAA,cAAc,GAAG,IAAI,CAAA,CAAC,2EAA2E;AACjG,QAAA,SAAS,GAAG,IAAI,CAAA,CAAC,6BAA6B;AAC9C,QAAA,UAAU,GAAG,IAAI,CAAA,CAAC,4BAA4B;AAE9C,QAAA,QAAQ,GAAG,MAAM,CAAA,CAAC,gCAAgC;AAClD,QAAA,QAAQ,GAAG,MAAM,CAAA,CAAC,gCAAgC;AAClD,QAAA,YAAY,GAAG,CAAC,CAAA,CAAC,uEAAuE;AAExF,QAAA,QAAQ,GAAG,MAAM,CAAA,CAAC,+BAA+B;AAEjD,QAAA,aAAa,GAAG,CAAC,CAAA,CAAC,+DAA+D;AAEjF,QAAA,aAAa,GAAG,MAAM,CAAA,CAAC,oCAAoC;AAC3D,QAAA,aAAa,GAAG,MAAM,CAAA,CAAC,oCAAoC;AAE3D,QAAA,kBAAkB,GAAG,CAAC,CAAA,CAAC,0CAA0C;AAE9E,oEAAoE;AACvD,QAAA,UAAU,GAAG,IAAI,CAAA,CAAC,2CAA2C;AAC7D,QAAA,WAAW,GAAG,IAAI,CAAA,CAAC,4CAA4C;AAC5E,qEAAqE;AACrE,kIAAkI;AACrH,QAAA,gBAAgB,GAAG,MAAM,CAAA,CAAC,mGAAmG"}
@@ -0,0 +1,87 @@
1
+ import { ContainerSectionType } from './verify.ts';
2
+ import type { EVM } from '../evm.ts';
3
+ export type EOFContainerMode = (typeof EOFContainerMode)[keyof typeof EOFContainerMode];
4
+ export declare const EOFContainerMode: {
5
+ readonly Default: "default";
6
+ readonly Initmode: "initMode";
7
+ readonly TxInitmode: "txInitMode";
8
+ };
9
+ /**
10
+ * The EOFHeader, describing the header of the EOF container
11
+ */
12
+ declare class EOFHeader {
13
+ typeSize: number;
14
+ codeSizes: number[];
15
+ containerSizes: number[];
16
+ dataSize: number;
17
+ dataSizePtr: number;
18
+ buffer: Uint8Array;
19
+ private codeStartPos;
20
+ /**
21
+ * Create an EOF header. Performs various validation checks inside the constructor
22
+ * @param input either a raw header or a complete container
23
+ */
24
+ constructor(input: Uint8Array);
25
+ sections(): (number | number[])[];
26
+ sectionSizes(): number[];
27
+ getCodePosition(section: number): number;
28
+ getSectionFromProgramCounter(programCounter: number): number;
29
+ }
30
+ export interface TypeSection {
31
+ inputs: number;
32
+ outputs: number;
33
+ maxStackHeight: number;
34
+ }
35
+ /**
36
+ * The EOF body holds the contents of the EOF container, such as the code sections (bytecode),
37
+ * the subcontainers (EOF containers to be deployed via EOFCREATE) and the data section
38
+ */
39
+ declare class EOFBody {
40
+ typeSections: TypeSection[];
41
+ codeSections: Uint8Array[];
42
+ containerSections: Uint8Array[];
43
+ entireCode: Uint8Array;
44
+ dataSection: Uint8Array;
45
+ buffer: Uint8Array;
46
+ txCallData?: Uint8Array;
47
+ constructor(buf: Uint8Array, // Buffer of the body. This should be the entire body. It is not valid to pass an entire EOF container in here
48
+ header: EOFHeader, // EOFHeader corresponding to this body
49
+ eofMode?: EOFContainerMode, // Container mode of EOF
50
+ dataSectionAllowedSmaller?: boolean);
51
+ sections(): (Uint8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike>[] | TypeSection[])[];
52
+ size(): {
53
+ typeSize: number;
54
+ codeSize: number;
55
+ dataSize: number;
56
+ };
57
+ sectionSizes(): (number | number[])[];
58
+ }
59
+ /**
60
+ * Main constructor for the EOFContainer
61
+ */
62
+ export declare class EOFContainer {
63
+ header: EOFHeader;
64
+ body: EOFBody;
65
+ buffer: Uint8Array;
66
+ eofMode: EOFContainerMode;
67
+ /**
68
+ *
69
+ * @param buf Entire container buffer
70
+ * @param eofMode Container mode to validate the container on
71
+ * @param dataSectionAllowedSmaller `true` if the data section is allowed to be smaller than the data section size in the header
72
+ */
73
+ constructor(buf: Uint8Array, eofMode?: EOFContainerMode, dataSectionAllowedSmaller?: boolean);
74
+ }
75
+ /**
76
+ * This method validates the EOF. It also performs deeper validation of the body, such as stack/opcode validation
77
+ * This is ONLY necessary when trying to deploy contracts from a transaction: these can submit containers which are invalid
78
+ * Since all deployed EOF containers are valid by definition, `validateEOF` does not need to be called each time an EOF contract is called
79
+ * @param input Full container buffer
80
+ * @param evm EVM, to read opcodes from
81
+ * @param containerMode Container mode to validate on
82
+ * @param eofMode EOF mode to run in
83
+ * @returns The decoded EOF container
84
+ */
85
+ export declare function validateEOF(input: Uint8Array, evm: EVM, containerMode?: ContainerSectionType, eofMode?: EOFContainerMode): EOFContainer;
86
+ export {};
87
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/eof/container.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,oBAAoB,EAAc,MAAM,aAAa,CAAA;AAE9D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAYpC,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAA;AAEvF,eAAO,MAAM,gBAAgB;;;;CAInB,CAAA;AAyFV;;GAEG;AACH,cAAM,SAAS;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;IAElB,OAAO,CAAC,YAAY,CAAU;IAE9B;;;OAGG;gBACS,KAAK,EAAE,UAAU;IAmG7B,QAAQ;IAGR,YAAY;IAMZ,eAAe,CAAC,OAAO,EAAE,MAAM;IAc/B,4BAA4B,CAAC,cAAc,EAAE,MAAM;CAsBpD;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,cAAM,OAAO;IACX,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,YAAY,EAAE,UAAU,EAAE,CAAA;IAC1B,iBAAiB,EAAE,UAAU,EAAE,CAAA;IAC/B,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,UAAU,CAAA;IACvB,MAAM,EAAE,UAAU,CAAA;IAElB,UAAU,CAAC,EAAE,UAAU,CAAA;gBAIrB,GAAG,EAAE,UAAU,EAAE,8GAA8G;IAC/H,MAAM,EAAE,SAAS,EAAE,uCAAuC;IAC1D,OAAO,GAAE,gBAA2C,EAAE,wBAAwB;IAC9E,yBAAyB,UAAQ;IA4FnC,QAAQ;IAGR,IAAI;;;;;IAOJ,YAAY;CAOb;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,MAAM,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,gBAAgB,CAAA;IAEzB;;;;;OAKG;gBAED,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,gBAA2C,EACpD,yBAAyB,UAAQ;CAYpC;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,GAAG,EACR,aAAa,GAAE,oBAAuD,EACtE,OAAO,GAAE,gBAA2C,gBAerD"}
@@ -0,0 +1,380 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EOFContainer = exports.EOFContainerMode = void 0;
4
+ exports.validateEOF = validateEOF;
5
+ const util_1 = require("@feelyourprotocol/util");
6
+ const constants_ts_1 = require("./constants.js");
7
+ const errors_ts_1 = require("./errors.js");
8
+ const verify_ts_1 = require("./verify.js");
9
+ exports.EOFContainerMode = {
10
+ Default: 'default', // Default container validation
11
+ Initmode: 'initMode', // Initmode container validation (for subcontainers pointed to by EOFCreate)
12
+ TxInitmode: 'txInitMode', // Tx initmode container validation (for txs deploying EOF contracts)
13
+ };
14
+ // The StreamReader is a helper class to help reading byte arrays
15
+ class StreamReader {
16
+ constructor(stream) {
17
+ this.data = stream;
18
+ this.ptr = 0;
19
+ }
20
+ /**
21
+ * Read `amount` bytes from the stream. Throws when trying to read out of bounds with an optional error string.
22
+ * This also updates the internal pointer
23
+ * @param amount Bytes to read
24
+ * @param errorStr Optional error string to throw when trying to read out-of-bounds
25
+ * @returns The byte array with length `amount`
26
+ */
27
+ readBytes(amount, errorStr) {
28
+ const end = this.ptr + amount;
29
+ if (end > this.data.length) {
30
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.OUT_OF_BOUNDS, this.ptr, errorStr);
31
+ }
32
+ const ptr = this.ptr;
33
+ this.ptr += amount;
34
+ return this.data.slice(ptr, end);
35
+ }
36
+ /**
37
+ * Reads an Uint8. Also updates the pointer.
38
+ * @param errorStr Optional error string
39
+ * @returns The uint8
40
+ */
41
+ readUint(errorStr) {
42
+ if (this.ptr >= this.data.length) {
43
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.OUT_OF_BOUNDS, this.ptr, errorStr);
44
+ }
45
+ return this.data[this.ptr++];
46
+ }
47
+ /**
48
+ * Verify that the current uint8 pointed to by the pointer is the expected uint8
49
+ * Also updates the pointer
50
+ * @param expect The uint to expect
51
+ * @param errorStr Optional error string when the read uint is not the expected uint
52
+ */
53
+ verifyUint(expect, errorStr) {
54
+ if (this.readUint() !== expect) {
55
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.VERIFY_UINT, this.ptr - 1, errorStr);
56
+ }
57
+ }
58
+ /**
59
+ * Same as readUint, except this reads an uint16
60
+ * @param errorStr - Optional error message to include in thrown validation errors
61
+ * @returns Unsigned 16-bit integer read from the stream
62
+ */
63
+ readUint16(errorStr) {
64
+ const end = this.ptr + 2;
65
+ if (end > this.data.length) {
66
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.OUT_OF_BOUNDS, this.ptr, errorStr);
67
+ }
68
+ const ptr = this.ptr;
69
+ this.ptr += 2;
70
+ return new DataView(this.data.buffer).getUint16(ptr);
71
+ }
72
+ /**
73
+ * Get the current pointer of the stream
74
+ * @returns The pointer
75
+ */
76
+ getPtr() {
77
+ return this.ptr;
78
+ }
79
+ // Get the remainder bytes of the current stream
80
+ readRemainder() {
81
+ return this.data.slice(this.ptr);
82
+ }
83
+ // Returns `true` if the stream is fully read, or false if there are dangling bytes
84
+ isAtEnd() {
85
+ return this.ptr === this.data.length;
86
+ }
87
+ }
88
+ // TODO add initcode flags (isEOFContract)
89
+ // TODO validation: mark sections as either initcode or runtime code to validate
90
+ /**
91
+ * The EOFHeader, describing the header of the EOF container
92
+ */
93
+ class EOFHeader {
94
+ /**
95
+ * Create an EOF header. Performs various validation checks inside the constructor
96
+ * @param input either a raw header or a complete container
97
+ */
98
+ constructor(input) {
99
+ if (input.length > constants_ts_1.MAX_HEADER_SIZE) {
100
+ throw (0, util_1.EthereumJSErrorWithoutCode)('err: container size more than maximum valid size');
101
+ }
102
+ const stream = new StreamReader(input);
103
+ // Verify that the header starts with 0xEF0001
104
+ stream.verifyUint(constants_ts_1.FORMAT, errors_ts_1.EOFErrorMessage.FORMAT);
105
+ stream.verifyUint(constants_ts_1.MAGIC, errors_ts_1.EOFErrorMessage.MAGIC);
106
+ stream.verifyUint(constants_ts_1.VERSION, errors_ts_1.EOFErrorMessage.VERSION);
107
+ if (input.length < 15) {
108
+ throw (0, util_1.EthereumJSErrorWithoutCode)('err: container size less than minimum valid size');
109
+ }
110
+ // Verify that the types section is present and its length is valid
111
+ stream.verifyUint(constants_ts_1.KIND_TYPE, errors_ts_1.EOFErrorMessage.KIND_TYPE);
112
+ const typeSize = stream.readUint16(errors_ts_1.EOFErrorMessage.TYPE_SIZE);
113
+ if (typeSize < constants_ts_1.TYPE_MIN) {
114
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.INVALID_TYPE_SIZE, typeSize);
115
+ }
116
+ if (typeSize % constants_ts_1.TYPE_DIVISOR !== 0) {
117
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.INVALID_TYPE_SIZE, typeSize);
118
+ }
119
+ if (typeSize > constants_ts_1.TYPE_MAX) {
120
+ throw (0, util_1.EthereumJSErrorWithoutCode)(`err: number of code sections must not exceed 1024 (got ${typeSize})`);
121
+ }
122
+ // Verify that the code section is present and its size is valid
123
+ stream.verifyUint(constants_ts_1.KIND_CODE, errors_ts_1.EOFErrorMessage.KIND_CODE);
124
+ const codeSize = stream.readUint16(errors_ts_1.EOFErrorMessage.CODE_SIZE);
125
+ if (codeSize < constants_ts_1.CODE_MIN) {
126
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.MIN_CODE_SECTIONS);
127
+ }
128
+ if (codeSize !== typeSize / constants_ts_1.TYPE_DIVISOR) {
129
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.TYPE_SECTIONS, typeSize / constants_ts_1.TYPE_DIVISOR, codeSize);
130
+ }
131
+ // Read the actual code sizes in the code section and verify that each section has the minimum size
132
+ const codeSizes = [];
133
+ for (let i = 0; i < codeSize; i++) {
134
+ const codeSectionSize = stream.readUint16(errors_ts_1.EOFErrorMessage.CODE_SECTION);
135
+ if (codeSectionSize < constants_ts_1.CODE_SIZE_MIN) {
136
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.CODE_SECTION_SIZE);
137
+ }
138
+ codeSizes.push(codeSectionSize);
139
+ }
140
+ // Check if there are container sections
141
+ let nextSection = stream.readUint();
142
+ const containerSizes = [];
143
+ if (nextSection === constants_ts_1.KIND_CONTAINER) {
144
+ // The optional container section is present, validate that the size is within bounds
145
+ const containerSectionSize = stream.readUint16(errors_ts_1.EOFErrorMessage.CONTAINER_SIZE);
146
+ if (containerSectionSize < constants_ts_1.CONTAINER_MIN) {
147
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.CONTAINER_SECTION_SIZE);
148
+ }
149
+ if (containerSectionSize > constants_ts_1.CONTAINER_MAX) {
150
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.CONTAINER_SECTION_SIZE);
151
+ }
152
+ // Read the actual container sections and validate that each section has the minimum size
153
+ for (let i = 0; i < containerSectionSize; i++) {
154
+ const containerSize = stream.readUint16(errors_ts_1.EOFErrorMessage.CONTAINER_SECTION);
155
+ if (containerSize < constants_ts_1.CONTAINER_SIZE_MIN) {
156
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.CONTAINER_SECTION_MIN);
157
+ }
158
+ containerSizes.push(containerSize);
159
+ }
160
+ nextSection = stream.readUint();
161
+ }
162
+ // Verify that the next section is of the data type
163
+ if (nextSection !== constants_ts_1.KIND_DATA) {
164
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.KIND_DATA);
165
+ }
166
+ this.dataSizePtr = stream.getPtr();
167
+ const dataSize = stream.readUint16(errors_ts_1.EOFErrorMessage.DATA_SIZE);
168
+ // Verify that the header ends with the TERMINATOR byte
169
+ stream.verifyUint(constants_ts_1.TERMINATOR, errors_ts_1.EOFErrorMessage.TERMINATOR);
170
+ // Write all values to the header object
171
+ this.typeSize = typeSize;
172
+ this.codeSizes = codeSizes;
173
+ this.containerSizes = containerSizes;
174
+ this.dataSize = dataSize;
175
+ // Slice the input such that `this.buffer` is now the complete header
176
+ // If there are dangling bytes in the stream, this is OK: this is the body section of the container
177
+ this.buffer = input.slice(0, stream.getPtr());
178
+ const relativeOffset = this.buffer.length + this.typeSize;
179
+ // Write the start of the first code section into `codeStartPos`
180
+ // Note: in EVM, if one would set the Program Counter to this byte, it would start executing the bytecode of the first code section
181
+ this.codeStartPos = [relativeOffset];
182
+ }
183
+ sections() {
184
+ return [this.typeSize, this.codeSizes, this.containerSizes, this.dataSize];
185
+ }
186
+ sectionSizes() {
187
+ return [1, this.codeSizes.length, this.containerSizes.length, 1];
188
+ }
189
+ // Returns the code position in the container for the requested section
190
+ // Setting the Program Counter in the EVM to a number of this array would start executing the bytecode of the indexed section
191
+ getCodePosition(section) {
192
+ if (this.codeStartPos[section]) {
193
+ return this.codeStartPos[section];
194
+ }
195
+ const start = this.codeStartPos.length;
196
+ let offset = this.codeStartPos[start - 1];
197
+ for (let i = start; i <= section; i++) {
198
+ offset += this.codeSizes[i - 1];
199
+ this.codeStartPos[i] = offset;
200
+ }
201
+ return offset;
202
+ }
203
+ // Returns the code section for a given program counter position
204
+ getSectionFromProgramCounter(programCounter) {
205
+ const lastIndex = this.codeSizes.length - 1;
206
+ const lastStart = this.getCodePosition(lastIndex);
207
+ const lastEnd = lastStart + this.codeSizes[lastIndex];
208
+ if (programCounter < 0 || programCounter > lastEnd) {
209
+ // If code position is outside the beginning or end of the code sections, return 0
210
+ throw (0, util_1.EthereumJSErrorWithoutCode)('program counter out of bounds');
211
+ }
212
+ if (this.codeStartPos.length < this.codeSizes.length) {
213
+ this.getCodePosition(this.codeSizes.length - 1); // initialize code positions if uninitialized
214
+ }
215
+ for (let i = 0; i < this.codeSizes.length; i++) {
216
+ if (programCounter < this.codeStartPos[i] + this.codeSizes[i]) {
217
+ // We've found our section if the code position is less than the end of the current code section
218
+ return i;
219
+ }
220
+ }
221
+ // This shouldn't happen so just error
222
+ throw (0, util_1.EthereumJSErrorWithoutCode)(`Invalid program counter value: ${programCounter}`);
223
+ }
224
+ }
225
+ /**
226
+ * The EOF body holds the contents of the EOF container, such as the code sections (bytecode),
227
+ * the subcontainers (EOF containers to be deployed via EOFCREATE) and the data section
228
+ */
229
+ class EOFBody {
230
+ // and these are used for the CALLDATA in the EVM when trying to create a contract via a transaction, and the deployment code is an EOF container
231
+ constructor(buf, // Buffer of the body. This should be the entire body. It is not valid to pass an entire EOF container in here
232
+ header, // EOFHeader corresponding to this body
233
+ eofMode = exports.EOFContainerMode.Default, // Container mode of EOF
234
+ dataSectionAllowedSmaller = false) {
235
+ const stream = new StreamReader(buf);
236
+ const typeSections = [];
237
+ // Read and parse each type section, and validate that the type section values are within valid bounds
238
+ for (let i = 0; i < header.typeSize / 4; i++) {
239
+ const inputs = stream.readUint(errors_ts_1.EOFErrorMessage.INPUTS);
240
+ const outputs = stream.readUint(errors_ts_1.EOFErrorMessage.OUTPUTS);
241
+ const maxStackHeight = stream.readUint16(errors_ts_1.EOFErrorMessage.MAX_STACK_HEIGHT);
242
+ if (i === 0) {
243
+ if (inputs !== 0) {
244
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.CODE0_INPUTS);
245
+ }
246
+ if (outputs !== 0x80) {
247
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.CODE0_OUTPUTS);
248
+ }
249
+ }
250
+ if (inputs > constants_ts_1.INPUTS_MAX) {
251
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.MAX_INPUTS, i, inputs);
252
+ }
253
+ if (outputs > constants_ts_1.OUTPUTS_MAX) {
254
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.MAX_OUTPUTS, i, outputs);
255
+ }
256
+ if (maxStackHeight > constants_ts_1.MAX_STACK_HEIGHT) {
257
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.MAX_STACK_HEIGHT_LIMIT, i, maxStackHeight);
258
+ }
259
+ typeSections.push({
260
+ inputs,
261
+ outputs,
262
+ maxStackHeight,
263
+ });
264
+ }
265
+ // Read each code section
266
+ const codeStartPtr = stream.getPtr();
267
+ const codes = [];
268
+ for (const [i, codeSize] of header.codeSizes.entries()) {
269
+ try {
270
+ const code = stream.readBytes(codeSize);
271
+ codes.push(code);
272
+ }
273
+ catch {
274
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.CODE_SECTION, i);
275
+ }
276
+ }
277
+ // Write the entire code section to the entireCodeSection
278
+ const entireCodeSection = buf.slice(codeStartPtr, stream.getPtr());
279
+ // Read all raw subcontainers and push those to the containers array
280
+ const containers = [];
281
+ for (const [i, containerSize] of header.containerSizes.entries()) {
282
+ try {
283
+ const container = stream.readBytes(containerSize);
284
+ containers.push(container);
285
+ }
286
+ catch {
287
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.CONTAINER_SECTION, i);
288
+ }
289
+ }
290
+ // Data section of the body
291
+ // Note: for EOF containers in Initmode (these are Subcontainers) it is allowed
292
+ // to have a data section of size lower than what is written in the header
293
+ // For details, see "Data section lifecycle" of EIP 7620
294
+ let dataSection;
295
+ // Edge case: deployment code validation
296
+ if (eofMode !== exports.EOFContainerMode.Initmode && !dataSectionAllowedSmaller) {
297
+ dataSection = stream.readBytes(header.dataSize, errors_ts_1.EOFErrorMessage.DATA_SECTION);
298
+ if (eofMode === exports.EOFContainerMode.Default) {
299
+ if (!stream.isAtEnd()) {
300
+ // If there are dangling bytes in default container mode, this is invalid
301
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.DANGLING_BYTES);
302
+ }
303
+ }
304
+ else {
305
+ // Tx init mode: the remaining bytes (if any) are used as CALLDATA in the EVM, in case of a Tx init
306
+ this.txCallData = stream.readRemainder();
307
+ }
308
+ }
309
+ else {
310
+ dataSection = stream.readRemainder();
311
+ if (dataSection.length > header.dataSize) {
312
+ (0, errors_ts_1.validationError)(errors_ts_1.EOFErrorMessage.DANGLING_BYTES);
313
+ }
314
+ }
315
+ // Write all data to the object
316
+ this.typeSections = typeSections;
317
+ this.codeSections = codes;
318
+ this.containerSections = containers;
319
+ this.entireCode = entireCodeSection;
320
+ this.dataSection = dataSection;
321
+ this.buffer = buf;
322
+ }
323
+ sections() {
324
+ return [this.typeSections, this.codeSections, this.dataSection];
325
+ }
326
+ size() {
327
+ return {
328
+ typeSize: this.typeSections.length,
329
+ codeSize: this.codeSections.length,
330
+ dataSize: this.dataSection.length,
331
+ };
332
+ }
333
+ sectionSizes() {
334
+ return [
335
+ this.typeSections.map(() => 4),
336
+ this.codeSections.map((b) => b.length),
337
+ this.dataSection.length,
338
+ ];
339
+ }
340
+ }
341
+ /**
342
+ * Main constructor for the EOFContainer
343
+ */
344
+ class EOFContainer {
345
+ /**
346
+ *
347
+ * @param buf Entire container buffer
348
+ * @param eofMode Container mode to validate the container on
349
+ * @param dataSectionAllowedSmaller `true` if the data section is allowed to be smaller than the data section size in the header
350
+ */
351
+ constructor(buf, eofMode = exports.EOFContainerMode.Default, dataSectionAllowedSmaller = false) {
352
+ this.eofMode = eofMode;
353
+ this.header = new EOFHeader(buf);
354
+ this.body = new EOFBody(buf.slice(this.header.buffer.length), this.header, eofMode, dataSectionAllowedSmaller);
355
+ this.buffer = buf;
356
+ }
357
+ }
358
+ exports.EOFContainer = EOFContainer;
359
+ /**
360
+ * This method validates the EOF. It also performs deeper validation of the body, such as stack/opcode validation
361
+ * This is ONLY necessary when trying to deploy contracts from a transaction: these can submit containers which are invalid
362
+ * Since all deployed EOF containers are valid by definition, `validateEOF` does not need to be called each time an EOF contract is called
363
+ * @param input Full container buffer
364
+ * @param evm EVM, to read opcodes from
365
+ * @param containerMode Container mode to validate on
366
+ * @param eofMode EOF mode to run in
367
+ * @returns The decoded EOF container
368
+ */
369
+ function validateEOF(input, evm, containerMode = verify_ts_1.ContainerSectionType.RuntimeCode, eofMode = exports.EOFContainerMode.Default) {
370
+ const container = new EOFContainer(input, eofMode, containerMode === verify_ts_1.ContainerSectionType.DeploymentCode);
371
+ const containerMap = (0, verify_ts_1.verifyCode)(container, evm, containerMode);
372
+ // Recursively validate the containerSections
373
+ for (let i = 0; i < container.body.containerSections.length; i++) {
374
+ const subContainer = container.body.containerSections[i];
375
+ const mode = containerMap.get(i);
376
+ validateEOF(subContainer, evm, mode);
377
+ }
378
+ return container;
379
+ }
380
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/eof/container.ts"],"names":[],"mappings":";;;AA2dA,kCAmBC;AA9eD,2CAA6D;AAE7D,iDAqBuB;AACvB,2CAA8D;AAC9D,2CAA8D;AAgBjD,QAAA,gBAAgB,GAAG;IAC9B,OAAO,EAAE,SAAS,EAAE,+BAA+B;IACnD,QAAQ,EAAE,UAAU,EAAE,4EAA4E;IAClG,UAAU,EAAE,YAAY,EAAE,qEAAqE;CACvF,CAAA;AAEV,iEAAiE;AACjE,MAAM,YAAY;IAGhB,YAAY,MAAkB;QAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAA;QAClB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,MAAc,EAAE,QAAiB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,CAAA;QAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3B,IAAA,2BAAe,EAAC,2BAAe,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACpE,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QACpB,IAAI,CAAC,GAAG,IAAI,MAAM,CAAA;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAAiB;QACxB,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,IAAA,2BAAe,EAAC,2BAAe,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACpE,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,MAAc,EAAE,QAAiB;QAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAA,2BAAe,EAAC,2BAAe,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,QAAiB;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;QACxB,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3B,IAAA,2BAAe,EAAC,2BAAe,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACpE,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QACpB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QACb,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACtD,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED,gDAAgD;IAChD,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;IAED,mFAAmF;IACnF,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;IACtC,CAAC;CACF;AAED,0CAA0C;AAC1C,gFAAgF;AAEhF;;GAEG;AACH,MAAM,SAAS;IAUb;;;OAGG;IACH,YAAY,KAAiB;QAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,8BAAe,EAAE,CAAC;YACnC,MAAM,IAAA,iCAA0B,EAAC,kDAAkD,CAAC,CAAA;QACtF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAA;QACtC,8CAA8C;QAC9C,MAAM,CAAC,UAAU,CAAC,qBAAM,EAAE,2BAAe,CAAC,MAAM,CAAC,CAAA;QACjD,MAAM,CAAC,UAAU,CAAC,oBAAK,EAAE,2BAAe,CAAC,KAAK,CAAC,CAAA;QAC/C,MAAM,CAAC,UAAU,CAAC,sBAAO,EAAE,2BAAe,CAAC,OAAO,CAAC,CAAA;QACnD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACtB,MAAM,IAAA,iCAA0B,EAAC,kDAAkD,CAAC,CAAA;QACtF,CAAC;QACD,mEAAmE;QACnE,MAAM,CAAC,UAAU,CAAC,wBAAS,EAAE,2BAAe,CAAC,SAAS,CAAC,CAAA;QACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,2BAAe,CAAC,SAAS,CAAC,CAAA;QAC7D,IAAI,QAAQ,GAAG,uBAAQ,EAAE,CAAC;YACxB,IAAA,2BAAe,EAAC,2BAAe,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;QAC9D,CAAC;QACD,IAAI,QAAQ,GAAG,2BAAY,KAAK,CAAC,EAAE,CAAC;YAClC,IAAA,2BAAe,EAAC,2BAAe,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;QAC9D,CAAC;QACD,IAAI,QAAQ,GAAG,uBAAQ,EAAE,CAAC;YACxB,MAAM,IAAA,iCAA0B,EAC9B,0DAA0D,QAAQ,GAAG,CACtE,CAAA;QACH,CAAC;QACD,gEAAgE;QAChE,MAAM,CAAC,UAAU,CAAC,wBAAS,EAAE,2BAAe,CAAC,SAAS,CAAC,CAAA;QACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,2BAAe,CAAC,SAAS,CAAC,CAAA;QAC7D,IAAI,QAAQ,GAAG,uBAAQ,EAAE,CAAC;YACxB,IAAA,2BAAe,EAAC,2BAAe,CAAC,iBAAiB,CAAC,CAAA;QACpD,CAAC;QACD,IAAI,QAAQ,KAAK,QAAQ,GAAG,2BAAY,EAAE,CAAC;YACzC,IAAA,2BAAe,EAAC,2BAAe,CAAC,aAAa,EAAE,QAAQ,GAAG,2BAAY,EAAE,QAAQ,CAAC,CAAA;QACnF,CAAC;QACD,mGAAmG;QACnG,MAAM,SAAS,GAAG,EAAE,CAAA;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,2BAAe,CAAC,YAAY,CAAC,CAAA;YACvE,IAAI,eAAe,GAAG,4BAAa,EAAE,CAAC;gBACpC,IAAA,2BAAe,EAAC,2BAAe,CAAC,iBAAiB,CAAC,CAAA;YACpD,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACjC,CAAC;QAED,wCAAwC;QACxC,IAAI,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;QACnC,MAAM,cAAc,GAAa,EAAE,CAAA;QACnC,IAAI,WAAW,KAAK,6BAAc,EAAE,CAAC;YACnC,qFAAqF;YACrF,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,2BAAe,CAAC,cAAc,CAAC,CAAA;YAE9E,IAAI,oBAAoB,GAAG,4BAAa,EAAE,CAAC;gBACzC,IAAA,2BAAe,EAAC,2BAAe,CAAC,sBAAsB,CAAC,CAAA;YACzD,CAAC;YACD,IAAI,oBAAoB,GAAG,4BAAa,EAAE,CAAC;gBACzC,IAAA,2BAAe,EAAC,2BAAe,CAAC,sBAAsB,CAAC,CAAA;YACzD,CAAC;YAED,yFAAyF;YACzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,2BAAe,CAAC,iBAAiB,CAAC,CAAA;gBAE1E,IAAI,aAAa,GAAG,iCAAkB,EAAE,CAAC;oBACvC,IAAA,2BAAe,EAAC,2BAAe,CAAC,qBAAqB,CAAC,CAAA;gBACxD,CAAC;gBAED,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACpC,CAAC;YAED,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;QACjC,CAAC;QAED,mDAAmD;QACnD,IAAI,WAAW,KAAK,wBAAS,EAAE,CAAC;YAC9B,IAAA,2BAAe,EAAC,2BAAe,CAAC,SAAS,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;QAElC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,2BAAe,CAAC,SAAS,CAAC,CAAA;QAE7D,uDAAuD;QACvD,MAAM,CAAC,UAAU,CAAC,yBAAU,EAAE,2BAAe,CAAC,UAAU,CAAC,CAAA;QAEzD,wCAAwC;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,qEAAqE;QACrE,mGAAmG;QACnG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;QAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;QACzD,gEAAgE;QAChE,mIAAmI;QACnI,IAAI,CAAC,YAAY,GAAG,CAAC,cAAc,CAAC,CAAA;IACtC,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC5E,CAAC;IACD,YAAY;QACV,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAClE,CAAC;IAED,uEAAuE;IACvE,6HAA6H;IAC7H,eAAe,CAAC,OAAe;QAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;QACtC,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QACzC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC/B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;QAC/B,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,gEAAgE;IAChE,4BAA4B,CAAC,cAAsB;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACrD,IAAI,cAAc,GAAG,CAAC,IAAI,cAAc,GAAG,OAAO,EAAE,CAAC;YACnD,kFAAkF;YAClF,MAAM,IAAA,iCAA0B,EAAC,+BAA+B,CAAC,CAAA;QACnE,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACrD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA,CAAC,6CAA6C;QAC/F,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,gGAAgG;gBAChG,OAAO,CAAC,CAAA;YACV,CAAC;QACH,CAAC;QACD,sCAAsC;QACtC,MAAM,IAAA,iCAA0B,EAAC,kCAAkC,cAAc,EAAE,CAAC,CAAA;IACtF,CAAC;CACF;AAQD;;;GAGG;AACH,MAAM,OAAO;IASX,iJAAiJ;IAEjJ,YACE,GAAe,EAAE,8GAA8G;IAC/H,MAAiB,EAAE,uCAAuC;IAC1D,UAA4B,wBAAgB,CAAC,OAAO,EAAE,wBAAwB;IAC9E,yBAAyB,GAAG,KAAK;QAEjC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,YAAY,GAAkB,EAAE,CAAA;QACtC,sGAAsG;QACtG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,2BAAe,CAAC,MAAM,CAAC,CAAA;YACtD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,2BAAe,CAAC,OAAO,CAAC,CAAA;YACxD,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,2BAAe,CAAC,gBAAgB,CAAC,CAAA;YAC1E,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACZ,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjB,IAAA,2BAAe,EAAC,2BAAe,CAAC,YAAY,CAAC,CAAA;gBAC/C,CAAC;gBACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,IAAA,2BAAe,EAAC,2BAAe,CAAC,aAAa,CAAC,CAAA;gBAChD,CAAC;YACH,CAAC;YACD,IAAI,MAAM,GAAG,yBAAU,EAAE,CAAC;gBACxB,IAAA,2BAAe,EAAC,2BAAe,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;YACxD,CAAC;YACD,IAAI,OAAO,GAAG,0BAAW,EAAE,CAAC;gBAC1B,IAAA,2BAAe,EAAC,2BAAe,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;YAC1D,CAAC;YACD,IAAI,cAAc,GAAG,+BAAgB,EAAE,CAAC;gBACtC,IAAA,2BAAe,EAAC,2BAAe,CAAC,sBAAsB,EAAE,CAAC,EAAE,cAAc,CAAC,CAAA;YAC5E,CAAC;YACD,YAAY,CAAC,IAAI,CAAC;gBAChB,MAAM;gBACN,OAAO;gBACP,cAAc;aACf,CAAC,CAAA;QACJ,CAAC;QACD,yBAAyB;QACzB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;QACpC,MAAM,KAAK,GAAG,EAAE,CAAA;QAChB,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;gBACvC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,IAAA,2BAAe,EAAC,2BAAe,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;QACD,yDAAyD;QACzD,MAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;QAElE,oEAAoE;QACpE,MAAM,UAAU,GAAG,EAAE,CAAA;QACrB,KAAK,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;YACjE,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;gBACjD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,IAAA,2BAAe,EAAC,2BAAe,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;YACvD,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,+EAA+E;QAC/E,0EAA0E;QAC1E,wDAAwD;QACxD,IAAI,WAAuB,CAAA;QAE3B,wCAAwC;QACxC,IAAI,OAAO,KAAK,wBAAgB,CAAC,QAAQ,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACxE,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,2BAAe,CAAC,YAAY,CAAC,CAAA;YAE7E,IAAI,OAAO,KAAK,wBAAgB,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;oBACtB,yEAAyE;oBACzE,IAAA,2BAAe,EAAC,2BAAe,CAAC,cAAc,CAAC,CAAA;gBACjD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,mGAAmG;gBACnG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAA;YAC1C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,MAAM,CAAC,aAAa,EAAE,CAAA;YAEpC,IAAI,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACzC,IAAA,2BAAe,EAAC,2BAAe,CAAC,cAAc,CAAC,CAAA;YACjD,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QACzB,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAA;QACnC,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAA;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;IACnB,CAAC;IACD,QAAQ;QACN,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACjE,CAAC;IACD,IAAI;QACF,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YAClC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YAClC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;SAClC,CAAA;IACH,CAAC;IACD,YAAY;QACV,OAAO;YACL,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,MAAM;SACxB,CAAA;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAa,YAAY;IAMvB;;;;;OAKG;IACH,YACE,GAAe,EACf,UAA4B,wBAAgB,CAAC,OAAO,EACpD,yBAAyB,GAAG,KAAK;QAEjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CACrB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EACpC,IAAI,CAAC,MAAM,EACX,OAAO,EACP,yBAAyB,CAC1B,CAAA;QACD,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;IACnB,CAAC;CACF;AA3BD,oCA2BC;AAED;;;;;;;;;GASG;AACH,SAAgB,WAAW,CACzB,KAAiB,EACjB,GAAQ,EACR,gBAAsC,gCAAoB,CAAC,WAAW,EACtE,UAA4B,wBAAgB,CAAC,OAAO;IAEpD,MAAM,SAAS,GAAG,IAAI,YAAY,CAChC,KAAK,EACL,OAAO,EACP,aAAa,KAAK,gCAAoB,CAAC,cAAc,CACtD,CAAA;IACD,MAAM,YAAY,GAAG,IAAA,sBAAU,EAAC,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,CAAA;IAC9D,6CAA6C;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjE,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;QACxD,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,CAAA;QACjC,WAAW,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -0,0 +1,66 @@
1
+ export type EOFErrorMessage = (typeof EOFErrorMessage)[keyof typeof EOFErrorMessage];
2
+ export declare const EOFErrorMessage: {
3
+ readonly OUT_OF_BOUNDS: "Trying to read out of bounds";
4
+ readonly VERIFY_UINT: "Uint does not match expected value ";
5
+ readonly VERIFY_BYTES: "Bytes do not match expected value";
6
+ readonly FORMAT: "err: invalid format";
7
+ readonly MAGIC: "err: invalid magic";
8
+ readonly VERSION: "err: invalid eof version";
9
+ readonly KIND_TYPE: "err: expected kind types";
10
+ readonly KIND_CODE: "err: expected kind code";
11
+ readonly KIND_DATA: "err: expected kind data";
12
+ readonly TERMINATOR: "err: expected terminator";
13
+ readonly TYPE_SIZE: "missing type size";
14
+ readonly INVALID_TYPE_SIZE: "err: type section size invalid";
15
+ readonly CODE_SIZE: "missing code size";
16
+ readonly CODE_SECTION_SIZE: "code section should be at least one byte";
17
+ readonly INVALID_CODE_SIZE: "code size does not match type size";
18
+ readonly DATA_SIZE: "missing data size";
19
+ readonly CONTAINER_SIZE: "missing container size";
20
+ readonly CONTAINER_SECTION_SIZE: "container section should at least contain one section and at most 255 sections";
21
+ readonly TYPE_SECTIONS: "err: mismatch of code sections count and type signatures";
22
+ readonly INPUTS: "expected inputs";
23
+ readonly OUTPUTS: "expected outputs";
24
+ readonly MAX_INPUTS: "inputs exceeds 127, the maximum, got: ";
25
+ readonly MAX_OUTPUTS: "outputs exceeds 127, the maximum, got: ";
26
+ readonly CODE0_INPUTS: "first code section should have 0 inputs";
27
+ readonly CODE0_OUTPUTS: "first code section should have 0x80 (terminating section) outputs";
28
+ readonly MAX_STACK_HEIGHT: "expected maxStackHeight";
29
+ readonly MAX_STACK_HEIGHT_LIMIT: "stack height limit of 1024 exceeded: ";
30
+ readonly MIN_CODE_SECTIONS: "should have at least 1 code section";
31
+ readonly CODE_SECTION: "expected a code section";
32
+ readonly DATA_SECTION: "Expected data section";
33
+ readonly CONTAINER_SECTION: "expected a container section";
34
+ readonly CONTAINER_SECTION_MIN: "container section should be at least 1 byte";
35
+ readonly INVALID_EOF_CREATE_TARGET: "EOFCREATE targets an undefined container";
36
+ readonly INVALID_RETURN_CONTRACT_TARGET: "RETURNCONTRACT targets an undefined container";
37
+ readonly CONTAINER_DOUBLE_TYPE: "Container is targeted by both EOFCREATE and RETURNCONTRACT";
38
+ readonly UNREACHABLE_CONTAINER_SECTIONS: "Unreachable containers (by both EOFCREATE and RETURNCONTRACT)";
39
+ readonly CONTAINER_TYPE_ERROR: "Container contains opcodes which this mode (deployment mode / init code / runtime mode) cannot have";
40
+ readonly DANGLING_BYTES: "got dangling bytes in body";
41
+ readonly INVALID_OPCODE: "invalid opcode";
42
+ readonly INVALID_TERMINATOR: "invalid terminating opcode";
43
+ readonly OPCODE_INTERMEDIATES_OOB: "invalid opcode: intermediates out-of-bounds";
44
+ readonly INVALID_RJUMP: "invalid rjump* target";
45
+ readonly INVALID_CALL_TARGET: "invalid callf/jumpf target";
46
+ readonly INVALID_CALLF_RETURNING: "invalid callf: calls to non-returning function";
47
+ readonly INVALID_STACK_HEIGHT: "invalid stack height";
48
+ readonly INVALID_JUMPF: "invalid jumpf target (output count)";
49
+ readonly INVALID_RETURNING_SECTION: "invalid returning code section: section is not returning";
50
+ readonly RETURNING_NO_RETURN: "invalid section: section should return but has no RETF/JUMP to return";
51
+ readonly RJUMPV_TABLE_SIZE0: "invalid RJUMPV: table size 0";
52
+ readonly UNREACHABLE_CODE_SECTIONS: "unreachable code sections";
53
+ readonly UNREACHABLE_CODE: "unreachable code (by forward jumps)";
54
+ readonly DATALOADN_OOB: "DATALOADN reading out of bounds";
55
+ readonly MAX_STACK_HEIGHT_VIOLATION: "Max stack height does not match the reported max stack height";
56
+ readonly STACK_UNDERFLOW: "Stack underflow";
57
+ readonly STACK_OVERFLOW: "Stack overflow";
58
+ readonly UNSTABLE_STACK: "Unstable stack (can reach stack under/overflow by jumps)";
59
+ readonly RETF_NO_RETURN: "Trying to return to undefined function";
60
+ readonly RETURN_STACK_OVERFLOW: "Return stack overflow";
61
+ readonly INVALID_EXTCALL_TARGET: "invalid extcall target: address > 20 bytes";
62
+ readonly INVALID_RETURN_CONTRACT_DATA_SIZE: "invalid RETURNCONTRACT: data size lower than expected";
63
+ };
64
+ export declare function validationErrorMsg(type: EOFErrorMessage, ...args: any): string;
65
+ export declare function validationError(type: EOFErrorMessage, ...args: any): never;
66
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/eof/errors.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAA;AAEpF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DlB,CAAA;AAEV,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,UAyDrE;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,KAAK,CAsF1E"}