@opcat-labs/cat-sdk 1.0.1

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 (369) hide show
  1. package/README.md +19 -0
  2. package/artifacts/.templates/cat20/cat20.scrypt.map +1 -0
  3. package/artifacts/.templates/cat20/cat20.scrypt.tpl +60 -0
  4. package/artifacts/.templates/cat20/cat20.transformer.json +9 -0
  5. package/artifacts/.templates/cat20/cat20Guard.scrypt.map +1 -0
  6. package/artifacts/.templates/cat20/cat20Guard.scrypt.tpl +117 -0
  7. package/artifacts/.templates/cat20/cat20Guard.transformer.json +9 -0
  8. package/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.map +1 -0
  9. package/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.tpl +36 -0
  10. package/artifacts/.templates/cat20/cat20GuardStateLib.transformer.json +7 -0
  11. package/artifacts/.templates/cat20/cat20StateLib.scrypt.map +1 -0
  12. package/artifacts/.templates/cat20/cat20StateLib.scrypt.tpl +21 -0
  13. package/artifacts/.templates/cat20/cat20StateLib.transformer.json +7 -0
  14. package/artifacts/.templates/cat20/minters/cat20ClosedMinter.scrypt.map +1 -0
  15. package/artifacts/.templates/cat20/minters/cat20ClosedMinter.scrypt.tpl +61 -0
  16. package/artifacts/.templates/cat20/minters/cat20ClosedMinter.transformer.json +9 -0
  17. package/artifacts/.templates/cat20/minters/cat20ClosedMinterMetadata.scrypt.map +1 -0
  18. package/artifacts/.templates/cat20/minters/cat20ClosedMinterMetadata.scrypt.tpl +11 -0
  19. package/artifacts/.templates/cat20/minters/cat20ClosedMinterMetadata.transformer.json +7 -0
  20. package/artifacts/.templates/cat20/minters/cat20OpenMinter.scrypt.map +1 -0
  21. package/artifacts/.templates/cat20/minters/cat20OpenMinter.scrypt.tpl +94 -0
  22. package/artifacts/.templates/cat20/minters/cat20OpenMinter.transformer.json +9 -0
  23. package/artifacts/.templates/cat20/minters/cat20OpenMinterMetadata.scrypt.map +1 -0
  24. package/artifacts/.templates/cat20/minters/cat20OpenMinterMetadata.scrypt.tpl +11 -0
  25. package/artifacts/.templates/cat20/minters/cat20OpenMinterMetadata.transformer.json +7 -0
  26. package/artifacts/.templates/cat20/types.scrypt.map +1 -0
  27. package/artifacts/.templates/cat20/types.scrypt.tpl +45 -0
  28. package/artifacts/.templates/cat20/types.transformer.json +7 -0
  29. package/artifacts/.templates/cat20Incinerator.scrypt.map +1 -0
  30. package/artifacts/.templates/cat20Incinerator.scrypt.tpl +31 -0
  31. package/artifacts/.templates/cat20Incinerator.transformer.json +9 -0
  32. package/artifacts/.templates/constants.scrypt.map +1 -0
  33. package/artifacts/.templates/constants.scrypt.tpl +16 -0
  34. package/artifacts/.templates/constants.transformer.json +7 -0
  35. package/artifacts/.templates/counter.scrypt.map +1 -0
  36. package/artifacts/.templates/counter.scrypt.tpl +36 -0
  37. package/artifacts/.templates/counter.transformer.json +9 -0
  38. package/artifacts/.templates/p2pkh.scrypt.map +1 -0
  39. package/artifacts/.templates/p2pkh.scrypt.tpl +11 -0
  40. package/artifacts/.templates/p2pkh.transformer.json +7 -0
  41. package/artifacts/.templates/types.scrypt.map +1 -0
  42. package/artifacts/.templates/types.scrypt.tpl +6 -0
  43. package/artifacts/.templates/types.transformer.json +7 -0
  44. package/artifacts/.templates/utils/ownerUtils.scrypt.map +1 -0
  45. package/artifacts/.templates/utils/ownerUtils.scrypt.tpl +26 -0
  46. package/artifacts/.templates/utils/ownerUtils.transformer.json +7 -0
  47. package/artifacts/.templates/utils/safeMath.scrypt.map +1 -0
  48. package/artifacts/.templates/utils/safeMath.scrypt.tpl +11 -0
  49. package/artifacts/.templates/utils/safeMath.transformer.json +7 -0
  50. package/artifacts/cat20/cat20.json +477 -0
  51. package/artifacts/cat20/cat20.scrypt +62 -0
  52. package/artifacts/cat20/cat20Guard.json +447 -0
  53. package/artifacts/cat20/cat20Guard.scrypt +119 -0
  54. package/artifacts/cat20/cat20GuardStateLib.json +361 -0
  55. package/artifacts/cat20/cat20GuardStateLib.scrypt +38 -0
  56. package/artifacts/cat20/cat20StateLib.json +373 -0
  57. package/artifacts/cat20/cat20StateLib.scrypt +23 -0
  58. package/artifacts/cat20/minters/cat20ClosedMinter.json +477 -0
  59. package/artifacts/cat20/minters/cat20ClosedMinter.scrypt +63 -0
  60. package/artifacts/cat20/minters/cat20ClosedMinterMetadata.json +173 -0
  61. package/artifacts/cat20/minters/cat20ClosedMinterMetadata.scrypt +13 -0
  62. package/artifacts/cat20/minters/cat20OpenMinter.json +508 -0
  63. package/artifacts/cat20/minters/cat20OpenMinter.scrypt +96 -0
  64. package/artifacts/cat20/minters/cat20OpenMinterMetadata.json +173 -0
  65. package/artifacts/cat20/minters/cat20OpenMinterMetadata.scrypt +13 -0
  66. package/artifacts/cat20/types.json +159 -0
  67. package/artifacts/cat20/types.scrypt +47 -0
  68. package/artifacts/cat20Incinerator.json +396 -0
  69. package/artifacts/cat20Incinerator.scrypt +33 -0
  70. package/artifacts/constants.json +26 -0
  71. package/artifacts/constants.scrypt +18 -0
  72. package/artifacts/counter.json +253 -0
  73. package/artifacts/counter.scrypt +38 -0
  74. package/artifacts/p2pkh.json +229 -0
  75. package/artifacts/p2pkh.scrypt +13 -0
  76. package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/backtrace.scrypt +38 -0
  77. package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scrypt +93 -0
  78. package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stateUtils.scrypt +9 -0
  79. package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stdUtils.scrypt +96 -0
  80. package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/txHashPreimageUtils.scrypt +20 -0
  81. package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/txUtils.scrypt +48 -0
  82. package/artifacts/scrypt-ts-opcat/assets/smart-contract/types/structs.scrypt +50 -0
  83. package/artifacts/types.json +33 -0
  84. package/artifacts/types.scrypt +8 -0
  85. package/artifacts/utils/ownerUtils.json +215 -0
  86. package/artifacts/utils/ownerUtils.scrypt +28 -0
  87. package/artifacts/utils/safeMath.json +215 -0
  88. package/artifacts/utils/safeMath.scrypt +13 -0
  89. package/dist/artifacts/.templates/cat20/cat20.scrypt.map +1 -0
  90. package/dist/artifacts/.templates/cat20/cat20.scrypt.tpl +60 -0
  91. package/dist/artifacts/.templates/cat20/cat20.transformer.json +9 -0
  92. package/dist/artifacts/.templates/cat20/cat20Guard.scrypt.map +1 -0
  93. package/dist/artifacts/.templates/cat20/cat20Guard.scrypt.tpl +117 -0
  94. package/dist/artifacts/.templates/cat20/cat20Guard.transformer.json +9 -0
  95. package/dist/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.map +1 -0
  96. package/dist/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.tpl +36 -0
  97. package/dist/artifacts/.templates/cat20/cat20GuardStateLib.transformer.json +7 -0
  98. package/dist/artifacts/.templates/cat20/cat20StateLib.scrypt.map +1 -0
  99. package/dist/artifacts/.templates/cat20/cat20StateLib.scrypt.tpl +21 -0
  100. package/dist/artifacts/.templates/cat20/cat20StateLib.transformer.json +7 -0
  101. package/dist/artifacts/.templates/cat20/minters/cat20ClosedMinter.scrypt.map +1 -0
  102. package/dist/artifacts/.templates/cat20/minters/cat20ClosedMinter.scrypt.tpl +61 -0
  103. package/dist/artifacts/.templates/cat20/minters/cat20ClosedMinter.transformer.json +9 -0
  104. package/dist/artifacts/.templates/cat20/minters/cat20ClosedMinterMetadata.scrypt.map +1 -0
  105. package/dist/artifacts/.templates/cat20/minters/cat20ClosedMinterMetadata.scrypt.tpl +11 -0
  106. package/dist/artifacts/.templates/cat20/minters/cat20ClosedMinterMetadata.transformer.json +7 -0
  107. package/dist/artifacts/.templates/cat20/minters/cat20OpenMinter.scrypt.map +1 -0
  108. package/dist/artifacts/.templates/cat20/minters/cat20OpenMinter.scrypt.tpl +94 -0
  109. package/dist/artifacts/.templates/cat20/minters/cat20OpenMinter.transformer.json +9 -0
  110. package/dist/artifacts/.templates/cat20/minters/cat20OpenMinterMetadata.scrypt.map +1 -0
  111. package/dist/artifacts/.templates/cat20/minters/cat20OpenMinterMetadata.scrypt.tpl +11 -0
  112. package/dist/artifacts/.templates/cat20/minters/cat20OpenMinterMetadata.transformer.json +7 -0
  113. package/dist/artifacts/.templates/cat20/types.scrypt.map +1 -0
  114. package/dist/artifacts/.templates/cat20/types.scrypt.tpl +45 -0
  115. package/dist/artifacts/.templates/cat20/types.transformer.json +7 -0
  116. package/dist/artifacts/.templates/cat20Incinerator.scrypt.map +1 -0
  117. package/dist/artifacts/.templates/cat20Incinerator.scrypt.tpl +31 -0
  118. package/dist/artifacts/.templates/cat20Incinerator.transformer.json +9 -0
  119. package/dist/artifacts/.templates/constants.scrypt.map +1 -0
  120. package/dist/artifacts/.templates/constants.scrypt.tpl +16 -0
  121. package/dist/artifacts/.templates/constants.transformer.json +7 -0
  122. package/dist/artifacts/.templates/counter.scrypt.map +1 -0
  123. package/dist/artifacts/.templates/counter.scrypt.tpl +36 -0
  124. package/dist/artifacts/.templates/counter.transformer.json +9 -0
  125. package/dist/artifacts/.templates/p2pkh.scrypt.map +1 -0
  126. package/dist/artifacts/.templates/p2pkh.scrypt.tpl +11 -0
  127. package/dist/artifacts/.templates/p2pkh.transformer.json +7 -0
  128. package/dist/artifacts/.templates/types.scrypt.map +1 -0
  129. package/dist/artifacts/.templates/types.scrypt.tpl +6 -0
  130. package/dist/artifacts/.templates/types.transformer.json +7 -0
  131. package/dist/artifacts/.templates/utils/ownerUtils.scrypt.map +1 -0
  132. package/dist/artifacts/.templates/utils/ownerUtils.scrypt.tpl +26 -0
  133. package/dist/artifacts/.templates/utils/ownerUtils.transformer.json +7 -0
  134. package/dist/artifacts/.templates/utils/safeMath.scrypt.map +1 -0
  135. package/dist/artifacts/.templates/utils/safeMath.scrypt.tpl +11 -0
  136. package/dist/artifacts/.templates/utils/safeMath.transformer.json +7 -0
  137. package/dist/artifacts/cat20/cat20.json +477 -0
  138. package/dist/artifacts/cat20/cat20.scrypt +62 -0
  139. package/dist/artifacts/cat20/cat20Guard.json +447 -0
  140. package/dist/artifacts/cat20/cat20Guard.scrypt +119 -0
  141. package/dist/artifacts/cat20/cat20GuardStateLib.json +361 -0
  142. package/dist/artifacts/cat20/cat20GuardStateLib.scrypt +38 -0
  143. package/dist/artifacts/cat20/cat20StateLib.json +373 -0
  144. package/dist/artifacts/cat20/cat20StateLib.scrypt +23 -0
  145. package/dist/artifacts/cat20/minters/cat20ClosedMinter.json +477 -0
  146. package/dist/artifacts/cat20/minters/cat20ClosedMinter.scrypt +63 -0
  147. package/dist/artifacts/cat20/minters/cat20ClosedMinterMetadata.json +173 -0
  148. package/dist/artifacts/cat20/minters/cat20ClosedMinterMetadata.scrypt +13 -0
  149. package/dist/artifacts/cat20/minters/cat20OpenMinter.json +508 -0
  150. package/dist/artifacts/cat20/minters/cat20OpenMinter.scrypt +96 -0
  151. package/dist/artifacts/cat20/minters/cat20OpenMinterMetadata.json +173 -0
  152. package/dist/artifacts/cat20/minters/cat20OpenMinterMetadata.scrypt +13 -0
  153. package/dist/artifacts/cat20/types.json +159 -0
  154. package/dist/artifacts/cat20/types.scrypt +47 -0
  155. package/dist/artifacts/cat20Incinerator.json +396 -0
  156. package/dist/artifacts/cat20Incinerator.scrypt +33 -0
  157. package/dist/artifacts/constants.json +26 -0
  158. package/dist/artifacts/constants.scrypt +18 -0
  159. package/dist/artifacts/counter.json +253 -0
  160. package/dist/artifacts/counter.scrypt +38 -0
  161. package/dist/artifacts/p2pkh.json +229 -0
  162. package/dist/artifacts/p2pkh.scrypt +13 -0
  163. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/backtrace.scrypt +38 -0
  164. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scrypt +93 -0
  165. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stateUtils.scrypt +9 -0
  166. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stdUtils.scrypt +96 -0
  167. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/txHashPreimageUtils.scrypt +20 -0
  168. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/txUtils.scrypt +48 -0
  169. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/types/structs.scrypt +50 -0
  170. package/dist/artifacts/types.json +33 -0
  171. package/dist/artifacts/types.scrypt +8 -0
  172. package/dist/artifacts/utils/ownerUtils.json +215 -0
  173. package/dist/artifacts/utils/ownerUtils.scrypt +28 -0
  174. package/dist/artifacts/utils/safeMath.json +215 -0
  175. package/dist/artifacts/utils/safeMath.scrypt +13 -0
  176. package/dist/cjs/contracts/cat20/cat20.js +74 -0
  177. package/dist/cjs/contracts/cat20/cat20.js.map +1 -0
  178. package/dist/cjs/contracts/cat20/cat20Guard.js +169 -0
  179. package/dist/cjs/contracts/cat20/cat20Guard.js.map +1 -0
  180. package/dist/cjs/contracts/cat20/cat20GuardStateLib.js +72 -0
  181. package/dist/cjs/contracts/cat20/cat20GuardStateLib.js.map +1 -0
  182. package/dist/cjs/contracts/cat20/cat20StateLib.js +37 -0
  183. package/dist/cjs/contracts/cat20/cat20StateLib.js.map +1 -0
  184. package/dist/cjs/contracts/cat20/minters/cat20ClosedMinter.js +77 -0
  185. package/dist/cjs/contracts/cat20/minters/cat20ClosedMinter.js.map +1 -0
  186. package/dist/cjs/contracts/cat20/minters/cat20ClosedMinterMetadata.js +18 -0
  187. package/dist/cjs/contracts/cat20/minters/cat20ClosedMinterMetadata.js.map +1 -0
  188. package/dist/cjs/contracts/cat20/minters/cat20OpenMinter.js +138 -0
  189. package/dist/cjs/contracts/cat20/minters/cat20OpenMinter.js.map +1 -0
  190. package/dist/cjs/contracts/cat20/minters/cat20OpenMinterMetadata.js +22 -0
  191. package/dist/cjs/contracts/cat20/minters/cat20OpenMinterMetadata.js.map +1 -0
  192. package/dist/cjs/contracts/cat20/types.js +3 -0
  193. package/dist/cjs/contracts/cat20/types.js.map +1 -0
  194. package/dist/cjs/contracts/cat20Incinerator.js +45 -0
  195. package/dist/cjs/contracts/cat20Incinerator.js.map +1 -0
  196. package/dist/cjs/contracts/constants.js +110 -0
  197. package/dist/cjs/contracts/constants.js.map +1 -0
  198. package/dist/cjs/contracts/counter.js +29 -0
  199. package/dist/cjs/contracts/counter.js.map +1 -0
  200. package/dist/cjs/contracts/index.js +32 -0
  201. package/dist/cjs/contracts/index.js.map +1 -0
  202. package/dist/cjs/contracts/p2pkh.js +35 -0
  203. package/dist/cjs/contracts/p2pkh.js.map +1 -0
  204. package/dist/cjs/contracts/types.js +3 -0
  205. package/dist/cjs/contracts/types.js.map +1 -0
  206. package/dist/cjs/contracts/utils/ownerUtils.js +78 -0
  207. package/dist/cjs/contracts/utils/ownerUtils.js.map +1 -0
  208. package/dist/cjs/contracts/utils/safeMath.js +28 -0
  209. package/dist/cjs/contracts/utils/safeMath.js.map +1 -0
  210. package/dist/cjs/features/cat20/burn/burn.js +91 -0
  211. package/dist/cjs/features/cat20/burn/burn.js.map +1 -0
  212. package/dist/cjs/features/cat20/deploy/openMinter.js +135 -0
  213. package/dist/cjs/features/cat20/deploy/openMinter.js.map +1 -0
  214. package/dist/cjs/features/cat20/incinerate.js +108 -0
  215. package/dist/cjs/features/cat20/incinerate.js.map +1 -0
  216. package/dist/cjs/features/cat20/mint/openMinter.js +37 -0
  217. package/dist/cjs/features/cat20/mint/openMinter.js.map +1 -0
  218. package/dist/cjs/features/cat20/send/contractSend.js +130 -0
  219. package/dist/cjs/features/cat20/send/contractSend.js.map +1 -0
  220. package/dist/cjs/features/cat20/send/singleSend.js +172 -0
  221. package/dist/cjs/features/cat20/send/singleSend.js.map +1 -0
  222. package/dist/cjs/features/index.js +19 -0
  223. package/dist/cjs/features/index.js.map +1 -0
  224. package/dist/cjs/index.js +35 -0
  225. package/dist/cjs/index.js.map +1 -0
  226. package/dist/cjs/lib/index.js +19 -0
  227. package/dist/cjs/lib/index.js.map +1 -0
  228. package/dist/cjs/lib/metadata.js +32 -0
  229. package/dist/cjs/lib/metadata.js.map +1 -0
  230. package/dist/cjs/typeConstants.js +18 -0
  231. package/dist/cjs/typeConstants.js.map +1 -0
  232. package/dist/cjs/utils/check.js +24 -0
  233. package/dist/cjs/utils/check.js.map +1 -0
  234. package/dist/cjs/utils/contractPeripheral.js +189 -0
  235. package/dist/cjs/utils/contractPeripheral.js.map +1 -0
  236. package/dist/cjs/utils/index.js +223 -0
  237. package/dist/cjs/utils/index.js.map +1 -0
  238. package/dist/cjs/utils/loadAllArtifacts.js +39 -0
  239. package/dist/cjs/utils/loadAllArtifacts.js.map +1 -0
  240. package/dist/esm/contracts/cat20/cat20.js +72 -0
  241. package/dist/esm/contracts/cat20/cat20.js.map +1 -0
  242. package/dist/esm/contracts/cat20/cat20Guard.js +165 -0
  243. package/dist/esm/contracts/cat20/cat20Guard.js.map +1 -0
  244. package/dist/esm/contracts/cat20/cat20GuardStateLib.js +68 -0
  245. package/dist/esm/contracts/cat20/cat20GuardStateLib.js.map +1 -0
  246. package/dist/esm/contracts/cat20/cat20StateLib.js +33 -0
  247. package/dist/esm/contracts/cat20/cat20StateLib.js.map +1 -0
  248. package/dist/esm/contracts/cat20/minters/cat20ClosedMinter.js +75 -0
  249. package/dist/esm/contracts/cat20/minters/cat20ClosedMinter.js.map +1 -0
  250. package/dist/esm/contracts/cat20/minters/cat20ClosedMinterMetadata.js +14 -0
  251. package/dist/esm/contracts/cat20/minters/cat20ClosedMinterMetadata.js.map +1 -0
  252. package/dist/esm/contracts/cat20/minters/cat20OpenMinter.js +142 -0
  253. package/dist/esm/contracts/cat20/minters/cat20OpenMinter.js.map +1 -0
  254. package/dist/esm/contracts/cat20/minters/cat20OpenMinterMetadata.js +18 -0
  255. package/dist/esm/contracts/cat20/minters/cat20OpenMinterMetadata.js.map +1 -0
  256. package/dist/esm/contracts/cat20/types.js +2 -0
  257. package/dist/esm/contracts/cat20/types.js.map +1 -0
  258. package/dist/esm/contracts/cat20Incinerator.js +42 -0
  259. package/dist/esm/contracts/cat20Incinerator.js.map +1 -0
  260. package/dist/esm/contracts/constants.js +106 -0
  261. package/dist/esm/contracts/constants.js.map +1 -0
  262. package/dist/esm/contracts/counter.js +25 -0
  263. package/dist/esm/contracts/counter.js.map +1 -0
  264. package/dist/esm/contracts/index.js +16 -0
  265. package/dist/esm/contracts/index.js.map +1 -0
  266. package/dist/esm/contracts/p2pkh.js +32 -0
  267. package/dist/esm/contracts/p2pkh.js.map +1 -0
  268. package/dist/esm/contracts/types.js +2 -0
  269. package/dist/esm/contracts/types.js.map +1 -0
  270. package/dist/esm/contracts/utils/ownerUtils.js +74 -0
  271. package/dist/esm/contracts/utils/ownerUtils.js.map +1 -0
  272. package/dist/esm/contracts/utils/safeMath.js +24 -0
  273. package/dist/esm/contracts/utils/safeMath.js.map +1 -0
  274. package/dist/esm/features/cat20/burn/burn.js +87 -0
  275. package/dist/esm/features/cat20/burn/burn.js.map +1 -0
  276. package/dist/esm/features/cat20/deploy/openMinter.js +130 -0
  277. package/dist/esm/features/cat20/deploy/openMinter.js.map +1 -0
  278. package/dist/esm/features/cat20/incinerate.js +104 -0
  279. package/dist/esm/features/cat20/incinerate.js.map +1 -0
  280. package/dist/esm/features/cat20/mint/openMinter.js +33 -0
  281. package/dist/esm/features/cat20/mint/openMinter.js.map +1 -0
  282. package/dist/esm/features/cat20/send/contractSend.js +126 -0
  283. package/dist/esm/features/cat20/send/contractSend.js.map +1 -0
  284. package/dist/esm/features/cat20/send/singleSend.js +142 -0
  285. package/dist/esm/features/cat20/send/singleSend.js.map +1 -0
  286. package/dist/esm/features/index.js +7 -0
  287. package/dist/esm/features/index.js.map +1 -0
  288. package/dist/esm/index.js +9 -0
  289. package/dist/esm/index.js.map +1 -0
  290. package/dist/esm/lib/index.js +3 -0
  291. package/dist/esm/lib/index.js.map +1 -0
  292. package/dist/esm/lib/metadata.js +28 -0
  293. package/dist/esm/lib/metadata.js.map +1 -0
  294. package/dist/esm/typeConstants.js +15 -0
  295. package/dist/esm/typeConstants.js.map +1 -0
  296. package/dist/esm/utils/check.js +19 -0
  297. package/dist/esm/utils/check.js.map +1 -0
  298. package/dist/esm/utils/contractPeripheral.js +183 -0
  299. package/dist/esm/utils/contractPeripheral.js.map +1 -0
  300. package/dist/esm/utils/index.js +184 -0
  301. package/dist/esm/utils/index.js.map +1 -0
  302. package/dist/esm/utils/loadAllArtifacts.js +32 -0
  303. package/dist/esm/utils/loadAllArtifacts.js.map +1 -0
  304. package/dist/types/contracts/cat20/cat20.d.ts +12 -0
  305. package/dist/types/contracts/cat20/cat20.d.ts.map +1 -0
  306. package/dist/types/contracts/cat20/cat20Guard.d.ts +8 -0
  307. package/dist/types/contracts/cat20/cat20Guard.d.ts.map +1 -0
  308. package/dist/types/contracts/cat20/cat20GuardStateLib.d.ts +13 -0
  309. package/dist/types/contracts/cat20/cat20GuardStateLib.d.ts.map +1 -0
  310. package/dist/types/contracts/cat20/cat20StateLib.d.ts +7 -0
  311. package/dist/types/contracts/cat20/cat20StateLib.d.ts.map +1 -0
  312. package/dist/types/contracts/cat20/minters/cat20ClosedMinter.d.ts +10 -0
  313. package/dist/types/contracts/cat20/minters/cat20ClosedMinter.d.ts.map +1 -0
  314. package/dist/types/contracts/cat20/minters/cat20ClosedMinterMetadata.d.ts +6 -0
  315. package/dist/types/contracts/cat20/minters/cat20ClosedMinterMetadata.d.ts.map +1 -0
  316. package/dist/types/contracts/cat20/minters/cat20OpenMinter.d.ts +16 -0
  317. package/dist/types/contracts/cat20/minters/cat20OpenMinter.d.ts.map +1 -0
  318. package/dist/types/contracts/cat20/minters/cat20OpenMinterMetadata.d.ts +6 -0
  319. package/dist/types/contracts/cat20/minters/cat20OpenMinterMetadata.d.ts.map +1 -0
  320. package/dist/types/contracts/cat20/types.d.ts +58 -0
  321. package/dist/types/contracts/cat20/types.d.ts.map +1 -0
  322. package/dist/types/contracts/cat20Incinerator.d.ts +8 -0
  323. package/dist/types/contracts/cat20Incinerator.d.ts.map +1 -0
  324. package/dist/types/contracts/constants.d.ts +33 -0
  325. package/dist/types/contracts/constants.d.ts.map +1 -0
  326. package/dist/types/contracts/counter.d.ts +8 -0
  327. package/dist/types/contracts/counter.d.ts.map +1 -0
  328. package/dist/types/contracts/index.d.ts +16 -0
  329. package/dist/types/contracts/index.d.ts.map +1 -0
  330. package/dist/types/contracts/p2pkh.d.ts +7 -0
  331. package/dist/types/contracts/p2pkh.d.ts.map +1 -0
  332. package/dist/types/contracts/types.d.ts +9 -0
  333. package/dist/types/contracts/types.d.ts.map +1 -0
  334. package/dist/types/contracts/utils/ownerUtils.d.ts +19 -0
  335. package/dist/types/contracts/utils/ownerUtils.d.ts.map +1 -0
  336. package/dist/types/contracts/utils/safeMath.d.ts +5 -0
  337. package/dist/types/contracts/utils/safeMath.d.ts.map +1 -0
  338. package/dist/types/features/cat20/burn/burn.d.ts +6 -0
  339. package/dist/types/features/cat20/burn/burn.d.ts.map +1 -0
  340. package/dist/types/features/cat20/deploy/openMinter.d.ts +11 -0
  341. package/dist/types/features/cat20/deploy/openMinter.d.ts.map +1 -0
  342. package/dist/types/features/cat20/incinerate.d.ts +6 -0
  343. package/dist/types/features/cat20/incinerate.d.ts.map +1 -0
  344. package/dist/types/features/cat20/mint/openMinter.d.ts +7 -0
  345. package/dist/types/features/cat20/mint/openMinter.d.ts.map +1 -0
  346. package/dist/types/features/cat20/send/contractSend.d.ts +14 -0
  347. package/dist/types/features/cat20/send/contractSend.d.ts.map +1 -0
  348. package/dist/types/features/cat20/send/singleSend.d.ts +33 -0
  349. package/dist/types/features/cat20/send/singleSend.d.ts.map +1 -0
  350. package/dist/types/features/index.d.ts +7 -0
  351. package/dist/types/features/index.d.ts.map +1 -0
  352. package/dist/types/index.d.ts +7 -0
  353. package/dist/types/index.d.ts.map +1 -0
  354. package/dist/types/lib/index.d.ts +2 -0
  355. package/dist/types/lib/index.d.ts.map +1 -0
  356. package/dist/types/lib/metadata.d.ts +18 -0
  357. package/dist/types/lib/metadata.d.ts.map +1 -0
  358. package/dist/types/typeConstants.d.ts +31 -0
  359. package/dist/types/typeConstants.d.ts.map +1 -0
  360. package/dist/types/utils/check.d.ts +3 -0
  361. package/dist/types/utils/check.d.ts.map +1 -0
  362. package/dist/types/utils/contractPeripheral.d.ts +45 -0
  363. package/dist/types/utils/contractPeripheral.d.ts.map +1 -0
  364. package/dist/types/utils/index.d.ts +29 -0
  365. package/dist/types/utils/index.d.ts.map +1 -0
  366. package/dist/types/utils/loadAllArtifacts.d.ts +2 -0
  367. package/dist/types/utils/loadAllArtifacts.d.ts.map +1 -0
  368. package/package.json +76 -0
  369. package/scrypt.index.json +132 -0
