@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,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.contractSend = void 0;
4
+ const scrypt_ts_opcat_1 = require("@opcat-labs/scrypt-ts-opcat");
5
+ const cat20_1 = require("../../../contracts/cat20/cat20");
6
+ const cat20Guard_1 = require("../../../contracts/cat20/cat20Guard");
7
+ const constants_1 = require("../../../contracts/constants");
8
+ const typeConstants_1 = require("../../../typeConstants");
9
+ const utils_1 = require("../../../utils");
10
+ const contractPeripheral_1 = require("../../../utils/contractPeripheral");
11
+ const cat20StateLib_1 = require("../../../contracts/cat20/cat20StateLib");
12
+ async function contractSend(signer, provider, minterScriptHash, inputTokenUtxos, receivers, tokenChangeAddress, feeRate) {
13
+ if (inputTokenUtxos.length + 2 > constants_1.TX_INPUT_COUNT_MAX) {
14
+ throw new Error(`Too many inputs that exceed the maximum input limit of ${constants_1.TX_INPUT_COUNT_MAX}`);
15
+ }
16
+ const changeAddress = await signer.getAddress();
17
+ // we use the p2pkh contract as the contract owner
18
+ const expectContractOwner = (0, utils_1.toTokenOwnerAddress)(changeAddress, true);
19
+ let utxos = await provider.getUtxos(changeAddress);
20
+ utxos = (0, utils_1.filterFeeUtxos)(utxos).slice(0, constants_1.TX_INPUT_COUNT_MAX);
21
+ if (utxos.length === 0) {
22
+ throw new Error('Insufficient satoshis input amount');
23
+ }
24
+ receivers = [...receivers];
25
+ const inputTokenStates = inputTokenUtxos.map((utxo) => cat20_1.CAT20.deserializeState(utxo.data));
26
+ inputTokenStates.map((state, index) => {
27
+ if (state.ownerAddr != expectContractOwner) {
28
+ throw new Error(`the ${index} input token owner=${state.ownerAddr} is not ${expectContractOwner}`);
29
+ }
30
+ });
31
+ const totalInputAmt = inputTokenStates.reduce((acc, state) => acc + state.amount, 0n);
32
+ const totalOutputAmt = receivers.reduce((acc, receiver) => acc + receiver.amount, 0n);
33
+ let changeTokenOutputIndex = -1;
34
+ if (totalInputAmt > totalOutputAmt) {
35
+ changeTokenOutputIndex = receivers.length;
36
+ receivers.push({
37
+ address: tokenChangeAddress,
38
+ amount: totalInputAmt - totalOutputAmt,
39
+ });
40
+ }
41
+ const { guardState, outputTokens: _outputTokens } = contractPeripheral_1.CAT20GuardPeripheral.createTransferGuard(inputTokenUtxos.map((utxo, index) => ({
42
+ token: utxo,
43
+ inputIndex: index,
44
+ })), receivers.map((receiver, index) => ({
45
+ ...receiver,
46
+ outputIndex: index,
47
+ })));
48
+ const outputTokens = _outputTokens.filter((v) => v != undefined);
49
+ const guard = new cat20Guard_1.CAT20Guard();
50
+ guard.state = guardState;
51
+ const guardPsbt = new scrypt_ts_opcat_1.ExtPsbt({ network: await provider.getNetwork() })
52
+ .spendUTXO(utxos)
53
+ .addContractOutput(guard, typeConstants_1.Postage.GUARD_POSTAGE)
54
+ .change(changeAddress, feeRate)
55
+ .seal();
56
+ const signedGuardPsbt = await signer.signPsbt(guardPsbt.toHex(), guardPsbt.psbtOptions());
57
+ guardPsbt.combine(scrypt_ts_opcat_1.ExtPsbt.fromHex(signedGuardPsbt));
58
+ guardPsbt.finalizeAllInputs();
59
+ const guardUtxo = guardPsbt.getUtxo(0);
60
+ const feeUtxo = guardPsbt.getChangeUTXO();
61
+ const guardScriptHash = contractPeripheral_1.ContractPeripheral.scriptHash(guard);
62
+ const inputTokens = inputTokenUtxos.map((utxo) => new cat20_1.CAT20(minterScriptHash, guardScriptHash).bindToUtxo(utxo));
63
+ /// we use the fee input as contract input;
64
+ const sendPsbt = new scrypt_ts_opcat_1.ExtPsbt({ network: await provider.getNetwork() });
65
+ const guardInputIndex = inputTokens.length;
66
+ const backtraces = await contractPeripheral_1.CAT20GuardPeripheral.getBackTraceInfo(minterScriptHash, inputTokenUtxos, provider);
67
+ // add token inputs
68
+ for (let index = 0; index < inputTokens.length; index++) {
69
+ sendPsbt.addContractInput(inputTokens[index], (contract, tx) => {
70
+ const contractInputIndexVal = tx.data.inputs.findIndex((input) => contractPeripheral_1.ContractPeripheral.scriptHash((0, scrypt_ts_opcat_1.toHex)(input.opcatUtxo.script)) == inputTokenStates[index].ownerAddr);
71
+ contract.unlock({
72
+ userPubKey: '',
73
+ userSig: '',
74
+ contractInputIndex: BigInt(contractInputIndexVal),
75
+ }, guardState, BigInt(guardInputIndex), (0, scrypt_ts_opcat_1.getBackTraceInfo)(backtraces[index].prevTxHex, backtraces[index].prevPrevTxHex, backtraces[index].prevTxInput));
76
+ });
77
+ }
78
+ // add token outputs
79
+ for (const outputToken of outputTokens) {
80
+ const outputCat20 = new cat20_1.CAT20(minterScriptHash, guardScriptHash);
81
+ outputCat20.state = outputToken;
82
+ sendPsbt.addContractOutput(outputCat20, typeConstants_1.Postage.TOKEN_POSTAGE);
83
+ }
84
+ // add guard input;
85
+ guard.bindToUtxo(guardUtxo);
86
+ sendPsbt.addContractInput(guard, (contract, tx) => {
87
+ const ownerAddrOrScript = (0, scrypt_ts_opcat_1.fill)((0, scrypt_ts_opcat_1.toByteString)(''), constants_1.TX_OUTPUT_COUNT_MAX);
88
+ (0, utils_1.applyFixedArray)(ownerAddrOrScript, tx.txOutputs.map((output, index) => {
89
+ return index < outputTokens.length
90
+ ? outputTokens[index].ownerAddr
91
+ : contractPeripheral_1.ContractPeripheral.scriptHash((0, scrypt_ts_opcat_1.toHex)(output.script));
92
+ }));
93
+ const outputTokenAmts = (0, scrypt_ts_opcat_1.fill)(BigInt(0), constants_1.TX_OUTPUT_COUNT_MAX);
94
+ (0, utils_1.applyFixedArray)(outputTokenAmts, outputTokens.map((t) => t.amount));
95
+ const tokenScriptIndexArray = (0, scrypt_ts_opcat_1.fill)(-1n, constants_1.TX_OUTPUT_COUNT_MAX);
96
+ (0, utils_1.applyFixedArray)(tokenScriptIndexArray, outputTokens.map(() => 0n));
97
+ const outputSatoshis = (0, scrypt_ts_opcat_1.fill)(0n, constants_1.TX_OUTPUT_COUNT_MAX);
98
+ (0, utils_1.applyFixedArray)(outputSatoshis, tx.txOutputs.map((output) => output.value));
99
+ const inputCAT20States = (0, scrypt_ts_opcat_1.fill)(cat20StateLib_1.CAT20StateLib.create(0n, ''), constants_1.TX_INPUT_COUNT_MAX);
100
+ (0, utils_1.applyFixedArray)(inputCAT20States, inputTokenStates);
101
+ const nextStateHashes = (0, scrypt_ts_opcat_1.fill)((0, scrypt_ts_opcat_1.toByteString)(''), constants_1.TX_OUTPUT_COUNT_MAX);
102
+ (0, utils_1.applyFixedArray)(nextStateHashes, tx.txOutputs.map((output) => (0, scrypt_ts_opcat_1.sha256)((0, scrypt_ts_opcat_1.toHex)(output.data))));
103
+ contract.unlock(nextStateHashes, ownerAddrOrScript, outputTokenAmts, tokenScriptIndexArray, outputSatoshis, inputCAT20States, BigInt(tx.data.outputs.length));
104
+ });
105
+ // add fee input, also is a contract input to unlock cat20
106
+ sendPsbt.spendUTXO(feeUtxo);
107
+ sendPsbt.change(changeAddress, feeRate);
108
+ sendPsbt.seal();
109
+ const signedSendPsbt = await signer.signPsbt(sendPsbt.toHex(), sendPsbt.psbtOptions());
110
+ sendPsbt.combine(scrypt_ts_opcat_1.ExtPsbt.fromHex(signedSendPsbt));
111
+ sendPsbt.finalizeAllInputs();
112
+ const newCAT20Utxos = outputTokens.map((_, index) => sendPsbt.getUtxo(index));
113
+ const newFeeUtxo = sendPsbt.getChangeUTXO();
114
+ // broadcast
115
+ await provider.broadcast(guardPsbt.extractTransaction().toHex());
116
+ (0, scrypt_ts_opcat_1.markSpent)(provider, guardPsbt.extractTransaction());
117
+ await provider.broadcast(sendPsbt.extractTransaction().toHex());
118
+ (0, scrypt_ts_opcat_1.markSpent)(provider, sendPsbt.extractTransaction());
119
+ provider.addNewUTXO(newFeeUtxo);
120
+ return {
121
+ sendTxId: sendPsbt.extractTransaction().id,
122
+ guardTxId: guardPsbt.extractTransaction().id,
123
+ guardPsbt,
124
+ sendPsbt,
125
+ newCAT20Utxos,
126
+ changeTokenOutputIndex,
127
+ };
128
+ }
129
+ exports.contractSend = contractSend;
130
+ //# sourceMappingURL=contractSend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractSend.js","sourceRoot":"","sources":["../../../../../src/features/cat20/send/contractSend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.singleSendStep3 = exports.singleSendStep2 = exports.singleSendStep1 = exports.singleSend = void 0;
27
+ const scrypt_ts_opcat_1 = require("@opcat-labs/scrypt-ts-opcat");
28
+ const constants_1 = require("../../../contracts/constants");
29
+ const utils_1 = require("../../../utils");
30
+ const contractPeripheral_1 = require("../../../utils/contractPeripheral");
31
+ const typeConstants_1 = require("../../../typeConstants");
32
+ const cat20Guard_1 = require("../../../contracts/cat20/cat20Guard");
33
+ const cat20_1 = require("../../../contracts/cat20/cat20");
34
+ const opcat = __importStar(require("@opcat-labs/opcat"));
35
+ const cat20StateLib_1 = require("../../../contracts/cat20/cat20StateLib");
36
+ const opcat_1 = require("@opcat-labs/opcat");
37
+ async function singleSend(signer, provider, minterScriptHash, inputTokenUtxos, receivers, tokenChangeAddress, feeRate, sendChangeData) {
38
+ const pubkey = await signer.getPublicKey();
39
+ const feeChangeAddress = await signer.getAddress();
40
+ const { guardPsbt, outputTokenStates, changeTokenOutputIndex, guard } = await singleSendStep1(provider, inputTokenUtxos, receivers, feeChangeAddress, tokenChangeAddress, feeRate);
41
+ const signedGuardPsbt = scrypt_ts_opcat_1.ExtPsbt.fromHex(await signer.signPsbt(guardPsbt.toHex(), guardPsbt.psbtOptions()));
42
+ guardPsbt.combine(signedGuardPsbt).finalizeAllInputs();
43
+ const { sendPsbt } = await singleSendStep2(minterScriptHash, guard, guardPsbt, inputTokenUtxos, outputTokenStates, feeChangeAddress, feeRate, provider, pubkey, sendChangeData);
44
+ const signedSendPsbt = scrypt_ts_opcat_1.ExtPsbt.fromHex(await signer.signPsbt(sendPsbt.toHex(), sendPsbt.psbtOptions()));
45
+ sendPsbt.combine(signedSendPsbt).finalizeAllInputs();
46
+ const { newCAT20Utxos } = await singleSendStep3(provider, guardPsbt, sendPsbt, outputTokenStates);
47
+ return {
48
+ guardPsbt,
49
+ sendPsbt,
50
+ guardTxId: guardPsbt.extractTransaction().id,
51
+ sendTxId: sendPsbt.extractTransaction().id,
52
+ newCAT20Utxos,
53
+ changeTokenOutputIndex,
54
+ };
55
+ }
56
+ exports.singleSend = singleSend;
57
+ async function singleSendStep1(provider, inputTokenUtxos, receivers, feeChangeAddress, tokenChangeAddress, feeRate) {
58
+ if (inputTokenUtxos.length + 2 > constants_1.TX_INPUT_COUNT_MAX) {
59
+ throw new Error(`Too many inputs that exceed the maximum input limit of ${constants_1.TX_INPUT_COUNT_MAX}`);
60
+ }
61
+ let utxos = await provider.getUtxos(feeChangeAddress);
62
+ utxos = (0, utils_1.filterFeeUtxos)(utxos).slice(0, constants_1.TX_INPUT_COUNT_MAX);
63
+ if (utxos.length === 0) {
64
+ throw new Error('Insufficient satoshis input amount');
65
+ }
66
+ receivers = [...receivers];
67
+ const inputTokenStates = inputTokenUtxos.map((utxo) => cat20_1.CAT20.deserializeState(utxo.data));
68
+ const totalInputAmount = inputTokenStates.reduce((acc, state) => acc + state.amount, 0n);
69
+ const totalOutputAmount = receivers.reduce((acc, receiver) => acc + receiver.amount, 0n);
70
+ let changeTokenOutputIndex = -1;
71
+ if (totalInputAmount > totalOutputAmount) {
72
+ changeTokenOutputIndex = receivers.length;
73
+ receivers.push({
74
+ address: tokenChangeAddress,
75
+ amount: totalInputAmount - totalOutputAmount,
76
+ });
77
+ }
78
+ const { guardState, outputTokens: _outputTokens } = contractPeripheral_1.CAT20GuardPeripheral.createTransferGuard(inputTokenUtxos.map((utxo, index) => ({
79
+ token: utxo,
80
+ inputIndex: index,
81
+ })), receivers.map((receiver, index) => ({
82
+ ...receiver,
83
+ outputIndex: index,
84
+ })));
85
+ const outputTokens = _outputTokens.filter((v) => v != undefined);
86
+ const guard = new cat20Guard_1.CAT20Guard();
87
+ guard.state = guardState;
88
+ const guardPsbt = new scrypt_ts_opcat_1.ExtPsbt({ network: await provider.getNetwork() })
89
+ .spendUTXO(utxos)
90
+ .addContractOutput(guard, typeConstants_1.Postage.GUARD_POSTAGE)
91
+ .change(feeChangeAddress, feeRate)
92
+ .seal();
93
+ return { guard, guardPsbt, outputTokenStates: outputTokens, changeTokenOutputIndex };
94
+ }
95
+ exports.singleSendStep1 = singleSendStep1;
96
+ async function singleSendStep2(minterScriptHash, guard, finalizedGuardPsbt, inputTokenUtxos, outputTokenStates, feeChangeAddress, feeRate, provider, publicKey, sendChangeData) {
97
+ const network = await provider.getNetwork();
98
+ const guardPsbt = finalizedGuardPsbt;
99
+ const guardUtxo = guardPsbt.getUtxo(0);
100
+ const feeUtxo = guardPsbt.getChangeUTXO();
101
+ const guardScriptHash = contractPeripheral_1.ContractPeripheral.scriptHash(guard);
102
+ const backtraces = await contractPeripheral_1.CAT20GuardPeripheral.getBackTraceInfo(minterScriptHash, inputTokenUtxos, provider);
103
+ const inputTokens = inputTokenUtxos.map((_token, index) => new cat20_1.CAT20(minterScriptHash, guardScriptHash).bindToUtxo({
104
+ ..._token,
105
+ txHashPreimage: (0, scrypt_ts_opcat_1.toHex)(new opcat_1.Transaction(backtraces[index].prevTxHex).toTxHashPreimage()),
106
+ }));
107
+ const sendPsbt = new scrypt_ts_opcat_1.ExtPsbt({ network: await provider.getNetwork() });
108
+ const guardInputIndex = inputTokens.length;
109
+ const inputTokenStates = inputTokenUtxos.map((utxo) => cat20_1.CAT20.deserializeState(utxo.data));
110
+ const guardState = guard.state;
111
+ // add token inputs.
112
+ for (let index = 0; index < inputTokens.length; index++) {
113
+ sendPsbt.addContractInput(inputTokens[index], (cat20, tx) => {
114
+ const address = opcat.Script.fromHex(inputTokenStates[index].ownerAddr).toAddress((0, scrypt_ts_opcat_1.fromSupportedNetwork)(network));
115
+ const sig = tx.getSig(index, {
116
+ address: address.toString()
117
+ });
118
+ return cat20.unlock({
119
+ userPubKey: (0, scrypt_ts_opcat_1.PubKey)(publicKey),
120
+ userSig: sig,
121
+ contractInputIndex: -1n,
122
+ }, guardState, BigInt(guardInputIndex), (0, scrypt_ts_opcat_1.getBackTraceInfo)(backtraces[index].prevTxHex, backtraces[index].prevPrevTxHex, backtraces[index].prevTxInput));
123
+ });
124
+ }
125
+ // add token outputs
126
+ for (const outputToken of outputTokenStates) {
127
+ const cat20 = new cat20_1.CAT20(minterScriptHash, guardScriptHash);
128
+ cat20.state = outputToken;
129
+ sendPsbt.addContractOutput(cat20, typeConstants_1.Postage.TOKEN_POSTAGE);
130
+ }
131
+ // add guard input
132
+ guard.bindToUtxo(guardUtxo);
133
+ sendPsbt.addContractInput(guard, (contract, tx) => {
134
+ const ownerAddrOrScript = (0, scrypt_ts_opcat_1.fill)((0, scrypt_ts_opcat_1.toByteString)(''), constants_1.TX_OUTPUT_COUNT_MAX);
135
+ (0, utils_1.applyFixedArray)(ownerAddrOrScript, tx.txOutputs.map((output, index) => {
136
+ return index < outputTokenStates.length
137
+ ? outputTokenStates[index].ownerAddr
138
+ : contractPeripheral_1.ContractPeripheral.scriptHash((0, scrypt_ts_opcat_1.toHex)(output.script));
139
+ }));
140
+ const outputTokenAmts = (0, scrypt_ts_opcat_1.fill)(BigInt(0), constants_1.TX_OUTPUT_COUNT_MAX);
141
+ (0, utils_1.applyFixedArray)(outputTokenAmts, outputTokenStates.map((t) => t.amount));
142
+ const tokenScriptIndexArray = (0, scrypt_ts_opcat_1.fill)(-1n, constants_1.TX_OUTPUT_COUNT_MAX);
143
+ (0, utils_1.applyFixedArray)(tokenScriptIndexArray, outputTokenStates.map(() => 0n));
144
+ const outputSatoshis = (0, scrypt_ts_opcat_1.fill)(0n, constants_1.TX_OUTPUT_COUNT_MAX);
145
+ (0, utils_1.applyFixedArray)(outputSatoshis, tx.txOutputs.map((output) => output.value));
146
+ const inputCAT20States = (0, scrypt_ts_opcat_1.fill)(cat20StateLib_1.CAT20StateLib.create(0n, ''), constants_1.TX_INPUT_COUNT_MAX);
147
+ (0, utils_1.applyFixedArray)(inputCAT20States, inputTokenStates);
148
+ const nextStateHashes = (0, scrypt_ts_opcat_1.fill)((0, scrypt_ts_opcat_1.toByteString)(''), constants_1.TX_OUTPUT_COUNT_MAX);
149
+ (0, utils_1.applyFixedArray)(nextStateHashes, tx.txOutputs.map((output) => (0, scrypt_ts_opcat_1.sha256)((0, scrypt_ts_opcat_1.toHex)(output.data))));
150
+ contract.unlock(nextStateHashes, ownerAddrOrScript, outputTokenAmts, tokenScriptIndexArray, outputSatoshis, inputCAT20States, BigInt(tx.txOutputs.length));
151
+ });
152
+ // add fee input
153
+ sendPsbt.spendUTXO(feeUtxo);
154
+ // add change output
155
+ sendPsbt.change(feeChangeAddress, feeRate, sendChangeData || '');
156
+ sendPsbt.seal();
157
+ return { sendPsbt };
158
+ }
159
+ exports.singleSendStep2 = singleSendStep2;
160
+ async function singleSendStep3(provider, finalizedGuardPsbt, finalizedSendPsbt, outputTokenStates) {
161
+ // broadcast
162
+ await provider.broadcast(finalizedGuardPsbt.extractTransaction().toHex());
163
+ (0, scrypt_ts_opcat_1.markSpent)(provider, finalizedGuardPsbt.extractTransaction());
164
+ await provider.broadcast(finalizedSendPsbt.extractTransaction().toHex());
165
+ (0, scrypt_ts_opcat_1.markSpent)(provider, finalizedSendPsbt.extractTransaction());
166
+ const newFeeUtxo = finalizedSendPsbt.getChangeUTXO();
167
+ provider.addNewUTXO(newFeeUtxo);
168
+ const newCAT20Utxos = outputTokenStates.map((_, index) => finalizedSendPsbt.getUtxo(index));
169
+ return { newCAT20Utxos, newFeeUtxo };
170
+ }
171
+ exports.singleSendStep3 = singleSendStep3;
172
+ //# sourceMappingURL=singleSend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleSend.js","sourceRoot":"","sources":["../../../../../src/features/cat20/send/singleSend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.incinerate = exports.singleSendStep3 = exports.singleSendStep2 = exports.singleSendStep1 = exports.singleSend = exports.contractSend = exports.openMinterMint = exports.deployOpenMinter = exports.burn = void 0;
4
+ var burn_1 = require("./cat20/burn/burn");
5
+ Object.defineProperty(exports, "burn", { enumerable: true, get: function () { return burn_1.burn; } });
6
+ var openMinter_1 = require("./cat20/deploy/openMinter");
7
+ Object.defineProperty(exports, "deployOpenMinter", { enumerable: true, get: function () { return openMinter_1.deploy; } });
8
+ var openMinter_2 = require("./cat20/mint/openMinter");
9
+ Object.defineProperty(exports, "openMinterMint", { enumerable: true, get: function () { return openMinter_2.mint; } });
10
+ var contractSend_1 = require("./cat20/send/contractSend");
11
+ Object.defineProperty(exports, "contractSend", { enumerable: true, get: function () { return contractSend_1.contractSend; } });
12
+ var singleSend_1 = require("./cat20/send/singleSend");
13
+ Object.defineProperty(exports, "singleSend", { enumerable: true, get: function () { return singleSend_1.singleSend; } });
14
+ Object.defineProperty(exports, "singleSendStep1", { enumerable: true, get: function () { return singleSend_1.singleSendStep1; } });
15
+ Object.defineProperty(exports, "singleSendStep2", { enumerable: true, get: function () { return singleSend_1.singleSendStep2; } });
16
+ Object.defineProperty(exports, "singleSendStep3", { enumerable: true, get: function () { return singleSend_1.singleSendStep3; } });
17
+ var incinerate_1 = require("./cat20/incinerate");
18
+ Object.defineProperty(exports, "incinerate", { enumerable: true, get: function () { return incinerate_1.incinerate; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/index.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,wDAAsE;AAA7D,8GAAA,MAAM,OAAoB;AACnC,sDAAgE;AAAvD,4GAAA,IAAI,OAAkB;AAC/B,0DAAwD;AAA/C,4GAAA,YAAY,OAAA;AACrB,sDAAuG;AAA9F,wGAAA,UAAU,OAAA;AAAE,6GAAA,eAAe,OAAA;AAAE,6GAAA,eAAe,OAAA;AAAE,6GAAA,eAAe,OAAA;AACtE,iDAA+C;AAAtC,wGAAA,UAAU,OAAA"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.CAT20GuardPeripheral = exports.CAT20OpenMinterPeripheral = exports.ContractPeripheral = exports.getDummyUtxo = exports.hexToString = exports.stringToHex = exports.toTokenOwnerAddress = exports.outpoint2ByteString = exports.toTxOutpoint = void 0;
18
+ __exportStar(require("./contracts/index"), exports);
19
+ __exportStar(require("./features/index"), exports);
20
+ __exportStar(require("./lib/index"), exports);
21
+ __exportStar(require("./typeConstants"), exports);
22
+ var index_1 = require("./utils/index");
23
+ Object.defineProperty(exports, "toTxOutpoint", { enumerable: true, get: function () { return index_1.toTxOutpoint; } });
24
+ Object.defineProperty(exports, "outpoint2ByteString", { enumerable: true, get: function () { return index_1.outpoint2ByteString; } });
25
+ Object.defineProperty(exports, "toTokenOwnerAddress", { enumerable: true, get: function () { return index_1.toTokenOwnerAddress; } });
26
+ Object.defineProperty(exports, "stringToHex", { enumerable: true, get: function () { return index_1.stringToHex; } });
27
+ Object.defineProperty(exports, "hexToString", { enumerable: true, get: function () { return index_1.hexToString; } });
28
+ Object.defineProperty(exports, "getDummyUtxo", { enumerable: true, get: function () { return index_1.getDummyUtxo; } });
29
+ var contractPeripheral_1 = require("./utils/contractPeripheral");
30
+ Object.defineProperty(exports, "ContractPeripheral", { enumerable: true, get: function () { return contractPeripheral_1.ContractPeripheral; } });
31
+ Object.defineProperty(exports, "CAT20OpenMinterPeripheral", { enumerable: true, get: function () { return contractPeripheral_1.CAT20OpenMinterPeripheral; } });
32
+ Object.defineProperty(exports, "CAT20GuardPeripheral", { enumerable: true, get: function () { return contractPeripheral_1.CAT20GuardPeripheral; } });
33
+ const loadAllArtifacts_1 = require("./utils/loadAllArtifacts");
34
+ (0, loadAllArtifacts_1.loadAllArtifacts)();
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,mDAAgC;AAChC,8CAA2B;AAC3B,kDAA+B;AAE/B,uCAOsB;AANpB,qGAAA,YAAY,OAAA;AACZ,4GAAA,mBAAmB,OAAA;AACnB,4GAAA,mBAAmB,OAAA;AACnB,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AACX,qGAAA,YAAY,OAAA;AAGd,iEAImC;AAHjC,wHAAA,kBAAkB,OAAA;AAClB,+HAAA,yBAAyB,OAAA;AACzB,0HAAA,oBAAoB,OAAA;AAGtB,+DAA2D;AAE3D,IAAA,mCAAgB,GAAE,CAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // export * from './extTransaction'
18
+ __exportStar(require("./metadata"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mCAAmC;AACnC,6CAA0B"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatMetadata = void 0;
4
+ const utils_1 = require("../utils");
5
+ function scaleUpAmounts(metadata) {
6
+ const clone = Object.assign({}, metadata);
7
+ clone.max = scaleUpByDecimals(metadata.max, Number(metadata.decimals));
8
+ clone.premine = scaleUpByDecimals(metadata.premine, Number(metadata.decimals));
9
+ clone.limit = scaleUpByDecimals(metadata.limit, Number(metadata.decimals));
10
+ return clone;
11
+ }
12
+ function hexStrings(metadata) {
13
+ return {
14
+ ...metadata,
15
+ name: (0, utils_1.stringToHex)(metadata.name),
16
+ symbol: (0, utils_1.stringToHex)(metadata.symbol),
17
+ };
18
+ }
19
+ function scaleUpByDecimals(amount, decimals) {
20
+ return amount * BigInt(Math.pow(10, decimals));
21
+ }
22
+ function formatMetadata(metadata, scaleUpAmount = true) {
23
+ let clone = Object.assign({}, metadata);
24
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
+ if (scaleUpAmount && typeof metadata.max === 'bigint') {
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ clone = scaleUpAmounts(metadata);
28
+ }
29
+ return hexStrings(clone);
30
+ }
31
+ exports.formatMetadata = formatMetadata;
32
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/lib/metadata.ts"],"names":[],"mappings":";;;AAAA,oCAAsC;AAmBtC,SAAS,cAAc,CAAC,QAA6B;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IACzC,KAAK,CAAC,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IACtE,KAAK,CAAC,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC9E,KAAK,CAAC,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC1E,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,UAAU,CAA0B,QAAW;IACtD,OAAO;QACL,GAAG,QAAQ;QACX,IAAI,EAAE,IAAA,mBAAW,EAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,EAAE,IAAA,mBAAW,EAAC,QAAQ,CAAC,MAAM,CAAC;KACrC,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,QAAgB;IACzD,OAAO,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAA;AAChD,CAAC;AAED,SAAgB,cAAc,CAC5B,QAAW,EACX,gBAAyB,IAAI;IAE7B,IAAI,KAAK,GAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC1C,8DAA8D;IAC9D,IAAI,aAAa,IAAI,OAAQ,QAAgB,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC/D,8DAA8D;QAC9D,KAAK,GAAG,cAAc,CAAC,QAAsC,CAAa,CAAA;IAC5E,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC;AAXD,wCAWC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Postage = exports.SHA256_EMPTY_STRING = exports.DUMMY_PUBLIC_KEY = exports.PUBLIC_KEY_LEN = exports.DUMMY_SIGNATURE = exports.SIGNATURE_LEN = void 0;
4
+ const scrypt_ts_opcat_1 = require("@opcat-labs/scrypt-ts-opcat");
5
+ exports.SIGNATURE_LEN = 64;
6
+ exports.DUMMY_SIGNATURE = '00'.repeat(exports.SIGNATURE_LEN);
7
+ exports.PUBLIC_KEY_LEN = 33;
8
+ exports.DUMMY_PUBLIC_KEY = '02c8d548b9a584bf74c2aa179f4809a4b8d69641fd8aac0f3b6ebda24ec91ac722';
9
+ exports.SHA256_EMPTY_STRING = (0, scrypt_ts_opcat_1.toByteString)((0, scrypt_ts_opcat_1.sha256)(''));
10
+ var Postage;
11
+ (function (Postage) {
12
+ Postage[Postage["METADATA_POSTAGE"] = 546] = "METADATA_POSTAGE";
13
+ Postage[Postage["GUARD_POSTAGE"] = 332] = "GUARD_POSTAGE";
14
+ Postage[Postage["MINTER_POSTAGE"] = 331] = "MINTER_POSTAGE";
15
+ Postage[Postage["TOKEN_POSTAGE"] = 330] = "TOKEN_POSTAGE";
16
+ Postage[Postage["NFT_POSTAGE"] = 333] = "NFT_POSTAGE";
17
+ })(Postage || (exports.Postage = Postage = {}));
18
+ //# sourceMappingURL=typeConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeConstants.js","sourceRoot":"","sources":["../../src/typeConstants.ts"],"names":[],"mappings":";;;AAAA,iEAA8E;AAEjE,QAAA,aAAa,GAAG,EAAE,CAAA;AAClB,QAAA,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAa,CAAC,CAAA;AAE5C,QAAA,cAAc,GAAG,EAAE,CAAA;AACnB,QAAA,gBAAgB,GAC3B,oEAAoE,CAAA;AAKzD,QAAA,mBAAmB,GAAG,IAAA,8BAAY,EAAC,IAAA,wBAAM,EAAC,EAAE,CAAC,CAAC,CAAA;AAE3D,IAAY,OAMX;AAND,WAAY,OAAO;IACjB,+DAAsB,CAAA;IACtB,yDAAmB,CAAA;IACnB,2DAAoB,CAAA;IACpB,yDAAmB,CAAA;IACnB,qDAAiB,CAAA;AACnB,CAAC,EANW,OAAO,uBAAP,OAAO,QAMlB"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkState = exports.checkArgument = void 0;
4
+ function checkArgument(condition, argumentName, message) {
5
+ if (!condition) {
6
+ let errorMessage = `Invalid argument: ${argumentName}`;
7
+ if (message) {
8
+ errorMessage += ` : ${message}`;
9
+ }
10
+ throw new Error(errorMessage);
11
+ }
12
+ }
13
+ exports.checkArgument = checkArgument;
14
+ function checkState(condition, stateName, message) {
15
+ if (!condition) {
16
+ let errorMessage = `Invalid state: ${stateName}`;
17
+ if (message) {
18
+ errorMessage += ` : ${message}`;
19
+ }
20
+ throw new Error(errorMessage);
21
+ }
22
+ }
23
+ exports.checkState = checkState;
24
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/utils/check.ts"],"names":[],"mappings":";;;AAAA,SAAgB,aAAa,CAC3B,SAAkB,EAClB,YAAoB,EACpB,OAAgB;IAEhB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,YAAY,GAAG,qBAAqB,YAAY,EAAE,CAAA;QACtD,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,IAAI,MAAM,OAAO,EAAE,CAAA;QACjC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;IAC/B,CAAC;AACH,CAAC;AAZD,sCAYC;AAED,SAAgB,UAAU,CACxB,SAAkB,EAClB,SAAiB,EACjB,OAAgB;IAEhB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,YAAY,GAAG,kBAAkB,SAAS,EAAE,CAAA;QAChD,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,IAAI,MAAM,OAAO,EAAE,CAAA;QACjC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;IAC/B,CAAC;AACH,CAAC;AAZD,gCAYC"}