@opcat-labs/cat-sdk 3.4.0 → 4.0.0-beta-27c8e56c-20260301
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.
- package/artifacts/.templates/cat20/cat20.scrypt.map +1 -1
- package/artifacts/.templates/cat20/cat20.scrypt.tpl +20 -14
- package/artifacts/.templates/cat20/cat20Admin.scrypt.map +1 -1
- package/artifacts/.templates/cat20/cat20Admin.scrypt.tpl +16 -27
- package/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.map +1 -1
- package/artifacts/.templates/cat20/cat20GuardStateLib.scrypt.tpl +2 -4
- package/artifacts/.templates/cat20/cat20GuardVariants.scrypt.map +1 -0
- package/artifacts/.templates/cat20/cat20GuardVariants.scrypt.tpl +7 -0
- package/artifacts/.templates/cat20/cat20GuardVariants.transformer.json +7 -0
- package/artifacts/.templates/cat20/cat20Guard_12_12_2.scrypt.map +1 -1
- package/artifacts/.templates/cat20/cat20Guard_12_12_2.scrypt.tpl +24 -33
- package/artifacts/.templates/cat20/cat20Guard_12_12_2.transformer.json +1 -2
- package/artifacts/.templates/cat20/cat20Guard_12_12_4.scrypt.map +1 -1
- package/artifacts/.templates/cat20/cat20Guard_12_12_4.scrypt.tpl +24 -33
- package/artifacts/.templates/cat20/cat20Guard_12_12_4.transformer.json +1 -2
- package/artifacts/.templates/cat20/cat20Guard_6_6_2.scrypt.map +1 -1
- package/artifacts/.templates/cat20/cat20Guard_6_6_2.scrypt.tpl +24 -33
- package/artifacts/.templates/cat20/cat20Guard_6_6_2.transformer.json +1 -2
- package/artifacts/.templates/cat20/cat20Guard_6_6_4.scrypt.map +1 -1
- package/artifacts/.templates/cat20/cat20Guard_6_6_4.scrypt.tpl +24 -33
- package/artifacts/.templates/cat20/cat20Guard_6_6_4.transformer.json +1 -2
- package/artifacts/.templates/cat20/minters/cat20ClosedMinter.scrypt.map +1 -1
- package/artifacts/.templates/cat20/minters/cat20ClosedMinter.scrypt.tpl +10 -14
- package/artifacts/.templates/cat20/minters/cat20OpenMinter.scrypt.map +1 -1
- package/artifacts/.templates/cat20/minters/cat20OpenMinter.scrypt.tpl +18 -20
- package/artifacts/.templates/cat20/types.scrypt.map +1 -1
- package/artifacts/.templates/cat20/types.scrypt.tpl +0 -2
- package/artifacts/.templates/cat721/cat721.scrypt.map +1 -1
- package/artifacts/.templates/cat721/cat721.scrypt.tpl +13 -13
- package/artifacts/.templates/cat721/cat721GuardStateLib.scrypt.map +1 -1
- package/artifacts/.templates/cat721/cat721GuardStateLib.scrypt.tpl +1 -0
- package/artifacts/.templates/cat721/cat721GuardVariants.scrypt.map +1 -0
- package/artifacts/.templates/cat721/cat721GuardVariants.scrypt.tpl +7 -0
- package/artifacts/.templates/cat721/cat721GuardVariants.transformer.json +7 -0
- package/artifacts/.templates/cat721/cat721Guard_12_12_2.scrypt.map +1 -1
- package/artifacts/.templates/cat721/cat721Guard_12_12_2.scrypt.tpl +12 -22
- package/artifacts/.templates/cat721/cat721Guard_12_12_2.transformer.json +1 -2
- package/artifacts/.templates/cat721/cat721Guard_12_12_4.scrypt.map +1 -1
- package/artifacts/.templates/cat721/cat721Guard_12_12_4.scrypt.tpl +12 -22
- package/artifacts/.templates/cat721/cat721Guard_12_12_4.transformer.json +1 -2
- package/artifacts/.templates/cat721/cat721Guard_6_6_2.scrypt.map +1 -1
- package/artifacts/.templates/cat721/cat721Guard_6_6_2.scrypt.tpl +12 -22
- package/artifacts/.templates/cat721/cat721Guard_6_6_2.transformer.json +1 -2
- package/artifacts/.templates/cat721/cat721Guard_6_6_4.scrypt.map +1 -1
- package/artifacts/.templates/cat721/cat721Guard_6_6_4.scrypt.tpl +12 -22
- package/artifacts/.templates/cat721/cat721Guard_6_6_4.transformer.json +1 -2
- package/artifacts/.templates/cat721/minters/cat721ClosedMinter.scrypt.map +1 -1
- package/artifacts/.templates/cat721/minters/cat721ClosedMinter.scrypt.tpl +12 -14
- package/artifacts/.templates/cat721/minters/cat721OpenMinter.scrypt.map +1 -1
- package/artifacts/.templates/cat721/minters/cat721OpenMinter.scrypt.tpl +15 -10
- package/artifacts/.templates/cat721/minters/cat721OpenMinterMerkleTree.scrypt.map +1 -1
- package/artifacts/.templates/cat721/minters/cat721OpenMinterMerkleTree.scrypt.tpl +3 -3
- package/artifacts/.templates/cat721/types.scrypt.map +1 -1
- package/artifacts/.templates/cat721/types.scrypt.tpl +1 -1
- package/artifacts/.templates/constants.scrypt.map +1 -1
- package/artifacts/.templates/types.scrypt.map +1 -1
- package/artifacts/.templates/utils/ownerUtils.scrypt.map +1 -1
- package/artifacts/.templates/utils/ownerUtils.scrypt.tpl +0 -3
- package/artifacts/cat20/cat20.json +45 -57
- package/artifacts/cat20/cat20.scrypt +32 -26
- package/artifacts/cat20/cat20Admin.json +44 -86
- package/artifacts/cat20/cat20Admin.scrypt +28 -39
- package/artifacts/cat20/cat20GuardStateLib.json +30 -34
- package/artifacts/cat20/cat20GuardStateLib.scrypt +7 -9
- package/artifacts/cat20/cat20GuardVariants.json +26 -0
- package/artifacts/cat20/cat20GuardVariants.scrypt +9 -0
- package/artifacts/cat20/cat20Guard_12_12_2.json +124 -163
- package/artifacts/cat20/cat20Guard_12_12_2.scrypt +39 -48
- package/artifacts/cat20/cat20Guard_12_12_4.json +124 -163
- package/artifacts/cat20/cat20Guard_12_12_4.scrypt +39 -48
- package/artifacts/cat20/cat20Guard_6_6_2.json +124 -163
- package/artifacts/cat20/cat20Guard_6_6_2.scrypt +39 -48
- package/artifacts/cat20/cat20Guard_6_6_4.json +124 -163
- package/artifacts/cat20/cat20Guard_6_6_4.scrypt +39 -48
- package/artifacts/cat20/cat20StateLib.json +31 -35
- package/artifacts/cat20/cat20StateLib.scrypt +5 -5
- package/artifacts/cat20/minters/cat20ClosedMinter.json +42 -68
- package/artifacts/cat20/minters/cat20ClosedMinter.scrypt +23 -27
- package/artifacts/cat20/minters/cat20OpenMinter.json +42 -72
- package/artifacts/cat20/minters/cat20OpenMinter.scrypt +28 -30
- package/artifacts/cat20/types.json +5 -13
- package/artifacts/cat20/types.scrypt +5 -7
- package/artifacts/cat721/cat721.json +46 -50
- package/artifacts/cat721/cat721.scrypt +25 -25
- package/artifacts/cat721/cat721GuardStateLib.json +31 -27
- package/artifacts/cat721/cat721GuardStateLib.scrypt +6 -5
- package/artifacts/cat721/cat721GuardVariants.json +26 -0
- package/artifacts/cat721/cat721GuardVariants.scrypt +9 -0
- package/artifacts/cat721/cat721Guard_12_12_2.json +132 -165
- package/artifacts/cat721/cat721Guard_12_12_2.scrypt +27 -37
- package/artifacts/cat721/cat721Guard_12_12_4.json +132 -165
- package/artifacts/cat721/cat721Guard_12_12_4.scrypt +27 -37
- package/artifacts/cat721/cat721Guard_6_6_2.json +132 -165
- package/artifacts/cat721/cat721Guard_6_6_2.scrypt +27 -37
- package/artifacts/cat721/cat721Guard_6_6_4.json +132 -165
- package/artifacts/cat721/cat721Guard_6_6_4.scrypt +27 -37
- package/artifacts/cat721/cat721StateLib.json +32 -28
- package/artifacts/cat721/cat721StateLib.scrypt +5 -5
- package/artifacts/cat721/minters/cat721ClosedMinter.json +43 -61
- package/artifacts/cat721/minters/cat721ClosedMinter.scrypt +21 -23
- package/artifacts/cat721/minters/cat721OpenMintInfo.json +5 -5
- package/artifacts/cat721/minters/cat721OpenMintInfo.scrypt +4 -4
- package/artifacts/cat721/minters/cat721OpenMinter.json +50 -60
- package/artifacts/cat721/minters/cat721OpenMinter.scrypt +30 -25
- package/artifacts/cat721/minters/cat721OpenMinterMerkleTree.json +29 -25
- package/artifacts/cat721/minters/cat721OpenMinterMerkleTree.scrypt +9 -9
- package/artifacts/cat721/types.json +6 -6
- package/artifacts/cat721/types.scrypt +6 -6
- package/artifacts/constants.json +2 -2
- package/artifacts/constants.scrypt +1 -1
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/backtrace.scrypt +16 -15
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scrypt +22 -18
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stdUtils.scrypt +25 -19
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/txHashPreimageUtils.scrypt +7 -7
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/txUtils.scrypt +13 -13
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/types/structs.scrypt +11 -10
- package/artifacts/types.json +2 -2
- package/artifacts/types.scrypt +2 -2
- package/artifacts/utils/ownerUtils.json +23 -19
- package/artifacts/utils/ownerUtils.scrypt +3 -6
- package/dist/artifacts/cat20/cat20.json +45 -57
- package/dist/artifacts/cat20/cat20.scrypt +32 -26
- package/dist/artifacts/cat20/cat20Admin.json +44 -86
- package/dist/artifacts/cat20/cat20Admin.scrypt +28 -39
- package/dist/artifacts/cat20/cat20GuardStateLib.json +30 -34
- package/dist/artifacts/cat20/cat20GuardStateLib.scrypt +7 -9
- package/dist/artifacts/cat20/cat20GuardVariants.json +26 -0
- package/dist/artifacts/cat20/cat20GuardVariants.scrypt +9 -0
- package/dist/artifacts/cat20/cat20Guard_12_12_2.json +124 -163
- package/dist/artifacts/cat20/cat20Guard_12_12_2.scrypt +39 -48
- package/dist/artifacts/cat20/cat20Guard_12_12_4.json +124 -163
- package/dist/artifacts/cat20/cat20Guard_12_12_4.scrypt +39 -48
- package/dist/artifacts/cat20/cat20Guard_6_6_2.json +124 -163
- package/dist/artifacts/cat20/cat20Guard_6_6_2.scrypt +39 -48
- package/dist/artifacts/cat20/cat20Guard_6_6_4.json +124 -163
- package/dist/artifacts/cat20/cat20Guard_6_6_4.scrypt +39 -48
- package/dist/artifacts/cat20/cat20StateLib.json +31 -35
- package/dist/artifacts/cat20/cat20StateLib.scrypt +5 -5
- package/dist/artifacts/cat20/minters/cat20ClosedMinter.json +42 -68
- package/dist/artifacts/cat20/minters/cat20ClosedMinter.scrypt +23 -27
- package/dist/artifacts/cat20/minters/cat20OpenMinter.json +42 -72
- package/dist/artifacts/cat20/minters/cat20OpenMinter.scrypt +28 -30
- package/dist/artifacts/cat20/types.json +5 -13
- package/dist/artifacts/cat20/types.scrypt +5 -7
- package/dist/artifacts/cat721/cat721.json +46 -50
- package/dist/artifacts/cat721/cat721.scrypt +25 -25
- package/dist/artifacts/cat721/cat721GuardStateLib.json +31 -27
- package/dist/artifacts/cat721/cat721GuardStateLib.scrypt +6 -5
- package/dist/artifacts/cat721/cat721GuardVariants.json +26 -0
- package/dist/artifacts/cat721/cat721GuardVariants.scrypt +9 -0
- package/dist/artifacts/cat721/cat721Guard_12_12_2.json +132 -165
- package/dist/artifacts/cat721/cat721Guard_12_12_2.scrypt +27 -37
- package/dist/artifacts/cat721/cat721Guard_12_12_4.json +132 -165
- package/dist/artifacts/cat721/cat721Guard_12_12_4.scrypt +27 -37
- package/dist/artifacts/cat721/cat721Guard_6_6_2.json +132 -165
- package/dist/artifacts/cat721/cat721Guard_6_6_2.scrypt +27 -37
- package/dist/artifacts/cat721/cat721Guard_6_6_4.json +132 -165
- package/dist/artifacts/cat721/cat721Guard_6_6_4.scrypt +27 -37
- package/dist/artifacts/cat721/cat721StateLib.json +32 -28
- package/dist/artifacts/cat721/cat721StateLib.scrypt +5 -5
- package/dist/artifacts/cat721/minters/cat721ClosedMinter.json +43 -61
- package/dist/artifacts/cat721/minters/cat721ClosedMinter.scrypt +21 -23
- package/dist/artifacts/cat721/minters/cat721OpenMintInfo.json +5 -5
- package/dist/artifacts/cat721/minters/cat721OpenMintInfo.scrypt +4 -4
- package/dist/artifacts/cat721/minters/cat721OpenMinter.json +50 -60
- package/dist/artifacts/cat721/minters/cat721OpenMinter.scrypt +30 -25
- package/dist/artifacts/cat721/minters/cat721OpenMinterMerkleTree.json +29 -25
- package/dist/artifacts/cat721/minters/cat721OpenMinterMerkleTree.scrypt +9 -9
- package/dist/artifacts/cat721/types.json +6 -6
- package/dist/artifacts/cat721/types.scrypt +6 -6
- package/dist/artifacts/constants.json +2 -2
- package/dist/artifacts/constants.scrypt +1 -1
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/backtrace.scrypt +16 -15
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scrypt +22 -18
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stdUtils.scrypt +25 -19
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/txHashPreimageUtils.scrypt +7 -7
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/txUtils.scrypt +13 -13
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/types/structs.scrypt +11 -10
- package/dist/artifacts/types.json +2 -2
- package/dist/artifacts/types.scrypt +2 -2
- package/dist/artifacts/utils/ownerUtils.json +23 -19
- package/dist/artifacts/utils/ownerUtils.scrypt +3 -6
- package/dist/cjs/contracts/cat20/cat20.js +37 -16
- package/dist/cjs/contracts/cat20/cat20.js.map +1 -1
- package/dist/cjs/contracts/cat20/cat20GuardStateLib.js +7 -5
- package/dist/cjs/contracts/cat20/cat20GuardStateLib.js.map +1 -1
- package/dist/cjs/contracts/cat20/cat20GuardVariants.js +49 -0
- package/dist/cjs/contracts/cat20/cat20GuardVariants.js.map +1 -0
- package/dist/cjs/contracts/cat20/cat20Guard_12_12_2.js +38 -35
- package/dist/cjs/contracts/cat20/cat20Guard_12_12_2.js.map +1 -1
- package/dist/cjs/contracts/cat20/cat20Guard_12_12_4.js +38 -35
- package/dist/cjs/contracts/cat20/cat20Guard_12_12_4.js.map +1 -1
- package/dist/cjs/contracts/cat20/cat20Guard_6_6_2.js +38 -35
- package/dist/cjs/contracts/cat20/cat20Guard_6_6_2.js.map +1 -1
- package/dist/cjs/contracts/cat20/cat20Guard_6_6_4.js +38 -35
- package/dist/cjs/contracts/cat20/cat20Guard_6_6_4.js.map +1 -1
- package/dist/cjs/contracts/cat20/minters/cat20ClosedMinter.js +4 -0
- package/dist/cjs/contracts/cat20/minters/cat20ClosedMinter.js.map +1 -1
- package/dist/cjs/contracts/cat20/minters/cat20OpenMinter.js +15 -16
- package/dist/cjs/contracts/cat20/minters/cat20OpenMinter.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721.js +22 -11
- package/dist/cjs/contracts/cat721/cat721.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721GuardStateLib.js +3 -1
- package/dist/cjs/contracts/cat721/cat721GuardStateLib.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721GuardVariants.js +49 -0
- package/dist/cjs/contracts/cat721/cat721GuardVariants.js.map +1 -0
- package/dist/cjs/contracts/cat721/cat721Guard_12_12_2.js +24 -28
- package/dist/cjs/contracts/cat721/cat721Guard_12_12_2.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721Guard_12_12_4.js +24 -28
- package/dist/cjs/contracts/cat721/cat721Guard_12_12_4.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721Guard_6_6_2.js +24 -28
- package/dist/cjs/contracts/cat721/cat721Guard_6_6_2.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721Guard_6_6_4.js +24 -28
- package/dist/cjs/contracts/cat721/cat721Guard_6_6_4.js.map +1 -1
- package/dist/cjs/contracts/cat721/minters/cat721ClosedMinter.js +7 -5
- package/dist/cjs/contracts/cat721/minters/cat721ClosedMinter.js.map +1 -1
- package/dist/cjs/contracts/cat721/minters/cat721OpenMinter.js +17 -10
- package/dist/cjs/contracts/cat721/minters/cat721OpenMinter.js.map +1 -1
- package/dist/cjs/contracts/cat721/minters/cat721OpenMinterMerkleTree.js +3 -3
- package/dist/cjs/contracts/cat721/minters/cat721OpenMinterMerkleTree.js.map +1 -1
- package/dist/cjs/contracts/cat721/types.js +15 -2
- package/dist/cjs/contracts/cat721/types.js.map +1 -1
- package/dist/cjs/contracts/constants.js +21 -1
- package/dist/cjs/contracts/constants.js.map +1 -1
- package/dist/cjs/contracts/index.js +2 -1
- package/dist/cjs/contracts/index.js.map +1 -1
- package/dist/cjs/contracts/types.js +0 -4
- package/dist/cjs/contracts/types.js.map +1 -1
- package/dist/cjs/contracts/utils/ownerUtils.js +0 -10
- package/dist/cjs/contracts/utils/ownerUtils.js.map +1 -1
- package/dist/cjs/features/cat20/admin/burnByAdmin.js +14 -18
- package/dist/cjs/features/cat20/admin/burnByAdmin.js.map +1 -1
- package/dist/cjs/features/cat20/burn/burn.js +16 -9
- package/dist/cjs/features/cat20/burn/burn.js.map +1 -1
- package/dist/cjs/features/cat20/deploy/closedMinter.js +55 -14
- package/dist/cjs/features/cat20/deploy/closedMinter.js.map +1 -1
- package/dist/cjs/features/cat20/deploy/openMinter.js +2 -3
- package/dist/cjs/features/cat20/deploy/openMinter.js.map +1 -1
- package/dist/cjs/features/cat20/index.js +1 -3
- package/dist/cjs/features/cat20/index.js.map +1 -1
- package/dist/cjs/features/cat20/mint/closedMinter.js +1 -1
- package/dist/cjs/features/cat20/mint/closedMinter.js.map +1 -1
- package/dist/cjs/features/cat20/send/contractSend.js +12 -8
- package/dist/cjs/features/cat20/send/contractSend.js.map +1 -1
- package/dist/cjs/features/cat20/send/singleSend.js +13 -12
- package/dist/cjs/features/cat20/send/singleSend.js.map +1 -1
- package/dist/cjs/features/cat721/burn/burn.js +14 -7
- package/dist/cjs/features/cat721/burn/burn.js.map +1 -1
- package/dist/cjs/features/cat721/deploy/cat721ClosedMinter.js +1 -1
- package/dist/cjs/features/cat721/deploy/cat721ClosedMinter.js.map +1 -1
- package/dist/cjs/features/cat721/deploy/cat721OpenMinter.js +1 -1
- package/dist/cjs/features/cat721/deploy/cat721OpenMinter.js.map +1 -1
- package/dist/cjs/features/cat721/index.js +1 -3
- package/dist/cjs/features/cat721/index.js.map +1 -1
- package/dist/cjs/features/cat721/mint/cat721ClosedMinter.js +11 -4
- package/dist/cjs/features/cat721/mint/cat721ClosedMinter.js.map +1 -1
- package/dist/cjs/features/cat721/mint/cat721OpenMinter.js +12 -4
- package/dist/cjs/features/cat721/mint/cat721OpenMinter.js.map +1 -1
- package/dist/cjs/features/cat721/send/singleSend.js +6 -7
- package/dist/cjs/features/cat721/send/singleSend.js.map +1 -1
- package/dist/cjs/lib/cat721OPenMinterMerkleTreeData.js +2 -4
- package/dist/cjs/lib/cat721OPenMinterMerkleTreeData.js.map +1 -1
- package/dist/cjs/lib/metadata.js.map +1 -1
- package/dist/cjs/utils/contractPeripheral.js +51 -48
- package/dist/cjs/utils/contractPeripheral.js.map +1 -1
- package/dist/cjs/utils/index.js +5 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20.js +38 -17
- package/dist/esm/contracts/cat20/cat20.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20GuardStateLib.js +8 -6
- package/dist/esm/contracts/cat20/cat20GuardStateLib.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20GuardVariants.js +45 -0
- package/dist/esm/contracts/cat20/cat20GuardVariants.js.map +1 -0
- package/dist/esm/contracts/cat20/cat20Guard_12_12_2.js +40 -37
- package/dist/esm/contracts/cat20/cat20Guard_12_12_2.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20Guard_12_12_4.js +40 -37
- package/dist/esm/contracts/cat20/cat20Guard_12_12_4.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20Guard_6_6_2.js +40 -37
- package/dist/esm/contracts/cat20/cat20Guard_6_6_2.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20Guard_6_6_4.js +40 -37
- package/dist/esm/contracts/cat20/cat20Guard_6_6_4.js.map +1 -1
- package/dist/esm/contracts/cat20/minters/cat20ClosedMinter.js +4 -0
- package/dist/esm/contracts/cat20/minters/cat20ClosedMinter.js.map +1 -1
- package/dist/esm/contracts/cat20/minters/cat20OpenMinter.js +15 -18
- package/dist/esm/contracts/cat20/minters/cat20OpenMinter.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721.js +22 -11
- package/dist/esm/contracts/cat721/cat721.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721GuardStateLib.js +4 -2
- package/dist/esm/contracts/cat721/cat721GuardStateLib.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721GuardVariants.js +45 -0
- package/dist/esm/contracts/cat721/cat721GuardVariants.js.map +1 -0
- package/dist/esm/contracts/cat721/cat721Guard_12_12_2.js +25 -29
- package/dist/esm/contracts/cat721/cat721Guard_12_12_2.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721Guard_12_12_4.js +25 -29
- package/dist/esm/contracts/cat721/cat721Guard_12_12_4.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721Guard_6_6_2.js +25 -29
- package/dist/esm/contracts/cat721/cat721Guard_6_6_2.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721Guard_6_6_4.js +25 -29
- package/dist/esm/contracts/cat721/cat721Guard_6_6_4.js.map +1 -1
- package/dist/esm/contracts/cat721/minters/cat721ClosedMinter.js +8 -6
- package/dist/esm/contracts/cat721/minters/cat721ClosedMinter.js.map +1 -1
- package/dist/esm/contracts/cat721/minters/cat721OpenMinter.js +18 -11
- package/dist/esm/contracts/cat721/minters/cat721OpenMinter.js.map +1 -1
- package/dist/esm/contracts/cat721/minters/cat721OpenMinterMerkleTree.js +4 -4
- package/dist/esm/contracts/cat721/minters/cat721OpenMinterMerkleTree.js.map +1 -1
- package/dist/esm/contracts/cat721/types.js +14 -1
- package/dist/esm/contracts/cat721/types.js.map +1 -1
- package/dist/esm/contracts/constants.js +20 -0
- package/dist/esm/contracts/constants.js.map +1 -1
- package/dist/esm/contracts/index.js +2 -1
- package/dist/esm/contracts/index.js.map +1 -1
- package/dist/esm/contracts/types.js +1 -3
- package/dist/esm/contracts/types.js.map +1 -1
- package/dist/esm/contracts/utils/ownerUtils.js +0 -10
- package/dist/esm/contracts/utils/ownerUtils.js.map +1 -1
- package/dist/esm/features/cat20/admin/burnByAdmin.js +14 -18
- package/dist/esm/features/cat20/admin/burnByAdmin.js.map +1 -1
- package/dist/esm/features/cat20/burn/burn.js +16 -9
- package/dist/esm/features/cat20/burn/burn.js.map +1 -1
- package/dist/esm/features/cat20/deploy/closedMinter.js +56 -15
- package/dist/esm/features/cat20/deploy/closedMinter.js.map +1 -1
- package/dist/esm/features/cat20/deploy/openMinter.js +3 -4
- package/dist/esm/features/cat20/deploy/openMinter.js.map +1 -1
- package/dist/esm/features/cat20/index.js +0 -1
- package/dist/esm/features/cat20/index.js.map +1 -1
- package/dist/esm/features/cat20/mint/closedMinter.js +2 -2
- package/dist/esm/features/cat20/mint/closedMinter.js.map +1 -1
- package/dist/esm/features/cat20/send/contractSend.js +13 -9
- package/dist/esm/features/cat20/send/contractSend.js.map +1 -1
- package/dist/esm/features/cat20/send/singleSend.js +13 -12
- package/dist/esm/features/cat20/send/singleSend.js.map +1 -1
- package/dist/esm/features/cat721/burn/burn.js +14 -7
- package/dist/esm/features/cat721/burn/burn.js.map +1 -1
- package/dist/esm/features/cat721/deploy/cat721ClosedMinter.js +2 -2
- package/dist/esm/features/cat721/deploy/cat721ClosedMinter.js.map +1 -1
- package/dist/esm/features/cat721/deploy/cat721OpenMinter.js +2 -2
- package/dist/esm/features/cat721/deploy/cat721OpenMinter.js.map +1 -1
- package/dist/esm/features/cat721/index.js +0 -1
- package/dist/esm/features/cat721/index.js.map +1 -1
- package/dist/esm/features/cat721/mint/cat721ClosedMinter.js +12 -5
- package/dist/esm/features/cat721/mint/cat721ClosedMinter.js.map +1 -1
- package/dist/esm/features/cat721/mint/cat721OpenMinter.js +13 -5
- package/dist/esm/features/cat721/mint/cat721OpenMinter.js.map +1 -1
- package/dist/esm/features/cat721/send/singleSend.js +6 -7
- package/dist/esm/features/cat721/send/singleSend.js.map +1 -1
- package/dist/esm/lib/cat721OPenMinterMerkleTreeData.js +2 -4
- package/dist/esm/lib/cat721OPenMinterMerkleTreeData.js.map +1 -1
- package/dist/esm/lib/metadata.js.map +1 -1
- package/dist/esm/utils/contractPeripheral.js +52 -49
- package/dist/esm/utils/contractPeripheral.js.map +1 -1
- package/dist/esm/utils/index.js +4 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/types/contracts/cat20/cat20.d.ts +2 -2
- package/dist/types/contracts/cat20/cat20.d.ts.map +1 -1
- package/dist/types/contracts/cat20/cat20GuardStateLib.d.ts +6 -0
- package/dist/types/contracts/cat20/cat20GuardStateLib.d.ts.map +1 -1
- package/dist/types/contracts/cat20/cat20GuardVariants.d.ts +20 -0
- package/dist/types/contracts/cat20/cat20GuardVariants.d.ts.map +1 -0
- package/dist/types/contracts/cat20/cat20Guard_12_12_2.d.ts +2 -10
- package/dist/types/contracts/cat20/cat20Guard_12_12_2.d.ts.map +1 -1
- package/dist/types/contracts/cat20/cat20Guard_12_12_4.d.ts +2 -10
- package/dist/types/contracts/cat20/cat20Guard_12_12_4.d.ts.map +1 -1
- package/dist/types/contracts/cat20/cat20Guard_6_6_2.d.ts +2 -10
- package/dist/types/contracts/cat20/cat20Guard_6_6_2.d.ts.map +1 -1
- package/dist/types/contracts/cat20/cat20Guard_6_6_4.d.ts +2 -10
- package/dist/types/contracts/cat20/cat20Guard_6_6_4.d.ts.map +1 -1
- package/dist/types/contracts/cat20/minters/cat20ClosedMinter.d.ts.map +1 -1
- package/dist/types/contracts/cat20/minters/cat20OpenMinter.d.ts +1 -3
- package/dist/types/contracts/cat20/minters/cat20OpenMinter.d.ts.map +1 -1
- package/dist/types/contracts/cat20/types.d.ts +5 -6
- package/dist/types/contracts/cat20/types.d.ts.map +1 -1
- package/dist/types/contracts/cat721/cat721.d.ts +2 -2
- package/dist/types/contracts/cat721/cat721.d.ts.map +1 -1
- package/dist/types/contracts/cat721/cat721GuardStateLib.d.ts.map +1 -1
- package/dist/types/contracts/cat721/cat721GuardVariants.d.ts +20 -0
- package/dist/types/contracts/cat721/cat721GuardVariants.d.ts.map +1 -0
- package/dist/types/contracts/cat721/cat721Guard_12_12_2.d.ts +1 -9
- package/dist/types/contracts/cat721/cat721Guard_12_12_2.d.ts.map +1 -1
- package/dist/types/contracts/cat721/cat721Guard_12_12_4.d.ts +1 -9
- package/dist/types/contracts/cat721/cat721Guard_12_12_4.d.ts.map +1 -1
- package/dist/types/contracts/cat721/cat721Guard_6_6_2.d.ts +1 -9
- package/dist/types/contracts/cat721/cat721Guard_6_6_2.d.ts.map +1 -1
- package/dist/types/contracts/cat721/cat721Guard_6_6_4.d.ts +1 -9
- package/dist/types/contracts/cat721/cat721Guard_6_6_4.d.ts.map +1 -1
- package/dist/types/contracts/cat721/minters/cat721ClosedMinter.d.ts +0 -1
- package/dist/types/contracts/cat721/minters/cat721ClosedMinter.d.ts.map +1 -1
- package/dist/types/contracts/cat721/minters/cat721OpenMinter.d.ts +0 -1
- package/dist/types/contracts/cat721/minters/cat721OpenMinter.d.ts.map +1 -1
- package/dist/types/contracts/cat721/minters/cat721OpenMinterMerkleTree.d.ts.map +1 -1
- package/dist/types/contracts/cat721/types.d.ts +23 -8
- package/dist/types/contracts/cat721/types.d.ts.map +1 -1
- package/dist/types/contracts/constants.d.ts +20 -0
- package/dist/types/contracts/constants.d.ts.map +1 -1
- package/dist/types/contracts/index.d.ts +2 -1
- package/dist/types/contracts/index.d.ts.map +1 -1
- package/dist/types/contracts/types.d.ts +0 -3
- package/dist/types/contracts/types.d.ts.map +1 -1
- package/dist/types/contracts/utils/ownerUtils.d.ts +0 -1
- package/dist/types/contracts/utils/ownerUtils.d.ts.map +1 -1
- package/dist/types/features/cat20/admin/burnByAdmin.d.ts +0 -1
- package/dist/types/features/cat20/admin/burnByAdmin.d.ts.map +1 -1
- package/dist/types/features/cat20/burn/burn.d.ts.map +1 -1
- package/dist/types/features/cat20/deploy/closedMinter.d.ts +9 -1
- package/dist/types/features/cat20/deploy/closedMinter.d.ts.map +1 -1
- package/dist/types/features/cat20/deploy/openMinter.d.ts.map +1 -1
- package/dist/types/features/cat20/index.d.ts +0 -1
- package/dist/types/features/cat20/index.d.ts.map +1 -1
- package/dist/types/features/cat20/mint/closedMinter.d.ts.map +1 -1
- package/dist/types/features/cat20/send/contractSend.d.ts.map +1 -1
- package/dist/types/features/cat20/send/singleSend.d.ts +5 -1
- package/dist/types/features/cat20/send/singleSend.d.ts.map +1 -1
- package/dist/types/features/cat721/burn/burn.d.ts.map +1 -1
- package/dist/types/features/cat721/index.d.ts +0 -1
- package/dist/types/features/cat721/index.d.ts.map +1 -1
- package/dist/types/features/cat721/mint/cat721ClosedMinter.d.ts.map +1 -1
- package/dist/types/features/cat721/mint/cat721OpenMinter.d.ts.map +1 -1
- package/dist/types/features/cat721/send/singleSend.d.ts.map +1 -1
- package/dist/types/lib/cat721OPenMinterMerkleTreeData.d.ts.map +1 -1
- package/dist/types/lib/metadata.d.ts +2 -0
- package/dist/types/lib/metadata.d.ts.map +1 -1
- package/dist/types/utils/contractPeripheral.d.ts +15 -7
- package/dist/types/utils/contractPeripheral.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +5 -5
- package/scrypt.index.json +25 -20
- package/artifacts/.templates/utils/safeMath.scrypt.map +0 -1
- package/artifacts/.templates/utils/safeMath.scrypt.tpl +0 -11
- package/artifacts/.templates/utils/safeMath.transformer.json +0 -7
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stateUtils.scrypt +0 -9
- package/artifacts/utils/safeMath.json +0 -233
- package/artifacts/utils/safeMath.scrypt +0 -13
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stateUtils.scrypt +0 -9
- package/dist/artifacts/utils/safeMath.json +0 -233
- package/dist/artifacts/utils/safeMath.scrypt +0 -13
- package/dist/cjs/contracts/utils/safeMath.js +0 -34
- package/dist/cjs/contracts/utils/safeMath.js.map +0 -1
- package/dist/cjs/features/cat20/guard/destroyGuard.js +0 -49
- package/dist/cjs/features/cat20/guard/destroyGuard.js.map +0 -1
- package/dist/cjs/features/cat721/guard/destroyGuard.js +0 -49
- package/dist/cjs/features/cat721/guard/destroyGuard.js.map +0 -1
- package/dist/esm/contracts/utils/safeMath.js +0 -30
- package/dist/esm/contracts/utils/safeMath.js.map +0 -1
- package/dist/esm/features/cat20/guard/destroyGuard.js +0 -46
- package/dist/esm/features/cat20/guard/destroyGuard.js.map +0 -1
- package/dist/esm/features/cat721/guard/destroyGuard.js +0 -46
- package/dist/esm/features/cat721/guard/destroyGuard.js.map +0 -1
- package/dist/types/contracts/utils/safeMath.d.ts +0 -11
- package/dist/types/contracts/utils/safeMath.d.ts.map +0 -1
- package/dist/types/features/cat20/guard/destroyGuard.d.ts +0 -21
- package/dist/types/features/cat20/guard/destroyGuard.d.ts.map +0 -1
- package/dist/types/features/cat721/guard/destroyGuard.d.ts +0 -21
- package/dist/types/features/cat721/guard/destroyGuard.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
[[],[],[],[],[],[],[],[],[],[],[],[],[[9,0,
|
|
1
|
+
[[],[],[],[],[],[],[],[],[],[],[],[],[[9,0,35,13]],[[2,0,37,2],[9,0,37,9],[15,0,37,44],[21,0,37,44],[25,0,37,18],[53,0,38,4],[71,0,38,23],[95,0,39,4],[113,0,39,23],[137,0,40,4],[155,0,40,23],[181,0,41,4],[199,0,41,23]],[[2,0,45,20],[8,0,45,2]],[[2,0,48,12],[7,0,48,2]],[[2,0,51,19],[8,0,51,2]],[[2,0,53,2],[14,0,54,22],[20,0,54,4],[38,0,55,14],[43,0,55,4],[53,0,56,21],[59,0,56,4]],[[4,0,59,4],[8,0,59,9],[26,0,59,4],[28,0,59,28]],[[4,0,60,4],[8,0,60,9],[18,0,60,4],[20,0,60,20]],[[4,0,61,4],[8,0,61,9],[25,0,61,4],[27,0,61,27]],[[4,0,63,4],[7,0,63,8]],[[8,0,64,6],[16,0,65,8],[20,0,65,12],[37,0,65,8],[40,0,65,32]],[],[[8,0,69,6],[16,0,70,8],[32,0,70,8],[35,0,70,40]],[],[],[[2,0,77,2],[18,0,77,9],[25,0,78,16],[49,0,78,4],[61,0,80,16],[82,0,80,4],[94,0,81,21],[98,0,81,4],[115,0,83,19],[129,0,83,4]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[31,0,85,27],[46,0,85,42],[50,0,85,47]],[[4,0,88,4],[8,0,88,9],[20,0,89,6],[107,0,92,6]],[[4,0,97,4],[12,0,98,6],[22,0,98,17],[33,0,98,6],[36,0,98,30],[38,0,98,6],[41,0,98,55],[51,0,98,66],[62,0,98,55],[65,0,98,79]],[[4,0,102,26],[10,0,102,8],[28,0,102,39]],[[4,0,105,4],[7,0,105,8],[17,0,105,19],[28,0,105,8],[31,0,105,32],[33,0,105,8],[36,0,105,61],[46,0,105,72],[57,0,105,61],[60,0,105,85]],[[8,0,106,6],[16,0,107,8],[26,0,107,19],[49,0,107,8],[52,0,107,44]],[[8,0,111,6],[16,0,112,8],[26,0,112,19],[49,0,112,8]],[[8,0,116,6],[16,0,117,8],[26,0,117,19],[49,0,117,8]],[[8,0,121,6],[16,0,122,8],[26,0,122,19],[49,0,122,8],[52,0,122,44]],[[8,0,125,6],[24,0,125,6],[26,0,125,24],[38,0,125,37],[89,0,127,8],[99,0,127,19]],[],[[4,0,130,4],[7,0,130,8],[17,0,130,19],[28,0,130,8],[31,0,130,32]],[[8,0,133,6],[18,0,133,17],[34,0,133,32],[44,0,133,43],[78,0,133,66]],[[8,0,134,6],[16,0,134,13],[17,0,134,27],[27,0,134,38],[40,0,134,27],[50,0,134,38],[127,0,134,18],[135,0,134,13],[136,0,134,27],[146,0,134,38],[156,0,134,47],[166,0,134,58],[177,0,134,13]],[[13,0,135,11],[16,0,135,15],[26,0,135,26],[37,0,135,15],[40,0,135,39]],[[8,0,138,6],[37,0,138,24],[48,0,138,13],[51,0,138,37]],[],[[8,0,141,6],[16,0,141,13],[20,0,141,18]],[[8,0,142,6],[16,0,142,13],[32,0,142,13],[35,0,142,32],[39,0,142,37]],[],[],[],[[11,0,147,2],[22,0,148,16],[43,0,148,4],[55,0,149,23],[61,0,149,4],[80,0,150,26],[84,0,150,4],[106,0,151,24],[110,0,151,4],[130,0,152,23],[136,0,152,4],[155,0,153,26],[161,0,153,4]],[[4,0,156,28],[10,0,156,10],[28,0,156,28],[40,0,156,41],[60,0,156,60],[79,0,156,79]],[[4,0,157,4],[12,0,158,6],[28,0,158,6],[31,0,158,25],[36,0,158,31],[62,0,158,56],[65,0,158,6],[68,0,158,62],[84,0,158,62],[87,0,158,81],[92,0,158,87],[118,0,158,112],[121,0,158,6],[124,0,159,6],[140,0,159,6],[143,0,159,25],[148,0,159,31],[174,0,159,56],[177,0,158,6],[180,0,159,62],[196,0,159,62],[199,0,159,81],[204,0,159,87],[230,0,159,112]],[[4,0,162,4],[12,0,162,11],[24,0,162,24],[42,0,162,41],[64,0,162,63],[84,0,162,11],[87,0,162,86],[105,0,162,105],[116,0,162,115]],[[4,0,166,29],[8,0,166,10],[27,0,166,29],[34,0,166,51],[44,0,166,62],[64,0,166,82],[87,0,166,104],[108,0,166,104],[110,0,166,127]],[[4,0,167,4],[12,0,168,6],[22,0,168,17],[41,0,168,35],[42,0,168,42],[61,0,168,6],[64,0,169,8]],[],[],[],[],[],[],[],[],[]]
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import "./types.scrypt.tpl";
|
|
2
|
+
import "./cat20GuardVariants.scrypt.tpl";
|
|
2
3
|
import "../types.scrypt.tpl";
|
|
3
4
|
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/types/structs.scrypt.tpl";
|
|
4
5
|
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/contextUtils.scrypt.tpl";
|
|
@@ -7,48 +8,53 @@ import "./cat20GuardStateLib.scrypt.tpl";
|
|
|
7
8
|
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/stdUtils.scrypt.tpl";
|
|
8
9
|
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/txUtils.scrypt.tpl";
|
|
9
10
|
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/backtrace.scrypt.tpl";
|
|
10
|
-
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/stateUtils.scrypt.tpl";
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
contract CAT20 {
|
|
14
|
+
static const Sha256[4] guardVariantScriptHashes = [CAT20GuardVariants.CANONICAL_GUARD_6_6_2, CAT20GuardVariants.CANONICAL_GUARD_6_6_4, CAT20GuardVariants.CANONICAL_GUARD_12_12_2, CAT20GuardVariants.CANONICAL_GUARD_12_12_4];
|
|
14
15
|
bytes minterScriptHash;
|
|
15
|
-
Sha256[4] guardVariantScriptHashes;
|
|
16
16
|
bool hasAdmin;
|
|
17
17
|
bytes adminScriptHash;
|
|
18
|
-
constructor(bytes minterScriptHash,
|
|
18
|
+
constructor(bytes minterScriptHash, bool hasAdmin, bytes adminScriptHash) {
|
|
19
19
|
this.minterScriptHash = minterScriptHash;
|
|
20
|
-
this.guardVariantScriptHashes = guardVariantScriptHashes;
|
|
21
20
|
this.hasAdmin = hasAdmin;
|
|
22
21
|
this.adminScriptHash = adminScriptHash;
|
|
22
|
+
if(hasAdmin) {
|
|
23
|
+
require(len(adminScriptHash) == 32);
|
|
24
|
+
} else {
|
|
25
|
+
require(adminScriptHash == b'');
|
|
26
|
+
}
|
|
23
27
|
}
|
|
24
|
-
public function unlock(CAT20ContractUnlockArgs unlockArgs, CAT20GuardConstState guardState, int guardInputIndex, BacktraceInfo backtraceInfo, SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, CAT20State __scrypt_ts_curState, bytes
|
|
25
|
-
require(
|
|
28
|
+
public function unlock(CAT20ContractUnlockArgs unlockArgs, CAT20GuardConstState guardState, int guardInputIndex, BacktraceInfo backtraceInfo, SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, CAT20State __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes, TxHashPreimage __scrypt_ts_prevTxHashPreimage) {
|
|
29
|
+
require(__scrypt_ts_shPreimage.sigHashType == 1);
|
|
30
|
+
require(__scrypt_ts_preimageSig[len(__scrypt_ts_preimageSig) - 1 : ] == num2bin(__scrypt_ts_shPreimage.sigHashType, 2)[0 : 1] && num2bin(__scrypt_ts_shPreimage.sigHashType, 2)[1 : ] == b'00' && checkDataSig(Sig(__scrypt_ts_preimageSig[0 : len(__scrypt_ts_preimageSig) - 1]), sha256(ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage)), ContextUtils.pubKey) && checkSig(__scrypt_ts_preimageSig, ContextUtils.pubKey));
|
|
26
31
|
|
|
27
32
|
int __scrypt_ts_inputCount = ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
|
|
28
33
|
|
|
29
|
-
Outpoint __scrypt_ts_prevout = ContextUtils.checkPrevouts(__scrypt_ts_prevouts, __scrypt_ts_shPreimage.hashPrevouts, __scrypt_ts_shPreimage.inputIndex, __scrypt_ts_inputCount);
|
|
30
|
-
|
|
31
34
|
ContextUtils.checkSpentScripts(__scrypt_ts_spentScriptHashes, __scrypt_ts_shPreimage.hashSpentScriptHashes, __scrypt_ts_inputCount);
|
|
32
35
|
|
|
33
36
|
ContextUtils.checkSpentDataHashes(__scrypt_ts_spentDataHashes, __scrypt_ts_shPreimage.hashSpentDataHashes, __scrypt_ts_inputCount);
|
|
34
37
|
|
|
35
38
|
CAT20State __scrypt_ts_nextState = __scrypt_ts_curState;
|
|
36
39
|
|
|
37
|
-
|
|
40
|
+
require(__scrypt_ts_shPreimage.spentDataHash == CAT20.stateHash(__scrypt_ts_curState));
|
|
38
41
|
|
|
39
|
-
Backtrace.checkPrevTxHashPreimage(__scrypt_ts_prevTxHashPreimage,
|
|
42
|
+
Backtrace.checkPrevTxHashPreimage(__scrypt_ts_prevTxHashPreimage, __scrypt_ts_shPreimage.outpoint);
|
|
40
43
|
|
|
41
|
-
Backtrace.verifyFromScript(backtraceInfo, this.minterScriptHash,
|
|
44
|
+
Backtrace.verifyFromScript(backtraceInfo, this.minterScriptHash, __scrypt_ts_shPreimage.spentScriptHash, __scrypt_ts_prevTxHashPreimage.inputList);
|
|
42
45
|
this.checkGuard(guardState, __scrypt_ts_shPreimage.spentScriptHash, __scrypt_ts_shPreimage.inputIndex, guardInputIndex, __scrypt_ts_spentScriptHashes, __scrypt_ts_spentDataHashes);
|
|
43
46
|
require(unlockArgs.spendType >= 0 && unlockArgs.spendType <= 2);
|
|
44
47
|
bytes spentScriptHash = b'';
|
|
45
|
-
if(unlockArgs.
|
|
48
|
+
if(unlockArgs.spendType == 1 || unlockArgs.spendType == 2) {
|
|
49
|
+
require(unlockArgs.spendScriptInputIndex >= 0);
|
|
46
50
|
require(unlockArgs.spendScriptInputIndex < __scrypt_ts_inputCount);
|
|
51
|
+
require(unlockArgs.spendScriptInputIndex != __scrypt_ts_shPreimage.inputIndex);
|
|
52
|
+
require(unlockArgs.spendScriptInputIndex != guardInputIndex);
|
|
47
53
|
spentScriptHash = ContextUtils.getSpentScriptHash(__scrypt_ts_spentScriptHashes, unlockArgs.spendScriptInputIndex);
|
|
48
54
|
}
|
|
49
55
|
if(unlockArgs.spendType == 0) {
|
|
50
56
|
OwnerUtils.checkUserOwner(unlockArgs.userPubKey, __scrypt_ts_nextState.ownerAddr);
|
|
51
|
-
require(checkSig(unlockArgs.userSig, unlockArgs.userPubKey));
|
|
57
|
+
require((unlockArgs.userSig[len(unlockArgs.userSig) - 1 : ] == num2bin(1, 2)[0 : 1] && num2bin(1, 2)[1 : ] == b'00' && checkSig(unlockArgs.userSig, unlockArgs.userPubKey)));
|
|
52
58
|
} else if(unlockArgs.spendType == 1) {
|
|
53
59
|
require(__scrypt_ts_nextState.ownerAddr == spentScriptHash);
|
|
54
60
|
} else {
|
|
@@ -59,7 +65,7 @@ contract CAT20 {
|
|
|
59
65
|
}
|
|
60
66
|
function checkGuard(CAT20GuardConstState guardState, bytes t_cat20ScriptHash, int t_cat20InputIndexVal, int guardInputIndexVal, bytes t_spentScriptsCtx, bytes t_spentDataHashesCtx) : bool {
|
|
61
67
|
bytes guardScriptHash = ContextUtils.getSpentScriptHash(t_spentScriptsCtx, guardInputIndexVal);
|
|
62
|
-
require(guardScriptHash ==
|
|
68
|
+
require(guardScriptHash == CAT20.guardVariantScriptHashes[0] || guardScriptHash == CAT20.guardVariantScriptHashes[1] || guardScriptHash == CAT20.guardVariantScriptHashes[2] || guardScriptHash == CAT20.guardVariantScriptHashes[3]);
|
|
63
69
|
require(ContextUtils.getSpentDataHash(t_spentDataHashesCtx, guardInputIndexVal) == CAT20GuardStateLib.stateHash(guardState));
|
|
64
70
|
int tokenScriptIndex = unpack(guardState.tokenScriptIndexes[t_cat20InputIndexVal : t_cat20InputIndexVal + 1]);
|
|
65
71
|
require(guardState.tokenScriptHashes[(tokenScriptIndex)] == t_cat20ScriptHash);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[[],[],[],[],[],[],[],[],[],[
|
|
1
|
+
[[],[],[],[],[],[],[],[],[],[[9,0,18,13]],[[2,0,20,19],[8,0,20,2]],[[2,0,22,2],[14,0,22,31],[20,0,22,14]],[[4,0,24,4],[8,0,24,9],[25,0,24,4],[27,0,24,27]],[],[[2,0,28,2],[18,0,28,9],[40,0,30,17],[47,0,30,4],[60,0,31,14],[64,0,31,4],[74,0,33,19],[88,0,33,4]],[],[],[],[],[],[],[],[],[],[],[],[[4,0,36,28],[10,0,36,10]],[[33,0,37,29],[81,0,37,44],[85,0,37,49]],[[4,0,40,4],[14,0,40,15],[30,0,40,30],[64,0,40,54]],[[4,0,41,4],[12,0,41,11],[13,0,41,25],[26,0,41,25],[103,0,41,16],[111,0,41,11],[112,0,41,25],[122,0,41,35],[133,0,41,11]],[[4,0,44,24],[10,0,44,10],[24,0,44,24],[31,0,44,32],[48,0,45,6]],[[4,0,51,4],[20,0,51,29],[32,0,51,29]],[],[],[[2,0,55,2],[18,0,55,9],[36,0,57,17],[43,0,57,4],[56,0,58,14],[60,0,58,4],[70,0,59,19],[80,0,59,4],[95,0,61,19],[109,0,61,4]],[],[],[],[],[],[],[],[],[],[],[],[[4,0,64,28],[10,0,64,10]],[[33,0,65,29],[81,0,65,44],[85,0,65,49]],[[4,0,67,4],[14,0,67,15],[30,0,67,30],[64,0,67,54]],[[4,0,68,4],[12,0,68,11],[13,0,68,25],[26,0,68,25],[103,0,68,16],[111,0,68,11],[112,0,68,25],[122,0,68,35],[133,0,68,11]],[[25,0,71,15],[39,0,71,4],[41,0,72,6],[51,0,72,17],[78,0,72,43]],[[4,0,74,24],[10,0,74,10],[24,0,74,24],[31,0,74,32],[48,0,75,6],[95,0,77,6],[105,0,77,17]],[[4,0,80,4],[20,0,80,29],[32,0,80,29]],[],[],[],[],[],[],[],[],[]]
|
|
@@ -5,7 +5,6 @@ import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-lib
|
|
|
5
5
|
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/stdUtils.scrypt.tpl";
|
|
6
6
|
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/backtrace.scrypt.tpl";
|
|
7
7
|
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/contextUtils.scrypt.tpl";
|
|
8
|
-
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/stateUtils.scrypt.tpl";
|
|
9
8
|
|
|
10
9
|
|
|
11
10
|
contract CAT20Admin {
|
|
@@ -13,52 +12,42 @@ contract CAT20Admin {
|
|
|
13
12
|
constructor(bytes genesisOutpoint) {
|
|
14
13
|
this.genesisOutpoint = genesisOutpoint;
|
|
15
14
|
}
|
|
16
|
-
public function authorizeToSpendToken(PubKey adminPubKey, Sig adminSig, BacktraceInfo backtraceInfo, SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, ChangeInfo __scrypt_ts_changeInfo, CAT20AdminState __scrypt_ts_curState,
|
|
17
|
-
require(
|
|
15
|
+
public function authorizeToSpendToken(PubKey adminPubKey, Sig adminSig, BacktraceInfo backtraceInfo, SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, ChangeInfo __scrypt_ts_changeInfo, CAT20AdminState __scrypt_ts_curState, TxHashPreimage __scrypt_ts_prevTxHashPreimage) {
|
|
16
|
+
require(__scrypt_ts_shPreimage.sigHashType == 1);
|
|
17
|
+
require(__scrypt_ts_preimageSig[len(__scrypt_ts_preimageSig) - 1 : ] == num2bin(__scrypt_ts_shPreimage.sigHashType, 2)[0 : 1] && num2bin(__scrypt_ts_shPreimage.sigHashType, 2)[1 : ] == b'00' && checkDataSig(Sig(__scrypt_ts_preimageSig[0 : len(__scrypt_ts_preimageSig) - 1]), sha256(ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage)), ContextUtils.pubKey) && checkSig(__scrypt_ts_preimageSig, ContextUtils.pubKey));
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
Outpoint __scrypt_ts_prevout = ContextUtils.checkPrevouts(__scrypt_ts_prevouts, __scrypt_ts_shPreimage.hashPrevouts, __scrypt_ts_shPreimage.inputIndex, __scrypt_ts_inputCount);
|
|
22
|
-
|
|
23
|
-
ContextUtils.checkSpentScripts(__scrypt_ts_spentScriptHashes, __scrypt_ts_shPreimage.hashSpentScriptHashes, __scrypt_ts_inputCount);
|
|
24
|
-
|
|
25
|
-
ContextUtils.checkSpentDataHashes(__scrypt_ts_spentDataHashes, __scrypt_ts_shPreimage.hashSpentDataHashes, __scrypt_ts_inputCount);
|
|
19
|
+
Outpoint __scrypt_ts_prevout = ContextUtils.getOutpoint(__scrypt_ts_shPreimage);
|
|
26
20
|
|
|
27
21
|
CAT20AdminState __scrypt_ts_nextState = __scrypt_ts_curState;
|
|
28
22
|
|
|
29
|
-
|
|
23
|
+
require(__scrypt_ts_shPreimage.spentDataHash == CAT20Admin.stateHash(__scrypt_ts_curState));
|
|
30
24
|
|
|
31
|
-
Backtrace.checkPrevTxHashPreimage(__scrypt_ts_prevTxHashPreimage,
|
|
25
|
+
Backtrace.checkPrevTxHashPreimage(__scrypt_ts_prevTxHashPreimage, __scrypt_ts_shPreimage.outpoint);
|
|
32
26
|
|
|
33
27
|
bytes adminScriptHash = __scrypt_ts_shPreimage.spentScriptHash;
|
|
34
|
-
Backtrace.verifyFromOutpoint(backtraceInfo, this.genesisOutpoint,
|
|
28
|
+
Backtrace.verifyFromOutpoint(backtraceInfo, __scrypt_ts_prevout.outputIndex, this.genesisOutpoint, __scrypt_ts_shPreimage.spentScriptHash, __scrypt_ts_prevTxHashPreimage.inputList);
|
|
35
29
|
OwnerUtils.checkUserOwner(adminPubKey, __scrypt_ts_nextState.adminAddress);
|
|
36
|
-
require(checkSig(adminSig, adminPubKey));
|
|
30
|
+
require((adminSig[len(adminSig) - 1 : ] == num2bin(1, 2)[0 : 1] && num2bin(1, 2)[1 : ] == b'00' && checkSig(adminSig, adminPubKey)));
|
|
37
31
|
bytes adminOutput = TxUtils.buildDataOutput(adminScriptHash, __scrypt_ts_shPreimage.value, __scrypt_ts_shPreimage.spentDataHash);
|
|
38
32
|
require(hash256(adminOutput +
|
|
39
33
|
(__scrypt_ts_changeInfo.satoshis > 0 ? TxUtils.buildDataOutput(sha256(TxUtils.buildP2PKHScript(__scrypt_ts_changeInfo.pubkeyhash)), __scrypt_ts_changeInfo.satoshis, __scrypt_ts_changeInfo.dataHash) : b'')) == __scrypt_ts_shPreimage.hashOutputs);
|
|
40
34
|
}
|
|
41
|
-
public function transferOwnership(PubKey adminPubKey, Sig adminSig, Ripemd160 newPubKeyHash, BacktraceInfo backtraceInfo, SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, ChangeInfo __scrypt_ts_changeInfo, CAT20AdminState __scrypt_ts_curState,
|
|
42
|
-
require(
|
|
43
|
-
|
|
44
|
-
int __scrypt_ts_inputCount = ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
|
|
45
|
-
|
|
46
|
-
Outpoint __scrypt_ts_prevout = ContextUtils.checkPrevouts(__scrypt_ts_prevouts, __scrypt_ts_shPreimage.hashPrevouts, __scrypt_ts_shPreimage.inputIndex, __scrypt_ts_inputCount);
|
|
47
|
-
|
|
48
|
-
ContextUtils.checkSpentScripts(__scrypt_ts_spentScriptHashes, __scrypt_ts_shPreimage.hashSpentScriptHashes, __scrypt_ts_inputCount);
|
|
35
|
+
public function transferOwnership(PubKey adminPubKey, Sig adminSig, Ripemd160 newPubKeyHash, BacktraceInfo backtraceInfo, SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, ChangeInfo __scrypt_ts_changeInfo, CAT20AdminState __scrypt_ts_curState, TxHashPreimage __scrypt_ts_prevTxHashPreimage) {
|
|
36
|
+
require(__scrypt_ts_shPreimage.sigHashType == 1);
|
|
37
|
+
require(__scrypt_ts_preimageSig[len(__scrypt_ts_preimageSig) - 1 : ] == num2bin(__scrypt_ts_shPreimage.sigHashType, 2)[0 : 1] && num2bin(__scrypt_ts_shPreimage.sigHashType, 2)[1 : ] == b'00' && checkDataSig(Sig(__scrypt_ts_preimageSig[0 : len(__scrypt_ts_preimageSig) - 1]), sha256(ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage)), ContextUtils.pubKey) && checkSig(__scrypt_ts_preimageSig, ContextUtils.pubKey));
|
|
49
38
|
|
|
50
|
-
ContextUtils.
|
|
39
|
+
Outpoint __scrypt_ts_prevout = ContextUtils.getOutpoint(__scrypt_ts_shPreimage);
|
|
51
40
|
|
|
52
41
|
CAT20AdminState __scrypt_ts_nextState = __scrypt_ts_curState;
|
|
53
42
|
|
|
54
|
-
|
|
43
|
+
require(__scrypt_ts_shPreimage.spentDataHash == CAT20Admin.stateHash(__scrypt_ts_curState));
|
|
55
44
|
|
|
56
|
-
Backtrace.checkPrevTxHashPreimage(__scrypt_ts_prevTxHashPreimage,
|
|
45
|
+
Backtrace.checkPrevTxHashPreimage(__scrypt_ts_prevTxHashPreimage, __scrypt_ts_shPreimage.outpoint);
|
|
57
46
|
|
|
58
47
|
bytes adminScriptHash = __scrypt_ts_shPreimage.spentScriptHash;
|
|
59
|
-
Backtrace.verifyFromOutpoint(backtraceInfo, this.genesisOutpoint,
|
|
48
|
+
Backtrace.verifyFromOutpoint(backtraceInfo, __scrypt_ts_prevout.outputIndex, this.genesisOutpoint, __scrypt_ts_shPreimage.spentScriptHash, __scrypt_ts_prevTxHashPreimage.inputList);
|
|
60
49
|
OwnerUtils.checkUserOwner(adminPubKey, __scrypt_ts_nextState.adminAddress);
|
|
61
|
-
require(checkSig(adminSig, adminPubKey));
|
|
50
|
+
require((adminSig[len(adminSig) - 1 : ] == num2bin(1, 2)[0 : 1] && num2bin(1, 2)[1 : ] == b'00' && checkSig(adminSig, adminPubKey)));
|
|
62
51
|
__scrypt_ts_nextState.adminAddress = OwnerUtils.pubKeyHashtoLockingScript(newPubKeyHash);
|
|
63
52
|
bytes adminOutput = TxUtils.buildDataOutput(adminScriptHash, __scrypt_ts_shPreimage.value, CAT20Admin.stateHash(__scrypt_ts_nextState));
|
|
64
53
|
require(hash256(adminOutput +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[[],[],[],[],[],[[8,0,10,13]],[[2,0,13,2],[18,0,13,9],[35,0,13,34],[56,0,13,26],[64,0,13,73],[81,0,13,56]],[[4,0,14,4],[22,0,14,23],[45,0,14,45],[51,0,14,52]],[[15,0,16,13]],[[8,0,17,24],[12,0,17,12],[24,0,17,24],[28,0,17,28],[34,0,17,35],[53,0,17,53]],[[8,0,18,6],[16,0,18,13],[26,0,18,13],[29,0,18,26]],[
|
|
1
|
+
[[],[],[],[],[],[[8,0,10,13]],[[2,0,13,2],[18,0,13,9],[35,0,13,34],[56,0,13,26],[64,0,13,73],[81,0,13,56]],[[4,0,14,4],[22,0,14,23],[45,0,14,45],[51,0,14,52]],[[15,0,16,13]],[[8,0,17,24],[12,0,17,12],[24,0,17,24],[28,0,17,28],[34,0,17,35],[53,0,17,53]],[[8,0,18,6],[16,0,18,13],[26,0,18,13],[29,0,18,26]],[],[[4,0,21,4],[12,0,21,11],[16,0,21,15],[22,0,21,22],[43,0,21,11],[46,0,21,45],[47,0,21,52]],[[29,0,22,13]],[[8,0,23,26],[12,0,23,12],[26,0,23,26],[33,0,23,48],[39,0,23,55],[59,0,23,75],[60,0,23,82],[65,0,23,86],[66,0,23,93],[68,0,23,93],[70,0,23,97]],[[8,0,24,6],[16,0,24,13],[28,0,24,13],[31,0,24,28],[32,0,24,29],[34,0,24,13],[37,0,24,34],[49,0,24,34],[51,0,24,48]],[],[],[],[[2,0,33,2],[18,0,33,9],[40,0,34,18],[45,0,34,18],[49,0,34,4]],[[4,0,37,4],[12,0,37,11],[25,0,37,24],[28,0,37,11],[31,0,37,30],[44,0,37,43]],[[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]],[],[],[],[],[],[],[],[],[]]
|
|
@@ -9,8 +9,6 @@ library CAT20GuardStateLib {
|
|
|
9
9
|
loop (4) : i {
|
|
10
10
|
int scriptLen = len(_state.tokenScriptHashes[i]);
|
|
11
11
|
require(scriptLen == 32);
|
|
12
|
-
require(_state.tokenAmounts[i] >= 0);
|
|
13
|
-
require(_state.tokenBurnAmounts[i] >= 0);
|
|
14
12
|
}
|
|
15
13
|
require(len(_state.tokenScriptIndexes) == (txInputCountMax));
|
|
16
14
|
loop (txInputCountMax) : i {
|
|
@@ -29,9 +27,9 @@ library CAT20GuardStateLib {
|
|
|
29
27
|
return true;
|
|
30
28
|
}
|
|
31
29
|
static function serializeState(CAT20GuardConstState __scrypt_ts_curState): bytes {
|
|
32
|
-
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(
|
|
30
|
+
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(__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(__scrypt_ts_curState.tokenScriptIndexes));
|
|
33
31
|
}
|
|
34
32
|
static function stateHash(CAT20GuardConstState __scrypt_ts_curState): bytes {
|
|
35
|
-
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(
|
|
33
|
+
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(__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(__scrypt_ts_curState.tokenScriptIndexes)));
|
|
36
34
|
}
|
|
37
35
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[[],[[8,0,20,13]],[[2,0,22,2],[9,0,22,9],[15,0,22,41],[22,0,22,18],[46,0,22,50],[53,0,23,17]],[[2,0,27,2],[9,0,27,9],[15,0,27,41],[22,0,27,18],[46,0,27,50],[53,0,28,17]],[[2,0,32,2],[9,0,32,9],[15,0,32,43],[22,0,32,18],[48,0,32,52],[55,0,33,17]],[[2,0,37,2],[9,0,37,9],[15,0,37,43],[22,0,37,18],[48,0,37,52],[55,0,38,17]],[]]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
|
|
2
|
+
library CAT20GuardVariants {
|
|
3
|
+
static const Sha256 CANONICAL_GUARD_6_6_2 = Sha256(b'601e909c283e225292d842557615ea08baf192d9e0530024d9cecf9eb91ab73c');
|
|
4
|
+
static const Sha256 CANONICAL_GUARD_6_6_4 = Sha256(b'babfe958552a9a6703a7b0cbb04042224ba7baa9fbbbf46103017aeeb81ee6df');
|
|
5
|
+
static const Sha256 CANONICAL_GUARD_12_12_2 = Sha256(b'be2a9bf514987adf49314cdb1fb76aa604fafd798039aaaf2d9b507faf6e9e9f');
|
|
6
|
+
static const Sha256 CANONICAL_GUARD_12_12_4 = Sha256(b'516ac274a191c8e5183cdb883b70b83e07f0358e9eb50c17e38fbd52554be72a');
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[[],[],[],[],[],[],[],[],[],[],[],[
|
|
1
|
+
[[],[],[],[],[],[],[],[],[],[],[],[[9,0,45,13]],[],[[2,0,47,4],[18,0,47,11],[25,0,49,21],[29,0,49,8],[42,0,50,24],[49,0,50,8],[65,0,53,22],[68,0,53,22],[72,0,53,8],[86,0,56,26],[89,0,56,26],[93,0,56,8],[111,0,57,25],[116,0,57,25],[121,0,57,8],[138,0,61,33],[143,0,61,33],[148,0,61,8],[173,0,65,22],[176,0,65,22],[181,0,65,8],[195,0,71,32],[198,0,71,32],[203,0,71,8],[227,0,76,24],[230,0,76,24],[235,0,76,8],[251,0,80,21],[261,0,80,21],[266,0,80,8],[279,0,82,21],[283,0,82,8]],[],[],[],[],[],[],[],[],[],[],[],[],[],[[4,0,85,8],[14,0,85,19],[30,0,85,34],[67,0,85,61]],[[4,0,86,8],[12,0,86,15],[13,0,86,29],[29,0,86,29],[109,0,86,20],[117,0,86,15],[118,0,86,29],[131,0,86,42],[145,0,86,15]],[[4,0,90,8],[22,0,90,27],[63,0,90,56]],[[4,0,93,30],[8,0,93,12],[26,0,93,30]],[[4,0,94,39],[9,0,94,39],[13,0,94,14],[40,0,98,16],[52,0,98,29],[87,0,99,16],[99,0,99,29],[134,0,100,16],[146,0,100,29],[181,0,101,16],[193,0,101,29]],[[15,0,103,17]],[[8,0,104,12],[16,0,104,19],[29,0,104,32],[30,0,104,39],[34,0,104,19],[37,0,104,46]],[[8,0,105,12],[16,0,105,19],[33,0,105,36],[34,0,105,43],[38,0,105,19],[41,0,105,50]],[[8,0,106,12],[11,0,106,16],[13,0,106,16],[16,0,106,21]],[[10,0,107,16],[39,0,107,34],[58,0,107,52],[59,0,107,59],[63,0,107,23],[66,0,107,66],[90,0,107,90],[91,0,107,97]],[[10,0,108,16],[18,0,108,23],[31,0,108,36],[32,0,108,43],[36,0,108,23],[39,0,108,50]],[[10,0,109,16],[18,0,109,23],[35,0,109,40],[36,0,109,47],[40,0,109,23],[43,0,109,54]],[],[],[[15,0,113,17]],[[8,0,114,12],[32,0,114,27],[51,0,114,45],[54,0,114,16],[57,0,114,51],[81,0,114,75]],[[10,0,115,16],[25,0,115,16]],[],[],[[15,0,119,17]],[[8,0,120,12],[11,0,120,16],[13,0,120,16],[15,0,120,20],[16,0,120,27]],[[10,0,121,16],[39,0,121,34],[58,0,121,52],[61,0,121,23],[64,0,121,58],[88,0,121,82]],[[10,0,122,16],[18,0,123,20],[43,0,123,35],[62,0,123,53],[66,0,123,20],[69,0,123,60]],[],[[10,0,126,16],[39,0,126,34],[58,0,126,52],[61,0,126,23],[64,0,126,58],[88,0,126,82]],[],[],[[4,0,129,8],[12,0,129,15],[28,0,129,15],[30,0,129,33]],[[4,0,135,31],[7,0,135,31],[11,0,135,14],[28,0,135,31],[35,0,135,36],[38,0,135,40]],[[4,0,136,34],[8,0,136,12],[30,0,136,34]],[[4,0,137,27],[8,0,137,14]],[[4,0,139,8],[12,0,139,15],[23,0,139,15],[26,0,139,29]],[[16,0,140,17]],[[8,0,141,37],[12,0,141,18],[31,0,141,37],[59,0,141,70],[79,0,141,90],[80,0,141,97],[85,0,141,101],[86,0,141,108],[88,0,141,108],[90,0,141,112]],[[8,0,142,12],[11,0,142,16],[13,0,142,16],[15,0,142,20]],[[10,0,144,16],[18,0,144,23],[35,0,144,23],[38,0,144,43]],[[10,0,145,16],[18,0,145,23],[35,0,145,23],[37,0,145,42]],[[10,0,146,16],[13,0,146,20],[30,0,146,20],[33,0,146,40]],[[12,0,149,24],[18,0,148,26],[57,0,149,35],[76,0,149,53],[77,0,149,60]],[[12,0,150,20],[20,0,150,27],[36,0,150,27],[39,0,150,46],[51,0,150,59],[102,0,150,106],[103,0,150,113]],[[12,0,151,20],[25,0,151,34],[37,0,151,45],[49,0,151,57]],[[12,0,152,20],[20,0,152,27],[32,0,152,40],[79,0,152,83],[80,0,152,90],[84,0,152,27],[87,0,152,97],[100,0,152,111],[111,0,152,121],[123,0,152,133]],[[12,0,153,20],[27,0,153,35],[28,0,153,42],[47,0,153,20],[49,0,153,63],[64,0,153,78],[65,0,153,85],[84,0,153,63],[86,0,153,106],[98,0,153,118],[100,0,153,121]],[[12,0,154,20],[32,0,154,20],[34,0,155,24],[51,0,155,24],[53,0,155,43],[75,0,156,30],[94,0,157,30]],[],[],[[10,0,160,16],[18,0,160,23],[35,0,160,23],[38,0,160,43]],[],[],[[4,0,166,8],[12,0,167,12],[32,0,167,12],[35,0,167,35],[37,0,167,12],[40,0,167,41],[60,0,167,41],[63,0,167,64],[79,0,167,64],[81,0,167,82]],[[4,0,172,8],[12,0,172,15],[24,0,172,15],[27,0,172,30],[29,0,172,15],[32,0,172,36],[44,0,172,36],[47,0,172,51]],[[4,0,173,32],[7,0,173,32],[11,0,173,14],[29,0,173,32],[36,0,173,37],[39,0,173,41]],[[4,0,174,22],[10,0,174,12],[20,0,174,35]],[[16,0,175,17]],[[8,0,176,12],[11,0,176,16],[13,0,176,16],[15,0,176,20]],[[10,0,177,46],[16,0,177,22],[40,0,177,46],[64,0,177,70]],[[10,0,178,45],[14,0,178,22],[37,0,178,45],[60,0,178,68]],[[10,0,180,16],[18,0,180,23],[39,0,180,23],[42,0,180,47]],[[10,0,181,16],[18,0,181,23],[39,0,181,23],[41,0,181,46]],[[10,0,182,16],[13,0,182,20],[34,0,182,20],[37,0,182,44]],[[12,0,185,20],[22,0,185,31],[38,0,185,46]],[[12,0,186,40],[16,0,186,26],[30,0,186,40],[43,0,186,53]],[[12,0,187,20],[20,0,187,27],[32,0,187,27],[34,0,187,41]],[[12,0,189,20],[20,0,189,27],[35,0,189,42],[38,0,189,27],[40,0,189,47]],[[12,0,190,20],[28,0,190,36],[29,0,190,43],[52,0,190,20],[54,0,190,68],[70,0,190,84],[71,0,190,91],[94,0,190,68],[96,0,190,116]],[[12,0,191,43],[18,0,191,26],[35,0,191,43],[48,0,191,57],[59,0,191,67],[60,0,192,35],[83,0,193,32]],[[12,0,195,20],[20,0,195,27],[36,0,195,43],[39,0,195,27],[42,0,195,49]],[[12,0,197,24],[18,0,196,26],[57,0,197,35],[76,0,197,53],[77,0,197,60]],[[12,0,198,20],[20,0,198,20],[23,0,198,31],[30,0,198,39],[47,0,199,24],[64,0,200,24],[79,0,200,39],[83,0,201,24]],[],[[12,0,205,20],[20,0,205,27],[33,0,205,40],[36,0,205,27],[39,0,205,46]],[[23,0,207,29]],[[14,0,208,24],[22,0,208,31],[44,0,208,31],[68,0,208,67],[87,0,208,85]],[],[[12,0,210,20],[20,0,210,20],[23,0,210,31],[30,0,210,39],[47,0,211,24],[70,0,212,24],[85,0,212,39],[89,0,213,24],[105,0,213,40]],[],[],[[10,0,217,16],[18,0,217,23],[22,0,217,27],[46,0,217,51],[50,0,217,23],[53,0,217,58]],[[10,0,218,16],[18,0,218,23],[41,0,218,46],[44,0,218,23],[47,0,218,52]],[[10,0,219,16],[18,0,219,23],[31,0,219,36],[34,0,219,23],[37,0,219,42]],[[10,0,220,16],[18,0,220,23],[34,0,220,39],[37,0,220,23],[40,0,220,58]],[[10,0,221,16],[18,0,221,23],[33,0,221,38],[36,0,221,23],[39,0,221,44]],[],[],[[15,0,226,17]],[[8,0,227,12],[16,0,227,19],[31,0,227,34],[34,0,227,19],[37,0,227,40],[50,0,227,53]],[[8,0,228,12],[16,0,229,16],[31,0,229,31],[34,0,229,16],[37,0,230,16],[53,0,230,32],[56,0,230,16],[58,0,230,37],[75,0,230,54]],[[8,0,233,12],[11,0,233,16],[13,0,233,16],[15,0,233,20],[16,0,233,27]],[[10,0,234,16],[18,0,234,23],[33,0,234,38],[36,0,234,23],[38,0,234,43]],[],[[10,0,236,16],[18,0,236,23],[33,0,236,38],[36,0,236,23],[39,0,236,44]],[[10,0,237,16],[18,0,237,23],[34,0,237,39],[37,0,237,23],[40,0,237,45]],[[10,0,239,16],[18,0,239,23],[31,0,239,36],[34,0,239,23],[37,0,239,42]],[[10,0,240,16],[18,0,240,23],[35,0,240,40],[38,0,240,23],[41,0,240,46]],[],[],[[4,0,245,8],[20,0,245,33]],[],[],[],[],[],[],[],[]]
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import "./types.scrypt.tpl";
|
|
2
|
+
import "../utils/ownerUtils.scrypt.tpl";
|
|
2
3
|
import "./cat20GuardStateLib.scrypt.tpl";
|
|
3
4
|
import "../constants.scrypt.tpl";
|
|
4
5
|
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/contextUtils.scrypt.tpl";
|
|
5
6
|
import "./cat20StateLib.scrypt.tpl";
|
|
6
|
-
import "../utils/safeMath.scrypt.tpl";
|
|
7
7
|
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/txUtils.scrypt.tpl";
|
|
8
|
-
import "../utils/ownerUtils.scrypt.tpl";
|
|
9
8
|
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/stdUtils.scrypt.tpl";
|
|
10
9
|
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/types/structs.scrypt.tpl";
|
|
11
|
-
import "@opcat-labs/scrypt-ts-opcat/assets/.templates/smart-contract/builtin-libs/stateUtils.scrypt.tpl";
|
|
12
10
|
|
|
13
11
|
|
|
14
12
|
contract CAT20Guard_12_12_2 {
|
|
15
13
|
constructor(){}
|
|
16
|
-
public function unlock(bytes[12] nextStateHashes, bytes[12] ownerAddrOrScriptHashes, int[12] outputTokens, int[12] tokenScriptHashIndexes, int[12] outputSatoshis, CAT20State[12] cat20States, int outputCount, SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, CAT20GuardConstState __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes) {
|
|
17
|
-
require(
|
|
14
|
+
public function unlock(Sig deployerSig, PubKey deployerPubKey, int[4] tokenAmounts, int[4] tokenBurnAmounts, bytes[12] nextStateHashes, bytes[12] ownerAddrOrScriptHashes, int[12] outputTokens, int[12] tokenScriptHashIndexes, int[12] outputSatoshis, CAT20State[12] cat20States, int outputCount, SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, CAT20GuardConstState __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes) {
|
|
15
|
+
require(__scrypt_ts_shPreimage.sigHashType == 1);
|
|
16
|
+
require(__scrypt_ts_preimageSig[len(__scrypt_ts_preimageSig) - 1 : ] == num2bin(__scrypt_ts_shPreimage.sigHashType, 2)[0 : 1] && num2bin(__scrypt_ts_shPreimage.sigHashType, 2)[1 : ] == b'00' && checkDataSig(Sig(__scrypt_ts_preimageSig[0 : len(__scrypt_ts_preimageSig) - 1]), sha256(ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage)), ContextUtils.pubKey) && checkSig(__scrypt_ts_preimageSig, ContextUtils.pubKey));
|
|
18
17
|
|
|
19
18
|
int __scrypt_ts_inputCount = ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
|
|
20
19
|
|
|
@@ -24,16 +23,20 @@ contract CAT20Guard_12_12_2 {
|
|
|
24
23
|
|
|
25
24
|
CAT20GuardConstState __scrypt_ts_nextState = __scrypt_ts_curState;
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
require(__scrypt_ts_shPreimage.spentDataHash == CAT20Guard_12_12_2.stateHash(__scrypt_ts_curState));
|
|
28
27
|
|
|
28
|
+
OwnerUtils.checkUserOwner(deployerPubKey, __scrypt_ts_nextState.deployerAddr);
|
|
29
|
+
require((deployerSig[len(deployerSig) - 1 : ] == num2bin(1, 2)[0 : 1] && num2bin(1, 2)[1 : ] == b'00' && checkSig(deployerSig, deployerPubKey)));
|
|
29
30
|
CAT20GuardStateLib.formalCheckState(__scrypt_ts_nextState, 12);
|
|
30
31
|
int inputTokenTypes = 0;
|
|
31
32
|
bytes[4] tokenScriptPlaceholders = [ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FF, ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FE, ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FD, ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FC];
|
|
32
33
|
loop (4) : i {
|
|
34
|
+
require(tokenAmounts[(i)] >= 0);
|
|
35
|
+
require(tokenBurnAmounts[(i)] >= 0);
|
|
33
36
|
if(i >= 2) {
|
|
34
37
|
require(__scrypt_ts_nextState.tokenScriptHashes[(i)] == tokenScriptPlaceholders[(i)]);
|
|
35
|
-
require(
|
|
36
|
-
require(
|
|
38
|
+
require(tokenAmounts[(i)] == 0);
|
|
39
|
+
require(tokenBurnAmounts[(i)] == 0);
|
|
37
40
|
}
|
|
38
41
|
}
|
|
39
42
|
loop (2) : i {
|
|
@@ -53,16 +56,18 @@ contract CAT20Guard_12_12_2 {
|
|
|
53
56
|
int[2] sumInputTokens = repeat(0, 2);
|
|
54
57
|
int tokenScriptIndexMax = -1;
|
|
55
58
|
int inputCount = __scrypt_ts_inputCount;
|
|
59
|
+
require(inputCount <= 12);
|
|
56
60
|
loop (12) : i {
|
|
57
61
|
int tokenScriptIndex = unpack(__scrypt_ts_nextState.tokenScriptIndexes[(i) : (i + 1)]);
|
|
58
62
|
if(i < inputCount) {
|
|
63
|
+
require(tokenScriptIndex >= -1);
|
|
59
64
|
require(tokenScriptIndex < inputTokenTypes);
|
|
60
65
|
if(tokenScriptIndex != -1) {
|
|
61
66
|
bytes tokenScriptHash = __scrypt_ts_nextState.tokenScriptHashes[(tokenScriptIndex)];
|
|
62
67
|
require(tokenScriptHash == ContextUtils.getSpentScriptHash(__scrypt_ts_spentScriptHashes, (i)));
|
|
63
68
|
CAT20StateLib.checkState(cat20States[i]);
|
|
64
69
|
require(ContextUtils.getSpentDataHash(__scrypt_ts_spentDataHashes, (i)) == CAT20StateLib.stateHash(cat20States[i]));
|
|
65
|
-
sumInputTokens[(tokenScriptIndex)] =
|
|
70
|
+
sumInputTokens[(tokenScriptIndex)] = sumInputTokens[(tokenScriptIndex)] + cat20States[i].amount;
|
|
66
71
|
tokenScriptIndexMax = tokenScriptIndex > tokenScriptIndexMax ? tokenScriptIndex : tokenScriptIndexMax;
|
|
67
72
|
}
|
|
68
73
|
} else {
|
|
@@ -76,13 +81,15 @@ contract CAT20Guard_12_12_2 {
|
|
|
76
81
|
loop (12) : i {
|
|
77
82
|
if(i < outputCount) {
|
|
78
83
|
bytes ownerAddrOrScriptHash = ownerAddrOrScriptHashes[i];
|
|
79
|
-
require(len(ownerAddrOrScriptHash) > 0);
|
|
80
84
|
int tokenScriptHashIndex = tokenScriptHashIndexes[i];
|
|
85
|
+
require(tokenScriptHashIndex >= -1);
|
|
81
86
|
require(tokenScriptHashIndex < inputTokenTypes);
|
|
82
87
|
if(tokenScriptHashIndex != -1) {
|
|
88
|
+
OwnerUtils.checkOwnerAddr(ownerAddrOrScriptHash);
|
|
83
89
|
int tokenAmount = outputTokens[i];
|
|
84
90
|
require(tokenAmount > 0);
|
|
85
|
-
|
|
91
|
+
require(outputSatoshis[i] > 0);
|
|
92
|
+
sumOutputTokens[(tokenScriptHashIndex)] = sumOutputTokens[(tokenScriptHashIndex)] + tokenAmount;
|
|
86
93
|
bytes tokenStateHash = CAT20StateLib.stateHash({ownerAddrOrScriptHash, tokenAmount});
|
|
87
94
|
require(nextStateHashes[i] == tokenStateHash);
|
|
88
95
|
bytes tokenScriptHash = __scrypt_ts_nextState.tokenScriptHashes[(tokenScriptHashIndex)];
|
|
@@ -103,39 +110,23 @@ contract CAT20Guard_12_12_2 {
|
|
|
103
110
|
}
|
|
104
111
|
}
|
|
105
112
|
loop (2) : i {
|
|
106
|
-
require(sumInputTokens[i] ==
|
|
107
|
-
require(sumInputTokens[i] ==
|
|
113
|
+
require(sumInputTokens[i] == tokenAmounts[i]);
|
|
114
|
+
require(sumInputTokens[i] == sumOutputTokens[i] + tokenBurnAmounts[i]);
|
|
108
115
|
if(i < (inputTokenTypes)) {
|
|
109
116
|
require(sumInputTokens[i] > 0);
|
|
110
117
|
} else {
|
|
111
118
|
require(sumInputTokens[i] == 0);
|
|
112
119
|
require(sumOutputTokens[i] == 0);
|
|
113
|
-
require(
|
|
114
|
-
require(
|
|
120
|
+
require(tokenAmounts[i] == 0);
|
|
121
|
+
require(tokenBurnAmounts[i] == 0);
|
|
115
122
|
}
|
|
116
123
|
}
|
|
117
124
|
require(hash256(outputs) == __scrypt_ts_shPreimage.hashOutputs);
|
|
118
125
|
}
|
|
119
|
-
public function destroy(Sig userSig, PubKey userPubKey, SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, ChangeInfo __scrypt_ts_changeInfo, CAT20GuardConstState __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes) {
|
|
120
|
-
require(checkDataSig(Sig(__scrypt_ts_preimageSig[0 : len(__scrypt_ts_preimageSig) - 1]), sha256(ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage)), ContextUtils.pubKey) && checkSig(__scrypt_ts_preimageSig, ContextUtils.pubKey));
|
|
121
|
-
|
|
122
|
-
int __scrypt_ts_inputCount = ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
|
|
123
|
-
|
|
124
|
-
ContextUtils.checkSpentDataHashes(__scrypt_ts_spentDataHashes, __scrypt_ts_shPreimage.hashSpentDataHashes, __scrypt_ts_inputCount);
|
|
125
|
-
|
|
126
|
-
CAT20GuardConstState __scrypt_ts_nextState = __scrypt_ts_curState;
|
|
127
|
-
|
|
128
|
-
StateUtils.checkInputState(__scrypt_ts_shPreimage.inputIndex, CAT20Guard_12_12_2.stateHash(__scrypt_ts_curState), __scrypt_ts_spentDataHashes);
|
|
129
|
-
|
|
130
|
-
OwnerUtils.checkUserOwner(userPubKey, __scrypt_ts_nextState.deployerAddr);
|
|
131
|
-
require(checkSig(userSig, userPubKey));
|
|
132
|
-
require(hash256(
|
|
133
|
-
(__scrypt_ts_changeInfo.satoshis > 0 ? TxUtils.buildDataOutput(sha256(TxUtils.buildP2PKHScript(__scrypt_ts_changeInfo.pubkeyhash)), __scrypt_ts_changeInfo.satoshis, __scrypt_ts_changeInfo.dataHash) : b'')) == __scrypt_ts_shPreimage.hashOutputs);
|
|
134
|
-
}
|
|
135
126
|
static function serializeState(CAT20GuardConstState __scrypt_ts_curState): bytes {
|
|
136
|
-
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(
|
|
127
|
+
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(__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(__scrypt_ts_curState.tokenScriptIndexes));
|
|
137
128
|
}
|
|
138
129
|
static function stateHash(CAT20GuardConstState __scrypt_ts_curState): bytes {
|
|
139
|
-
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(
|
|
130
|
+
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(__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(__scrypt_ts_curState.tokenScriptIndexes)));
|
|
140
131
|
}
|
|
141
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[[],[],[],[],[],[],[],[],[],[],[],[
|
|
1
|
+
[[],[],[],[],[],[],[],[],[],[],[],[[9,0,45,13]],[],[[2,0,47,4],[18,0,47,11],[25,0,49,21],[29,0,49,8],[42,0,50,24],[49,0,50,8],[65,0,53,22],[68,0,53,22],[72,0,53,8],[86,0,56,26],[89,0,56,26],[93,0,56,8],[111,0,57,25],[116,0,57,25],[121,0,57,8],[138,0,61,33],[143,0,61,33],[148,0,61,8],[173,0,65,22],[176,0,65,22],[181,0,65,8],[195,0,71,32],[198,0,71,32],[203,0,71,8],[227,0,76,24],[230,0,76,24],[235,0,76,8],[251,0,80,21],[261,0,80,21],[266,0,80,8],[279,0,82,21],[283,0,82,8]],[],[],[],[],[],[],[],[],[],[],[],[],[],[[4,0,85,8],[14,0,85,19],[30,0,85,34],[67,0,85,61]],[[4,0,86,8],[12,0,86,15],[13,0,86,29],[29,0,86,29],[109,0,86,20],[117,0,86,15],[118,0,86,29],[131,0,86,42],[145,0,86,15]],[[4,0,90,8],[22,0,90,27],[63,0,90,56]],[[4,0,93,30],[8,0,93,12],[26,0,93,30]],[[4,0,94,39],[9,0,94,39],[13,0,94,14],[40,0,98,16],[52,0,98,29],[87,0,99,16],[99,0,99,29],[134,0,100,16],[146,0,100,29],[181,0,101,16],[193,0,101,29]],[[15,0,103,17]],[[8,0,104,12],[16,0,104,19],[29,0,104,32],[30,0,104,39],[34,0,104,19],[37,0,104,46]],[[8,0,105,12],[16,0,105,19],[33,0,105,36],[34,0,105,43],[38,0,105,19],[41,0,105,50]],[[8,0,106,12],[11,0,106,16],[13,0,106,16],[16,0,106,21]],[[10,0,107,16],[39,0,107,34],[58,0,107,52],[59,0,107,59],[63,0,107,23],[66,0,107,66],[90,0,107,90],[91,0,107,97]],[[10,0,108,16],[18,0,108,23],[31,0,108,36],[32,0,108,43],[36,0,108,23],[39,0,108,50]],[[10,0,109,16],[18,0,109,23],[35,0,109,40],[36,0,109,47],[40,0,109,23],[43,0,109,54]],[],[],[[15,0,113,17]],[[8,0,114,12],[32,0,114,27],[51,0,114,45],[54,0,114,16],[57,0,114,51],[81,0,114,75]],[[10,0,115,16],[25,0,115,16]],[],[],[[15,0,119,17]],[[8,0,120,12],[11,0,120,16],[13,0,120,16],[15,0,120,20],[16,0,120,27]],[[10,0,121,16],[39,0,121,34],[58,0,121,52],[61,0,121,23],[64,0,121,58],[88,0,121,82]],[[10,0,122,16],[18,0,123,20],[43,0,123,35],[62,0,123,53],[66,0,123,20],[69,0,123,60]],[],[[10,0,126,16],[39,0,126,34],[58,0,126,52],[61,0,126,23],[64,0,126,58],[88,0,126,82]],[],[],[[4,0,129,8],[12,0,129,15],[28,0,129,15],[30,0,129,33]],[[4,0,135,31],[7,0,135,31],[11,0,135,14],[28,0,135,31],[35,0,135,36],[38,0,135,40]],[[4,0,136,34],[8,0,136,12],[30,0,136,34]],[[4,0,137,27],[8,0,137,14]],[[4,0,139,8],[12,0,139,15],[23,0,139,15],[26,0,139,29]],[[16,0,140,17]],[[8,0,141,37],[12,0,141,18],[31,0,141,37],[59,0,141,70],[79,0,141,90],[80,0,141,97],[85,0,141,101],[86,0,141,108],[88,0,141,108],[90,0,141,112]],[[8,0,142,12],[11,0,142,16],[13,0,142,16],[15,0,142,20]],[[10,0,144,16],[18,0,144,23],[35,0,144,23],[38,0,144,43]],[[10,0,145,16],[18,0,145,23],[35,0,145,23],[37,0,145,42]],[[10,0,146,16],[13,0,146,20],[30,0,146,20],[33,0,146,40]],[[12,0,149,24],[18,0,148,26],[57,0,149,35],[76,0,149,53],[77,0,149,60]],[[12,0,150,20],[20,0,150,27],[36,0,150,27],[39,0,150,46],[51,0,150,59],[102,0,150,106],[103,0,150,113]],[[12,0,151,20],[25,0,151,34],[37,0,151,45],[49,0,151,57]],[[12,0,152,20],[20,0,152,27],[32,0,152,40],[79,0,152,83],[80,0,152,90],[84,0,152,27],[87,0,152,97],[100,0,152,111],[111,0,152,121],[123,0,152,133]],[[12,0,153,20],[27,0,153,35],[28,0,153,42],[47,0,153,20],[49,0,153,63],[64,0,153,78],[65,0,153,85],[84,0,153,63],[86,0,153,106],[98,0,153,118],[100,0,153,121]],[[12,0,154,20],[32,0,154,20],[34,0,155,24],[51,0,155,24],[53,0,155,43],[75,0,156,30],[94,0,157,30]],[],[],[[10,0,160,16],[18,0,160,23],[35,0,160,23],[38,0,160,43]],[],[],[[4,0,166,8],[12,0,167,12],[32,0,167,12],[35,0,167,35],[37,0,167,12],[40,0,167,41],[60,0,167,41],[63,0,167,64],[79,0,167,64],[81,0,167,82]],[[4,0,172,8],[12,0,172,15],[24,0,172,15],[27,0,172,30],[29,0,172,15],[32,0,172,36],[44,0,172,36],[47,0,172,51]],[[4,0,173,32],[7,0,173,32],[11,0,173,14],[29,0,173,32],[36,0,173,37],[39,0,173,41]],[[4,0,174,22],[10,0,174,12],[20,0,174,35]],[[16,0,175,17]],[[8,0,176,12],[11,0,176,16],[13,0,176,16],[15,0,176,20]],[[10,0,177,46],[16,0,177,22],[40,0,177,46],[64,0,177,70]],[[10,0,178,45],[14,0,178,22],[37,0,178,45],[60,0,178,68]],[[10,0,180,16],[18,0,180,23],[39,0,180,23],[42,0,180,47]],[[10,0,181,16],[18,0,181,23],[39,0,181,23],[41,0,181,46]],[[10,0,182,16],[13,0,182,20],[34,0,182,20],[37,0,182,44]],[[12,0,185,20],[22,0,185,31],[38,0,185,46]],[[12,0,186,40],[16,0,186,26],[30,0,186,40],[43,0,186,53]],[[12,0,187,20],[20,0,187,27],[32,0,187,27],[34,0,187,41]],[[12,0,189,20],[20,0,189,27],[35,0,189,42],[38,0,189,27],[40,0,189,47]],[[12,0,190,20],[28,0,190,36],[29,0,190,43],[52,0,190,20],[54,0,190,68],[70,0,190,84],[71,0,190,91],[94,0,190,68],[96,0,190,116]],[[12,0,191,43],[18,0,191,26],[35,0,191,43],[48,0,191,57],[59,0,191,67],[60,0,192,35],[83,0,193,32]],[[12,0,195,20],[20,0,195,27],[36,0,195,43],[39,0,195,27],[42,0,195,49]],[[12,0,197,24],[18,0,196,26],[57,0,197,35],[76,0,197,53],[77,0,197,60]],[[12,0,198,20],[20,0,198,20],[23,0,198,31],[30,0,198,39],[47,0,199,24],[64,0,200,24],[79,0,200,39],[83,0,201,24]],[],[[12,0,205,20],[20,0,205,27],[33,0,205,40],[36,0,205,27],[39,0,205,46]],[[23,0,207,29]],[[14,0,208,24],[22,0,208,31],[44,0,208,31],[68,0,208,67],[87,0,208,85]],[],[[12,0,210,20],[20,0,210,20],[23,0,210,31],[30,0,210,39],[47,0,211,24],[70,0,212,24],[85,0,212,39],[89,0,213,24],[105,0,213,40]],[],[],[[10,0,217,16],[18,0,217,23],[22,0,217,27],[46,0,217,51],[50,0,217,23],[53,0,217,58]],[[10,0,218,16],[18,0,218,23],[41,0,218,46],[44,0,218,23],[47,0,218,52]],[[10,0,219,16],[18,0,219,23],[31,0,219,36],[34,0,219,23],[37,0,219,42]],[[10,0,220,16],[18,0,220,23],[34,0,220,39],[37,0,220,23],[40,0,220,58]],[[10,0,221,16],[18,0,221,23],[33,0,221,38],[36,0,221,23],[39,0,221,44]],[],[],[[15,0,226,17]],[[8,0,227,12],[16,0,227,19],[31,0,227,34],[34,0,227,19],[37,0,227,40],[50,0,227,53]],[[8,0,228,12],[16,0,229,16],[31,0,229,31],[34,0,229,16],[37,0,230,16],[53,0,230,32],[56,0,230,16],[58,0,230,37],[75,0,230,54]],[[8,0,233,12],[11,0,233,16],[13,0,233,16],[15,0,233,20],[16,0,233,27]],[[10,0,234,16],[18,0,234,23],[33,0,234,38],[36,0,234,23],[38,0,234,43]],[],[[10,0,236,16],[18,0,236,23],[33,0,236,38],[36,0,236,23],[39,0,236,44]],[[10,0,237,16],[18,0,237,23],[34,0,237,39],[37,0,237,23],[40,0,237,45]],[[10,0,239,16],[18,0,239,23],[31,0,239,36],[34,0,239,23],[37,0,239,42]],[[10,0,240,16],[18,0,240,23],[35,0,240,40],[38,0,240,23],[41,0,240,46]],[],[],[[4,0,245,8],[20,0,245,33]],[],[],[],[],[],[],[],[]]
|