@opcat-labs/cat-sdk 1.0.2 → 1.0.3

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 (92) hide show
  1. package/artifacts/.templates/cat20/cat20Guard.scrypt.map +1 -1
  2. package/artifacts/.templates/cat20/cat20Guard.scrypt.tpl +6 -6
  3. package/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.map +1 -1
  4. package/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.tpl +3 -3
  5. package/artifacts/.templates/cat20/types.scrypt.map +1 -1
  6. package/artifacts/.templates/cat20/types.scrypt.tpl +1 -1
  7. package/artifacts/cat20/cat20.json +18 -18
  8. package/artifacts/cat20/cat20.scrypt +9 -9
  9. package/artifacts/cat20/cat20Guard.json +25 -25
  10. package/artifacts/cat20/cat20Guard.scrypt +19 -19
  11. package/artifacts/cat20/cat20GuardStateLib.json +11 -11
  12. package/artifacts/cat20/cat20GuardStateLib.scrypt +8 -8
  13. package/artifacts/cat20/cat20StateLib.json +13 -13
  14. package/artifacts/cat20/cat20StateLib.scrypt +6 -6
  15. package/artifacts/cat20/minters/cat20ClosedMinter.json +15 -15
  16. package/artifacts/cat20/minters/cat20ClosedMinter.scrypt +11 -11
  17. package/artifacts/cat20/minters/cat20ClosedMinterMetadata.json +11 -11
  18. package/artifacts/cat20/minters/cat20ClosedMinterMetadata.scrypt +3 -3
  19. package/artifacts/cat20/minters/cat20OpenMinter.json +18 -18
  20. package/artifacts/cat20/minters/cat20OpenMinter.scrypt +10 -10
  21. package/artifacts/cat20/minters/cat20OpenMinterMetadata.json +11 -11
  22. package/artifacts/cat20/minters/cat20OpenMinterMetadata.scrypt +3 -3
  23. package/artifacts/cat20/types.json +7 -7
  24. package/artifacts/cat20/types.scrypt +7 -7
  25. package/artifacts/cat20Incinerator.json +13 -13
  26. package/artifacts/cat20Incinerator.scrypt +3 -3
  27. package/artifacts/constants.json +2 -2
  28. package/artifacts/constants.scrypt +1 -1
  29. package/artifacts/counter.json +4 -4
  30. package/artifacts/counter.scrypt +8 -8
  31. package/artifacts/p2pkh.json +1 -1
  32. package/artifacts/p2pkh.scrypt +1 -1
  33. package/artifacts/types.json +1 -1
  34. package/artifacts/types.scrypt +1 -1
  35. package/artifacts/utils/ownerUtils.json +2 -2
  36. package/artifacts/utils/ownerUtils.scrypt +3 -3
  37. package/artifacts/utils/safeMath.json +2 -2
  38. package/artifacts/utils/safeMath.scrypt +1 -1
  39. package/dist/artifacts/.templates/cat20/cat20Guard.scrypt.map +1 -1
  40. package/dist/artifacts/.templates/cat20/cat20Guard.scrypt.tpl +6 -6
  41. package/dist/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.map +1 -1
  42. package/dist/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.tpl +3 -3
  43. package/dist/artifacts/.templates/cat20/types.scrypt.map +1 -1
  44. package/dist/artifacts/.templates/cat20/types.scrypt.tpl +1 -1
  45. package/dist/artifacts/cat20/cat20.json +18 -18
  46. package/dist/artifacts/cat20/cat20.scrypt +9 -9
  47. package/dist/artifacts/cat20/cat20Guard.json +25 -25
  48. package/dist/artifacts/cat20/cat20Guard.scrypt +19 -19
  49. package/dist/artifacts/cat20/cat20GuardStateLib.json +11 -11
  50. package/dist/artifacts/cat20/cat20GuardStateLib.scrypt +8 -8
  51. package/dist/artifacts/cat20/cat20StateLib.json +13 -13
  52. package/dist/artifacts/cat20/cat20StateLib.scrypt +6 -6
  53. package/dist/artifacts/cat20/minters/cat20ClosedMinter.json +15 -15
  54. package/dist/artifacts/cat20/minters/cat20ClosedMinter.scrypt +11 -11
  55. package/dist/artifacts/cat20/minters/cat20ClosedMinterMetadata.json +11 -11
  56. package/dist/artifacts/cat20/minters/cat20ClosedMinterMetadata.scrypt +3 -3
  57. package/dist/artifacts/cat20/minters/cat20OpenMinter.json +18 -18
  58. package/dist/artifacts/cat20/minters/cat20OpenMinter.scrypt +10 -10
  59. package/dist/artifacts/cat20/minters/cat20OpenMinterMetadata.json +11 -11
  60. package/dist/artifacts/cat20/minters/cat20OpenMinterMetadata.scrypt +3 -3
  61. package/dist/artifacts/cat20/types.json +7 -7
  62. package/dist/artifacts/cat20/types.scrypt +7 -7
  63. package/dist/artifacts/cat20Incinerator.json +13 -13
  64. package/dist/artifacts/cat20Incinerator.scrypt +3 -3
  65. package/dist/artifacts/constants.json +2 -2
  66. package/dist/artifacts/constants.scrypt +1 -1
  67. package/dist/artifacts/counter.json +4 -4
  68. package/dist/artifacts/counter.scrypt +8 -8
  69. package/dist/artifacts/p2pkh.json +1 -1
  70. package/dist/artifacts/p2pkh.scrypt +1 -1
  71. package/dist/artifacts/types.json +1 -1
  72. package/dist/artifacts/types.scrypt +1 -1
  73. package/dist/artifacts/utils/ownerUtils.json +2 -2
  74. package/dist/artifacts/utils/ownerUtils.scrypt +3 -3
  75. package/dist/artifacts/utils/safeMath.json +2 -2
  76. package/dist/artifacts/utils/safeMath.scrypt +1 -1
  77. package/dist/cjs/contracts/constants.js +2 -2
  78. package/dist/cjs/contracts/constants.js.map +1 -1
  79. package/dist/cjs/features/cat20/send/singleSend.js +8 -8
  80. package/dist/cjs/features/cat20/send/singleSend.js.map +1 -1
  81. package/dist/esm/contracts/constants.js +2 -2
  82. package/dist/esm/contracts/constants.js.map +1 -1
  83. package/dist/esm/features/cat20/send/singleSend.js +8 -8
  84. package/dist/esm/features/cat20/send/singleSend.js.map +1 -1
  85. package/dist/types/contracts/constants.d.ts +2 -2
  86. package/dist/types/contracts/constants.d.ts.map +1 -1
  87. package/dist/types/features/cat20/send/singleSend.d.ts +2 -2
  88. package/dist/types/features/cat20/send/singleSend.d.ts.map +1 -1
  89. package/dist/types/utils/index.d.ts +1 -1
  90. package/dist/types/utils/index.d.ts.map +1 -1
  91. package/package.json +76 -76
  92. package/scrypt.index.json +3 -3
