@opcat-labs/cat-sdk 3.1.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/artifacts/.templates/cat20/cat20Admin.scrypt.tpl +4 -4
  2. package/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.tpl +2 -2
  3. package/artifacts/.templates/cat20/cat20Guard_12_12_2.scrypt.map +1 -1
  4. package/artifacts/.templates/cat20/cat20Guard_12_12_2.scrypt.tpl +19 -2
  5. package/artifacts/.templates/cat20/cat20Guard_12_12_2.transformer.json +2 -1
  6. package/artifacts/.templates/cat20/cat20Guard_12_12_4.scrypt.map +1 -1
  7. package/artifacts/.templates/cat20/cat20Guard_12_12_4.scrypt.tpl +19 -2
  8. package/artifacts/.templates/cat20/cat20Guard_12_12_4.transformer.json +2 -1
  9. package/artifacts/.templates/cat20/cat20Guard_6_6_2.scrypt.map +1 -1
  10. package/artifacts/.templates/cat20/cat20Guard_6_6_2.scrypt.tpl +19 -2
  11. package/artifacts/.templates/cat20/cat20Guard_6_6_2.transformer.json +2 -1
  12. package/artifacts/.templates/cat20/cat20Guard_6_6_4.scrypt.map +1 -1
  13. package/artifacts/.templates/cat20/cat20Guard_6_6_4.scrypt.tpl +19 -2
  14. package/artifacts/.templates/cat20/cat20Guard_6_6_4.transformer.json +2 -1
  15. package/artifacts/.templates/cat20/minters/cat20ClosedMinter.scrypt.tpl +2 -2
  16. package/artifacts/.templates/cat20/minters/cat20OpenMinter.scrypt.tpl +2 -2
  17. package/artifacts/.templates/cat20/types.scrypt.map +1 -1
  18. package/artifacts/.templates/cat20/types.scrypt.tpl +1 -0
  19. package/artifacts/.templates/cat721/cat721GuardStateLib.scrypt.tpl +2 -2
  20. package/artifacts/.templates/cat721/cat721Guard_12_12_2.scrypt.map +1 -1
  21. package/artifacts/.templates/cat721/cat721Guard_12_12_2.scrypt.tpl +19 -2
  22. package/artifacts/.templates/cat721/cat721Guard_12_12_2.transformer.json +2 -1
  23. package/artifacts/.templates/cat721/cat721Guard_12_12_4.scrypt.map +1 -1
  24. package/artifacts/.templates/cat721/cat721Guard_12_12_4.scrypt.tpl +19 -2
  25. package/artifacts/.templates/cat721/cat721Guard_12_12_4.transformer.json +2 -1
  26. package/artifacts/.templates/cat721/cat721Guard_6_6_2.scrypt.map +1 -1
  27. package/artifacts/.templates/cat721/cat721Guard_6_6_2.scrypt.tpl +19 -2
  28. package/artifacts/.templates/cat721/cat721Guard_6_6_2.transformer.json +2 -1
  29. package/artifacts/.templates/cat721/cat721Guard_6_6_4.scrypt.map +1 -1
  30. package/artifacts/.templates/cat721/cat721Guard_6_6_4.scrypt.tpl +19 -2
  31. package/artifacts/.templates/cat721/cat721Guard_6_6_4.transformer.json +2 -1
  32. package/artifacts/.templates/cat721/minters/cat721ClosedMinter.scrypt.tpl +2 -2
  33. package/artifacts/.templates/cat721/minters/cat721OpenMinter.scrypt.tpl +2 -2
  34. package/artifacts/.templates/cat721/types.scrypt.map +1 -1
  35. package/artifacts/.templates/cat721/types.scrypt.tpl +1 -0
  36. package/artifacts/cat20/cat20.json +58 -36
  37. package/artifacts/cat20/cat20.scrypt +18 -18
  38. package/artifacts/cat20/cat20Admin.json +58 -36
  39. package/artifacts/cat20/cat20Admin.scrypt +30 -30
  40. package/artifacts/cat20/cat20GuardStateLib.json +43 -21
  41. package/artifacts/cat20/cat20GuardStateLib.scrypt +7 -7
  42. package/artifacts/cat20/cat20Guard_12_12_2.json +93 -32
  43. package/artifacts/cat20/cat20Guard_12_12_2.scrypt +40 -23
  44. package/artifacts/cat20/cat20Guard_12_12_4.json +93 -32
  45. package/artifacts/cat20/cat20Guard_12_12_4.scrypt +40 -23
  46. package/artifacts/cat20/cat20Guard_6_6_2.json +93 -32
  47. package/artifacts/cat20/cat20Guard_6_6_2.scrypt +40 -23
  48. package/artifacts/cat20/cat20Guard_6_6_4.json +93 -32
  49. package/artifacts/cat20/cat20Guard_6_6_4.scrypt +40 -23
  50. package/artifacts/cat20/cat20StateLib.json +44 -22
  51. package/artifacts/cat20/cat20StateLib.scrypt +5 -5
  52. package/artifacts/cat20/minters/cat20ClosedMinter.json +56 -34
  53. package/artifacts/cat20/minters/cat20ClosedMinter.scrypt +22 -22
  54. package/artifacts/cat20/minters/cat20OpenMinter.json +56 -34
  55. package/artifacts/cat20/minters/cat20OpenMinter.scrypt +18 -18
  56. package/artifacts/cat20/types.json +9 -5
  57. package/artifacts/cat20/types.scrypt +6 -5
  58. package/artifacts/cat721/cat721.json +58 -36
  59. package/artifacts/cat721/cat721.scrypt +18 -18
  60. package/artifacts/cat721/cat721GuardStateLib.json +43 -21
  61. package/artifacts/cat721/cat721GuardStateLib.scrypt +7 -7
  62. package/artifacts/cat721/cat721Guard_12_12_2.json +92 -31
  63. package/artifacts/cat721/cat721Guard_12_12_2.scrypt +37 -20
  64. package/artifacts/cat721/cat721Guard_12_12_4.json +92 -31
  65. package/artifacts/cat721/cat721Guard_12_12_4.scrypt +37 -20
  66. package/artifacts/cat721/cat721Guard_6_6_2.json +92 -31
  67. package/artifacts/cat721/cat721Guard_6_6_2.scrypt +37 -20
  68. package/artifacts/cat721/cat721Guard_6_6_4.json +92 -31
  69. package/artifacts/cat721/cat721Guard_6_6_4.scrypt +37 -20
  70. package/artifacts/cat721/cat721StateLib.json +44 -22
  71. package/artifacts/cat721/cat721StateLib.scrypt +5 -5
  72. package/artifacts/cat721/minters/cat721ClosedMinter.json +56 -34
  73. package/artifacts/cat721/minters/cat721ClosedMinter.scrypt +18 -18
  74. package/artifacts/cat721/minters/cat721OpenMintInfo.json +5 -5
  75. package/artifacts/cat721/minters/cat721OpenMintInfo.scrypt +4 -4
  76. package/artifacts/cat721/minters/cat721OpenMinter.json +61 -39
  77. package/artifacts/cat721/minters/cat721OpenMinter.scrypt +22 -22
  78. package/artifacts/cat721/minters/cat721OpenMinterMerkleTree.json +41 -19
  79. package/artifacts/cat721/minters/cat721OpenMinterMerkleTree.scrypt +6 -6
  80. package/artifacts/cat721/types.json +9 -5
  81. package/artifacts/cat721/types.scrypt +6 -5
  82. package/artifacts/constants.json +2 -2
  83. package/artifacts/constants.scrypt +1 -1
  84. package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/backtrace.scrypt +13 -13
  85. package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scrypt +16 -16
  86. package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stateUtils.scrypt +1 -1
  87. package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stdUtils.scrypt +12 -12
  88. package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/txHashPreimageUtils.scrypt +7 -7
  89. package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/txUtils.scrypt +12 -12
  90. package/artifacts/scrypt-ts-opcat/assets/smart-contract/types/structs.scrypt +15 -9
  91. package/artifacts/types.json +2 -2
  92. package/artifacts/types.scrypt +2 -2
  93. package/artifacts/utils/ownerUtils.json +32 -14
  94. package/artifacts/utils/ownerUtils.scrypt +3 -3
  95. package/artifacts/utils/safeMath.json +32 -14
  96. package/artifacts/utils/safeMath.scrypt +1 -1
  97. package/dist/artifacts/cat20/cat20.json +58 -36
  98. package/dist/artifacts/cat20/cat20.scrypt +18 -18
  99. package/dist/artifacts/cat20/cat20Admin.json +58 -36
  100. package/dist/artifacts/cat20/cat20Admin.scrypt +30 -30
  101. package/dist/artifacts/cat20/cat20GuardStateLib.json +43 -21
  102. package/dist/artifacts/cat20/cat20GuardStateLib.scrypt +7 -7
  103. package/dist/artifacts/cat20/cat20Guard_12_12_2.json +93 -32
  104. package/dist/artifacts/cat20/cat20Guard_12_12_2.scrypt +40 -23
  105. package/dist/artifacts/cat20/cat20Guard_12_12_4.json +93 -32
  106. package/dist/artifacts/cat20/cat20Guard_12_12_4.scrypt +40 -23
  107. package/dist/artifacts/cat20/cat20Guard_6_6_2.json +93 -32
  108. package/dist/artifacts/cat20/cat20Guard_6_6_2.scrypt +40 -23
  109. package/dist/artifacts/cat20/cat20Guard_6_6_4.json +93 -32
  110. package/dist/artifacts/cat20/cat20Guard_6_6_4.scrypt +40 -23
  111. package/dist/artifacts/cat20/cat20StateLib.json +44 -22
  112. package/dist/artifacts/cat20/cat20StateLib.scrypt +5 -5
  113. package/dist/artifacts/cat20/minters/cat20ClosedMinter.json +56 -34
  114. package/dist/artifacts/cat20/minters/cat20ClosedMinter.scrypt +22 -22
  115. package/dist/artifacts/cat20/minters/cat20OpenMinter.json +56 -34
  116. package/dist/artifacts/cat20/minters/cat20OpenMinter.scrypt +18 -18
  117. package/dist/artifacts/cat20/types.json +9 -5
  118. package/dist/artifacts/cat20/types.scrypt +6 -5
  119. package/dist/artifacts/cat721/cat721.json +58 -36
  120. package/dist/artifacts/cat721/cat721.scrypt +18 -18
  121. package/dist/artifacts/cat721/cat721GuardStateLib.json +43 -21
  122. package/dist/artifacts/cat721/cat721GuardStateLib.scrypt +7 -7
  123. package/dist/artifacts/cat721/cat721Guard_12_12_2.json +92 -31
  124. package/dist/artifacts/cat721/cat721Guard_12_12_2.scrypt +37 -20
  125. package/dist/artifacts/cat721/cat721Guard_12_12_4.json +92 -31
  126. package/dist/artifacts/cat721/cat721Guard_12_12_4.scrypt +37 -20
  127. package/dist/artifacts/cat721/cat721Guard_6_6_2.json +92 -31
  128. package/dist/artifacts/cat721/cat721Guard_6_6_2.scrypt +37 -20
  129. package/dist/artifacts/cat721/cat721Guard_6_6_4.json +92 -31
  130. package/dist/artifacts/cat721/cat721Guard_6_6_4.scrypt +37 -20
  131. package/dist/artifacts/cat721/cat721StateLib.json +44 -22
  132. package/dist/artifacts/cat721/cat721StateLib.scrypt +5 -5
  133. package/dist/artifacts/cat721/minters/cat721ClosedMinter.json +56 -34
  134. package/dist/artifacts/cat721/minters/cat721ClosedMinter.scrypt +18 -18
  135. package/dist/artifacts/cat721/minters/cat721OpenMintInfo.json +5 -5
  136. package/dist/artifacts/cat721/minters/cat721OpenMintInfo.scrypt +4 -4
  137. package/dist/artifacts/cat721/minters/cat721OpenMinter.json +61 -39
  138. package/dist/artifacts/cat721/minters/cat721OpenMinter.scrypt +22 -22
  139. package/dist/artifacts/cat721/minters/cat721OpenMinterMerkleTree.json +41 -19
  140. package/dist/artifacts/cat721/minters/cat721OpenMinterMerkleTree.scrypt +6 -6
  141. package/dist/artifacts/cat721/types.json +9 -5
  142. package/dist/artifacts/cat721/types.scrypt +6 -5
  143. package/dist/artifacts/constants.json +2 -2
  144. package/dist/artifacts/constants.scrypt +1 -1
  145. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/backtrace.scrypt +13 -13
  146. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scrypt +16 -16
  147. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stateUtils.scrypt +1 -1
  148. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stdUtils.scrypt +12 -12
  149. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/txHashPreimageUtils.scrypt +7 -7
  150. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/txUtils.scrypt +12 -12
  151. package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/types/structs.scrypt +15 -9
  152. package/dist/artifacts/types.json +2 -2
  153. package/dist/artifacts/types.scrypt +2 -2
  154. package/dist/artifacts/utils/ownerUtils.json +32 -14
  155. package/dist/artifacts/utils/ownerUtils.scrypt +3 -3
  156. package/dist/artifacts/utils/safeMath.json +32 -14
  157. package/dist/artifacts/utils/safeMath.scrypt +1 -1
  158. package/dist/cjs/contracts/cat20/cat20GuardStateLib.js +2 -1
  159. package/dist/cjs/contracts/cat20/cat20GuardStateLib.js.map +1 -1
  160. package/dist/cjs/contracts/cat20/cat20Guard_12_12_2.js +19 -0
  161. package/dist/cjs/contracts/cat20/cat20Guard_12_12_2.js.map +1 -1
  162. package/dist/cjs/contracts/cat20/cat20Guard_12_12_4.js +19 -0
  163. package/dist/cjs/contracts/cat20/cat20Guard_12_12_4.js.map +1 -1
  164. package/dist/cjs/contracts/cat20/cat20Guard_6_6_2.js +19 -0
  165. package/dist/cjs/contracts/cat20/cat20Guard_6_6_2.js.map +1 -1
  166. package/dist/cjs/contracts/cat20/cat20Guard_6_6_4.js +19 -0
  167. package/dist/cjs/contracts/cat20/cat20Guard_6_6_4.js.map +1 -1
  168. package/dist/cjs/contracts/cat721/cat721GuardStateLib.js +2 -1
  169. package/dist/cjs/contracts/cat721/cat721GuardStateLib.js.map +1 -1
  170. package/dist/cjs/contracts/cat721/cat721Guard_12_12_2.js +19 -0
  171. package/dist/cjs/contracts/cat721/cat721Guard_12_12_2.js.map +1 -1
  172. package/dist/cjs/contracts/cat721/cat721Guard_12_12_4.js +19 -0
  173. package/dist/cjs/contracts/cat721/cat721Guard_12_12_4.js.map +1 -1
  174. package/dist/cjs/contracts/cat721/cat721Guard_6_6_2.js +19 -0
  175. package/dist/cjs/contracts/cat721/cat721Guard_6_6_2.js.map +1 -1
  176. package/dist/cjs/contracts/cat721/cat721Guard_6_6_4.js +19 -0
  177. package/dist/cjs/contracts/cat721/cat721Guard_6_6_4.js.map +1 -1
  178. package/dist/cjs/contracts/cat721/types.js.map +1 -1
  179. package/dist/cjs/features/cat20/admin/burnByAdmin.js +2 -1
  180. package/dist/cjs/features/cat20/admin/burnByAdmin.js.map +1 -1
  181. package/dist/cjs/features/cat20/burn/burn.js +2 -1
  182. package/dist/cjs/features/cat20/burn/burn.js.map +1 -1
  183. package/dist/cjs/features/cat20/guard/destroyGuard.js +49 -0
  184. package/dist/cjs/features/cat20/guard/destroyGuard.js.map +1 -0
  185. package/dist/cjs/features/cat20/index.js +3 -1
  186. package/dist/cjs/features/cat20/index.js.map +1 -1
  187. package/dist/cjs/features/cat20/send/contractSend.js +2 -1
  188. package/dist/cjs/features/cat20/send/contractSend.js.map +1 -1
  189. package/dist/cjs/features/cat20/send/singleSend.js +4 -3
  190. package/dist/cjs/features/cat20/send/singleSend.js.map +1 -1
  191. package/dist/cjs/features/cat721/burn/burn.js +2 -1
  192. package/dist/cjs/features/cat721/burn/burn.js.map +1 -1
  193. package/dist/cjs/features/cat721/guard/destroyGuard.js +49 -0
  194. package/dist/cjs/features/cat721/guard/destroyGuard.js.map +1 -0
  195. package/dist/cjs/features/cat721/index.js +3 -1
  196. package/dist/cjs/features/cat721/index.js.map +1 -1
  197. package/dist/cjs/features/cat721/send/singleSend.js +4 -3
  198. package/dist/cjs/features/cat721/send/singleSend.js.map +1 -1
  199. package/dist/cjs/utils/contractPeripheral.js +8 -4
  200. package/dist/cjs/utils/contractPeripheral.js.map +1 -1
  201. package/dist/esm/contracts/cat20/cat20GuardStateLib.js +2 -1
  202. package/dist/esm/contracts/cat20/cat20GuardStateLib.js.map +1 -1
  203. package/dist/esm/contracts/cat20/cat20Guard_12_12_2.js +20 -1
  204. package/dist/esm/contracts/cat20/cat20Guard_12_12_2.js.map +1 -1
  205. package/dist/esm/contracts/cat20/cat20Guard_12_12_4.js +20 -1
  206. package/dist/esm/contracts/cat20/cat20Guard_12_12_4.js.map +1 -1
  207. package/dist/esm/contracts/cat20/cat20Guard_6_6_2.js +20 -1
  208. package/dist/esm/contracts/cat20/cat20Guard_6_6_2.js.map +1 -1
  209. package/dist/esm/contracts/cat20/cat20Guard_6_6_4.js +20 -1
  210. package/dist/esm/contracts/cat20/cat20Guard_6_6_4.js.map +1 -1
  211. package/dist/esm/contracts/cat721/cat721GuardStateLib.js +2 -1
  212. package/dist/esm/contracts/cat721/cat721GuardStateLib.js.map +1 -1
  213. package/dist/esm/contracts/cat721/cat721Guard_12_12_2.js +20 -1
  214. package/dist/esm/contracts/cat721/cat721Guard_12_12_2.js.map +1 -1
  215. package/dist/esm/contracts/cat721/cat721Guard_12_12_4.js +20 -1
  216. package/dist/esm/contracts/cat721/cat721Guard_12_12_4.js.map +1 -1
  217. package/dist/esm/contracts/cat721/cat721Guard_6_6_2.js +20 -1
  218. package/dist/esm/contracts/cat721/cat721Guard_6_6_2.js.map +1 -1
  219. package/dist/esm/contracts/cat721/cat721Guard_6_6_4.js +20 -1
  220. package/dist/esm/contracts/cat721/cat721Guard_6_6_4.js.map +1 -1
  221. package/dist/esm/contracts/cat721/types.js.map +1 -1
  222. package/dist/esm/features/cat20/admin/burnByAdmin.js +2 -1
  223. package/dist/esm/features/cat20/admin/burnByAdmin.js.map +1 -1
  224. package/dist/esm/features/cat20/burn/burn.js +3 -2
  225. package/dist/esm/features/cat20/burn/burn.js.map +1 -1
  226. package/dist/esm/features/cat20/guard/destroyGuard.js +46 -0
  227. package/dist/esm/features/cat20/guard/destroyGuard.js.map +1 -0
  228. package/dist/esm/features/cat20/index.js +1 -0
  229. package/dist/esm/features/cat20/index.js.map +1 -1
  230. package/dist/esm/features/cat20/send/contractSend.js +2 -1
  231. package/dist/esm/features/cat20/send/contractSend.js.map +1 -1
  232. package/dist/esm/features/cat20/send/singleSend.js +5 -4
  233. package/dist/esm/features/cat20/send/singleSend.js.map +1 -1
  234. package/dist/esm/features/cat721/burn/burn.js +3 -2
  235. package/dist/esm/features/cat721/burn/burn.js.map +1 -1
  236. package/dist/esm/features/cat721/guard/destroyGuard.js +46 -0
  237. package/dist/esm/features/cat721/guard/destroyGuard.js.map +1 -0
  238. package/dist/esm/features/cat721/index.js +1 -0
  239. package/dist/esm/features/cat721/index.js.map +1 -1
  240. package/dist/esm/features/cat721/send/singleSend.js +5 -4
  241. package/dist/esm/features/cat721/send/singleSend.js.map +1 -1
  242. package/dist/esm/utils/contractPeripheral.js +8 -4
  243. package/dist/esm/utils/contractPeripheral.js.map +1 -1
  244. package/dist/types/contracts/cat20/cat20GuardStateLib.d.ts.map +1 -1
  245. package/dist/types/contracts/cat20/cat20Guard_12_12_2.d.ts +9 -1
  246. package/dist/types/contracts/cat20/cat20Guard_12_12_2.d.ts.map +1 -1
  247. package/dist/types/contracts/cat20/cat20Guard_12_12_4.d.ts +9 -1
  248. package/dist/types/contracts/cat20/cat20Guard_12_12_4.d.ts.map +1 -1
  249. package/dist/types/contracts/cat20/cat20Guard_6_6_2.d.ts +9 -1
  250. package/dist/types/contracts/cat20/cat20Guard_6_6_2.d.ts.map +1 -1
  251. package/dist/types/contracts/cat20/cat20Guard_6_6_4.d.ts +9 -1
  252. package/dist/types/contracts/cat20/cat20Guard_6_6_4.d.ts.map +1 -1
  253. package/dist/types/contracts/cat20/types.d.ts +7 -2
  254. package/dist/types/contracts/cat20/types.d.ts.map +1 -1
  255. package/dist/types/contracts/cat721/cat721GuardStateLib.d.ts.map +1 -1
  256. package/dist/types/contracts/cat721/cat721Guard_12_12_2.d.ts +9 -1
  257. package/dist/types/contracts/cat721/cat721Guard_12_12_2.d.ts.map +1 -1
  258. package/dist/types/contracts/cat721/cat721Guard_12_12_4.d.ts +9 -1
  259. package/dist/types/contracts/cat721/cat721Guard_12_12_4.d.ts.map +1 -1
  260. package/dist/types/contracts/cat721/cat721Guard_6_6_2.d.ts +9 -1
  261. package/dist/types/contracts/cat721/cat721Guard_6_6_2.d.ts.map +1 -1
  262. package/dist/types/contracts/cat721/cat721Guard_6_6_4.d.ts +9 -1
  263. package/dist/types/contracts/cat721/cat721Guard_6_6_4.d.ts.map +1 -1
  264. package/dist/types/contracts/cat721/types.d.ts +6 -0
  265. package/dist/types/contracts/cat721/types.d.ts.map +1 -1
  266. package/dist/types/features/cat20/admin/burnByAdmin.d.ts.map +1 -1
  267. package/dist/types/features/cat20/burn/burn.d.ts.map +1 -1
  268. package/dist/types/features/cat20/guard/destroyGuard.d.ts +21 -0
  269. package/dist/types/features/cat20/guard/destroyGuard.d.ts.map +1 -0
  270. package/dist/types/features/cat20/index.d.ts +1 -0
  271. package/dist/types/features/cat20/index.d.ts.map +1 -1
  272. package/dist/types/features/cat20/send/contractSend.d.ts.map +1 -1
  273. package/dist/types/features/cat20/send/singleSend.d.ts +1 -1
  274. package/dist/types/features/cat20/send/singleSend.d.ts.map +1 -1
  275. package/dist/types/features/cat721/burn/burn.d.ts.map +1 -1
  276. package/dist/types/features/cat721/guard/destroyGuard.d.ts +21 -0
  277. package/dist/types/features/cat721/guard/destroyGuard.d.ts.map +1 -0
  278. package/dist/types/features/cat721/index.d.ts +1 -0
  279. package/dist/types/features/cat721/index.d.ts.map +1 -1
  280. package/dist/types/features/cat721/send/singleSend.d.ts +1 -1
  281. package/dist/types/features/cat721/send/singleSend.d.ts.map +1 -1
  282. package/dist/types/utils/contractPeripheral.d.ts +4 -4
  283. package/dist/types/utils/contractPeripheral.d.ts.map +1 -1
  284. package/package.json +4 -4
  285. package/scrypt.index.json +15 -15