@@ -0,0 +1,11 @@
1
+ import "../types.scrypt.tpl";
2
+
3
+
4
+ library CAT20ClosedMinterMetadata {
5
+ static function serializeState(ClosedMinterCAT20Meta __scrypt_ts_curState): bytes {
6
+ return num2bin(len(__scrypt_ts_curState.tag), 2) + __scrypt_ts_curState.tag + num2bin(len(__scrypt_ts_curState.name), 2) + __scrypt_ts_curState.name + num2bin(len(__scrypt_ts_curState.symbol), 2) + __scrypt_ts_curState.symbol + num2bin(len(pack(__scrypt_ts_curState.decimals)), 2) + pack(__scrypt_ts_curState.decimals) + num2bin(len(__scrypt_ts_curState.minterMd5), 2) + __scrypt_ts_curState.minterMd5 + hash160(hash160(__scrypt_ts_curState.tag) + hash160(__scrypt_ts_curState.name) + hash160(__scrypt_ts_curState.symbol) + hash160(pack(__scrypt_ts_curState.decimals)) + hash160(__scrypt_ts_curState.minterMd5));
7
+ }
8
+ static function stateHash(ClosedMinterCAT20Meta __scrypt_ts_curState): bytes {
9
+ return sha256(num2bin(len(__scrypt_ts_curState.tag), 2) + __scrypt_ts_curState.tag + num2bin(len(__scrypt_ts_curState.name), 2) + __scrypt_ts_curState.name + num2bin(len(__scrypt_ts_curState.symbol), 2) + __scrypt_ts_curState.symbol + num2bin(len(pack(__scrypt_ts_curState.decimals)), 2) + pack(__scrypt_ts_curState.decimals) + num2bin(len(__scrypt_ts_curState.minterMd5), 2) + __scrypt_ts_curState.minterMd5 + hash160(hash160(__scrypt_ts_curState.tag) + hash160(__scrypt_ts_curState.name) + hash160(__scrypt_ts_curState.symbol) + hash160(pack(__scrypt_ts_curState.decimals)) + hash160(__scrypt_ts_curState.minterMd5)));
10
+ }
11
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "success": true,
3
+ "errors": [],
4
+ "scryptfile": "cat20/minters/cat20ClosedMinterMetadata.scrypt.tpl",
5
+ "sourceMapFile": "cat20/minters/cat20ClosedMinterMetadata.scrypt.map",
6
+ "ctxMethods": []
7
+ }
@@ -0,0 +1 @@
1
+ [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[9,0,31,13]],[[2,0,33,19],[8,0,33,2]],[[2,0,37,12],[6,0,37,2]],[[2,0,41,11],[6,0,41,2]],[[2,0,44,16],[6,0,44,2]],[[2,0,47,9],[6,0,47,2]],[[2,0,50,16],[8,0,50,2]],[[2,0,52,2],[14,0,53,21],[20,0,53,4],[37,0,54,14],[41,0,54,4],[51,0,55,13],[55,0,55,4],[64,0,56,18],[68,0,56,4],[82,0,57,11],[86,0,57,4],[93,0,58,17],[99,0,58,4]],[[4,0,61,4],[8,0,61,9],[25,0,61,4],[27,0,61,27]],[[4,0,62,4],[8,0,62,9],[18,0,62,4],[20,0,62,20]],[[4,0,65,4],[8,0,65,9],[17,0,65,4],[19,0,65,19]],[[4,0,66,4],[8,0,66,9],[22,0,66,4],[24,0,66,24]],[[4,0,67,4],[8,0,67,9],[15,0,67,4],[17,0,67,17]],[[4,0,68,4],[8,0,68,9],[22,0,68,4],[24,0,68,24]],[],[[2,0,72,2],[18,0,72,9],[23,0,74,15],[34,0,74,4],[45,0,75,25],[48,0,75,25],[52,0,75,4],[73,0,77,20],[80,0,77,4],[96,0,78,17],[100,0,78,4],[113,0,80,20],[117,0,80,4],[133,0,82,19],[137,0,82,4],[152,0,84,19],[166,0,84,4],[181,0,85,14],[201,0,85,4]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[33,0,88,29],[48,0,88,44],[52,0,88,49]],[[4,0,91,4],[7,0,91,8],[29,0,91,20]],[[8,0,92,6],[16,0,92,13],[24,0,92,22],[33,0,92,13],[36,0,92,33],[40,0,92,38]],[[8,0,93,6],[16,0,93,13],[24,0,93,22],[38,0,93,13],[41,0,93,38],[45,0,93,43]],[[8,0,94,6],[16,0,94,13],[24,0,94,22],[31,0,94,13],[34,0,94,31],[38,0,94,36]],[[8,0,96,6],[16,0,96,13],[20,0,96,18],[29,0,96,13],[32,0,96,29],[36,0,96,34],[50,0,96,29],[52,0,96,49],[56,0,96,54]],[[8,0,97,6],[16,0,97,13],[24,0,97,22],[29,0,97,13],[32,0,97,29],[36,0,97,34],[46,0,97,29],[48,0,97,45],[52,0,97,50]],[[8,0,99,27],[14,0,99,12],[29,0,99,27],[52,0,99,51],[63,0,99,61]],[[8,0,100,29],[14,0,100,12],[31,0,100,29],[50,0,100,49],[71,0,100,69],[84,0,100,83],[105,0,100,103],[118,0,100,117],[130,0,100,129]],[[8,0,101,6],[16,0,102,8],[29,0,102,8],[32,0,104,10],[47,0,105,10],[52,0,106,10],[55,0,106,10],[57,0,106,35]],[],[[4,0,114,24],[10,0,114,8],[26,0,114,37]],[[4,0,115,32],[8,0,115,8],[32,0,115,32]],[[15,0,116,13]],[[8,0,117,29],[12,0,117,12],[29,0,117,29],[49,0,117,49]],[[8,0,118,6],[11,0,118,10],[26,0,118,10],[28,0,118,27]],[[10,0,119,8],[32,0,119,8],[35,0,119,33]],[[10,0,120,8],[24,0,120,8],[27,0,120,25],[34,0,120,33],[91,0,122,10],[107,0,123,10],[114,0,123,17],[129,0,123,33],[145,0,123,48],[146,0,124,17],[158,0,124,30],[198,0,125,40],[216,0,126,29]],[],[],[[4,0,134,27],[11,0,134,10],[28,0,134,27],[35,0,134,34],[48,0,134,48],[64,0,134,63]],[[4,0,135,24],[10,0,135,10],[24,0,135,24],[31,0,135,32],[69,0,136,17],[87,0,137,6],[102,0,138,6]],[[4,0,140,4],[7,0,140,8],[29,0,140,20],[46,0,140,8],[49,0,140,39],[53,0,140,44],[62,0,140,39],[64,0,140,54]],[[8,0,142,6],[16,0,142,13],[20,0,142,18],[30,0,142,13],[54,0,142,41],[70,0,142,30],[72,0,142,58],[76,0,142,63]],[[8,0,144,6],[18,0,144,17],[34,0,144,32],[50,0,144,48],[54,0,144,53]],[[8,0,145,6],[16,0,145,18],[24,0,145,13],[25,0,145,27],[38,0,145,40],[52,0,145,13]],[[8,0,147,6],[16,0,147,13],[38,0,147,13],[62,0,147,49]],[[8,0,148,6],[16,0,148,13],[25,0,148,23],[33,0,148,13],[36,0,148,33],[40,0,148,38]],[],[[8,0,151,6],[11,0,151,10],[33,0,151,22]],[[10,0,153,8],[18,0,153,15],[22,0,153,20],[32,0,153,15],[56,0,153,43]],[[10,0,154,8],[18,0,154,15],[22,0,154,20],[36,0,154,15],[39,0,154,36]],[[10,0,155,8],[18,0,155,15],[22,0,155,20],[31,0,155,15],[34,0,155,31]],[],[[8,0,157,6],[16,0,157,13],[38,0,157,13],[62,0,157,49],[78,0,157,38],[80,0,157,66]],[[8,0,158,6],[16,0,158,13],[25,0,158,23],[33,0,158,13],[36,0,158,33],[40,0,158,38]],[],[[4,0,162,25],[10,0,162,10]],[],[[4,0,165,4],[20,0,165,29],[34,0,165,29],[36,0,165,45],[48,0,165,29],[50,0,165,59]],[],[],[],[],[],[],[],[]]
@@ -0,0 +1,94 @@
1
+ import "../types.scrypt.tpl";
2
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/types/structs.scrypt.tpl";
3
+ import "./cat20OpenMinterMetadata.scrypt.tpl";
4
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/txHashPreimageUtils.scrypt.tpl";
5
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/txUtils.scrypt.tpl";
6
+ import "../../constants.scrypt.tpl";
7
+ import "../cat20StateLib.scrypt.tpl";
8
+ import "../../utils/ownerUtils.scrypt.tpl";
9
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/stdUtils.scrypt.tpl";
10
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/backtrace.scrypt.tpl";
11
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/contextUtils.scrypt.tpl";
12
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/stateUtils.scrypt.tpl";
13
+
14
+
15
+ contract CAT20OpenMinter {
16
+ bytes genesisOutpoint;
17
+ int maxCount;
18
+ int premine;
19
+ int premineCount;
20
+ int limit;
21
+ bytes preminerAddr;
22
+ constructor(bytes genesisOutpoint, int maxCount, int premine, int premineCount, int limit, bytes premineAddr) {
23
+ this.genesisOutpoint = genesisOutpoint;
24
+ this.maxCount = maxCount;
25
+ this.premine = premine;
26
+ this.premineCount = premineCount;
27
+ this.limit = limit;
28
+ this.preminerAddr = premineAddr;
29
+ }
30
+ public function mint(CAT20State tokenMint, int[2] nextRemainingCounts, PubKey preminerPubKey, Sig preminerSig, int minterSatoshis, int tokenSatoshis, BacktraceInfo backtraceInfo, OpenMinterCAT20Meta metadata, SHPreimage __scrypt_ts_shPreimage, TxOut __scrypt_ts_changeInfo, CAT20OpenMinterState __scrypt_ts_curState, bytes __scrypt_ts_prevouts, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes, TxHashPreimage __scrypt_ts_prevTxHashPreimage) {
31
+ require(Tx.checkPreimageSigHashType(ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage), SigHash.ALL));
32
+
33
+ int __scrypt_ts_inputCount = ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
34
+
35
+ Outpoint __scrypt_ts_prevout = ContextUtils.checkPrevouts(__scrypt_ts_prevouts, __scrypt_ts_shPreimage.hashPrevouts, __scrypt_ts_shPreimage.inputIndex, __scrypt_ts_inputCount);
36
+
37
+ ContextUtils.checkSpentScripts(__scrypt_ts_spentScriptHashes, __scrypt_ts_shPreimage.hashSpentScriptHashes, __scrypt_ts_inputCount);
38
+
39
+ ContextUtils.checkSpentDataHashes(__scrypt_ts_spentDataHashes, __scrypt_ts_shPreimage.hashSpentDataHashes, __scrypt_ts_inputCount);
40
+
41
+ CAT20OpenMinterState __scrypt_ts_nextState = __scrypt_ts_curState;
42
+
43
+ StateUtils.checkInputState(__scrypt_ts_shPreimage.inputIndex, CAT20OpenMinter.stateHash(__scrypt_ts_curState), __scrypt_ts_spentDataHashes);
44
+
45
+ Backtrace.checkPrevTxHashPreimage(__scrypt_ts_prevTxHashPreimage, __scrypt_ts_prevouts, __scrypt_ts_shPreimage.inputIndex);
46
+
47
+ Backtrace.verifyFromOutpoint(backtraceInfo, this.genesisOutpoint, __scrypt_ts_spentScriptHashes[__scrypt_ts_shPreimage.inputIndex * 32 : (__scrypt_ts_shPreimage.inputIndex + 1) * 32], __scrypt_ts_prevTxHashPreimage.inputList);
48
+ if(!__scrypt_ts_nextState.hasMintedBefore) {
49
+ require(metadata.premine == this.premine);
50
+ require(metadata.preminerAddr == this.preminerAddr);
51
+ require(metadata.limit == this.limit);
52
+ require(this.premine == this.premineCount * this.limit);
53
+ require(metadata.max == this.maxCount * this.limit);
54
+ bytes metadataHash = CAT20OpenMinterMetadata.stateHash(metadata);
55
+ bytes metadataOutput = TxHashPreimageUtils.getOutputByteString(backtraceInfo.prevPrevTxPreimage, backtraceInfo.prevTxInput.prevOutputIndex);
56
+ require(metadataHash == metadataOutput[40 : 40 + 32]);
57
+ }
58
+ bytes minterOutputs = b'';
59
+ int sumNextRemainingCount = 0;
60
+ loop (2) : i {
61
+ int remainingCount = nextRemainingCounts[i];
62
+ if(remainingCount > 0) {
63
+ sumNextRemainingCount += remainingCount;
64
+ minterOutputs += TxUtils.buildDataOutput(__scrypt_ts_shPreimage.spentScriptHash, minterSatoshis, sha256(CAT20OpenMinter.serializeState({ConstantsLib.OPCAT_MINTER_TAG, __scrypt_ts_nextState.tokenScriptHash, true, remainingCount})));
65
+ }
66
+ }
67
+ Sha256 tokenStateHash = sha256(CAT20StateLib.serializeState(tokenMint));
68
+ bytes tokenOutput = TxUtils.buildDataOutput(__scrypt_ts_nextState.tokenScriptHash, tokenSatoshis, tokenStateHash);
69
+ if(!__scrypt_ts_nextState.hasMintedBefore && this.premine > 0) {
70
+ require(this.maxCount == __scrypt_ts_nextState.remainingCount + this.premineCount);
71
+ OwnerUtils.checkUserOwner(preminerPubKey, this.preminerAddr);
72
+ require(checkSig(preminerSig, preminerPubKey));
73
+ require(sumNextRemainingCount == __scrypt_ts_nextState.remainingCount);
74
+ require(tokenMint.amount == this.premine);
75
+ } else {
76
+ if(!__scrypt_ts_nextState.hasMintedBefore) {
77
+ require(this.maxCount == __scrypt_ts_nextState.remainingCount);
78
+ require(this.premineCount == 0);
79
+ require(this.premine == 0);
80
+ }
81
+ require(sumNextRemainingCount == __scrypt_ts_nextState.remainingCount - 1);
82
+ require(tokenMint.amount == this.limit);
83
+ }
84
+ bytes changeOutput =
85
+ (__scrypt_ts_changeInfo.satoshis > 0 ? TxUtils.buildOutput(__scrypt_ts_changeInfo.scriptHash, __scrypt_ts_changeInfo.satoshis) : b'');
86
+ require(hash256(minterOutputs + tokenOutput + changeOutput) == __scrypt_ts_shPreimage.hashOutputs);
87
+ }
88
+ static function serializeState(CAT20OpenMinterState __scrypt_ts_curState): bytes {
89
+ return num2bin(len(__scrypt_ts_curState.tag), 2) + __scrypt_ts_curState.tag + num2bin(len(__scrypt_ts_curState.tokenScriptHash), 2) + __scrypt_ts_curState.tokenScriptHash + num2bin(len((__scrypt_ts_curState.hasMintedBefore ? b'01' : b'')), 2) + (__scrypt_ts_curState.hasMintedBefore ? b'01' : b'') + num2bin(len(pack(__scrypt_ts_curState.remainingCount)), 2) + pack(__scrypt_ts_curState.remainingCount) + hash160(hash160(__scrypt_ts_curState.tag) + hash160(__scrypt_ts_curState.tokenScriptHash) + hash160(__scrypt_ts_curState.hasMintedBefore ? b'01' : b'') + hash160(pack(__scrypt_ts_curState.remainingCount)));
90
+ }
91
+ static function stateHash(CAT20OpenMinterState __scrypt_ts_curState): bytes {
92
+ return sha256(num2bin(len(__scrypt_ts_curState.tag), 2) + __scrypt_ts_curState.tag + num2bin(len(__scrypt_ts_curState.tokenScriptHash), 2) + __scrypt_ts_curState.tokenScriptHash + num2bin(len((__scrypt_ts_curState.hasMintedBefore ? b'01' : b'')), 2) + (__scrypt_ts_curState.hasMintedBefore ? b'01' : b'') + num2bin(len(pack(__scrypt_ts_curState.remainingCount)), 2) + pack(__scrypt_ts_curState.remainingCount) + hash160(hash160(__scrypt_ts_curState.tag) + hash160(__scrypt_ts_curState.tokenScriptHash) + hash160(__scrypt_ts_curState.hasMintedBefore ? b'01' : b'') + hash160(pack(__scrypt_ts_curState.remainingCount))));
93
+ }
94
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "success": true,
3
+ "errors": [],
4
+ "scryptfile": "cat20/minters/cat20OpenMinter.scrypt.tpl",
5
+ "sourceMapFile": "cat20/minters/cat20OpenMinter.scrypt.map",
6
+ "ctxMethods": [
7
+ "mint"
8
+ ]
9
+ }
@@ -0,0 +1 @@
1
+ [[],[],[],[[8,0,5,13]],[],[],[],[],[],[],[]]
@@ -0,0 +1,11 @@
1
+ import "../types.scrypt.tpl";
2
+
3
+
4
+ library CAT20OpenMinterMetadata {
5
+ static function serializeState(OpenMinterCAT20Meta __scrypt_ts_curState): bytes {
6
+ return num2bin(len(__scrypt_ts_curState.tag), 2) + __scrypt_ts_curState.tag + num2bin(len(__scrypt_ts_curState.name), 2) + __scrypt_ts_curState.name + num2bin(len(__scrypt_ts_curState.symbol), 2) + __scrypt_ts_curState.symbol + num2bin(len(pack(__scrypt_ts_curState.decimals)), 2) + pack(__scrypt_ts_curState.decimals) + num2bin(len(__scrypt_ts_curState.minterMd5), 2) + __scrypt_ts_curState.minterMd5 + num2bin(len(pack(__scrypt_ts_curState.max)), 2) + pack(__scrypt_ts_curState.max) + num2bin(len(pack(__scrypt_ts_curState.limit)), 2) + pack(__scrypt_ts_curState.limit) + num2bin(len(pack(__scrypt_ts_curState.premine)), 2) + pack(__scrypt_ts_curState.premine) + num2bin(len(__scrypt_ts_curState.preminerAddr), 2) + __scrypt_ts_curState.preminerAddr + hash160(hash160(__scrypt_ts_curState.tag) + hash160(__scrypt_ts_curState.name) + hash160(__scrypt_ts_curState.symbol) + hash160(pack(__scrypt_ts_curState.decimals)) + hash160(__scrypt_ts_curState.minterMd5) + hash160(pack(__scrypt_ts_curState.max)) + hash160(pack(__scrypt_ts_curState.limit)) + hash160(pack(__scrypt_ts_curState.premine)) + hash160(__scrypt_ts_curState.preminerAddr));
7
+ }
8
+ static function stateHash(OpenMinterCAT20Meta __scrypt_ts_curState): bytes {
9
+ return sha256(num2bin(len(__scrypt_ts_curState.tag), 2) + __scrypt_ts_curState.tag + num2bin(len(__scrypt_ts_curState.name), 2) + __scrypt_ts_curState.name + num2bin(len(__scrypt_ts_curState.symbol), 2) + __scrypt_ts_curState.symbol + num2bin(len(pack(__scrypt_ts_curState.decimals)), 2) + pack(__scrypt_ts_curState.decimals) + num2bin(len(__scrypt_ts_curState.minterMd5), 2) + __scrypt_ts_curState.minterMd5 + num2bin(len(pack(__scrypt_ts_curState.max)), 2) + pack(__scrypt_ts_curState.max) + num2bin(len(pack(__scrypt_ts_curState.limit)), 2) + pack(__scrypt_ts_curState.limit) + num2bin(len(pack(__scrypt_ts_curState.premine)), 2) + pack(__scrypt_ts_curState.premine) + num2bin(len(__scrypt_ts_curState.preminerAddr), 2) + __scrypt_ts_curState.preminerAddr + hash160(hash160(__scrypt_ts_curState.tag) + hash160(__scrypt_ts_curState.name) + hash160(__scrypt_ts_curState.symbol) + hash160(pack(__scrypt_ts_curState.decimals)) + hash160(__scrypt_ts_curState.minterMd5) + hash160(pack(__scrypt_ts_curState.max)) + hash160(pack(__scrypt_ts_curState.limit)) + hash160(pack(__scrypt_ts_curState.premine)) + hash160(__scrypt_ts_curState.preminerAddr)));
10
+ }
11
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "success": true,
3
+ "errors": [],
4
+ "scryptfile": "cat20/minters/cat20OpenMinterMetadata.scrypt.tpl",
5
+ "sourceMapFile": "cat20/minters/cat20OpenMinterMetadata.scrypt.map",
6
+ "ctxMethods": []
7
+ }
@@ -0,0 +1 @@
1
+ [[],[[7,0,30,35]],[[2,0,36,21],[7,0,36,21],[11,0,36,2]],[[2,0,42,16],[5,0,42,16],[9,0,42,2]],[[2,0,47,20],[5,0,47,20],[9,0,47,2]],[[2,0,62,22],[5,0,62,22],[9,0,62,2]],[],[],[[7,0,8,25]],[[2,0,9,7],[8,0,9,2]],[[2,0,11,13],[8,0,11,2]],[[2,0,13,10],[6,0,13,2]],[],[],[[7,0,120,0]],[[2,0,121,7],[8,0,121,2]],[[2,0,124,19],[8,0,124,2]],[],[],[[7,0,81,0]],[[2,0,82,7],[8,0,82,2]],[[2,0,83,8],[8,0,83,2]],[[2,0,84,10],[8,0,84,2]],[[2,0,85,12],[6,0,85,2]],[[2,0,86,13],[8,0,86,2]],[],[],[[7,0,89,0]],[[2,0,90,7],[8,0,90,2]],[[2,0,92,8],[8,0,92,2]],[[2,0,94,10],[8,0,94,2]],[[2,0,96,12],[6,0,96,2]],[[2,0,98,13],[8,0,98,2]],[[2,0,101,7],[6,0,101,2]],[[2,0,103,9],[6,0,103,2]],[[2,0,105,11],[6,0,105,2]],[[2,0,107,16],[8,0,107,2]],[],[],[[7,0,110,0]],[[2,0,111,7],[8,0,111,2]],[[2,0,113,19],[8,0,113,2]],[[2,0,115,19],[7,0,115,2]],[[2,0,117,18],[6,0,117,2]],[]]
@@ -0,0 +1,45 @@
1
+
2
+ struct CAT20GuardConstState {
3
+ bytes[4] tokenScriptHashes;
4
+ int[4] tokenAmounts;
5
+ int[4] tokenBurnAmounts;
6
+ int[6] tokenScriptIndexes;
7
+ }
8
+
9
+ struct CAT20State {
10
+ bytes tag;
11
+ bytes ownerAddr;
12
+ int amount;
13
+ }
14
+
15
+ struct CAT20ClosedMinterState {
16
+ bytes tag;
17
+ bytes tokenScriptHash;
18
+ }
19
+
20
+ struct ClosedMinterCAT20Meta {
21
+ bytes tag;
22
+ bytes name;
23
+ bytes symbol;
24
+ int decimals;
25
+ bytes minterMd5;
26
+ }
27
+
28
+ struct OpenMinterCAT20Meta {
29
+ bytes tag;
30
+ bytes name;
31
+ bytes symbol;
32
+ int decimals;
33
+ bytes minterMd5;
34
+ int max;
35
+ int limit;
36
+ int premine;
37
+ bytes preminerAddr;
38
+ }
39
+
40
+ struct CAT20OpenMinterState {
41
+ bytes tag;
42
+ bytes tokenScriptHash;
43
+ bool hasMintedBefore;
44
+ int remainingCount;
45
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "success": true,
3
+ "errors": [],
4
+ "scryptfile": "cat20/types.scrypt.tpl",
5
+ "sourceMapFile": "cat20/types.scrypt.map",
6
+ "ctxMethods": []
7
+ }
@@ -0,0 +1 @@
1
+ [[],[],[],[],[],[],[],[[9,0,7,13]],[[2,0,9,26],[8,0,9,4]],[[2,0,11,4],[14,0,12,30],[20,0,12,8]],[[4,0,15,8],[8,0,15,13],[30,0,15,8],[32,0,15,36]],[],[[2,0,19,4],[18,0,19,11],[29,0,20,25],[33,0,20,8],[50,0,21,20],[71,0,21,8]],[],[],[],[],[],[],[],[],[[4,0,25,39],[10,0,25,14],[35,0,25,39],[47,0,25,52],[98,0,25,99]],[[4,0,26,8],[12,0,26,15],[35,0,26,15],[38,0,26,41],[42,0,26,46]],[[4,0,27,38],[10,0,27,14],[34,0,27,38],[46,0,27,51],[93,0,27,94]],[[4,0,28,8],[12,0,28,15],[30,0,28,34],[41,0,28,44],[53,0,28,15],[56,0,28,59]],[[15,0,31,17]],[[8,0,32,12],[16,0,32,19],[26,0,32,30],[40,0,32,43],[43,0,32,19],[46,0,32,49],[56,0,32,60],[74,0,32,77]],[],[[4,0,34,8],[12,0,34,15]],[],[]]
@@ -0,0 +1,31 @@
1
+ import "./cat20/types.scrypt.tpl";
2
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/contextUtils.scrypt.tpl";
3
+ import "./cat20/cat20GuardStateLib.scrypt.tpl";
4
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/txUtils.scrypt.tpl";
5
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/types/structs.scrypt.tpl";
6
+
7
+
8
+ contract CAT20Incinerator {
9
+ bytes cat20GuardScriptHash;
10
+ constructor(bytes cat20GuardScriptHash) {
11
+ this.cat20GuardScriptHash = cat20GuardScriptHash;
12
+ }
13
+ public function incinerate(int guardInputIndex, CAT20GuardConstState guardState, SHPreimage __scrypt_ts_shPreimage, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes) {
14
+ require(Tx.checkPreimageSigHashType(ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage), SigHash.ALL));
15
+
16
+ int __scrypt_ts_inputCount = ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
17
+
18
+ ContextUtils.checkSpentScripts(__scrypt_ts_spentScriptHashes, __scrypt_ts_shPreimage.hashSpentScriptHashes, __scrypt_ts_inputCount);
19
+
20
+ ContextUtils.checkSpentDataHashes(__scrypt_ts_spentDataHashes, __scrypt_ts_shPreimage.hashSpentDataHashes, __scrypt_ts_inputCount);
21
+
22
+ bytes currentGuardScriptHash = ContextUtils.getSpentScriptHash(__scrypt_ts_spentScriptHashes, guardInputIndex);
23
+ require(currentGuardScriptHash == this.cat20GuardScriptHash);
24
+ bytes currentGuardStateHash = ContextUtils.getSpentDataHash(__scrypt_ts_spentDataHashes, guardInputIndex);
25
+ require(CAT20GuardStateLib.stateHash(guardState) == currentGuardStateHash);
26
+ loop (4) : i {
27
+ require(guardState.tokenAmounts[i] == guardState.tokenBurnAmounts[i]);
28
+ }
29
+ require(true);
30
+ }
31
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "success": true,
3
+ "errors": [],
4
+ "scryptfile": "cat20Incinerator.scrypt.tpl",
5
+ "sourceMapFile": "cat20Incinerator.scrypt.map",
6
+ "ctxMethods": [
7
+ "incinerate"
8
+ ]
9
+ }
@@ -0,0 +1 @@
1
+ [[],[[8,0,32,13]],[[2,0,34,4],[9,0,34,11],[15,0,34,39],[21,0,34,20],[41,0,34,52],[48,0,36,8]],[[2,0,40,4],[9,0,40,11],[15,0,40,54],[21,0,40,20],[56,0,40,67],[63,0,42,8]],[[2,0,46,4],[9,0,46,11],[15,0,46,54],[21,0,46,20],[56,0,46,67],[63,0,48,8]],[[2,0,52,4],[9,0,52,11],[15,0,52,54],[21,0,52,20],[56,0,52,67],[63,0,54,8]],[[2,0,58,4],[9,0,58,11],[15,0,58,54],[21,0,58,20],[56,0,58,67],[63,0,60,8]],[[2,0,66,4],[9,0,66,11],[15,0,66,32],[21,0,66,20],[34,0,66,58]],[[2,0,68,4],[9,0,68,11],[15,0,68,36],[21,0,68,20],[38,0,68,62]],[[2,0,70,4],[9,0,70,11],[15,0,70,45],[21,0,70,20],[47,0,70,71]],[[2,0,72,4],[9,0,72,11],[15,0,72,43],[21,0,72,20],[45,0,72,69]],[[2,0,74,4],[9,0,74,11],[15,0,74,42],[21,0,74,20],[44,0,74,68]],[[2,0,83,4],[9,0,83,11],[15,0,83,40],[21,0,83,20],[42,0,83,66]],[[2,0,85,4],[9,0,85,11],[15,0,85,38],[21,0,85,20],[40,0,85,64]],[[2,0,87,4],[9,0,87,11],[15,0,87,37],[21,0,87,20],[39,0,87,63]],[]]
@@ -0,0 +1,16 @@
1
+
2
+ library ConstantsLib {
3
+ static const bytes ZERO_SHA1256_HASH = Sha256(b'0000000000000000000000000000000000000000000000000000000000000000');
4
+ static const bytes TOKEN_SCRIPT_HASH_PLACEHOLDER_FF = Sha256(b'00000000000000000000000000000000000000000000000000000000000000ff');
5
+ static const bytes TOKEN_SCRIPT_HASH_PLACEHOLDER_FE = Sha256(b'00000000000000000000000000000000000000000000000000000000000000fe');
6
+ static const bytes TOKEN_SCRIPT_HASH_PLACEHOLDER_FD = Sha256(b'00000000000000000000000000000000000000000000000000000000000000fd');
7
+ static const bytes TOKEN_SCRIPT_HASH_PLACEHOLDER_FC = Sha256(b'00000000000000000000000000000000000000000000000000000000000000fc');
8
+ static const bytes _OPCAT_TAG = b'6f70636174';
9
+ static const bytes _OPCAT_VERSION = b'01';
10
+ static const bytes _OPCAT_METADATA_SUB_TAG = b'00';
11
+ static const bytes _OPCAT_MINTER_SUB_TAG = b'01';
12
+ static const bytes _OPCAT_CAT20_SUB_TAG = b'02';
13
+ static const bytes OPCAT_METADATA_TAG = b'6f706361740100';
14
+ static const bytes OPCAT_MINTER_TAG = b'6f706361740101';
15
+ static const bytes OPCAT_CAT20_TAG = b'6f706361740102';
16
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "success": true,
3
+ "errors": [],
4
+ "scryptfile": "constants.scrypt.tpl",
5
+ "sourceMapFile": "constants.scrypt.map",
6
+ "ctxMethods": []
7
+ }
@@ -0,0 +1 @@
1
+ [[],[],[],[],[],[],[],[[7,0,8,0]],[[2,0,9,9],[6,0,9,2]],[],[],[[9,0,12,13]],[],[[2,0,14,2],[18,0,14,9]],[],[],[],[],[],[],[],[],[],[],[[25,0,17,15],[31,0,17,4]],[[4,0,20,6],[10,0,19,10],[20,0,20,6],[27,0,20,14],[114,0,23,8],[121,0,23,15],[128,0,23,23],[169,0,20,6]],[],[[4,0,26,4],[20,0,26,29]],[],[],[],[],[],[],[],[]]
@@ -0,0 +1,36 @@
1
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/txUtils.scrypt.tpl";
2
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/stdUtils.scrypt.tpl";
3
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/types/structs.scrypt.tpl";
4
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/contextUtils.scrypt.tpl";
5
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/stateUtils.scrypt.tpl";
6
+
7
+
8
+ struct CounterState {
9
+ int count;
10
+ }
11
+
12
+ contract Counter {
13
+ constructor(){}
14
+ public function increase(SHPreimage __scrypt_ts_shPreimage, TxOut __scrypt_ts_changeInfo, CounterState __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes) {
15
+ require(Tx.checkPreimageSigHashType(ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage), SigHash.ALL));
16
+
17
+ int __scrypt_ts_inputCount = ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
18
+
19
+ ContextUtils.checkSpentDataHashes(__scrypt_ts_spentDataHashes, __scrypt_ts_shPreimage.hashSpentDataHashes, __scrypt_ts_inputCount);
20
+
21
+ CounterState __scrypt_ts_nextState = __scrypt_ts_curState;
22
+
23
+ StateUtils.checkInputState(__scrypt_ts_shPreimage.inputIndex, Counter.stateHash(__scrypt_ts_curState), __scrypt_ts_spentDataHashes);
24
+
25
+ __scrypt_ts_nextState.count++;
26
+ bytes outputs = TxUtils.buildDataOutput(__scrypt_ts_shPreimage.spentScriptHash, __scrypt_ts_shPreimage.value, sha256(Counter.serializeState(__scrypt_ts_nextState))) +
27
+ (__scrypt_ts_changeInfo.satoshis > 0 ? TxUtils.buildOutput(__scrypt_ts_changeInfo.scriptHash, __scrypt_ts_changeInfo.satoshis) : b'');
28
+ require(hash256(outputs) == __scrypt_ts_shPreimage.hashOutputs);
29
+ }
30
+ static function serializeState(CounterState __scrypt_ts_curState): bytes {
31
+ return num2bin(len(pack(__scrypt_ts_curState.count)), 2) + pack(__scrypt_ts_curState.count) + hash160(hash160(pack(__scrypt_ts_curState.count)));
32
+ }
33
+ static function stateHash(CounterState __scrypt_ts_curState): bytes {
34
+ return sha256(num2bin(len(pack(__scrypt_ts_curState.count)), 2) + pack(__scrypt_ts_curState.count) + hash160(hash160(pack(__scrypt_ts_curState.count))));
35
+ }
36
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "success": true,
3
+ "errors": [],
4
+ "scryptfile": "counter.scrypt.tpl",
5
+ "sourceMapFile": "counter.scrypt.map",
6
+ "ctxMethods": [
7
+ "increase"
8
+ ]
9
+ }
@@ -0,0 +1 @@
1
+ [[],[],[],[],[[9,0,11,13]],[[2,0,13,7],[8,0,13,2]],[[2,0,21,2],[18,0,21,9],[25,0,21,21],[29,0,21,16],[34,0,21,34],[41,0,21,26]],[[4,0,22,4],[12,0,22,16],[20,0,22,11],[21,0,22,25],[26,0,22,30],[32,0,22,11]],[[4,0,23,4],[12,0,23,11],[20,0,23,19],[28,0,23,11],[31,0,23,30],[35,0,23,35]],[],[]]
@@ -0,0 +1,11 @@
1
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/txUtils.scrypt.tpl";
2
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/contextUtils.scrypt.tpl";
3
+
4
+
5
+ contract P2PKH {
6
+ bytes pkh;
7
+ public function unlock(Sig sig, PubKey pubKey) {
8
+ require(checkSig(sig, pubKey));
9
+ require(hash160(pubKey) == this.pkh);
10
+ }
11
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "success": true,
3
+ "errors": [],
4
+ "scryptfile": "p2pkh.scrypt.tpl",
5
+ "sourceMapFile": "p2pkh.scrypt.map",
6
+ "ctxMethods": []
7
+ }
@@ -0,0 +1 @@
1
+ [[],[[7,0,4,33]],[[2,0,6,16],[9,0,6,4]],[[2,0,7,13],[6,0,7,4]],[[2,0,9,24],[6,0,9,4]],[]]
@@ -0,0 +1,6 @@
1
+
2
+ struct ContractUnlockArgs {
3
+ PubKey userPubKey;
4
+ Sig userSig;
5
+ int contractInputIndex;
6
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "success": true,
3
+ "errors": [],
4
+ "scryptfile": "types.scrypt.tpl",
5
+ "sourceMapFile": "types.scrypt.map",
6
+ "ctxMethods": []
7
+ }
@@ -0,0 +1 @@
1
+ [[],[],[],[],[[8,0,7,13]],[[2,0,14,2],[18,0,14,9],[34,0,14,33],[40,0,14,25],[50,0,14,46]],[[4,0,15,4],[14,0,15,15],[27,0,15,27]],[[4,0,16,4],[11,0,16,24],[21,0,16,11],[23,0,16,36],[31,0,16,44],[39,0,16,11],[41,0,16,67]],[],[[2,0,25,2],[18,0,25,9],[33,0,25,32],[39,0,25,24],[47,0,25,55],[53,0,25,44]],[[4,0,26,4],[12,0,26,11],[22,0,26,22],[39,0,26,38],[47,0,26,11],[50,0,26,49]],[],[],[[2,0,30,2],[18,0,30,9],[30,0,30,29],[36,0,30,21]],[[4,0,31,4],[12,0,31,11],[16,0,31,15],[24,0,31,11],[27,0,31,26]],[],[],[[2,0,35,2],[18,0,35,9],[33,0,35,35],[39,0,35,24]],[[4,0,36,20],[8,0,36,10],[18,0,36,20],[22,0,36,24]],[[4,0,37,4],[12,0,38,6],[20,0,38,6],[23,0,38,17],[26,0,38,6],[29,0,39,8],[37,0,39,8],[40,0,39,19]],[],[],[[2,0,44,2],[18,0,44,9],[28,0,44,30],[34,0,44,19],[47,0,44,43]],[[4,0,46,4],[11,0,46,11]],[],[]]
@@ -0,0 +1,26 @@
1
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/txUtils.scrypt.tpl";
2
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/contextUtils.scrypt.tpl";
3
+
4
+
5
+ library OwnerUtils {
6
+ static function toLockingScript(bytes pubKey) : bytes {
7
+ OwnerUtils.checkPubKey(pubKey);
8
+ return b'76a914' + hash160(pubKey) + b'88ac';
9
+ }
10
+ static function checkUserOwner(bytes pubKey, bytes ownerAddr) : bool {
11
+ require(OwnerUtils.toLockingScript(pubKey) == ownerAddr);
12
+ return true;
13
+ }
14
+ static function checkPubKey(bytes pubKey) : bool {
15
+ require(len(pubKey) == 33);
16
+ return true;
17
+ }
18
+ static function checkOwnerAddr(bytes ownerAddr) : bool {
19
+ int addrLen = len(ownerAddr);
20
+ require(addrLen == 25 || addrLen == 32);
21
+ return true;
22
+ }
23
+ static function serialize(bytes ownerAddr) : bytes {
24
+ return ownerAddr;
25
+ }
26
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "success": true,
3
+ "errors": [],
4
+ "scryptfile": "utils/ownerUtils.scrypt.tpl",
5
+ "sourceMapFile": "utils/ownerUtils.scrypt.map",
6
+ "ctxMethods": []
7
+ }
@@ -0,0 +1 @@
1
+ [[],[],[],[],[[8,0,2,13]],[[2,0,4,2],[18,0,4,9],[22,0,4,16],[26,0,4,13],[29,0,4,27],[33,0,4,24],[38,0,4,36]],[[4,0,5,14],[8,0,5,10],[12,0,5,14],[14,0,5,14],[16,0,5,18]],[[4,0,6,4],[12,0,6,11],[14,0,6,11],[17,0,6,16],[19,0,6,11],[22,0,6,21],[24,0,6,21],[27,0,6,26]],[[4,0,7,4],[11,0,7,11]],[],[]]
@@ -0,0 +1,11 @@
1
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/txUtils.scrypt.tpl";
2
+ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/contextUtils.scrypt.tpl";
3
+
4
+
5
+ library SafeMath {
6
+ static function add(int a, int b) : int {
7
+ int c = a + b;
8
+ require(c >= a && c >= b);
9
+ return c;
10
+ }
11
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "success": true,
3
+ "errors": [],
4
+ "scryptfile": "utils/safeMath.scrypt.tpl",
5
+ "sourceMapFile": "utils/safeMath.scrypt.map",
6
+ "ctxMethods": []
7
+ }