@@ -1 +1 @@
1
- [[],[],[],[],[],[],[],[],[],[],[],[],[[9,0,27,13]],[],[[2,0,29,4],[18,0,29,11],[25,0,30,25],[30,0,30,25],[34,0,30,8],[51,0,34,33],[56,0,34,33],[60,0,34,8],[85,0,38,22],[88,0,38,22],[92,0,38,8],[106,0,44,32],[109,0,44,32],[113,0,44,8],[137,0,49,24],[140,0,49,24],[144,0,49,8],[160,0,53,21],[170,0,53,21],[174,0,53,8],[187,0,55,21],[191,0,55,8]],[],[],[],[],[],[],[],[],[],[],[],[],[[4,0,59,8],[22,0,59,27]],[[4,0,62,30],[8,0,62,12],[26,0,62,30]],[[4,0,63,39],[9,0,63,39],[13,0,63,14],[40,0,67,16],[52,0,67,29],[87,0,68,16],[99,0,68,29],[134,0,69,16],[146,0,69,29],[181,0,70,16],[193,0,70,29]],[[15,0,72,17]],[[8,0,73,12],[32,0,73,27],[51,0,73,45],[54,0,73,16],[57,0,73,51],[81,0,73,75]],[[10,0,74,16],[25,0,74,16]],[],[],[[15,0,78,17]],[[8,0,79,12],[11,0,79,16],[13,0,79,16],[15,0,79,20],[16,0,79,27]],[[10,0,80,16],[39,0,80,34],[58,0,80,52],[61,0,80,23],[64,0,80,58],[88,0,80,82]],[[10,0,81,16],[18,0,82,20],[43,0,82,35],[62,0,82,53],[66,0,82,20],[69,0,82,60]],[],[[10,0,85,16],[39,0,85,34],[58,0,85,52],[61,0,85,23],[64,0,85,58],[88,0,85,82]],[],[],[[4,0,88,8],[12,0,88,15],[28,0,88,15],[30,0,88,33]],[[4,0,94,31],[7,0,94,31],[11,0,94,14],[28,0,94,31],[35,0,94,36],[38,0,94,40]],[[4,0,95,34],[8,0,95,12],[30,0,95,34],[31,0,95,35]],[[4,0,96,27],[8,0,96,14]],[[15,0,97,17]],[[8,0,98,37],[12,0,98,18],[52,0,98,48],[72,0,98,67],[73,0,98,74]],[[8,0,99,12],[11,0,99,16],[13,0,99,16],[15,0,99,20]],[[10,0,100,16],[18,0,100,23],[35,0,100,23],[37,0,100,42]],[[10,0,101,16],[13,0,101,20],[30,0,101,20],[33,0,101,40],[34,0,101,41]],[[12,0,104,24],[18,0,103,26],[57,0,104,35],[76,0,104,53],[77,0,104,60]],[[12,0,105,20],[20,0,105,27],[36,0,105,27],[39,0,105,46],[51,0,105,59],[102,0,105,106],[103,0,105,113]],[[12,0,106,20],[25,0,106,34],[37,0,106,45],[49,0,106,57]],[[12,0,107,20],[20,0,107,27],[32,0,107,40],[79,0,107,83],[80,0,107,90],[84,0,107,27],[87,0,107,97],[100,0,107,111],[111,0,107,121],[123,0,107,133]],[[12,0,108,20],[27,0,108,35],[28,0,108,42],[47,0,108,20],[49,0,108,63],[57,0,108,72],[62,0,109,24],[77,0,109,39],[78,0,109,46],[98,0,110,24],[110,0,110,36],[112,0,110,39]],[[12,0,112,20],[32,0,112,20],[34,0,113,24],[51,0,113,24],[53,0,113,43],[75,0,114,30],[94,0,115,30]],[],[],[[10,0,118,16],[39,0,118,34],[59,0,118,53],[62,0,118,23],[65,0,118,59],[66,0,118,60]],[],[],[[4,0,124,8],[12,0,125,12],[32,0,125,12],[35,0,125,35],[37,0,125,12],[40,0,125,41],[60,0,125,41],[63,0,125,64],[79,0,125,64],[81,0,125,82]],[[4,0,130,8],[12,0,130,15],[24,0,130,15],[27,0,130,30],[29,0,130,15],[32,0,130,36],[44,0,130,36],[47,0,130,51]],[[4,0,131,32],[7,0,131,32],[11,0,131,14],[29,0,131,32],[36,0,131,37],[39,0,131,41]],[[4,0,132,22],[10,0,132,12],[20,0,132,35]],[[15,0,133,17]],[[8,0,134,12],[11,0,134,16],[13,0,134,16],[15,0,134,20]],[[10,0,135,46],[16,0,135,22],[40,0,135,46],[64,0,135,70]],[[10,0,136,16],[18,0,136,23],[22,0,136,27],[45,0,136,23],[47,0,136,52]],[[10,0,137,45],[14,0,137,22],[37,0,137,45],[60,0,137,68]],[[10,0,138,16],[18,0,138,23],[39,0,138,23],[41,0,138,46]],[[10,0,139,16],[13,0,139,20],[34,0,139,20],[37,0,139,44],[38,0,139,45]],[[12,0,141,40],[16,0,141,26],[30,0,141,40],[43,0,141,53]],[[12,0,142,20],[20,0,142,27],[32,0,142,27],[34,0,142,41]],[[12,0,143,20],[28,0,143,36],[29,0,143,43],[52,0,143,20],[54,0,143,68],[62,0,143,77],[67,0,144,24],[83,0,144,40],[84,0,144,47],[108,0,145,24]],[[12,0,147,43],[18,0,147,26],[35,0,147,43],[48,0,147,57],[59,0,147,67],[60,0,148,29],[72,0,148,42],[90,0,149,35],[113,0,150,32]],[[12,0,152,20],[20,0,152,27],[36,0,152,43],[39,0,152,27],[42,0,152,49]],[[12,0,154,24],[18,0,153,26],[57,0,154,35],[76,0,154,53],[77,0,154,60]],[[12,0,155,20],[20,0,155,20],[23,0,155,31],[30,0,155,39],[47,0,156,24],[64,0,157,24],[79,0,157,39],[83,0,158,24]],[],[[12,0,162,20],[20,0,162,27],[33,0,162,40],[36,0,162,27],[39,0,162,46]],[[23,0,164,29]],[[14,0,165,24],[22,0,165,31],[44,0,165,31],[68,0,165,67],[87,0,165,85]],[],[[12,0,167,20],[20,0,167,20],[23,0,167,31],[30,0,167,39],[47,0,168,24],[70,0,169,24],[85,0,169,39],[89,0,170,24],[105,0,170,40]],[],[],[[10,0,174,16],[18,0,174,23],[22,0,174,27],[46,0,174,51],[50,0,174,23],[53,0,174,58]],[[10,0,175,16],[18,0,175,23],[41,0,175,46],[44,0,175,23],[47,0,175,52],[48,0,175,53]],[[10,0,176,16],[18,0,176,23],[31,0,176,36],[34,0,176,23],[37,0,176,42]],[[10,0,177,16],[18,0,177,23],[34,0,177,39],[37,0,177,23],[40,0,177,58]],[[10,0,178,16],[18,0,178,23],[33,0,178,38],[36,0,178,23],[39,0,178,44]],[],[],[[15,0,183,17]],[[8,0,184,12],[16,0,184,19],[31,0,184,34],[34,0,184,19],[58,0,184,51],[72,0,184,64]],[[8,0,185,12],[16,0,186,16],[31,0,186,31],[34,0,186,16],[37,0,187,16],[45,0,187,25],[50,0,187,29],[66,0,187,45],[91,0,187,60],[109,0,187,77]],[[8,0,189,12],[11,0,189,16],[13,0,189,16],[15,0,189,20],[16,0,189,27]],[[10,0,190,16],[18,0,190,23],[33,0,190,38],[36,0,190,23],[38,0,190,43]],[],[[10,0,192,16],[18,0,192,23],[33,0,192,38],[36,0,192,23],[39,0,192,44]],[[10,0,193,16],[18,0,193,23],[34,0,193,39],[37,0,193,23],[40,0,193,45]],[[10,0,195,16],[39,0,195,34],[53,0,195,47],[56,0,195,23],[59,0,195,53]],[[10,0,196,16],[39,0,196,34],[57,0,196,51],[60,0,196,23],[63,0,196,57]],[],[],[[4,0,201,8],[20,0,201,33]],[],[],[],[],[],[],[],[]]
1
+ [[],[],[],[],[],[],[],[],[],[],[],[],[[9,0,27,13]],[],[[2,0,29,4],[18,0,29,11],[25,0,30,25],[30,0,30,25],[35,0,30,8],[52,0,34,33],[57,0,34,33],[62,0,34,8],[87,0,38,22],[90,0,38,22],[95,0,38,8],[109,0,44,32],[112,0,44,32],[117,0,44,8],[141,0,49,24],[144,0,49,24],[149,0,49,8],[165,0,53,21],[175,0,53,21],[180,0,53,8],[193,0,55,21],[197,0,55,8]],[],[],[],[],[],[],[],[],[],[],[],[],[[4,0,59,8],[22,0,59,27]],[[4,0,62,30],[8,0,62,12],[26,0,62,30]],[[4,0,63,39],[9,0,63,39],[13,0,63,14],[40,0,67,16],[52,0,67,29],[87,0,68,16],[99,0,68,29],[134,0,69,16],[146,0,69,29],[181,0,70,16],[193,0,70,29]],[[15,0,72,17]],[[8,0,73,12],[32,0,73,27],[51,0,73,45],[54,0,73,16],[57,0,73,51],[81,0,73,75]],[[10,0,74,16],[25,0,74,16]],[],[],[[15,0,78,17]],[[8,0,79,12],[11,0,79,16],[13,0,79,16],[15,0,79,20],[16,0,79,27]],[[10,0,80,16],[39,0,80,34],[58,0,80,52],[61,0,80,23],[64,0,80,58],[88,0,80,82]],[[10,0,81,16],[18,0,82,20],[43,0,82,35],[62,0,82,53],[66,0,82,20],[69,0,82,60]],[],[[10,0,85,16],[39,0,85,34],[58,0,85,52],[61,0,85,23],[64,0,85,58],[88,0,85,82]],[],[],[[4,0,88,8],[12,0,88,15],[28,0,88,15],[30,0,88,33]],[[4,0,94,31],[7,0,94,31],[11,0,94,14],[28,0,94,31],[35,0,94,36],[38,0,94,40]],[[4,0,95,34],[8,0,95,12],[30,0,95,34],[31,0,95,35]],[[4,0,96,27],[8,0,96,14]],[[16,0,97,17]],[[8,0,98,37],[12,0,98,18],[52,0,98,48],[72,0,98,67],[73,0,98,74]],[[8,0,99,12],[11,0,99,16],[13,0,99,16],[15,0,99,20]],[[10,0,100,16],[18,0,100,23],[35,0,100,23],[37,0,100,42]],[[10,0,101,16],[13,0,101,20],[30,0,101,20],[33,0,101,40],[34,0,101,41]],[[12,0,104,24],[18,0,103,26],[57,0,104,35],[76,0,104,53],[77,0,104,60]],[[12,0,105,20],[20,0,105,27],[36,0,105,27],[39,0,105,46],[51,0,105,59],[102,0,105,106],[103,0,105,113]],[[12,0,106,20],[25,0,106,34],[37,0,106,45],[49,0,106,57]],[[12,0,107,20],[20,0,107,27],[32,0,107,40],[79,0,107,83],[80,0,107,90],[84,0,107,27],[87,0,107,97],[100,0,107,111],[111,0,107,121],[123,0,107,133]],[[12,0,108,20],[27,0,108,35],[28,0,108,42],[47,0,108,20],[49,0,108,63],[57,0,108,72],[62,0,109,24],[77,0,109,39],[78,0,109,46],[98,0,110,24],[110,0,110,36],[112,0,110,39]],[[12,0,112,20],[32,0,112,20],[34,0,113,24],[51,0,113,24],[53,0,113,43],[75,0,114,30],[94,0,115,30]],[],[],[[10,0,118,16],[39,0,118,34],[59,0,118,53],[62,0,118,23],[65,0,118,59],[66,0,118,60]],[],[],[[4,0,124,8],[12,0,125,12],[32,0,125,12],[35,0,125,35],[37,0,125,12],[40,0,125,41],[60,0,125,41],[63,0,125,64],[79,0,125,64],[81,0,125,82]],[[4,0,130,8],[12,0,130,15],[24,0,130,15],[27,0,130,30],[29,0,130,15],[32,0,130,36],[44,0,130,36],[47,0,130,51]],[[4,0,131,32],[7,0,131,32],[11,0,131,14],[29,0,131,32],[36,0,131,37],[39,0,131,41]],[[4,0,132,22],[10,0,132,12],[20,0,132,35]],[[16,0,133,17]],[[8,0,134,12],[11,0,134,16],[13,0,134,16],[15,0,134,20]],[[10,0,135,46],[16,0,135,22],[40,0,135,46],[64,0,135,70]],[[10,0,136,16],[18,0,136,23],[22,0,136,27],[45,0,136,23],[47,0,136,52]],[[10,0,137,45],[14,0,137,22],[37,0,137,45],[60,0,137,68]],[[10,0,138,16],[18,0,138,23],[39,0,138,23],[41,0,138,46]],[[10,0,139,16],[13,0,139,20],[34,0,139,20],[37,0,139,44],[38,0,139,45]],[[12,0,141,40],[16,0,141,26],[30,0,141,40],[43,0,141,53]],[[12,0,142,20],[20,0,142,27],[32,0,142,27],[34,0,142,41]],[[12,0,143,20],[28,0,143,36],[29,0,143,43],[52,0,143,20],[54,0,143,68],[62,0,143,77],[67,0,144,24],[83,0,144,40],[84,0,144,47],[108,0,145,24]],[[12,0,147,43],[18,0,147,26],[35,0,147,43],[48,0,147,57],[59,0,147,67],[60,0,148,29],[72,0,148,42],[90,0,149,35],[113,0,150,32]],[[12,0,152,20],[20,0,152,27],[36,0,152,43],[39,0,152,27],[42,0,152,49]],[[12,0,154,24],[18,0,153,26],[57,0,154,35],[76,0,154,53],[77,0,154,60]],[[12,0,155,20],[20,0,155,20],[23,0,155,31],[30,0,155,39],[47,0,156,24],[64,0,157,24],[79,0,157,39],[83,0,158,24]],[],[[12,0,162,20],[20,0,162,27],[33,0,162,40],[36,0,162,27],[39,0,162,46]],[[23,0,164,29]],[[14,0,165,24],[22,0,165,31],[44,0,165,31],[68,0,165,67],[87,0,165,85]],[],[[12,0,167,20],[20,0,167,20],[23,0,167,31],[30,0,167,39],[47,0,168,24],[70,0,169,24],[85,0,169,39],[89,0,170,24],[105,0,170,40]],[],[],[[10,0,174,16],[18,0,174,23],[22,0,174,27],[46,0,174,51],[50,0,174,23],[53,0,174,58]],[[10,0,175,16],[18,0,175,23],[41,0,175,46],[44,0,175,23],[47,0,175,52],[48,0,175,53]],[[10,0,176,16],[18,0,176,23],[31,0,176,36],[34,0,176,23],[37,0,176,42]],[[10,0,177,16],[18,0,177,23],[34,0,177,39],[37,0,177,23],[40,0,177,58]],[[10,0,178,16],[18,0,178,23],[33,0,178,38],[36,0,178,23],[39,0,178,44]],[],[],[[15,0,183,17]],[[8,0,184,12],[16,0,184,19],[31,0,184,34],[34,0,184,19],[58,0,184,51],[72,0,184,64]],[[8,0,185,12],[16,0,186,16],[31,0,186,31],[34,0,186,16],[37,0,187,16],[45,0,187,25],[50,0,187,29],[66,0,187,45],[91,0,187,60],[109,0,187,77]],[[8,0,189,12],[11,0,189,16],[13,0,189,16],[15,0,189,20],[16,0,189,27]],[[10,0,190,16],[18,0,190,23],[33,0,190,38],[36,0,190,23],[38,0,190,43]],[],[[10,0,192,16],[18,0,192,23],[33,0,192,38],[36,0,192,23],[39,0,192,44]],[[10,0,193,16],[18,0,193,23],[34,0,193,39],[37,0,193,23],[40,0,193,45]],[[10,0,195,16],[39,0,195,34],[53,0,195,47],[56,0,195,23],[59,0,195,53]],[[10,0,196,16],[39,0,196,34],[57,0,196,51],[60,0,196,23],[63,0,196,57]],[],[],[[4,0,201,8],[20,0,201,33]],[],[],[],[],[],[],[],[]]
@@ -12,7 +12,7 @@ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-lib
12
12
 