@@ -5,9 +5,9 @@ import "../scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scryp
5
5
 
6
6
 
7
7
 
8
- library _opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardStateLib {
9
- static function formalCheckState(_opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardConstState _state, static const int txInputCountMax) : bool {
10
- _opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardStateLib.checkTokenScriptsUniq(_state.tokenScriptHashes);
8
+ library _opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardStateLib {
9
+ static function formalCheckState(_opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState _state, static const int txInputCountMax) : bool {
10
+ _opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardStateLib.checkTokenScriptsUniq(_state.tokenScriptHashes);
11
11
  loop (4) : i {
12
12
  int scriptLen = len(_state.tokenScriptHashes[i]);
13
13
  require(scriptLen == 32);
@@ -30,10 +30,10 @@ library _opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardStateLib {
30
30
  require(tokenScripts[2] != tokenScripts[3]);
31
31
  return true;
32
32
  }
33
- static function serializeState(_opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
34
- return num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(__scrypt_ts_curState.tokenScriptIndexes), 2) + __scrypt_ts_curState.tokenScriptIndexes + hash160(hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(__scrypt_ts_curState.tokenScriptIndexes));
33
+ static function serializeState(_opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
34
+ return num2bin(len(__scrypt_ts_curState.deployerAddr), 2) + __scrypt_ts_curState.deployerAddr + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(__scrypt_ts_curState.tokenScriptIndexes), 2) + __scrypt_ts_curState.tokenScriptIndexes + hash160(hash160(__scrypt_ts_curState.deployerAddr) + hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(__scrypt_ts_curState.tokenScriptIndexes));
35
35
  }
36
- static function stateHash(_opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
37
- return sha256(num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(__scrypt_ts_curState.tokenScriptIndexes), 2) + __scrypt_ts_curState.tokenScriptIndexes + hash160(hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(__scrypt_ts_curState.tokenScriptIndexes)));
36
+ static function stateHash(_opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
37
+ return sha256(num2bin(len(__scrypt_ts_curState.deployerAddr), 2) + __scrypt_ts_curState.deployerAddr + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(__scrypt_ts_curState.tokenScriptIndexes), 2) + __scrypt_ts_curState.tokenScriptIndexes + hash160(hash160(__scrypt_ts_curState.deployerAddr) + hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(__scrypt_ts_curState.tokenScriptIndexes)));
38
38
  }
39
39
  }
@@ -1,12 +1,16 @@
1
1
  {
2
2
  "version": 10,
3
3
  "compilerVersion": "1.22.0+commit.47800da",
4
- "contract": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20Guard_12_12_2",
5
- "md5": "3d0666032de41bfeddf26ba8b9085b36",
4
+ "contract": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20Guard_12_12_2",
5
+ "md5": "317984b69988b71b3db136fcc5441b8d",
6
6
  "structs": [
7
7
  {
8
- "name": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardConstState",
8
+ "name": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState",
9
9
  "params": [
10
+ {
11
+ "name": "deployerAddr",
12
+ "type": "bytes"
13
+ },
10
14
  {
11
15
  "name": "tokenScriptHashes",
12
16
  "type": "bytes[4]"
@@ -27,7 +31,7 @@
27
31
  "genericTypes": []
28
32
  },
29
33
  {
30
- "name": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20State",
34
+ "name": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20State",
31
35
  "params": [
32
36
  {
33
37
  "name": "ownerAddr",
@@ -41,7 +45,7 @@
41
45
  "genericTypes": []
42
46
  },
43
47
  {
44
- "name": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20ClosedMinterState",
48
+ "name": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20ClosedMinterState",
45
49
  "params": [
46
50
  {
47
51
  "name": "tokenScriptHash",
@@ -51,7 +55,7 @@
51
55
  "genericTypes": []
52
56
  },
53
57
  {
54
- "name": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20OpenMinterState",
58
+ "name": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20OpenMinterState",
55
59
  "params": [
56
60
  {
57
61
  "name": "tokenScriptHash",
@@ -69,7 +73,7 @@
69
73
  "genericTypes": []
70
74
  },
71
75
  {
72
- "name": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20AdminState",
76
+ "name": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20AdminState",
73
77
  "params": [
74
78
  {
75
79
  "name": "tag",
@@ -83,7 +87,7 @@
83
87
  "genericTypes": []
84
88
  },
85
89
  {
86
- "name": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__TxOut",
90
+ "name": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__TxOut",
87
91
  "params": [
88
92
  {
89
93
  "name": "scriptHash",
@@ -101,7 +105,7 @@
101
105
  "genericTypes": []
102
106
  },
103
107
  {
104
- "name": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__TxIn",
108
+ "name": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__TxIn",
105
109
  "params": [
106
110
  {
107
111
  "name": "prevTxHash",
@@ -123,7 +127,7 @@
123
127
  "genericTypes": []
124
128
  },
125
129
  {
126
- "name": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__TxHashPreimage",
130
+ "name": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__TxHashPreimage",
127
131
  "params": [
128
132
  {
129
133
  "name": "version",
@@ -145,11 +149,11 @@
145
149
  "genericTypes": []
146
150
  },
147
151
  {
148
- "name": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__BacktraceInfo",
152
+ "name": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__BacktraceInfo",
149
153
  "params": [
150
154
  {
151
155
  "name": "prevTxInput",
152
- "type": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__TxIn"
156
+ "type": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__TxIn"
153
157
  },
154
158
  {
155
159
  "name": "prevTxInputIndex",
@@ -157,13 +161,13 @@
157
161
  },
158
162
  {
159
163
  "name": "prevPrevTxPreimage",
160
- "type": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__TxHashPreimage"
164
+ "type": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__TxHashPreimage"
161
165
  }
162
166
  ],
163
167
  "genericTypes": []
164
168
  },
165
169
  {
166
- "name": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__SHPreimage",
170
+ "name": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__SHPreimage",
167
171
  "params": [
168
172
  {
169
173
  "name": "nVersion",
@@ -225,7 +229,7 @@
225
229
  "genericTypes": []
226
230
  },
227
231
  {
228
- "name": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__Outpoint",
232
+ "name": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__Outpoint",
229
233
  "params": [
230
234
  {
231
235
  "name": "txHash",
@@ -239,7 +243,25 @@
239
243
  "genericTypes": []
240
244
  },
241
245
  {
242
- "name": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__ReadVarintResult",
246
+ "name": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__ChangeInfo",
247
+ "params": [
248
+ {
249
+ "name": "pubkeyhash",
250
+ "type": "Ripemd160"
251
+ },
252
+ {
253
+ "name": "satoshis",
254
+ "type": "int"
255
+ },
256
+ {
257
+ "name": "dataHash",
258
+ "type": "Sha256"
259
+ }
260
+ ],
261
+ "genericTypes": []
262
+ },
263
+ {
264
+ "name": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__ReadVarintResult",
243
265
  "params": [
244
266
  {
245
267
  "name": "data",
@@ -255,57 +277,57 @@
255
277
  ],
256
278
  "library": [
257
279
  {
258
- "name": "_opcat_labs_cat_sdk_3_1_0__rs__OwnerUtils",
280
+ "name": "_opcat_labs_cat_sdk_3_3_0__rs__OwnerUtils",
259
281
  "params": [],
260
282
  "properties": [],
261
283
  "genericTypes": []
262
284
  },
263
285
  {
264
- "name": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__TxUtils",
286
+ "name": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__TxUtils",
265
287
  "params": [],
266
288
  "properties": [],
267
289
  "genericTypes": []
268
290
  },
269
291
  {
270
- "name": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__StateUtils",
292
+ "name": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__StateUtils",
271
293
  "params": [],
272
294
  "properties": [],
273
295
  "genericTypes": []
274
296
  },
275
297
  {
276
- "name": "_opcat_labs_cat_sdk_3_1_0__rs__SafeMath",
298
+ "name": "_opcat_labs_cat_sdk_3_3_0__rs__SafeMath",
277
299
  "params": [],
278
300
  "properties": [],
279
301
  "genericTypes": []
280
302
  },
281
303
  {
282
- "name": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardStateLib",
304
+ "name": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardStateLib",
283
305
  "params": [],
284
306
  "properties": [],
285
307
  "genericTypes": [],
286
- "stateType": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardConstState"
308
+ "stateType": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState"
287
309
  },
288
310
  {
289
- "name": "_opcat_labs_cat_sdk_3_1_0__rs__ConstantsLib",
311
+ "name": "_opcat_labs_cat_sdk_3_3_0__rs__ConstantsLib",
290
312
  "params": [],
291
313
  "properties": [],
292
314
  "genericTypes": []
293
315
  },
294
316
  {
295
- "name": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__ContextUtils",
317
+ "name": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils",
296
318
  "params": [],
297
319
  "properties": [],
298
320
  "genericTypes": []
299
321
  },
300
322
  {
301
- "name": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20StateLib",
323
+ "name": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20StateLib",
302
324
  "params": [],
303
325
  "properties": [],
304
326
  "genericTypes": [],
305
- "stateType": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20State"
327
+ "stateType": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20State"
306
328
  },
307
329
  {
308
- "name": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__StdUtils",
330
+ "name": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__StdUtils",
309
331
  "params": [],
310
332
  "properties": [],
311
333
  "genericTypes": []
@@ -340,7 +362,7 @@
340
362
  },
341
363
  {
342
364
  "name": "cat20States",
343
- "type": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20State[12]"
365
+ "type": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20State[12]"
344
366
  },
345
367
  {
346
368
  "name": "outputCount",
@@ -348,7 +370,7 @@
348
370
  },
349
371
  {
350
372
  "name": "__scrypt_ts_shPreimage",
351
- "type": "_opcat_labs_scrypt_ts_opcat_3_1_0__rs__SHPreimage"
373
+ "type": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__SHPreimage"
352
374
  },
353
375
  {
354
376
  "name": "__scrypt_ts_preimageSig",
@@ -356,7 +378,7 @@
356
378
  },
357
379
  {
358
380
  "name": "__scrypt_ts_curState",
359
- "type": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardConstState"
381
+ "type": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState"
360
382
  },
361
383
  {
362
384
  "name": "__scrypt_ts_spentAmounts",
@@ -372,14 +394,53 @@
372
394
  }
373
395
  ]
374
396
  },
397
+ {
398
+ "type": "function",
399
+ "name": "destroy",
400
+ "index": 1,
401
+ "params": [
402
+ {
403
+ "name": "userSig",
404
+ "type": "Sig"
405
+ },
406
+ {
407
+ "name": "userPubKey",
408
+ "type": "PubKey"
409
+ },
410
+ {
411
+ "name": "__scrypt_ts_shPreimage",
412
+ "type": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__SHPreimage"
413
+ },
414
+ {
415
+ "name": "__scrypt_ts_preimageSig",
416
+ "type": "Sig"
417
+ },
418
+ {
419
+ "name": "__scrypt_ts_changeInfo",
420
+ "type": "_opcat_labs_scrypt_ts_opcat_3_3_0__rs__ChangeInfo"
421
+ },
422
+ {
423
+ "name": "__scrypt_ts_curState",
424
+ "type": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState"
425
+ },
426
+ {
427
+ "name": "__scrypt_ts_spentAmounts",
428
+ "type": "bytes"
429
+ },
430
+ {
431
+ "name": "__scrypt_ts_spentDataHashes",
432
+ "type": "bytes"
433
+ }
434
+ ]
435
+ },
375
436
  {
376
437
  "type": "constructor",
377
438
  "params": []
378
439
  }
379
440
  ],
380
441
  "stateProps": [],
381
- "stateType": "_opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardConstState",
442
+ "stateType": "_opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState",
382
443
  "buildType": "release",
383
444
  "file": "../cat20Guard_12_12_2.scrypt",
384
- "hex": "2102ba79df5f8ae7604a9830f03c7933028186aede0675a16f025dc4f8be8eec03822000000000000000000000000000000000000000000000000000000000000000ff2000000000000000000000000000000000000000000000000000000000000000fe2000000000000000000000000000000000000000000000000000000000000000fd2000000000000000000000000000000000000000000000000000000000000000fc01157901167982778c7f75007f770124790124790124790124790124790124790124790124790124790124790124790124790124790124795d798277549d5c79827701209d5b79827701209d5a79827701209d597900a26958798277549d5779827701209d5679827701209d5579827701209d5479827701209d5379827701209d527900a2697800a26976519c6476529c6751686476539c67516864760281009c67516864760282009c67516864760283009c675168695d795d797e5c797e5b797e5a79767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c7e59797e58797e57797e56797e55797e54797e5379546e8b806e7c7f75007f6b6d6d6c7e5279546e8b806e7c7f75007f6b6d6d6c7e7854807e6b6d6d6d6d6d6d6d6ca85679ba630115795579ac670068695779011e7978aa7888785878827d77527997009d6e7c966b6d6d6c775679011e796f75aa527988765379012078827d77527997009d6e7c967777779d6d755779011d796f75aa527988765379012078827d77527997009d6e7c967777779d6d750115790115790115790115790115790115790115790115790115790115790115790115790115790126790123790123790123790123790123790123790123790123790123790123790123790123790123795c795c795c795c7953766b796c756b6d6d6c827752805d795d795d795d7953766b796c756b6d6d6c7e5d795d795d795d7952766b796c756b6d6d6c827752807e5d795d795d795d7952766b796c756b6d6d6c7e5d795d795d795d7951766b796c756b6d6d6c827752807e5d795d795d795d7951766b796c756b6d6d6c7e5d795d795d795d7900766b796c756b6d6d6c827752807e5d795d795d795d7900766b796c756b6d6d6c7e597959795979597953766b796c756b6d6d6c827752807e597959795979597953766b796c756b6d6d6c7e597959795979597952766b796c756b6d6d6c827752807e597959795979597952766b796c756b6d6d6c7e597959795979597951766b796c756b6d6d6c827752807e597959795979597951766b796c756b6d6d6c7e597959795979597900766b796c756b6d6d6c827752807e597959795979597900766b796c756b6d6d6c7e557955795579557953766b796c756b6d6d6c827752807e557955795579557953766b796c756b6d6d6c7e557955795579557952766b796c756b6d6d6c827752807e557955795579557952766b796c756b6d6d6c7e557955795579557951766b796c756b6d6d6c827752807e557955795579557951766b796c756b6d6d6c7e557955795579557900766b796c756b6d6d6c827752807e557955795579557900766b796c756b6d6d6c7e78827752807e787e5d795d795d795d7953766b796c756b6d6d6ca95e795e795e795e7952766b796c756b6d6d6ca97e5e795e795e795e7951766b796c756b6d6d6ca97e5e795e795e795e7900766b796c756b6d6d6ca97e5a795a795a795a7953766b796c756b6d6d6ca97e5a795a795a795a7952766b796c756b6d6d6ca97e5a795a795a795a7951766b796c756b6d6d6ca97e5a795a795a795a7900766b796c756b6d6d6ca97e567956795679567953766b796c756b6d6d6ca97e567956795679567952766b796c756b6d6d6ca97e567956795679567951766b796c756b6d6d6ca97e567956795679567900766b796c756b6d6d6ca97e5279a97ea97ea86b6d6d6d6d6d6d6c770116797653798b0120957f7553790120957f775279886d755c795c795c795c795c795c795c795c795c795c795c795c795c795c5d795d795d795d7953766b796c7553766b796c7587916953766b796c7552766b796c7587916953766b796c7551766b796c7587916952766b796c7552766b796c7587916952766b796c7551766b796c7587916951766b796c7551766b796c758791696d6d5d795d795d795d7953766b796c756b6d6d6c827d7701209d5a795a795a795a7953766b796c756b6d6d6c00a269567956795679567953766b796c756b6d6d6c00a269755d795d795d795d7952766b796c756b6d6d6c827d7701209d5a795a795a795a7952766b796c756b6d6d6c00a269567956795679567952766b796c756b6d6d6c00a269755d795d795d795d7951766b796c756b6d6d6c827d7701209d5a795a795a795a7951766b796c756b6d6d6c00a269567956795679567951766b796c756b6d6d6c00a269755d795d795d795d7900766b796c756b6d6d6c827d7701209d5a795a795a795a7900766b796c756b6d6d6c00a269567956795679567900766b796c756b6d6d6c00a269757882775c9d78517f75007f7781764fa26376549f670068697578527f75517f7781764fa26376549f670068697578537f75527f7781764fa26376549f670068697578547f75537f7781764fa26376549f670068697578557f75547f7781764fa26376549f670068697578567f75557f7781764fa26376549f670068697578577f75567f7781764fa26376549f670068697578587f75577f7781764fa26376549f670068697578597f75587f7781764fa26376549f6700686975785a7f75597f7781764fa26376549f6700686975785b7f755a7f7781764fa26376549f6700686975785c7f755b7f7781764fa26376549f670068696d6d6d6d6d6d6d75000112790112790112790112790052a26301117901117901117901117953766b796c756b6d6d6c54766b796c75885d795d795d795d7953766b796c756b6d6d6c009d597959795979597953766b796c756b6d6d6c009d685152a26301117901117901117901117952766b796c756b6d6d6c53766b796c75885d795d795d795d7952766b796c756b6d6d6c009d597959795979597952766b796c756b6d6d6c009d685252a26301117901117901117901117951766b796c756b6d6d6c52766b796c75885d795d795d795d7951766b796c756b6d6d6c009d597959795979597951766b796c756b6d6d6c009d685352a26301117901117901117901117900766b796c756b6d6d6c51766b796c75885d795d795d795d7900766b796c756b6d6d6c009d597959795979597900766b796c756b6d6d6c009d6801117901117901117901117953766b796c756b6d6d6c54766b796c7587645479768b567a757171557a756801117901117901117901117952766b796c756b6d6d6c53766b796c7587645479768b567a757171557a75680055799f6301117901117901117901117953766b796c756b6d6d6c54766b796c7587916901117901117901117901117953766b796c756b6d6d6c827701209d6701117901117901117901117953766b796c756b6d6d6c54766b796c7588685155799f6301117901117901117901117952766b796c756b6d6d6c53766b796c7587916901117901117901117901117952766b796c756b6d6d6c827701209d6701117901117901117901117952766b796c756b6d6d6c53766b796c758868547900a06900004f0115795979517f75007f77810052799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76011f79006e8b0120957f75780120957f777777880155766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d011f79006e8b0120957f75780120957f7777770156766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750156766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979527f75517f77815152799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76011f79516e8b0120957f75780120957f777777880153766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d011f79516e8b0120957f75780120957f7777770154766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750154766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979537f75527f77815252799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76011f79526e8b0120957f75780120957f777777880151766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d011f79526e8b0120957f75780120957f7777770152766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750152766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979547f75537f77815352799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76011f79536e8b0120957f75780120957f77777788014f766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d011f79536e8b0120957f75780120957f7777770150766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750150766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979557f75547f77815452799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76011f79546e8b0120957f75780120957f77777788014d766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d011f79546e8b0120957f75780120957f777777014e766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c75014e766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979567f75557f77815552799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76011f79556e8b0120957f75780120957f77777788014b766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d011f79556e8b0120957f75780120957f777777014c766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c75014c766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979577f75567f77815652799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76011f79566e8b0120957f75780120957f777777880149766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d011f79566e8b0120957f75780120957f777777014a766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c75014a766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979587f75577f77815752799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76011f79576e8b0120957f75780120957f777777880147766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d011f79576e8b0120957f75780120957f7777770148766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750148766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979597f75587f77815852799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76011f79586e8b0120957f75780120957f777777880145766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d011f79586e8b0120957f75780120957f7777770146766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750146766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d687559795a7f75597f77815952799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76011f79596e8b0120957f75780120957f777777880143766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d011f79596e8b0120957f75780120957f7777770144766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750144766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d687559795b7f755a7f77815a52799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76011f795a6e8b0120957f75780120957f777777880141766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d011f795a6e8b0120957f75780120957f7777770142766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750142766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d687559795c7f755b7f77815b52799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76011f795b6e8b0120957f75780120957f77777788013f766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d011f795b6e8b0120957f75780120957f7777770140766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750140766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68757800a2637859798c9c67006869013b7900a263013b795ca16700686900000000013f799f63028600766b796c7877827700a069016f766b796c78775e799f69764f9e63017c766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029600766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780169766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67017c766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750166766b796c75029700766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028600766b796c758277009d016e766b796c754f9d017a766b796c75009d029200766b796c7500880162766b796c75009d6851013f799f63028500766b796c7877827700a069016e766b796c78775e799f69764f9e63017b766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029500766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780168766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67017b766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750165766b796c75029600766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028500766b796c758277009d016d766b796c754f9d0179766b796c75009d029100766b796c7500880161766b796c75009d6852013f799f63028400766b796c7877827700a069016d766b796c78775e799f69764f9e63017a766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029400766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780167766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67017a766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750164766b796c75029500766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028400766b796c758277009d016c766b796c754f9d0178766b796c75009d029000766b796c7500880160766b796c75009d6853013f799f63028300766b796c7877827700a069016c766b796c78775e799f69764f9e630179766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029300766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780166766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670179766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750163766b796c75029400766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028300766b796c758277009d016b766b796c754f9d0177766b796c75009d028f00766b796c750088015f766b796c75009d6854013f799f63028200766b796c7877827700a069016b766b796c78775e799f69764f9e630178766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029200766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780165766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670178766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750162766b796c75029300766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028200766b796c758277009d016a766b796c754f9d0176766b796c75009d028e00766b796c750088015e766b796c75009d6855013f799f63028100766b796c7877827700a069016a766b796c78775e799f69764f9e630177766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029100766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780164766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670177766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750161766b796c75029200766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028100766b796c758277009d0169766b796c754f9d0175766b796c75009d028d00766b796c750088015d766b796c75009d6856013f799f63028000766b796c7877827700a0690169766b796c78775e799f69764f9e630176766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029000766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780163766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670176766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750160766b796c75029100766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028000766b796c758277009d0168766b796c754f9d0174766b796c75009d028c00766b796c750088015c766b796c75009d6857013f799f63017f766b796c7877827700a0690168766b796c78775e799f69764f9e630175766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777028f00766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780162766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670175766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f75015f766b796c75029000766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67017f766b796c758277009d0167766b796c754f9d0173766b796c75009d028b00766b796c750088015b766b796c75009d6858013f799f63017e766b796c7877827700a0690167766b796c78775e799f69764f9e630174766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777028e00766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780161766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670174766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f75015e766b796c75028f00766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67017e766b796c758277009d0166766b796c754f9d0172766b796c75009d028a00766b796c750088015a766b796c75009d6859013f799f63017d766b796c7877827700a0690166766b796c78775e799f69764f9e630173766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777028d00766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780160766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670173766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f75015d766b796c75028e00766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67017d766b796c758277009d0165766b796c754f9d0171766b796c75009d028900766b796c7500880159766b796c75009d685a013f799f63017c766b796c7877827700a0690165766b796c78775e799f69764f9e630172766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777028c00766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c557978015f766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670172766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f75015c766b796c75028d00766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67017c766b796c758277009d0164766b796c754f9d0170766b796c75009d028800766b796c7500880158766b796c75009d685b013f799f63017b766b796c7877827700a0690164766b796c78775e799f69764f9e630171766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777028b00766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c557978015e766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670171766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f75015b766b796c75028c00766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67017b766b796c758277009d0163766b796c754f9d016f766b796c75009d028700766b796c7500880157766b796c75009d6856766b796c7501157901157901157901157953766b796c756b6d6d6c9d56766b796c7553766b796c7501127901127901127901127953766b796c756b6d6d6c6e93765379a2636e7ca26700686977779d005c799f6356766b796c7500a0696756766b796c75009d52766b796c75009d01147901147901147901147953766b796c756b6d6d6c009d607960796079607953766b796c756b6d6d6c009d6855766b796c7501157901157901157901157952766b796c756b6d6d6c9d55766b796c7552766b796c7501127901127901127901127952766b796c756b6d6d6c6e93765379a2636e7ca26700686977779d515c799f6355766b796c7500a0696755766b796c75009d51766b796c75009d01147901147901147901147952766b796c756b6d6d6c009d607960796079607952766b796c756b6d6d6c009d6876aa013479876b6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c77"
445
+ "hex": "0176018801a901ac2102ba79df5f8ae7604a9830f03c7933028186aede0675a16f025dc4f8be8eec03822000000000000000000000000000000000000000000000000000000000000000ff2000000000000000000000000000000000000000000000000000000000000000fe2000000000000000000000000000000000000000000000000000000000000000fd2000000000000000000000000000000000000000000000000000000000000000fc5979008763011b79011c7982778c7f75007f77012a79012a79012a79012a79012a79012a79012a79012a79012a79012a79012a79012a79012a79012a795d798277549d5c79827701209d5b79827701209d5a79827701209d597900a26958798277549d5779827701209d5679827701209d5579827701209d5479827701209d5379827701209d527900a2697800a26976519c6476529c6751686476539c67516864760281009c67516864760282009c67516864760283009c675168695d795d797e5c797e5b797e5a79767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c7e59797e58797e57797e56797e55797e54797e5379546e8b806e7c7f75007f6b6d6d6c7e5279546e8b806e7c7f75007f6b6d6d6c7e7854807e6b6d6d6d6d6d6d6d6ca85679ba63011b795579ac670068695c7901247978aa7888785878827d77527997009d6e7c966b6d6d6c775b790124796f75aa527988765379012078827d77527997009d6e7c967777779d6d755c790123796f75aa527988765379012078827d77527997009d6e7c967777779d6d75011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79012d79012a79012a79012a79012a79012a79012a79012a79012a79012a79012a79012a79012a79012a79012a795d79827752805e797e5d795d795d795d7953766b796c756b6d6d6c827752807e5d795d795d795d7953766b796c756b6d6d6c7e5d795d795d795d7952766b796c756b6d6d6c827752807e5d795d795d795d7952766b796c756b6d6d6c7e5d795d795d795d7951766b796c756b6d6d6c827752807e5d795d795d795d7951766b796c756b6d6d6c7e5d795d795d795d7900766b796c756b6d6d6c827752807e5d795d795d795d7900766b796c756b6d6d6c7e597959795979597953766b796c756b6d6d6c827752807e597959795979597953766b796c756b6d6d6c7e597959795979597952766b796c756b6d6d6c827752807e597959795979597952766b796c756b6d6d6c7e597959795979597951766b796c756b6d6d6c827752807e597959795979597951766b796c756b6d6d6c7e597959795979597900766b796c756b6d6d6c827752807e597959795979597900766b796c756b6d6d6c7e557955795579557953766b796c756b6d6d6c827752807e557955795579557953766b796c756b6d6d6c7e557955795579557952766b796c756b6d6d6c827752807e557955795579557952766b796c756b6d6d6c7e557955795579557951766b796c756b6d6d6c827752807e557955795579557951766b796c756b6d6d6c7e557955795579557900766b796c756b6d6d6c827752807e557955795579557900766b796c756b6d6d6c7e78827752807e787e5e79a95e795e795e795e7953766b796c756b6d6d6ca97e5e795e795e795e7952766b796c756b6d6d6ca97e5e795e795e795e7951766b796c756b6d6d6ca97e5e795e795e795e7900766b796c756b6d6d6ca97e5a795a795a795a7953766b796c756b6d6d6ca97e5a795a795a795a7952766b796c756b6d6d6ca97e5a795a795a795a7951766b796c756b6d6d6ca97e5a795a795a795a7900766b796c756b6d6d6ca97e567956795679567953766b796c756b6d6d6ca97e567956795679567952766b796c756b6d6d6ca97e567956795679567951766b796c756b6d6d6ca97e567956795679567900766b796c756b6d6d6ca97e5279a97ea97ea86b6d6d6d6d6d6d6d6c011c797653798b0120957f7553790120957f775279886d755d795d795d795d795d795d795d795d795d795d795d795d795d795d795c5d795d795d795d7953766b796c7553766b796c7587916953766b796c7552766b796c7587916953766b796c7551766b796c7587916952766b796c7552766b796c7587916952766b796c7551766b796c7587916951766b796c7551766b796c758791696d6d5d795d795d795d7953766b796c756b6d6d6c827d7701209d5a795a795a795a7953766b796c756b6d6d6c00a269567956795679567953766b796c756b6d6d6c00a269755d795d795d795d7952766b796c756b6d6d6c827d7701209d5a795a795a795a7952766b796c756b6d6d6c00a269567956795679567952766b796c756b6d6d6c00a269755d795d795d795d7951766b796c756b6d6d6c827d7701209d5a795a795a795a7951766b796c756b6d6d6c00a269567956795679567951766b796c756b6d6d6c00a269755d795d795d795d7900766b796c756b6d6d6c827d7701209d5a795a795a795a7900766b796c756b6d6d6c00a269567956795679567900766b796c756b6d6d6c00a269757882775c9d78517f75007f7781764fa26376549f670068697578527f75517f7781764fa26376549f670068697578537f75527f7781764fa26376549f670068697578547f75537f7781764fa26376549f670068697578557f75547f7781764fa26376549f670068697578567f75557f7781764fa26376549f670068697578577f75567f7781764fa26376549f670068697578587f75577f7781764fa26376549f670068697578597f75587f7781764fa26376549f6700686975785a7f75597f7781764fa26376549f6700686975785b7f755a7f7781764fa26376549f6700686975785c7f755b7f7781764fa26376549f670068696d6d6d6d6d6d6d6d000113790113790113790113790052a26301117901117901117901117953766b796c756b6d6d6c54766b796c75885d795d795d795d7953766b796c756b6d6d6c009d597959795979597953766b796c756b6d6d6c009d685152a26301117901117901117901117952766b796c756b6d6d6c53766b796c75885d795d795d795d7952766b796c756b6d6d6c009d597959795979597952766b796c756b6d6d6c009d685252a26301117901117901117901117951766b796c756b6d6d6c52766b796c75885d795d795d795d7951766b796c756b6d6d6c009d597959795979597951766b796c756b6d6d6c009d685352a26301117901117901117901117900766b796c756b6d6d6c51766b796c75885d795d795d795d7900766b796c756b6d6d6c009d597959795979597900766b796c756b6d6d6c009d6801117901117901117901117953766b796c756b6d6d6c54766b796c7587645479768b567a757171557a756801117901117901117901117952766b796c756b6d6d6c53766b796c7587645479768b567a757171557a75680055799f6301117901117901117901117953766b796c756b6d6d6c54766b796c7587916901117901117901117901117953766b796c756b6d6d6c827701209d6701117901117901117901117953766b796c756b6d6d6c54766b796c7588685155799f6301117901117901117901117952766b796c756b6d6d6c53766b796c7587916901117901117901117901117952766b796c756b6d6d6c827701209d6701117901117901117901117952766b796c756b6d6d6c53766b796c758868547900a06900004f0116795979517f75007f77810052799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76012579006e8b0120957f75780120957f77777788015c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d012579006e8b0120957f75780120957f777777015d766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c75015d766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979527f75517f77815152799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76012579516e8b0120957f75780120957f77777788015a766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d012579516e8b0120957f75780120957f777777015b766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c75015b766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979537f75527f77815252799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76012579526e8b0120957f75780120957f777777880158766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d012579526e8b0120957f75780120957f7777770159766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750159766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979547f75537f77815352799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76012579536e8b0120957f75780120957f777777880156766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d012579536e8b0120957f75780120957f7777770157766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750157766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979557f75547f77815452799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76012579546e8b0120957f75780120957f777777880154766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d012579546e8b0120957f75780120957f7777770155766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750155766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979567f75557f77815552799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76012579556e8b0120957f75780120957f777777880152766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d012579556e8b0120957f75780120957f7777770153766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750153766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979577f75567f77815652799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76012579566e8b0120957f75780120957f777777880150766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d012579566e8b0120957f75780120957f7777770151766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750151766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979587f75577f77815752799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76012579576e8b0120957f75780120957f77777788014e766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d012579576e8b0120957f75780120957f777777014f766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c75014f766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68755979597f75587f77815852799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76012579586e8b0120957f75780120957f77777788014c766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d012579586e8b0120957f75780120957f777777014d766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c75014d766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d687559795a7f75597f77815952799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c76012579596e8b0120957f75780120957f77777788014a766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d012579596e8b0120957f75780120957f777777014b766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c75014b766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d687559795b7f755a7f77815a52799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c760125795a6e8b0120957f75780120957f777777880148766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d0125795a6e8b0120957f75780120957f7777770149766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750149766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d687559795c7f755b7f77815b52799f63765a799f69764f9e630116790116790116790116795455797600a26976549f69948c766b796c756b6d6d6c760125795b6e8b0120957f75780120957f777777880146766b796c766b796c757876827d7701199c647601209c675168696d51787700a0696d0125795b6e8b0120957f75780120957f7777770147766b796c766b796c75788277528052797e78827752807e787e5279a95279a97ea97ea87777885552797600a26976529f6994766b796c750147766b796c766b796c786d776e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a75785479a0637867537968547a7572537a756867764f9d68757800a2637859798c9c6700686901427900a2630142795ca167006869000000000146799f63028d00766b796c7877827700a0690176766b796c78775e799f69764f9e63028300766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029d00766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780170766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67028300766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f75016d766b796c75029e00766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028d00766b796c758277009d0175766b796c754f9d028100766b796c75009d029900766b796c7500880169766b796c75009d68510146799f63028c00766b796c7877827700a0690175766b796c78775e799f69764f9e63028200766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029c00766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c557978016f766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67028200766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f75016c766b796c75029d00766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028c00766b796c758277009d0174766b796c754f9d028000766b796c75009d029800766b796c7500880168766b796c75009d68520146799f63028b00766b796c7877827700a0690174766b796c78775e799f69764f9e63028100766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029b00766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c557978016e766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67028100766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f75016b766b796c75029c00766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028b00766b796c758277009d0173766b796c754f9d017f766b796c75009d029700766b796c7500880167766b796c75009d68530146799f63028a00766b796c7877827700a0690173766b796c78775e799f69764f9e63028000766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029a00766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c557978016d766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67028000766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f75016a766b796c75029b00766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028a00766b796c758277009d0172766b796c754f9d017e766b796c75009d029600766b796c7500880166766b796c75009d68540146799f63028900766b796c7877827700a0690172766b796c78775e799f69764f9e63017f766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029900766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c557978016c766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67017f766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750169766b796c75029a00766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028900766b796c758277009d0171766b796c754f9d017d766b796c75009d029500766b796c7500880165766b796c75009d68550146799f63028800766b796c7877827700a0690171766b796c78775e799f69764f9e63017e766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029800766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c557978016b766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67017e766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750168766b796c75029900766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028800766b796c758277009d0170766b796c754f9d017c766b796c75009d029400766b796c7500880164766b796c75009d68560146799f63028700766b796c7877827700a0690170766b796c78775e799f69764f9e63017d766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029700766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c557978016a766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67017d766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750167766b796c75029800766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028700766b796c758277009d016f766b796c754f9d017b766b796c75009d029300766b796c7500880163766b796c75009d68570146799f63028600766b796c7877827700a069016f766b796c78775e799f69764f9e63017c766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029600766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780169766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67017c766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750166766b796c75029700766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028600766b796c758277009d016e766b796c754f9d017a766b796c75009d029200766b796c7500880162766b796c75009d68580146799f63028500766b796c7877827700a069016e766b796c78775e799f69764f9e63017b766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029500766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780168766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67017b766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750165766b796c75029600766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028500766b796c758277009d016d766b796c754f9d0179766b796c75009d029100766b796c7500880161766b796c75009d68590146799f63028400766b796c7877827700a069016d766b796c78775e799f69764f9e63017a766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029400766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780167766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d67017a766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750164766b796c75029500766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028400766b796c758277009d016c766b796c754f9d0178766b796c75009d029000766b796c7500880160766b796c75009d685a0146799f63028300766b796c7877827700a069016c766b796c78775e799f69764f9e630179766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029300766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780166766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670179766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750163766b796c75029400766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028300766b796c758277009d016b766b796c754f9d0177766b796c75009d028f00766b796c750088015f766b796c75009d685b0146799f63028200766b796c7877827700a069016b766b796c78775e799f69764f9e630178766b796c787700a0695552797600a26976529f6994766b796c75786e93765379a2636e7ca267006869777752797600a26976529f69577a78008763757868577a5279518763755279687b75567a567a567a567a567a7552796e8277528052797e78827752807e787e5279a95279a97ea97ea87777029200766b796c757888011c79011c79011c79011c795457797600a26976549f69948c766b796c756b6d6d6c5579780165766b796c755479527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e567a757171557a55796d6d670178766b796c75009d78011b79011b79011b79011b7953766b796c756b6d6d6c87916978011b79011b79011b79011b7952766b796c756b6d6d6c8791696f750162766b796c75029300766b796c75527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c777e537a757b7b527975686d67028200766b796c758277009d016a766b796c754f9d0176766b796c75009d028e00766b796c750088015e766b796c75009d6856766b796c7501157901157901157901157953766b796c756b6d6d6c9d56766b796c7553766b796c7501127901127901127901127953766b796c756b6d6d6c6e93765379a2636e7ca26700686977779d005c799f6356766b796c7500a0696756766b796c75009d52766b796c75009d01147901147901147901147953766b796c756b6d6d6c009d607960796079607953766b796c756b6d6d6c009d6855766b796c7501157901157901157901157952766b796c756b6d6d6c9d55766b796c7552766b796c7501127901127901127901127952766b796c756b6d6d6c6e93765379a2636e7ca26700686977779d515c799f6355766b796c7500a0696755766b796c75009d51766b796c75009d01147901147901147901147952766b796c756b6d6d6c009d607960796079607952766b796c756b6d6d6c009d6876aa013b79876b6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c675979518763011d79011e7982778c7f75007f77012c79012c79012c79012c79012c79012c79012c79012c79012c79012c79012c79012c79012c79012c795d798277549d5c79827701209d5b79827701209d5a79827701209d597900a26958798277549d5779827701209d5679827701209d5579827701209d5479827701209d5379827701209d527900a2697800a26976519c6476529c6751686476539c67516864760281009c67516864760282009c67516864760283009c675168695d795d797e5c797e5b797e5a79767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c7e59797e58797e57797e56797e55797e54797e5379546e8b806e7c7f75007f6b6d6d6c7e5279546e8b806e7c7f75007f6b6d6d6c7e7854807e6b6d6d6d6d6d6d6d6ca85679ba63011d795579ac670068695b7901267978aa7888785878827d77527997009d6e7c966b6d6d6c775b790125796f75aa527988765379012078827d77527997009d6e7c967777779d6d75011a79011a79011a79011a79011a79011a79011a79011a79011a79011a79011a79011a79011a79011a79012f790129790129790129790129790129790129790129790129790129790129790129790129790129790129795d79827752805e797e5d795d795d795d7953766b796c756b6d6d6c827752807e5d795d795d795d7953766b796c756b6d6d6c7e5d795d795d795d7952766b796c756b6d6d6c827752807e5d795d795d795d7952766b796c756b6d6d6c7e5d795d795d795d7951766b796c756b6d6d6c827752807e5d795d795d795d7951766b796c756b6d6d6c7e5d795d795d795d7900766b796c756b6d6d6c827752807e5d795d795d795d7900766b796c756b6d6d6c7e597959795979597953766b796c756b6d6d6c827752807e597959795979597953766b796c756b6d6d6c7e597959795979597952766b796c756b6d6d6c827752807e597959795979597952766b796c756b6d6d6c7e597959795979597951766b796c756b6d6d6c827752807e597959795979597951766b796c756b6d6d6c7e597959795979597900766b796c756b6d6d6c827752807e597959795979597900766b796c756b6d6d6c7e557955795579557953766b796c756b6d6d6c827752807e557955795579557953766b796c756b6d6d6c7e557955795579557952766b796c756b6d6d6c827752807e557955795579557952766b796c756b6d6d6c7e557955795579557951766b796c756b6d6d6c827752807e557955795579557951766b796c756b6d6d6c7e557955795579557900766b796c756b6d6d6c827752807e557955795579557900766b796c756b6d6d6c7e78827752807e787e5e79a95e795e795e795e7953766b796c756b6d6d6ca97e5e795e795e795e7952766b796c756b6d6d6ca97e5e795e795e795e7951766b796c756b6d6d6ca97e5e795e795e795e7900766b796c756b6d6d6ca97e5a795a795a795a7953766b796c756b6d6d6ca97e5a795a795a795a7952766b796c756b6d6d6ca97e5a795a795a795a7951766b796c756b6d6d6ca97e5a795a795a795a7900766b796c756b6d6d6ca97e567956795679567953766b796c756b6d6d6ca97e567956795679567952766b796c756b6d6d6ca97e567956795679567951766b796c756b6d6d6ca97e567956795679567900766b796c756b6d6d6ca97e5279a97ea97ea86b6d6d6d6d6d6d6d6c011b797653798b0120957f7553790120957f775279886d75013b795e79787676827701219d750376a91478a97e0288ac7e7778886d013c79013c79ad012a7900a063012b790118790117797e01147e787e0118797e0116797e77a8012b79012b79527982777882777801209d7601209d537900a2695379767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c55797e53797e6b6d6d6c77670068aa013179876b6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c7767006868"
385
446
  }
@@ -5,6 +5,7 @@ import "../scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scryp
5
5
  import "cat20StateLib.scrypt";
6
6
  import "../utils/safeMath.scrypt";
7
7
  import "../scrypt-ts-opcat/assets/smart-contract/builtin-libs/txUtils.scrypt";
8
+ import "../utils/ownerUtils.scrypt";
8
9
  import "../scrypt-ts-opcat/assets/smart-contract/builtin-libs/stdUtils.scrypt";
9
10
  import "../scrypt-ts-opcat/assets/smart-contract/types/structs.scrypt";
10
11
  import "../scrypt-ts-opcat/assets/smart-contract/builtin-libs/stateUtils.scrypt";
@@ -12,24 +13,24 @@ import "../scrypt-ts-opcat/assets/smart-contract/builtin-libs/stateUtils.scrypt"
12
13
 
13
14
 
14
15
 
15
- contract _opcat_labs_cat_sdk_3_1_0__rs__CAT20Guard_12_12_2 {
16
+ contract _opcat_labs_cat_sdk_3_3_0__rs__CAT20Guard_12_12_2 {
16
17
  constructor(){}
17
- public function unlock(bytes[12] nextStateHashes, bytes[12] ownerAddrOrScriptHashes, int[12] outputTokens, int[12] tokenScriptHashIndexes, int[12] outputSatoshis, _opcat_labs_cat_sdk_3_1_0__rs__CAT20State[12] cat20States, int outputCount, _opcat_labs_scrypt_ts_opcat_3_1_0__rs__SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, _opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardConstState __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes) {
18
- require(checkDataSig(Sig(__scrypt_ts_preimageSig[0 : len(__scrypt_ts_preimageSig) - 1]), sha256(_opcat_labs_scrypt_ts_opcat_3_1_0__rs__ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage)), _opcat_labs_scrypt_ts_opcat_3_1_0__rs__ContextUtils.pubKey) && checkSig(__scrypt_ts_preimageSig, _opcat_labs_scrypt_ts_opcat_3_1_0__rs__ContextUtils.pubKey));
18
+ public function unlock(bytes[12] nextStateHashes, bytes[12] ownerAddrOrScriptHashes, int[12] outputTokens, int[12] tokenScriptHashIndexes, int[12] outputSatoshis, _opcat_labs_cat_sdk_3_3_0__rs__CAT20State[12] cat20States, int outputCount, _opcat_labs_scrypt_ts_opcat_3_3_0__rs__SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, _opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes) {
19
+ require(checkDataSig(Sig(__scrypt_ts_preimageSig[0 : len(__scrypt_ts_preimageSig) - 1]), sha256(_opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage)), _opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.pubKey) && checkSig(__scrypt_ts_preimageSig, _opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.pubKey));
19
20
 
20
- int __scrypt_ts_inputCount = _opcat_labs_scrypt_ts_opcat_3_1_0__rs__ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
21
+ int __scrypt_ts_inputCount = _opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
21
22
 
22
- _opcat_labs_scrypt_ts_opcat_3_1_0__rs__ContextUtils.checkSpentScripts(__scrypt_ts_spentScriptHashes, __scrypt_ts_shPreimage.hashSpentScriptHashes, __scrypt_ts_inputCount);
23
+ _opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.checkSpentScripts(__scrypt_ts_spentScriptHashes, __scrypt_ts_shPreimage.hashSpentScriptHashes, __scrypt_ts_inputCount);
23
24
 
24
- _opcat_labs_scrypt_ts_opcat_3_1_0__rs__ContextUtils.checkSpentDataHashes(__scrypt_ts_spentDataHashes, __scrypt_ts_shPreimage.hashSpentDataHashes, __scrypt_ts_inputCount);
25
+ _opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.checkSpentDataHashes(__scrypt_ts_spentDataHashes, __scrypt_ts_shPreimage.hashSpentDataHashes, __scrypt_ts_inputCount);
25
26
 
26
- _opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardConstState __scrypt_ts_nextState = __scrypt_ts_curState;
27
+ _opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState __scrypt_ts_nextState = __scrypt_ts_curState;
27
28
 
28
- _opcat_labs_scrypt_ts_opcat_3_1_0__rs__StateUtils.checkInputState(__scrypt_ts_shPreimage.inputIndex, _opcat_labs_cat_sdk_3_1_0__rs__CAT20Guard_12_12_2.stateHash(__scrypt_ts_curState), __scrypt_ts_spentDataHashes);
29
+ _opcat_labs_scrypt_ts_opcat_3_3_0__rs__StateUtils.checkInputState(__scrypt_ts_shPreimage.inputIndex, _opcat_labs_cat_sdk_3_3_0__rs__CAT20Guard_12_12_2.stateHash(__scrypt_ts_curState), __scrypt_ts_spentDataHashes);
29
30
 
30
- _opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardStateLib.formalCheckState(__scrypt_ts_nextState, 12);
31
+ _opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardStateLib.formalCheckState(__scrypt_ts_nextState, 12);
31
32
  int inputTokenTypes = 0;
32
- bytes[4] tokenScriptPlaceholders = [_opcat_labs_cat_sdk_3_1_0__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FF, _opcat_labs_cat_sdk_3_1_0__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FE, _opcat_labs_cat_sdk_3_1_0__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FD, _opcat_labs_cat_sdk_3_1_0__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FC];
33
+ bytes[4] tokenScriptPlaceholders = [_opcat_labs_cat_sdk_3_3_0__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FF, _opcat_labs_cat_sdk_3_3_0__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FE, _opcat_labs_cat_sdk_3_3_0__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FD, _opcat_labs_cat_sdk_3_3_0__rs__ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FC];
33
34
  loop (4) : i {
34
35
  if(i >= 2) {
35
36
  require(__scrypt_ts_nextState.tokenScriptHashes[(i)] == tokenScriptPlaceholders[(i)]);
@@ -60,10 +61,10 @@ contract _opcat_labs_cat_sdk_3_1_0__rs__CAT20Guard_12_12_2 {
60
61
  require(tokenScriptIndex < inputTokenTypes);
61
62
  if(tokenScriptIndex != -1) {
62
63
  bytes tokenScriptHash = __scrypt_ts_nextState.tokenScriptHashes[(tokenScriptIndex)];
63
- require(tokenScriptHash == _opcat_labs_scrypt_ts_opcat_3_1_0__rs__ContextUtils.getSpentScriptHash(__scrypt_ts_spentScriptHashes, (i)));
64
- _opcat_labs_cat_sdk_3_1_0__rs__CAT20StateLib.checkState(cat20States[i]);
65
- require(_opcat_labs_scrypt_ts_opcat_3_1_0__rs__ContextUtils.getSpentDataHash(__scrypt_ts_spentDataHashes, (i)) == _opcat_labs_cat_sdk_3_1_0__rs__CAT20StateLib.stateHash(cat20States[i]));
66
- sumInputTokens[(tokenScriptIndex)] = _opcat_labs_cat_sdk_3_1_0__rs__SafeMath.add(sumInputTokens[(tokenScriptIndex)], cat20States[i].amount);
64
+ require(tokenScriptHash == _opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.getSpentScriptHash(__scrypt_ts_spentScriptHashes, (i)));
65
+ _opcat_labs_cat_sdk_3_3_0__rs__CAT20StateLib.checkState(cat20States[i]);
66
+ require(_opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.getSpentDataHash(__scrypt_ts_spentDataHashes, (i)) == _opcat_labs_cat_sdk_3_3_0__rs__CAT20StateLib.stateHash(cat20States[i]));
67
+ sumInputTokens[(tokenScriptIndex)] = _opcat_labs_cat_sdk_3_3_0__rs__SafeMath.add(sumInputTokens[(tokenScriptIndex)], cat20States[i].amount);
67
68
  tokenScriptIndexMax = tokenScriptIndex > tokenScriptIndexMax ? tokenScriptIndex : tokenScriptIndexMax;
68
69
  }
69
70
  } else {
@@ -83,17 +84,17 @@ contract _opcat_labs_cat_sdk_3_1_0__rs__CAT20Guard_12_12_2 {
83
84
  if(tokenScriptHashIndex != -1) {
84
85
  int tokenAmount = outputTokens[i];
85
86
  require(tokenAmount > 0);
86
- sumOutputTokens[(tokenScriptHashIndex)] = _opcat_labs_cat_sdk_3_1_0__rs__SafeMath.add(sumOutputTokens[(tokenScriptHashIndex)], tokenAmount);
87
- bytes tokenStateHash = _opcat_labs_cat_sdk_3_1_0__rs__CAT20StateLib.stateHash({ownerAddrOrScriptHash, tokenAmount});
87
+ sumOutputTokens[(tokenScriptHashIndex)] = _opcat_labs_cat_sdk_3_3_0__rs__SafeMath.add(sumOutputTokens[(tokenScriptHashIndex)], tokenAmount);
88
+ bytes tokenStateHash = _opcat_labs_cat_sdk_3_3_0__rs__CAT20StateLib.stateHash({ownerAddrOrScriptHash, tokenAmount});
88
89
  require(nextStateHashes[i] == tokenStateHash);
89
90
  bytes tokenScriptHash = __scrypt_ts_nextState.tokenScriptHashes[(tokenScriptHashIndex)];
90
- outputs += _opcat_labs_scrypt_ts_opcat_3_1_0__rs__TxUtils.buildDataOutput(tokenScriptHash, outputSatoshis[i], tokenStateHash);
91
+ outputs += _opcat_labs_scrypt_ts_opcat_3_3_0__rs__TxUtils.buildDataOutput(tokenScriptHash, outputSatoshis[i], tokenStateHash);
91
92
  } else {
92
93
  require(outputTokens[i] == 0);
93
94
  loop (2) : j {
94
95
  require(ownerAddrOrScriptHash != __scrypt_ts_nextState.tokenScriptHashes[j]);
95
96
  }
96
- outputs += _opcat_labs_scrypt_ts_opcat_3_1_0__rs__TxUtils.buildDataOutput(ownerAddrOrScriptHash, outputSatoshis[i], nextStateHashes[i]);
97
+ outputs += _opcat_labs_scrypt_ts_opcat_3_3_0__rs__TxUtils.buildDataOutput(ownerAddrOrScriptHash, outputSatoshis[i], nextStateHashes[i]);
97
98
  }
98
99
  } else {
99
100
  require(len(ownerAddrOrScriptHashes[i]) == 0);
@@ -105,7 +106,7 @@ contract _opcat_labs_cat_sdk_3_1_0__rs__CAT20Guard_12_12_2 {
105
106
  }
106
107
  loop (2) : i {
107
108
  require(sumInputTokens[i] == __scrypt_ts_nextState.tokenAmounts[i]);
108
- require(sumInputTokens[i] == _opcat_labs_cat_sdk_3_1_0__rs__SafeMath.add(sumOutputTokens[i], __scrypt_ts_nextState.tokenBurnAmounts[i]));
109
+ require(sumInputTokens[i] == _opcat_labs_cat_sdk_3_3_0__rs__SafeMath.add(sumOutputTokens[i], __scrypt_ts_nextState.tokenBurnAmounts[i]));
109
110
  if(i < (inputTokenTypes)) {
110
111
  require(sumInputTokens[i] > 0);
111
112
  } else {
@@ -117,10 +118,26 @@ contract _opcat_labs_cat_sdk_3_1_0__rs__CAT20Guard_12_12_2 {
117
118
  }
118
119
  require(hash256(outputs) == __scrypt_ts_shPreimage.hashOutputs);
119
120
  }
120
- static function serializeState(_opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
121
- return num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(__scrypt_ts_curState.tokenScriptIndexes), 2) + __scrypt_ts_curState.tokenScriptIndexes + hash160(hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(__scrypt_ts_curState.tokenScriptIndexes));
121
+ public function destroy(Sig userSig, PubKey userPubKey, _opcat_labs_scrypt_ts_opcat_3_3_0__rs__SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, _opcat_labs_scrypt_ts_opcat_3_3_0__rs__ChangeInfo __scrypt_ts_changeInfo, _opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes) {
122
+ require(checkDataSig(Sig(__scrypt_ts_preimageSig[0 : len(__scrypt_ts_preimageSig) - 1]), sha256(_opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage)), _opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.pubKey) && checkSig(__scrypt_ts_preimageSig, _opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.pubKey));
123
+
124
+ int __scrypt_ts_inputCount = _opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
125
+
126
+ _opcat_labs_scrypt_ts_opcat_3_3_0__rs__ContextUtils.checkSpentDataHashes(__scrypt_ts_spentDataHashes, __scrypt_ts_shPreimage.hashSpentDataHashes, __scrypt_ts_inputCount);
127
+
128
+ _opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState __scrypt_ts_nextState = __scrypt_ts_curState;
129
+
130
+ _opcat_labs_scrypt_ts_opcat_3_3_0__rs__StateUtils.checkInputState(__scrypt_ts_shPreimage.inputIndex, _opcat_labs_cat_sdk_3_3_0__rs__CAT20Guard_12_12_2.stateHash(__scrypt_ts_curState), __scrypt_ts_spentDataHashes);
131
+
132
+ _opcat_labs_cat_sdk_3_3_0__rs__OwnerUtils.checkUserOwner(userPubKey, __scrypt_ts_nextState.deployerAddr);
133
+ require(checkSig(userSig, userPubKey));
134
+ require(hash256(
135
+ (__scrypt_ts_changeInfo.satoshis > 0 ? _opcat_labs_scrypt_ts_opcat_3_3_0__rs__TxUtils.buildDataOutput(sha256(_opcat_labs_scrypt_ts_opcat_3_3_0__rs__TxUtils.buildP2PKHScript(__scrypt_ts_changeInfo.pubkeyhash)), __scrypt_ts_changeInfo.satoshis, __scrypt_ts_changeInfo.dataHash) : b'')) == __scrypt_ts_shPreimage.hashOutputs);
136
+ }
137
+ static function serializeState(_opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
138
+ return num2bin(len(__scrypt_ts_curState.deployerAddr), 2) + __scrypt_ts_curState.deployerAddr + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(__scrypt_ts_curState.tokenScriptIndexes), 2) + __scrypt_ts_curState.tokenScriptIndexes + hash160(hash160(__scrypt_ts_curState.deployerAddr) + hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(__scrypt_ts_curState.tokenScriptIndexes));
122
139
  }
123
- static function stateHash(_opcat_labs_cat_sdk_3_1_0__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
124
- return sha256(num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(__scrypt_ts_curState.tokenScriptIndexes), 2) + __scrypt_ts_curState.tokenScriptIndexes + hash160(hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(__scrypt_ts_curState.tokenScriptIndexes)));
140
+ static function stateHash(_opcat_labs_cat_sdk_3_3_0__rs__CAT20GuardConstState __scrypt_ts_curState): bytes {
141
+ return sha256(num2bin(len(__scrypt_ts_curState.deployerAddr), 2) + __scrypt_ts_curState.deployerAddr + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[0]), 2) + __scrypt_ts_curState.tokenScriptHashes[0] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[1]), 2) + __scrypt_ts_curState.tokenScriptHashes[1] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[2]), 2) + __scrypt_ts_curState.tokenScriptHashes[2] + num2bin(len(__scrypt_ts_curState.tokenScriptHashes[3]), 2) + __scrypt_ts_curState.tokenScriptHashes[3] + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenAmounts[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[0])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[1])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[2])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenBurnAmounts[3])), 2) + pack(__scrypt_ts_curState.tokenBurnAmounts[3]) + num2bin(len(__scrypt_ts_curState.tokenScriptIndexes), 2) + __scrypt_ts_curState.tokenScriptIndexes + hash160(hash160(__scrypt_ts_curState.deployerAddr) + hash160(__scrypt_ts_curState.tokenScriptHashes[0]) + hash160(__scrypt_ts_curState.tokenScriptHashes[1]) + hash160(__scrypt_ts_curState.tokenScriptHashes[2]) + hash160(__scrypt_ts_curState.tokenScriptHashes[3]) + hash160(pack(__scrypt_ts_curState.tokenAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenAmounts[3])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[0])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[1])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[2])) + hash160(pack(__scrypt_ts_curState.tokenBurnAmounts[3])) + hash160(__scrypt_ts_curState.tokenScriptIndexes)));
125
142
  }
126
143
  }