13
13
  contract CAT20Guard {
14
14
  constructor(){}
15
- public function unlock(bytes[6] nextStateHashes, bytes[6] ownerAddrOrScriptHashes, int[6] outputTokens, int[6] tokenScriptHashIndexes, int[6] outputSatoshis, CAT20State[6] cat20States, int outputCount, SHPreimage __scrypt_ts_shPreimage, CAT20GuardConstState __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes) {
15
+ public function unlock(bytes[10] nextStateHashes, bytes[10] ownerAddrOrScriptHashes, int[10] outputTokens, int[10] tokenScriptHashIndexes, int[10] outputSatoshis, CAT20State[10] cat20States, int outputCount, SHPreimage __scrypt_ts_shPreimage, CAT20GuardConstState __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes) {
16
16
  require(Tx.checkPreimageSigHashType(ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage), SigHash.ALL));
17
17
 
18
18
  int __scrypt_ts_inputCount = ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
@@ -45,7 +45,7 @@ contract CAT20Guard {
45
45
  int[4] sumInputTokens = repeat(0, 4);
46
46
  int tokenScriptIndexMax = -1;
47
47
  int inputCount = __scrypt_ts_inputCount;
48
- loop (6) : i {
48
+ loop (10) : i {
49
49
  int tokenScriptIndex = __scrypt_ts_nextState.tokenScriptIndexes[(i)];
50
50
  if(i < inputCount) {
51
51
  require(tokenScriptIndex < inputTokenTypes);
@@ -62,10 +62,10 @@ contract CAT20Guard {
62
62
  }
63
63
  }
64
64
  require(tokenScriptIndexMax >= 0 && tokenScriptIndexMax == inputTokenTypes - 1);
65
- require(outputCount >= 0 && outputCount <= 6);
65
+ require(outputCount >= 0 && outputCount <= 10);
66
66
  int[4] sumOutputTokens = repeat(0, 4);
67
67
  bytes outputs = b'';
68
- loop (6) : i {
68
+ loop (10) : i {
69
69
  if(i < outputCount) {
70
70
  bytes ownerAddrOrScriptHash = ownerAddrOrScriptHashes[i];
71
71
  require(len(ownerAddrOrScriptHash) > 0);
@@ -109,9 +109,9 @@ contract CAT20Guard {
109
109
  require(hash256(outputs) == __scrypt_ts_shPreimage.hashOutputs);
110
110
  }
111
111
  static function serializeState(CAT20GuardConstState __scrypt_ts_curState): bytes {
112
- 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5])));
112
+ 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[6])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[6]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[7])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[7]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[8])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[8]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[9])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[9]) + 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[6])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[7])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[8])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[9])));
113
113
  }
114
114
  static function stateHash(CAT20GuardConstState __scrypt_ts_curState): bytes {
115
- 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5]))));
115
+ 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[6])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[6]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[7])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[7]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[8])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[8]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[9])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[9]) + 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[6])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[7])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[8])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[9]))));
116
116
  }
117
117
  }
@@ -1 +1 @@
1
- [[],[],[],[],[],[[8,0,5,13]],[[2,0,8,2],[18,0,8,9],[35,0,8,34],[56,0,8,26],[66,0,8,57]],[[4,0,9,4],[22,0,9,23],[45,0,9,45],[51,0,9,52]],[[15,0,11,13]],[[8,0,12,24],[12,0,12,12],[24,0,12,24],[28,0,12,28],[34,0,12,35],[53,0,12,53]],[[8,0,13,6],[16,0,13,13],[26,0,13,13],[29,0,13,26]],[[8,0,15,6],[16,0,15,13],[22,0,15,20],[36,0,15,33],[39,0,15,13],[42,0,15,39]],[[8,0,16,6],[16,0,16,13],[22,0,16,20],[40,0,16,37],[43,0,16,13],[46,0,16,43]],[],[[15,0,19,13]],[[8,0,21,26],[12,0,21,12],[26,0,21,26],[32,0,21,33],[52,0,21,52]],[[8,0,22,6],[16,0,22,13],[28,0,22,13],[31,0,22,28],[32,0,22,29],[34,0,22,13],[37,0,22,34],[49,0,22,34],[51,0,22,48]],[],[[4,0,25,4],[11,0,25,24]],[],[[2,0,34,2],[18,0,34,9],[40,0,35,18],[45,0,35,18],[49,0,35,4]],[[4,0,38,4],[12,0,38,11],[25,0,38,24],[28,0,38,11],[31,0,38,30],[44,0,38,43]],[[4,0,39,4],[12,0,39,11],[25,0,39,24],[28,0,39,11],[31,0,39,30],[44,0,39,43]],[[4,0,40,4],[12,0,40,11],[25,0,40,24],[28,0,40,11],[31,0,40,30],[44,0,40,43]],[[4,0,41,4],[12,0,41,11],[25,0,41,24],[28,0,41,11],[31,0,41,30],[44,0,41,43]],[[4,0,42,4],[12,0,42,11],[25,0,42,24],[28,0,42,11],[31,0,42,30],[44,0,42,43]],[[4,0,43,4],[12,0,43,11],[25,0,43,24],[28,0,43,11],[31,0,43,30],[44,0,43,43]],[],[],[],[],[],[],[],[],[]]
1
+ [[],[],[],[],[],[[8,0,5,13]],[[2,0,8,2],[18,0,8,9],[35,0,8,34],[56,0,8,26],[66,0,8,57]],[[4,0,9,4],[22,0,9,23],[45,0,9,45],[51,0,9,52]],[[15,0,11,13]],[[8,0,12,24],[12,0,12,12],[24,0,12,24],[28,0,12,28],[34,0,12,35],[53,0,12,53]],[[8,0,13,6],[16,0,13,13],[26,0,13,13],[29,0,13,26]],[[8,0,15,6],[16,0,15,13],[22,0,15,20],[36,0,15,33],[39,0,15,13],[42,0,15,39]],[[8,0,16,6],[16,0,16,13],[22,0,16,20],[40,0,16,37],[43,0,16,13],[46,0,16,43]],[],[[16,0,19,13]],[[8,0,21,26],[12,0,21,12],[26,0,21,26],[32,0,21,33],[52,0,21,52]],[[8,0,22,6],[16,0,22,13],[28,0,22,13],[31,0,22,28],[32,0,22,29],[34,0,22,13],[37,0,22,34],[49,0,22,34],[51,0,22,48]],[],[[4,0,25,4],[11,0,25,24]],[],[[2,0,34,2],[18,0,34,9],[40,0,35,18],[45,0,35,18],[49,0,35,4]],[[4,0,38,4],[12,0,38,11],[25,0,38,24],[28,0,38,11],[31,0,38,30],[44,0,38,43]],[[4,0,39,4],[12,0,39,11],[25,0,39,24],[28,0,39,11],[31,0,39,30],[44,0,39,43]],[[4,0,40,4],[12,0,40,11],[25,0,40,24],[28,0,40,11],[31,0,40,30],[44,0,40,43]],[[4,0,41,4],[12,0,41,11],[25,0,41,24],[28,0,41,11],[31,0,41,30],[44,0,41,43]],[[4,0,42,4],[12,0,42,11],[25,0,42,24],[28,0,42,11],[31,0,42,30],[44,0,42,43]],[[4,0,43,4],[12,0,43,11],[25,0,43,24],[28,0,43,11],[31,0,43,30],[44,0,43,43]],[],[],[],[],[],[],[],[],[]]
@@ -12,7 +12,7 @@ library CAT20GuardStateLib {
12
12
  require(_state.tokenAmounts[i] >= 0);
13
13
  require(_state.tokenBurnAmounts[i] >= 0);
14
14
  }
15
- loop (6) : i {
15
+ loop (10) : i {
16
16
  int scriptIndex = _state.tokenScriptIndexes[i];
17
17
  require(scriptIndex >= -1 && scriptIndex < 4);
18
18
  }
@@ -28,9 +28,9 @@ library CAT20GuardStateLib {
28
28
  return true;
29
29
  }
30
30
  static function serializeState(CAT20GuardConstState __scrypt_ts_curState): bytes {
31
- 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5])));
31
+ 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[6])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[6]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[7])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[7]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[8])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[8]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[9])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[9]) + 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[6])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[7])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[8])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[9])));
32
32
  }
33
33
  static function stateHash(CAT20GuardConstState __scrypt_ts_curState): bytes {
34
- 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5]))));
34
+ 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[0]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[1])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[1]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[2])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[2]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[3])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[3]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[4])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[4]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[5])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[5]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[6])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[6]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[7])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[7]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[8])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[8]) + num2bin(len(pack(__scrypt_ts_curState.tokenScriptIndexes[9])), 2) + pack(__scrypt_ts_curState.tokenScriptIndexes[9]) + 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(pack(__scrypt_ts_curState.tokenScriptIndexes[0])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[1])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[2])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[3])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[4])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[5])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[6])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[7])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[8])) + hash160(pack(__scrypt_ts_curState.tokenScriptIndexes[9]))));
35
35
  }
36
36
  }
@@ -1 +1 @@
1
- [[],[[7,0,30,35]],[[2,0,36,21],[7,0,36,21],[11,0,36,2]],[[2,0,42,16],[5,0,42,16],[9,0,42,2]],[[2,0,47,20],[5,0,47,20],[9,0,47,2]],[[2,0,62,22],[5,0,62,22],[9,0,62,2]],[],[],[[7,0,8,25]],[[2,0,9,7],[8,0,9,2]],[[2,0,11,13],[8,0,11,2]],[[2,0,13,10],[6,0,13,2]],[],[],[[7,0,120,0]],[[2,0,121,7],[8,0,121,2]],[[2,0,124,19],[8,0,124,2]],[],[],[[7,0,81,0]],[[2,0,82,7],[8,0,82,2]],[[2,0,83,8],[8,0,83,2]],[[2,0,84,10],[8,0,84,2]],[[2,0,85,12],[6,0,85,2]],[[2,0,86,13],[8,0,86,2]],[],[],[[7,0,89,0]],[[2,0,90,7],[8,0,90,2]],[[2,0,92,8],[8,0,92,2]],[[2,0,94,10],[8,0,94,2]],[[2,0,96,12],[6,0,96,2]],[[2,0,98,13],[8,0,98,2]],[[2,0,101,7],[6,0,101,2]],[[2,0,103,9],[6,0,103,2]],[[2,0,105,11],[6,0,105,2]],[[2,0,107,16],[8,0,107,2]],[],[],[[7,0,110,0]],[[2,0,111,7],[8,0,111,2]],[[2,0,113,19],[8,0,113,2]],[[2,0,115,19],[7,0,115,2]],[[2,0,117,18],[6,0,117,2]],[]]
1
+ [[],[[7,0,30,35]],[[2,0,36,21],[7,0,36,21],[11,0,36,2]],[[2,0,42,16],[5,0,42,16],[9,0,42,2]],[[2,0,47,20],[5,0,47,20],[9,0,47,2]],[[2,0,62,22],[5,0,62,22],[10,0,62,2]],[],[],[[7,0,8,25]],[[2,0,9,7],[8,0,9,2]],[[2,0,11,13],[8,0,11,2]],[[2,0,13,10],[6,0,13,2]],[],[],[[7,0,120,0]],[[2,0,121,7],[8,0,121,2]],[[2,0,124,19],[8,0,124,2]],[],[],[[7,0,81,0]],[[2,0,82,7],[8,0,82,2]],[[2,0,83,8],[8,0,83,2]],[[2,0,84,10],[8,0,84,2]],[[2,0,85,12],[6,0,85,2]],[[2,0,86,13],[8,0,86,2]],[],[],[[7,0,89,0]],[[2,0,90,7],[8,0,90,2]],[[2,0,92,8],[8,0,92,2]],[[2,0,94,10],[8,0,94,2]],[[2,0,96,12],[6,0,96,2]],[[2,0,98,13],[8,0,98,2]],[[2,0,101,7],[6,0,101,2]],[[2,0,103,9],[6,0,103,2]],[[2,0,105,11],[6,0,105,2]],[[2,0,107,16],[8,0,107,2]],[],[],[[7,0,110,0]],[[2,0,111,7],[8,0,111,2]],[[2,0,113,19],[8,0,113,2]],[[2,0,115,19],[7,0,115,2]],[[2,0,117,18],[6,0,117,2]],[]]
@@ -3,7 +3,7 @@ struct CAT20GuardConstState {
3
3
  bytes[4] tokenScriptHashes;
4
4
  int[4] tokenAmounts;
5
5
  int[4] tokenBurnAmounts;
6
- int[6] tokenScriptIndexes;
6
+ int[10] tokenScriptIndexes;
7
7
  }
8
8
 
9
9
  struct CAT20State {
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "version": 10,
3
3
  "compilerVersion": "1.21.0+commit.2ada378",
4
- "contract": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20",
5
- "md5": "ae33af4ebb75be95df3d9d421313124f",
4
+ "contract": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20",
5
+ "md5": "d46641788ec786994a2c393c5669566e",
6
6
  "structs": [
7
7
  {
8
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState",
8
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState",
9
9
  "params": [
10
10
  {
11
11
  "name": "tokenScriptHashes",
@@ -21,13 +21,13 @@
21
21
  },
22
22
  {
23
23
  "name": "tokenScriptIndexes",
24
- "type": "int[6]"
24
+ "type": "int[10]"
25
25
  }
26
26
  ],
27
27
  "genericTypes": []
28
28
  },
29
29
  {
30
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20State",
30
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20State",
31
31
  "params": [
32
32
  {
33
33
  "name": "tag",
@@ -45,7 +45,7 @@
45
45
  "genericTypes": []
46
46
  },
47
47
  {
48
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20ClosedMinterState",
48
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20ClosedMinterState",
49
49
  "params": [
50
50
  {
51
51
  "name": "tag",
@@ -59,7 +59,7 @@
59
59
  "genericTypes": []
60
60
  },
61
61
  {
62
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__ClosedMinterCAT20Meta",
62
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__ClosedMinterCAT20Meta",
63
63
  "params": [
64
64
  {
65
65
  "name": "tag",
@@ -85,7 +85,7 @@
85
85
  "genericTypes": []
86
86
  },
87
87
  {
88
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__OpenMinterCAT20Meta",
88
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__OpenMinterCAT20Meta",
89
89
  "params": [
90
90
  {
91
91
  "name": "tag",
@@ -127,7 +127,7 @@
127
127
  "genericTypes": []
128
128
  },
129
129
  {
130
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20OpenMinterState",
130
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20OpenMinterState",
131
131
  "params": [
132
132
  {
133
133
  "name": "tag",
@@ -333,7 +333,7 @@
333
333
  "genericTypes": []
334
334
  },
335
335
  {
336
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__ContractUnlockArgs",
336
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__ContractUnlockArgs",
337
337
  "params": [
338
338
  {
339
339
  "name": "userPubKey",
@@ -353,7 +353,7 @@
353
353
  ],
354
354
  "library": [
355
355
  {
356
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__OwnerUtils",
356
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__OwnerUtils",
357
357
  "params": [],
358
358
  "properties": [],
359
359
  "genericTypes": []
@@ -383,11 +383,11 @@
383
383
  "genericTypes": []
384
384
  },
385
385
  {
386
- "name": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardStateLib",
386
+ "name": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardStateLib",
387
387
  "params": [],
388
388
  "properties": [],
389
389
  "genericTypes": [],
390
- "stateType": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState"
390
+ "stateType": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState"
391
391
  },
392
392
  {
393
393
  "name": "_opcat_labs_scrypt_ts_opcat_1_0_4__rs__Backtrace",
@@ -411,11 +411,11 @@
411
411
  "params": [
412
412
  {
413
413
  "name": "unlockArgs",
414
- "type": "_opcat_labs_cat_sdk_1_0_2__rs__ContractUnlockArgs"
414
+ "type": "_opcat_labs_cat_sdk_1_0_3__rs__ContractUnlockArgs"
415
415
  },
416
416
  {
417
417
  "name": "guardState",
418
- "type": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState"
418
+ "type": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState"
419
419
  },
420
420
  {
421
421
  "name": "guardInputIndex",
@@ -431,7 +431,7 @@
431
431
  },
432
432
  {
433
433
  "name": "__scrypt_ts_curState",
434
- "type": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20State"
434
+ "type": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20State"
435
435
  },
436
436
  {
437
437
  "name": "__scrypt_ts_prevouts",
@@ -470,8 +470,8 @@
470
470
  }
471
471
  ],
472
472
  "stateProps": [],
473
- "stateType": "_opcat_labs_cat_sdk_1_0_2__rs__CAT20State",
473
+ "stateType": "_opcat_labs_cat_sdk_1_0_3__rs__CAT20State",
474
474
  "buildType": "release",
475
475
  "file": "..\\cat20.scrypt",
476
- "hex": "512097dfd76851bf465e8f715593b217714858bbe9570ff3bd5e33840a34e20ff0262102ba79df5f8ae7604a9830f03c7933028186aede0675a16f025dc4f8be8eec0382201008ce7480da41702918d1ec8e6849ba32b4d65b1e40dc669c31a1e6306b266c0000<minterScriptHash><guardScriptHash>78547a7572537a76537a757777011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e795d798277549d5c79827701209d5b79827701209d5a79827701209d597900a26958798277549d5779827701209d5679827701209d5579827701209d5479827701209d5379827701209d527900a2697800a26976519c6476529c6751686476539c67516864760281009c67516864760282009c67516864760283009c675168695d795d797e5c797e5b797e5a79767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c7e59797e58797e57797e56797e55797e54797e5379546e8b806e7c7f75007f6b6d6d6c7e5279546e8b806e7c7f75007f6b6d6d6c7e7854807e6b6d6d6d6d6d6d6d6c56797857795779210ac407f0e4bd44bfc207355a778b046225a7068fc59ee7eda43ad905aadbffc800206c266b30e6a1319c66dc401e5bd6b432ba49688eecd118297041da8074ce0810597956795679aa7676517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e01007e817757795679567956795679537956795479577995939521414136d08c5ed2bf3ba048afe6dcaebafeffffffffffffffffffffffffffffff006e6e9776009f636e936776687777777b757c6e5296a0636e7c947b757c6853798277527982775379012080517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e01205279947f77545379935279930130787e527e54797e58797e527e53797e52797e57797e6b6d6d6d6d6d6d6c765779ac6b6d6d6d6d6d6c77695c7901197978aa7888785878827d77527997009d6e7c966b6d6d6c775e79011f7901167970aa5379886e9f69765479012478827d77527997009d6e7c967777779d537952798b0124957f7552790124957f7d7701207f75007f777801247f7501207f77768277549d767601007e817777726d726d7b755d79011b7954795279aa527988765379012078827d77527997009d6e7c967777779d6d755e79011a7954795279aa527988765379012078827d77527997009d6e7c967777779d6d7501137901137901137901197901177901177901177952798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea87777770113797653798b0120957f7553790120957f775279886d755f795f795f795f79011779011e79557955795579557953798277549d5279014878827d77527997009d6e7c967777775279014878827d77527997009d6e7c96777777557952790000527902fd009f637551675279030000019f6301fd7b757c52776752790500000000019f6301fe7b757c54776701ff7b757c587768686878537952796e8b806e7c7f75007f6b6d6d6c7e7777777e55797e780000527902fd009f637551675279030000019f6301fd7b757c52776752790500000000019f6301fe7b757c54776701ff7b757c587768686878537952796e8b806e7c7f75007f6b6d6d6c7e7777777e54797e53797eaa6b6d6d6d6c76700124950120937f7553790124957f77886d6d6d75012d79012d79012d79012d79012d79012d79012d79012d79012d796079011a790124798b0120957f750124790120957f770119795b795b795b795b795b795b795b795b795b7959797656798b0148957f7556790148957f775a795a795a795a795379827701209d76827701209d707600a2637605ffffffff00a16700686976546e8b806e7c7f75007f6b6d6d6c777e787e52797600a2637605ffffffff00a16700686976546e8b806e7c7f75007f6b6d6d6c777e6b6d6d6c88597976567956795679567953798277549d5279014878827d77527997009d6e7c967777775279014878827d77527997009d6e7c96777777557952790000527902fd009f637551675279030000019f6301fd7b757c52776752790500000000019f6301fe7b757c54776701ff7b757c587768686878537952796e8b806e7c7f75007f6b6d6d6c7e7777777e55797e780000527902fd009f637551675279030000019f6301fd7b757c52776752790500000000019f6301fe7b757c54776701ff7b757c587768686878537952796e8b806e7c7f75007f6b6d6d6c7e7777777e54797e53797eaa6b6d6d6d6c8853795a7901489558930120937f755a7901489558937f77785b797600a2637605ffffffff00a16700686976546e8b806e7c7f75007f6b6d6d6c777e787c726d726d726d726d726d726d785579876478547987675168696d6d6d6d6d6d6d014079014079014079014079014079014079014079014079014079014079014079014079014079014079014079014079014079014079013479012c790142790125790127797853796e8b0120957f75780120957f777777011e79887653796e8b0120957f75780120957f77777701177901177901177901177901177901177901177901177901177901177901177901177901177901177901177901177901177901177901117901117901117901117953766b796c756b6d6d6c8277528001127901127901127901127953766b796c756b6d6d6c7e01127901127901127901127952766b796c756b6d6d6c827752807e01127901127901127901127952766b796c756b6d6d6c7e01127901127901127901127951766b796c756b6d6d6c827752807e01127901127901127901127951766b796c756b6d6d6c7e01127901127901127901127900766b796c756b6d6d6c827752807e01127901127901127901127900766b796c756b6d6d6c7e5e795e795e795e7953766b796c756b6d6d6c827752807e5e795e795e795e7953766b796c756b6d6d6c7e5e795e795e795e7952766b796c756b6d6d6c827752807e5e795e795e795e7952766b796c756b6d6d6c7e5e795e795e795e7951766b796c756b6d6d6c827752807e5e795e795e795e7951766b796c756b6d6d6c7e5e795e795e795e7900766b796c756b6d6d6c827752807e5e795e795e795e7900766b796c756b6d6d6c7e5a795a795a795a7953766b796c756b6d6d6c827752807e5a795a795a795a7953766b796c756b6d6d6c7e5a795a795a795a7952766b796c756b6d6d6c827752807e5a795a795a795a7952766b796c756b6d6d6c7e5a795a795a795a7951766b796c756b6d6d6c827752807e5a795a795a795a7951766b796c756b6d6d6c7e5a795a795a795a7900766b796c756b6d6d6c827752807e5a795a795a795a7900766b796c756b6d6d6c7e56795679567956795679567955766b796c756b6d6d6d6c827752807e56795679567956795679567955766b796c756b6d6d6d6c7e56795679567956795679567954766b796c756b6d6d6d6c827752807e56795679567956795679567954766b796c756b6d6d6d6c7e56795679567956795679567953766b796c756b6d6d6d6c827752807e56795679567956795679567953766b796c756b6d6d6d6c7e56795679567956795679567952766b796c756b6d6d6d6c827752807e56795679567956795679567952766b796c756b6d6d6d6c7e56795679567956795679567951766b796c756b6d6d6d6c827752807e56795679567956795679567951766b796c756b6d6d6d6c7e56795679567956795679567900766b796c756b6d6d6d6c827752807e56795679567956795679567900766b796c756b6d6d6d6c7e01127901127901127901127953766b796c756b6d6d6ca901137901137901137901137952766b796c756b6d6d6ca97e01137901137901137901137951766b796c756b6d6d6ca97e01137901137901137901137900766b796c756b6d6d6ca97e5f795f795f795f7953766b796c756b6d6d6ca97e5f795f795f795f7952766b796c756b6d6d6ca97e5f795f795f795f7951766b796c756b6d6d6ca97e5f795f795f795f7900766b796c756b6d6d6ca97e5b795b795b795b7953766b796c756b6d6d6ca97e5b795b795b795b7952766b796c756b6d6d6ca97e5b795b795b795b7951766b796c756b6d6d6ca97e5b795b795b795b7900766b796c756b6d6d6ca97e57795779577957795779577955766b796c756b6d6d6d6ca97e57795779577957795779577954766b796c756b6d6d6d6ca97e57795779577957795779577953766b796c756b6d6d6d6ca97e57795779577957795779577952766b796c756b6d6d6d6ca97e57795779577957795779577951766b796c756b6d6d6d6ca97e57795779577957795779577900766b796c756b6d6d6d6ca97ea97ea86b6d6d6d6d6d6d6d6d6d6c885a795a795a795a795a795a79565a797600a26976569f69948c766b796c756b6d6d6d6c0117790117790117790117795455797600a26976549f69948c766b796c756b6d6d6c5679886d6d6d6d6d6d6d6d6d6d6d6d78827701209c63780111790143798b0120957f750143790120957f7788670143795279787676827701219d750376a91478a97e0288ac7e7778886d014279014479ad686d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d51"
476
+ "hex": "512097dfd76851bf465e8f715593b217714858bbe9570ff3bd5e33840a34e20ff0262102ba79df5f8ae7604a9830f03c7933028186aede0675a16f025dc4f8be8eec0382201008ce7480da41702918d1ec8e6849ba32b4d65b1e40dc669c31a1e6306b266c0000<minterScriptHash><guardScriptHash>78547a7572537a76537a757777011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e79011e795d798277549d5c79827701209d5b79827701209d5a79827701209d597900a26958798277549d5779827701209d5679827701209d5579827701209d5479827701209d5379827701209d527900a2697800a26976519c6476529c6751686476539c67516864760281009c67516864760282009c67516864760283009c675168695d795d797e5c797e5b797e5a79767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c7e59797e58797e57797e56797e55797e54797e5379546e8b806e7c7f75007f6b6d6d6c7e5279546e8b806e7c7f75007f6b6d6d6c7e7854807e6b6d6d6d6d6d6d6d6c56797857795779210ac407f0e4bd44bfc207355a778b046225a7068fc59ee7eda43ad905aadbffc800206c266b30e6a1319c66dc401e5bd6b432ba49688eecd118297041da8074ce0810597956795679aa7676517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e01007e817757795679567956795679537956795479577995939521414136d08c5ed2bf3ba048afe6dcaebafeffffffffffffffffffffffffffffff006e6e9776009f636e936776687777777b757c6e5296a0636e7c947b757c6853798277527982775379012080517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e01205279947f77545379935279930130787e527e54797e58797e527e53797e52797e57797e6b6d6d6d6d6d6d6c765779ac6b6d6d6d6d6d6c77695c7901197978aa7888785878827d77527997009d6e7c966b6d6d6c775e79011f7901167970aa5379886e9f69765479012478827d77527997009d6e7c967777779d537952798b0124957f7552790124957f7d7701207f75007f777801247f7501207f77768277549d767601007e817777726d726d7b755d79011b7954795279aa527988765379012078827d77527997009d6e7c967777779d6d755e79011a7954795279aa527988765379012078827d77527997009d6e7c967777779d6d7501137901137901137901197901177901177901177952798277528053797e5279827752807e52797e78827752807e787e5379a95379a97e5279a97ea97ea87777770113797653798b0120957f7553790120957f775279886d755f795f795f795f79011779011e79557955795579557953798277549d5279014878827d77527997009d6e7c967777775279014878827d77527997009d6e7c96777777557952790000527902fd009f637551675279030000019f6301fd7b757c52776752790500000000019f6301fe7b757c54776701ff7b757c587768686878537952796e8b806e7c7f75007f6b6d6d6c7e7777777e55797e780000527902fd009f637551675279030000019f6301fd7b757c52776752790500000000019f6301fe7b757c54776701ff7b757c587768686878537952796e8b806e7c7f75007f6b6d6d6c7e7777777e54797e53797eaa6b6d6d6d6c76700124950120937f7553790124957f77886d6d6d75012d79012d79012d79012d79012d79012d79012d79012d79012d796079011a790124798b0120957f750124790120957f770119795b795b795b795b795b795b795b795b795b7959797656798b0148957f7556790148957f775a795a795a795a795379827701209d76827701209d707600a2637605ffffffff00a16700686976546e8b806e7c7f75007f6b6d6d6c777e787e52797600a2637605ffffffff00a16700686976546e8b806e7c7f75007f6b6d6d6c777e6b6d6d6c88597976567956795679567953798277549d5279014878827d77527997009d6e7c967777775279014878827d77527997009d6e7c96777777557952790000527902fd009f637551675279030000019f6301fd7b757c52776752790500000000019f6301fe7b757c54776701ff7b757c587768686878537952796e8b806e7c7f75007f6b6d6d6c7e7777777e55797e780000527902fd009f637551675279030000019f6301fd7b757c52776752790500000000019f6301fe7b757c54776701ff7b757c587768686878537952796e8b806e7c7f75007f6b6d6d6c7e7777777e54797e53797eaa6b6d6d6d6c8853795a7901489558930120937f755a7901489558937f77785b797600a2637605ffffffff00a16700686976546e8b806e7c7f75007f6b6d6d6c777e787c726d726d726d726d726d726d785579876478547987675168696d6d6d6d6d6d6d014479014479014479014479014479014479014479014479014479014479014479014479014479014479014479014479014479014479014479014479014479014479013879013079014679012979012b797853796e8b0120957f75780120957f777777012279887653796e8b0120957f75780120957f777777011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b79011b7901157901157901157901157953766b796c756b6d6d6c8277528001167901167901167901167953766b796c756b6d6d6c7e01167901167901167901167952766b796c756b6d6d6c827752807e01167901167901167901167952766b796c756b6d6d6c7e01167901167901167901167951766b796c756b6d6d6c827752807e01167901167901167901167951766b796c756b6d6d6c7e01167901167901167901167900766b796c756b6d6d6c827752807e01167901167901167901167900766b796c756b6d6d6c7e01127901127901127901127953766b796c756b6d6d6c827752807e01127901127901127901127953766b796c756b6d6d6c7e01127901127901127901127952766b796c756b6d6d6c827752807e01127901127901127901127952766b796c756b6d6d6c7e01127901127901127901127951766b796c756b6d6d6c827752807e01127901127901127901127951766b796c756b6d6d6c7e01127901127901127901127900766b796c756b6d6d6c827752807e01127901127901127901127900766b796c756b6d6d6c7e5e795e795e795e7953766b796c756b6d6d6c827752807e5e795e795e795e7953766b796c756b6d6d6c7e5e795e795e795e7952766b796c756b6d6d6c827752807e5e795e795e795e7952766b796c756b6d6d6c7e5e795e795e795e7951766b796c756b6d6d6c827752807e5e795e795e795e7951766b796c756b6d6d6c7e5e795e795e795e7900766b796c756b6d6d6c827752807e5e795e795e795e7900766b796c756b6d6d6c7e5a795a795a795a795a795a795a795a795a795a7959766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7959766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7958766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7958766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7957766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7957766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7956766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7956766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7955766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7955766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7954766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7954766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7953766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7953766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7952766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7952766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7951766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7951766b796c756b6d6d6d6d6d6c7e5a795a795a795a795a795a795a795a795a795a7900766b796c756b6d6d6d6d6d6c827752807e5a795a795a795a795a795a795a795a795a795a7900766b796c756b6d6d6d6d6d6c7e01167901167901167901167953766b796c756b6d6d6ca901177901177901177901177952766b796c756b6d6d6ca97e01177901177901177901177951766b796c756b6d6d6ca97e01177901177901177901177900766b796c756b6d6d6ca97e01137901137901137901137953766b796c756b6d6d6ca97e01137901137901137901137952766b796c756b6d6d6ca97e01137901137901137901137951766b796c756b6d6d6ca97e01137901137901137901137900766b796c756b6d6d6ca97e5f795f795f795f7953766b796c756b6d6d6ca97e5f795f795f795f7952766b796c756b6d6d6ca97e5f795f795f795f7951766b796c756b6d6d6ca97e5f795f795f795f7900766b796c756b6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7959766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7958766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7957766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7956766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7955766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7954766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7953766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7952766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7951766b796c756b6d6d6d6d6d6ca97e5b795b795b795b795b795b795b795b795b795b7900766b796c756b6d6d6d6d6d6ca97ea97ea86b6d6d6d6d6d6d6d6d6d6d6d6c885e795e795e795e795e795e795e795e795e795e795a5e797600a269765a9f69948c766b796c756b6d6d6d6d6d6c011b79011b79011b79011b795455797600a26976549f69948c766b796c756b6d6d6c5679886d6d6d6d6d6d6d6d6d6d6d6d6d6d78827701209c63780111790147798b0120957f750147790120957f7788670147795279787676827701219d750376a91478a97e0288ac7e7778886d014679014879ad686d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d51"
477
477
  }
@@ -12,14 +12,14 @@ import "../scrypt-ts-opcat/assets/smart-contract/builtin-libs/stateUtils.scrypt"
12
12
 
13
13
 
14
14
 
15
- contract _opcat_labs_cat_sdk_1_0_2__rs__CAT20 {
15
+ contract _opcat_labs_cat_sdk_1_0_3__rs__CAT20 {
16
16
  bytes minterScriptHash;
17
17
  bytes guardScriptHash;
18
18
  constructor(bytes minterScriptHash, bytes guardScriptHash) {
19
19
  this.minterScriptHash = minterScriptHash;
20
20
  this.guardScriptHash = guardScriptHash;
21
21
  }
22
- public function unlock(_opcat_labs_cat_sdk_1_0_2__rs__ContractUnlockArgs unlockArgs, _opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState guardState, int guardInputIndex, _opcat_labs_scrypt_ts_opcat_1_0_4__rs__BacktraceInfo backtraceInfo, _opcat_labs_scrypt_ts_opcat_1_0_4__rs__SHPreimage __scrypt_ts_shPreimage, _opcat_labs_cat_sdk_1_0_2__rs__CAT20State __scrypt_ts_curState, bytes __scrypt_ts_prevouts, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes, _opcat_labs_scrypt_ts_opcat_1_0_4__rs__TxHashPreimage __scrypt_ts_prevTxHashPreimage) {
22
+ public function unlock(_opcat_labs_cat_sdk_1_0_3__rs__ContractUnlockArgs unlockArgs, _opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState guardState, int guardInputIndex, _opcat_labs_scrypt_ts_opcat_1_0_4__rs__BacktraceInfo backtraceInfo, _opcat_labs_scrypt_ts_opcat_1_0_4__rs__SHPreimage __scrypt_ts_shPreimage, _opcat_labs_cat_sdk_1_0_3__rs__CAT20State __scrypt_ts_curState, bytes __scrypt_ts_prevouts, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes, _opcat_labs_scrypt_ts_opcat_1_0_4__rs__TxHashPreimage __scrypt_ts_prevTxHashPreimage) {
23
23
  require(Tx.checkPreimageSigHashType(_opcat_labs_scrypt_ts_opcat_1_0_4__rs__ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage), SigHash.ALL));
24
24
 
25
25
  int __scrypt_ts_inputCount = _opcat_labs_scrypt_ts_opcat_1_0_4__rs__ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
@@ -30,9 +30,9 @@ contract _opcat_labs_cat_sdk_1_0_2__rs__CAT20 {
30
30
 
31
31
  _opcat_labs_scrypt_ts_opcat_1_0_4__rs__ContextUtils.checkSpentDataHashes(__scrypt_ts_spentDataHashes, __scrypt_ts_shPreimage.hashSpentDataHashes, __scrypt_ts_inputCount);
32
32
 
33
- _opcat_labs_cat_sdk_1_0_2__rs__CAT20State __scrypt_ts_nextState = __scrypt_ts_curState;
33
+ _opcat_labs_cat_sdk_1_0_3__rs__CAT20State __scrypt_ts_nextState = __scrypt_ts_curState;
34
34
 
35
- _opcat_labs_scrypt_ts_opcat_1_0_4__rs__StateUtils.checkInputState(__scrypt_ts_shPreimage.inputIndex, _opcat_labs_cat_sdk_1_0_2__rs__CAT20.stateHash(__scrypt_ts_curState), __scrypt_ts_spentDataHashes);
35
+ _opcat_labs_scrypt_ts_opcat_1_0_4__rs__StateUtils.checkInputState(__scrypt_ts_shPreimage.inputIndex, _opcat_labs_cat_sdk_1_0_3__rs__CAT20.stateHash(__scrypt_ts_curState), __scrypt_ts_spentDataHashes);
36
36
 
37
37
  _opcat_labs_scrypt_ts_opcat_1_0_4__rs__Backtrace.checkPrevTxHashPreimage(__scrypt_ts_prevTxHashPreimage, __scrypt_ts_prevouts, __scrypt_ts_shPreimage.inputIndex);
38
38
 
@@ -41,22 +41,22 @@ contract _opcat_labs_cat_sdk_1_0_2__rs__CAT20 {
41
41
  if(len(__scrypt_ts_nextState.ownerAddr) == 32) {
42
42
  require(__scrypt_ts_nextState.ownerAddr == __scrypt_ts_spentScriptHashes[unlockArgs.contractInputIndex * 32 : (unlockArgs.contractInputIndex + 1) * 32]);
43
43
  } else {
44
- _opcat_labs_cat_sdk_1_0_2__rs__OwnerUtils.checkUserOwner(unlockArgs.userPubKey, __scrypt_ts_nextState.ownerAddr);
44
+ _opcat_labs_cat_sdk_1_0_3__rs__OwnerUtils.checkUserOwner(unlockArgs.userPubKey, __scrypt_ts_nextState.ownerAddr);
45
45
  require(checkSig(unlockArgs.userSig, unlockArgs.userPubKey));
46
46
  }
47
47
  require(true);
48
48
  }
49
- function checkGuard(_opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardConstState guardState, bytes t_cat20ScriptHash, int t_cat20InputIndexVal, int guardInputIndexVal, bytes t_spentScriptsCtx, bytes t_spentDataHashesCtx) : bool {
49
+ function checkGuard(_opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardConstState guardState, bytes t_cat20ScriptHash, int t_cat20InputIndexVal, int guardInputIndexVal, bytes t_spentScriptsCtx, bytes t_spentDataHashesCtx) : bool {
50
50
  require(_opcat_labs_scrypt_ts_opcat_1_0_4__rs__ContextUtils.getSpentScriptHash(t_spentScriptsCtx, guardInputIndexVal) == this.guardScriptHash);
51
- require(_opcat_labs_scrypt_ts_opcat_1_0_4__rs__ContextUtils.getSpentDataHash(t_spentDataHashesCtx, guardInputIndexVal) == _opcat_labs_cat_sdk_1_0_2__rs__CAT20GuardStateLib.stateHash(guardState));
51
+ require(_opcat_labs_scrypt_ts_opcat_1_0_4__rs__ContextUtils.getSpentDataHash(t_spentDataHashesCtx, guardInputIndexVal) == _opcat_labs_cat_sdk_1_0_3__rs__CAT20GuardStateLib.stateHash(guardState));
52
52
  int tokenScriptIndex = guardState.tokenScriptIndexes[(t_cat20InputIndexVal)];
53
53
  require(guardState.tokenScriptHashes[(tokenScriptIndex)] == t_cat20ScriptHash);
54
54
  return true;
55
55
  }
56
- static function serializeState(_opcat_labs_cat_sdk_1_0_2__rs__CAT20State __scrypt_ts_curState): bytes {
56
+ static function serializeState(_opcat_labs_cat_sdk_1_0_3__rs__CAT20State __scrypt_ts_curState): bytes {
57
57
  return num2bin(len(__scrypt_ts_curState.tag), 2) + __scrypt_ts_curState.tag + num2bin(len(__scrypt_ts_curState.ownerAddr), 2) + __scrypt_ts_curState.ownerAddr + num2bin(len(pack(__scrypt_ts_curState.amount)), 2) + pack(__scrypt_ts_curState.amount) + hash160(hash160(__scrypt_ts_curState.tag) + hash160(__scrypt_ts_curState.ownerAddr) + hash160(pack(__scrypt_ts_curState.amount)));
58
58
  }
59
- static function stateHash(_opcat_labs_cat_sdk_1_0_2__rs__CAT20State __scrypt_ts_curState): bytes {
59
+ static function stateHash(_opcat_labs_cat_sdk_1_0_3__rs__CAT20State __scrypt_ts_curState): bytes {
60
60
  return sha256(num2bin(len(__scrypt_ts_curState.tag), 2) + __scrypt_ts_curState.tag + num2bin(len(__scrypt_ts_curState.ownerAddr), 2) + __scrypt_ts_curState.ownerAddr + num2bin(len(pack(__scrypt_ts_curState.amount)), 2) + pack(__scrypt_ts_curState.amount) + hash160(hash160(__scrypt_ts_curState.tag) + hash160(__scrypt_ts_curState.ownerAddr) + hash160(pack(__scrypt_ts_curState.amount))));
61
61
  }
62
62
  }