@opcat-labs/cat-sdk 2.0.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/cat20/cat20.json +34 -34
- package/artifacts/cat20/cat20.scrypt +18 -18
- package/artifacts/cat20/cat20Admin.json +36 -36
- package/artifacts/cat20/cat20Admin.scrypt +30 -30
- package/artifacts/cat20/cat20GuardStateLib.json +21 -21
- package/artifacts/cat20/cat20GuardStateLib.scrypt +5 -5
- package/artifacts/cat20/cat20Guard_12_12_2.json +30 -30
- package/artifacts/cat20/cat20Guard_12_12_2.scrypt +21 -21
- package/artifacts/cat20/cat20Guard_12_12_4.json +30 -30
- package/artifacts/cat20/cat20Guard_12_12_4.scrypt +21 -21
- package/artifacts/cat20/cat20Guard_6_6_2.json +30 -30
- package/artifacts/cat20/cat20Guard_6_6_2.scrypt +21 -21
- package/artifacts/cat20/cat20Guard_6_6_4.json +30 -30
- package/artifacts/cat20/cat20Guard_6_6_4.scrypt +21 -21
- package/artifacts/cat20/cat20StateLib.json +22 -22
- package/artifacts/cat20/cat20StateLib.scrypt +5 -5
- package/artifacts/cat20/minters/cat20ClosedMinter.json +34 -34
- package/artifacts/cat20/minters/cat20ClosedMinter.scrypt +22 -22
- package/artifacts/cat20/minters/cat20OpenMinter.json +34 -34
- package/artifacts/cat20/minters/cat20OpenMinter.scrypt +18 -18
- package/artifacts/cat20/types.json +5 -5
- package/artifacts/cat20/types.scrypt +5 -5
- package/artifacts/cat721/cat721.json +34 -34
- package/artifacts/cat721/cat721.scrypt +18 -18
- package/artifacts/cat721/cat721GuardStateLib.json +21 -21
- package/artifacts/cat721/cat721GuardStateLib.scrypt +5 -5
- package/artifacts/cat721/cat721Guard_12_12_2.json +29 -29
- package/artifacts/cat721/cat721Guard_12_12_2.scrypt +18 -18
- package/artifacts/cat721/cat721Guard_12_12_4.json +29 -29
- package/artifacts/cat721/cat721Guard_12_12_4.scrypt +18 -18
- package/artifacts/cat721/cat721Guard_6_6_2.json +29 -29
- package/artifacts/cat721/cat721Guard_6_6_2.scrypt +18 -18
- package/artifacts/cat721/cat721Guard_6_6_4.json +29 -29
- package/artifacts/cat721/cat721Guard_6_6_4.scrypt +18 -18
- package/artifacts/cat721/cat721StateLib.json +22 -22
- package/artifacts/cat721/cat721StateLib.scrypt +5 -5
- package/artifacts/cat721/minters/cat721ClosedMinter.json +34 -34
- package/artifacts/cat721/minters/cat721ClosedMinter.scrypt +18 -18
- package/artifacts/cat721/minters/cat721OpenMintInfo.json +5 -5
- package/artifacts/cat721/minters/cat721OpenMintInfo.scrypt +4 -4
- package/artifacts/cat721/minters/cat721OpenMinter.json +39 -39
- package/artifacts/cat721/minters/cat721OpenMinter.scrypt +22 -22
- package/artifacts/cat721/minters/cat721OpenMinterMerkleTree.json +19 -19
- package/artifacts/cat721/minters/cat721OpenMinterMerkleTree.scrypt +6 -6
- package/artifacts/cat721/types.json +5 -5
- package/artifacts/cat721/types.scrypt +5 -5
- 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 -12
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scrypt +16 -16
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stateUtils.scrypt +1 -1
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stdUtils.scrypt +12 -12
- 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 +12 -12
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/types/structs.scrypt +8 -8
- package/artifacts/types.json +2 -2
- package/artifacts/types.scrypt +2 -2
- package/artifacts/utils/ownerUtils.json +14 -14
- package/artifacts/utils/ownerUtils.scrypt +3 -3
- package/artifacts/utils/safeMath.json +14 -14
- package/artifacts/utils/safeMath.scrypt +1 -1
- package/dist/artifacts/cat20/cat20.json +34 -34
- package/dist/artifacts/cat20/cat20.scrypt +18 -18
- package/dist/artifacts/cat20/cat20Admin.json +36 -36
- package/dist/artifacts/cat20/cat20Admin.scrypt +30 -30
- package/dist/artifacts/cat20/cat20GuardStateLib.json +21 -21
- package/dist/artifacts/cat20/cat20GuardStateLib.scrypt +5 -5
- package/dist/artifacts/cat20/cat20Guard_12_12_2.json +30 -30
- package/dist/artifacts/cat20/cat20Guard_12_12_2.scrypt +21 -21
- package/dist/artifacts/cat20/cat20Guard_12_12_4.json +30 -30
- package/dist/artifacts/cat20/cat20Guard_12_12_4.scrypt +21 -21
- package/dist/artifacts/cat20/cat20Guard_6_6_2.json +30 -30
- package/dist/artifacts/cat20/cat20Guard_6_6_2.scrypt +21 -21
- package/dist/artifacts/cat20/cat20Guard_6_6_4.json +30 -30
- package/dist/artifacts/cat20/cat20Guard_6_6_4.scrypt +21 -21
- package/dist/artifacts/cat20/cat20StateLib.json +22 -22
- package/dist/artifacts/cat20/cat20StateLib.scrypt +5 -5
- package/dist/artifacts/cat20/minters/cat20ClosedMinter.json +34 -34
- package/dist/artifacts/cat20/minters/cat20ClosedMinter.scrypt +22 -22
- package/dist/artifacts/cat20/minters/cat20OpenMinter.json +34 -34
- package/dist/artifacts/cat20/minters/cat20OpenMinter.scrypt +18 -18
- package/dist/artifacts/cat20/types.json +5 -5
- package/dist/artifacts/cat20/types.scrypt +5 -5
- package/dist/artifacts/cat721/cat721.json +34 -34
- package/dist/artifacts/cat721/cat721.scrypt +18 -18
- package/dist/artifacts/cat721/cat721GuardStateLib.json +21 -21
- package/dist/artifacts/cat721/cat721GuardStateLib.scrypt +5 -5
- package/dist/artifacts/cat721/cat721Guard_12_12_2.json +29 -29
- package/dist/artifacts/cat721/cat721Guard_12_12_2.scrypt +18 -18
- package/dist/artifacts/cat721/cat721Guard_12_12_4.json +29 -29
- package/dist/artifacts/cat721/cat721Guard_12_12_4.scrypt +18 -18
- package/dist/artifacts/cat721/cat721Guard_6_6_2.json +29 -29
- package/dist/artifacts/cat721/cat721Guard_6_6_2.scrypt +18 -18
- package/dist/artifacts/cat721/cat721Guard_6_6_4.json +29 -29
- package/dist/artifacts/cat721/cat721Guard_6_6_4.scrypt +18 -18
- package/dist/artifacts/cat721/cat721StateLib.json +22 -22
- package/dist/artifacts/cat721/cat721StateLib.scrypt +5 -5
- package/dist/artifacts/cat721/minters/cat721ClosedMinter.json +34 -34
- package/dist/artifacts/cat721/minters/cat721ClosedMinter.scrypt +18 -18
- 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 +39 -39
- package/dist/artifacts/cat721/minters/cat721OpenMinter.scrypt +22 -22
- package/dist/artifacts/cat721/minters/cat721OpenMinterMerkleTree.json +19 -19
- package/dist/artifacts/cat721/minters/cat721OpenMinterMerkleTree.scrypt +6 -6
- package/dist/artifacts/cat721/types.json +5 -5
- package/dist/artifacts/cat721/types.scrypt +5 -5
- 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 -12
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scrypt +16 -16
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stateUtils.scrypt +1 -1
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stdUtils.scrypt +12 -12
- 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 +12 -12
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/types/structs.scrypt +8 -8
- package/dist/artifacts/types.json +2 -2
- package/dist/artifacts/types.scrypt +2 -2
- package/dist/artifacts/utils/ownerUtils.json +14 -14
- package/dist/artifacts/utils/ownerUtils.scrypt +3 -3
- package/dist/artifacts/utils/safeMath.json +14 -14
- package/dist/artifacts/utils/safeMath.scrypt +1 -1
- package/dist/cjs/contracts/cat20/cat20.js +6 -6
- package/dist/cjs/contracts/cat20/cat20.js.map +1 -1
- package/dist/cjs/contracts/cat20/cat20Admin.js +6 -6
- package/dist/cjs/contracts/cat20/cat20Admin.js.map +1 -1
- package/dist/cjs/contracts/cat20/cat20GuardStateLib.js +10 -10
- package/dist/cjs/contracts/cat20/cat20GuardStateLib.js.map +1 -1
- package/dist/cjs/contracts/cat20/cat20Guard_12_12_2.js +29 -29
- package/dist/cjs/contracts/cat20/cat20Guard_12_12_2.js.map +1 -1
- package/dist/cjs/contracts/cat20/cat20Guard_12_12_4.js +29 -29
- package/dist/cjs/contracts/cat20/cat20Guard_12_12_4.js.map +1 -1
- package/dist/cjs/contracts/cat20/cat20Guard_6_6_2.js +29 -29
- package/dist/cjs/contracts/cat20/cat20Guard_6_6_2.js.map +1 -1
- package/dist/cjs/contracts/cat20/cat20Guard_6_6_4.js +29 -29
- package/dist/cjs/contracts/cat20/cat20Guard_6_6_4.js.map +1 -1
- package/dist/cjs/contracts/cat20/cat20StateLib.js +2 -2
- package/dist/cjs/contracts/cat20/cat20StateLib.js.map +1 -1
- package/dist/cjs/contracts/cat20/minters/cat20ClosedMinter.js +7 -7
- package/dist/cjs/contracts/cat20/minters/cat20ClosedMinter.js.map +1 -1
- package/dist/cjs/contracts/cat20/minters/cat20OpenMinter.js +6 -6
- package/dist/cjs/contracts/cat20/minters/cat20OpenMinter.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721.js +8 -8
- package/dist/cjs/contracts/cat721/cat721.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721GuardStateLib.js +8 -8
- package/dist/cjs/contracts/cat721/cat721GuardStateLib.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721Guard_12_12_2.js +24 -24
- package/dist/cjs/contracts/cat721/cat721Guard_12_12_2.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721Guard_12_12_4.js +24 -24
- package/dist/cjs/contracts/cat721/cat721Guard_12_12_4.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721Guard_6_6_2.js +24 -24
- package/dist/cjs/contracts/cat721/cat721Guard_6_6_2.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721Guard_6_6_4.js +24 -24
- package/dist/cjs/contracts/cat721/cat721Guard_6_6_4.js.map +1 -1
- package/dist/cjs/contracts/cat721/cat721StateLib.js +2 -2
- package/dist/cjs/contracts/cat721/cat721StateLib.js.map +1 -1
- package/dist/cjs/contracts/cat721/minters/cat721ClosedMinter.js +9 -9
- package/dist/cjs/contracts/cat721/minters/cat721ClosedMinter.js.map +1 -1
- package/dist/cjs/contracts/cat721/minters/cat721OpenMinter.js +14 -14
- package/dist/cjs/contracts/cat721/minters/cat721OpenMinter.js.map +1 -1
- package/dist/cjs/contracts/cat721/minters/cat721OpenMinterMerkleTree.js +4 -4
- package/dist/cjs/contracts/cat721/minters/cat721OpenMinterMerkleTree.js.map +1 -1
- package/dist/cjs/contracts/index.js +32 -32
- package/dist/cjs/contracts/index.js.map +1 -1
- package/dist/cjs/contracts/utils/ownerUtils.js +4 -4
- package/dist/cjs/contracts/utils/ownerUtils.js.map +1 -1
- package/dist/cjs/features/cat20/admin/burnByAdmin.js +32 -40
- package/dist/cjs/features/cat20/admin/burnByAdmin.js.map +1 -1
- package/dist/cjs/features/cat20/admin/transferOwnership.js +9 -14
- package/dist/cjs/features/cat20/admin/transferOwnership.js.map +1 -1
- package/dist/cjs/features/cat20/burn/burn.js +28 -26
- package/dist/cjs/features/cat20/burn/burn.js.map +1 -1
- package/dist/cjs/features/cat20/deploy/closedMinter.js +38 -30
- package/dist/cjs/features/cat20/deploy/closedMinter.js.map +1 -1
- package/dist/cjs/features/cat20/deploy/openMinter.js +39 -28
- package/dist/cjs/features/cat20/deploy/openMinter.js.map +1 -1
- package/dist/cjs/features/cat20/index.js +34 -31
- package/dist/cjs/features/cat20/index.js.map +1 -1
- package/dist/cjs/features/cat20/mint/closedMinter.js +21 -24
- package/dist/cjs/features/cat20/mint/closedMinter.js.map +1 -1
- package/dist/cjs/features/cat20/mint/openMinter.js +11 -11
- package/dist/cjs/features/cat20/mint/openMinter.js.map +1 -1
- package/dist/cjs/features/cat20/send/contractSend.js +39 -41
- package/dist/cjs/features/cat20/send/contractSend.js.map +1 -1
- package/dist/cjs/features/cat20/send/mergeSend.js +38 -0
- package/dist/cjs/features/cat20/send/mergeSend.js.map +1 -0
- package/dist/cjs/features/cat20/send/singleSend.js +34 -35
- package/dist/cjs/features/cat20/send/singleSend.js.map +1 -1
- package/dist/cjs/features/cat721/burn/burn.js +24 -25
- package/dist/cjs/features/cat721/burn/burn.js.map +1 -1
- package/dist/cjs/features/cat721/deploy/cat721ClosedMinter.js +28 -20
- package/dist/cjs/features/cat721/deploy/cat721ClosedMinter.js.map +1 -1
- package/dist/cjs/features/cat721/deploy/cat721OpenMinter.js +27 -19
- package/dist/cjs/features/cat721/deploy/cat721OpenMinter.js.map +1 -1
- package/dist/cjs/features/cat721/index.js +19 -19
- package/dist/cjs/features/cat721/index.js.map +1 -1
- package/dist/cjs/features/cat721/mint/cat721ClosedMinter.js +16 -16
- package/dist/cjs/features/cat721/mint/cat721ClosedMinter.js.map +1 -1
- package/dist/cjs/features/cat721/mint/cat721OpenMinter.js +25 -22
- package/dist/cjs/features/cat721/mint/cat721OpenMinter.js.map +1 -1
- package/dist/cjs/features/cat721/mint/nft.js +8 -7
- package/dist/cjs/features/cat721/mint/nft.js.map +1 -1
- package/dist/cjs/features/cat721/send/singleSend.js +30 -31
- package/dist/cjs/features/cat721/send/singleSend.js.map +1 -1
- package/dist/cjs/features/index.js +13 -13
- package/dist/cjs/features/index.js.map +1 -1
- package/dist/cjs/index.js +26 -26
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/cat721OPenMinterMerkleTreeData.js +5 -5
- package/dist/cjs/lib/cat721OPenMinterMerkleTreeData.js.map +1 -1
- package/dist/cjs/lib/index.js +3 -3
- package/dist/cjs/lib/index.js.map +1 -1
- package/dist/cjs/lib/metadata.js +1 -14
- package/dist/cjs/lib/metadata.js.map +1 -1
- package/dist/cjs/typeConstants.js +1 -0
- package/dist/cjs/typeConstants.js.map +1 -1
- package/dist/cjs/utils/contractPeripheral.js +111 -111
- package/dist/cjs/utils/contractPeripheral.js.map +1 -1
- package/dist/cjs/utils/index.js +42 -3
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/loadAllArtifacts.js +44 -44
- package/dist/cjs/utils/loadAllArtifacts.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20.js +3 -3
- package/dist/esm/contracts/cat20/cat20.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20Admin.js +2 -2
- package/dist/esm/contracts/cat20/cat20Admin.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20GuardStateLib.js +1 -1
- package/dist/esm/contracts/cat20/cat20GuardStateLib.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20Guard_12_12_2.js +5 -5
- package/dist/esm/contracts/cat20/cat20Guard_12_12_2.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20Guard_12_12_4.js +5 -5
- package/dist/esm/contracts/cat20/cat20Guard_12_12_4.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20Guard_6_6_2.js +5 -5
- package/dist/esm/contracts/cat20/cat20Guard_6_6_2.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20Guard_6_6_4.js +5 -5
- package/dist/esm/contracts/cat20/cat20Guard_6_6_4.js.map +1 -1
- package/dist/esm/contracts/cat20/cat20StateLib.js +1 -1
- package/dist/esm/contracts/cat20/cat20StateLib.js.map +1 -1
- package/dist/esm/contracts/cat20/minters/cat20ClosedMinter.js +3 -3
- package/dist/esm/contracts/cat20/minters/cat20ClosedMinter.js.map +1 -1
- package/dist/esm/contracts/cat20/minters/cat20OpenMinter.js +3 -3
- package/dist/esm/contracts/cat20/minters/cat20OpenMinter.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721.js +4 -4
- package/dist/esm/contracts/cat721/cat721.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721GuardStateLib.js +1 -1
- package/dist/esm/contracts/cat721/cat721GuardStateLib.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721Guard_12_12_2.js +4 -4
- package/dist/esm/contracts/cat721/cat721Guard_12_12_2.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721Guard_12_12_4.js +4 -4
- package/dist/esm/contracts/cat721/cat721Guard_12_12_4.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721Guard_6_6_2.js +4 -4
- package/dist/esm/contracts/cat721/cat721Guard_6_6_2.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721Guard_6_6_4.js +4 -4
- package/dist/esm/contracts/cat721/cat721Guard_6_6_4.js.map +1 -1
- package/dist/esm/contracts/cat721/cat721StateLib.js +1 -1
- package/dist/esm/contracts/cat721/cat721StateLib.js.map +1 -1
- package/dist/esm/contracts/cat721/minters/cat721ClosedMinter.js +4 -4
- package/dist/esm/contracts/cat721/minters/cat721ClosedMinter.js.map +1 -1
- package/dist/esm/contracts/cat721/minters/cat721OpenMinter.js +6 -6
- package/dist/esm/contracts/cat721/minters/cat721OpenMinter.js.map +1 -1
- package/dist/esm/contracts/cat721/minters/cat721OpenMinterMerkleTree.js +2 -2
- package/dist/esm/contracts/cat721/minters/cat721OpenMinterMerkleTree.js.map +1 -1
- package/dist/esm/contracts/index.js +32 -32
- package/dist/esm/contracts/index.js.map +1 -1
- package/dist/esm/contracts/utils/ownerUtils.js +1 -1
- package/dist/esm/contracts/utils/ownerUtils.js.map +1 -1
- package/dist/esm/features/cat20/admin/burnByAdmin.js +14 -21
- package/dist/esm/features/cat20/admin/burnByAdmin.js.map +1 -1
- package/dist/esm/features/cat20/admin/transferOwnership.js +8 -12
- package/dist/esm/features/cat20/admin/transferOwnership.js.map +1 -1
- package/dist/esm/features/cat20/burn/burn.js +15 -12
- package/dist/esm/features/cat20/burn/burn.js.map +1 -1
- package/dist/esm/features/cat20/deploy/closedMinter.js +26 -17
- package/dist/esm/features/cat20/deploy/closedMinter.js.map +1 -1
- package/dist/esm/features/cat20/deploy/openMinter.js +26 -14
- package/dist/esm/features/cat20/deploy/openMinter.js.map +1 -1
- package/dist/esm/features/cat20/index.js +13 -12
- package/dist/esm/features/cat20/index.js.map +1 -1
- package/dist/esm/features/cat20/mint/closedMinter.js +11 -13
- package/dist/esm/features/cat20/mint/closedMinter.js.map +1 -1
- package/dist/esm/features/cat20/mint/openMinter.js +8 -7
- package/dist/esm/features/cat20/mint/openMinter.js.map +1 -1
- package/dist/esm/features/cat20/send/contractSend.js +11 -12
- package/dist/esm/features/cat20/send/contractSend.js.map +1 -1
- package/dist/esm/features/cat20/send/mergeSend.js +34 -0
- package/dist/esm/features/cat20/send/mergeSend.js.map +1 -0
- package/dist/esm/features/cat20/send/singleSend.js +11 -11
- package/dist/esm/features/cat20/send/singleSend.js.map +1 -1
- package/dist/esm/features/cat721/burn/burn.js +11 -11
- package/dist/esm/features/cat721/burn/burn.js.map +1 -1
- package/dist/esm/features/cat721/deploy/cat721ClosedMinter.js +21 -12
- package/dist/esm/features/cat721/deploy/cat721ClosedMinter.js.map +1 -1
- package/dist/esm/features/cat721/deploy/cat721OpenMinter.js +21 -12
- package/dist/esm/features/cat721/deploy/cat721OpenMinter.js.map +1 -1
- package/dist/esm/features/cat721/index.js +8 -8
- package/dist/esm/features/cat721/index.js.map +1 -1
- package/dist/esm/features/cat721/mint/cat721ClosedMinter.js +10 -9
- package/dist/esm/features/cat721/mint/cat721ClosedMinter.js.map +1 -1
- package/dist/esm/features/cat721/mint/cat721OpenMinter.js +17 -13
- package/dist/esm/features/cat721/mint/cat721OpenMinter.js.map +1 -1
- package/dist/esm/features/cat721/mint/nft.js +7 -5
- package/dist/esm/features/cat721/mint/nft.js.map +1 -1
- package/dist/esm/features/cat721/send/singleSend.js +8 -8
- package/dist/esm/features/cat721/send/singleSend.js.map +1 -1
- package/dist/esm/features/index.js +5 -5
- package/dist/esm/features/index.js.map +1 -1
- package/dist/esm/index.js +10 -10
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/cat721OPenMinterMerkleTreeData.js +1 -1
- package/dist/esm/lib/cat721OPenMinterMerkleTreeData.js.map +1 -1
- package/dist/esm/lib/index.js +3 -3
- package/dist/esm/lib/index.js.map +1 -1
- package/dist/esm/lib/metadata.js +1 -14
- package/dist/esm/lib/metadata.js.map +1 -1
- package/dist/esm/typeConstants.js +1 -0
- package/dist/esm/typeConstants.js.map +1 -1
- package/dist/esm/utils/contractPeripheral.js +21 -21
- package/dist/esm/utils/contractPeripheral.js.map +1 -1
- package/dist/esm/utils/index.js +39 -2
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/loadAllArtifacts.js +44 -44
- package/dist/esm/utils/loadAllArtifacts.js.map +1 -1
- package/dist/types/contracts/cat20/cat20.d.ts +3 -3
- package/dist/types/contracts/cat20/cat20.d.ts.map +1 -1
- package/dist/types/contracts/cat20/cat20Admin.d.ts +1 -1
- package/dist/types/contracts/cat20/cat20Admin.d.ts.map +1 -1
- package/dist/types/contracts/cat20/cat20GuardStateLib.d.ts +2 -2
- package/dist/types/contracts/cat20/cat20GuardStateLib.d.ts.map +1 -1
- package/dist/types/contracts/cat20/cat20Guard_12_12_2.d.ts +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- package/dist/types/contracts/cat20/cat20Guard_6_6_4.d.ts.map +1 -1
- package/dist/types/contracts/cat20/cat20StateLib.d.ts +1 -1
- package/dist/types/contracts/cat20/cat20StateLib.d.ts.map +1 -1
- package/dist/types/contracts/cat20/minters/cat20ClosedMinter.d.ts +1 -1
- package/dist/types/contracts/cat20/minters/cat20ClosedMinter.d.ts.map +1 -1
- package/dist/types/contracts/cat20/minters/cat20ClosedMinterMetadata.d.ts +1 -1
- package/dist/types/contracts/cat20/minters/cat20ClosedMinterMetadata.d.ts.map +1 -1
- package/dist/types/contracts/cat20/minters/cat20OpenMinter.d.ts +1 -1
- package/dist/types/contracts/cat20/minters/cat20OpenMinter.d.ts.map +1 -1
- package/dist/types/contracts/cat20/minters/cat20OpenMinterMetadata.d.ts +1 -1
- package/dist/types/contracts/cat20/minters/cat20OpenMinterMetadata.d.ts.map +1 -1
- package/dist/types/contracts/cat20/types.d.ts +1 -1
- package/dist/types/contracts/cat20/types.d.ts.map +1 -1
- package/dist/types/contracts/cat721/cat721.d.ts +3 -3
- package/dist/types/contracts/cat721/cat721.d.ts.map +1 -1
- package/dist/types/contracts/cat721/cat721GuardStateLib.d.ts +2 -2
- package/dist/types/contracts/cat721/cat721GuardStateLib.d.ts.map +1 -1
- package/dist/types/contracts/cat721/cat721Guard_12_12_2.d.ts +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/dist/types/contracts/cat721/cat721Guard_6_6_4.d.ts.map +1 -1
- package/dist/types/contracts/cat721/cat721StateLib.d.ts +1 -1
- package/dist/types/contracts/cat721/cat721StateLib.d.ts.map +1 -1
- package/dist/types/contracts/cat721/minters/cat721ClosedMinter.d.ts +1 -1
- package/dist/types/contracts/cat721/minters/cat721ClosedMinter.d.ts.map +1 -1
- package/dist/types/contracts/cat721/minters/cat721ClosedMinterMetadata.d.ts +1 -1
- package/dist/types/contracts/cat721/minters/cat721ClosedMinterMetadata.d.ts.map +1 -1
- package/dist/types/contracts/cat721/minters/cat721OpenMinter.d.ts +2 -2
- package/dist/types/contracts/cat721/minters/cat721OpenMinter.d.ts.map +1 -1
- package/dist/types/contracts/cat721/minters/cat721OpenMinterMerkleTree.d.ts +1 -1
- package/dist/types/contracts/cat721/minters/cat721OpenMinterMerkleTree.d.ts.map +1 -1
- package/dist/types/contracts/cat721/minters/cat721OpenMinterMetadata.d.ts +1 -1
- package/dist/types/contracts/cat721/minters/cat721OpenMinterMetadata.d.ts.map +1 -1
- package/dist/types/contracts/cat721/types.d.ts +1 -1
- package/dist/types/contracts/cat721/types.d.ts.map +1 -1
- package/dist/types/contracts/index.d.ts +40 -40
- package/dist/types/contracts/index.d.ts.map +1 -1
- package/dist/types/contracts/types.d.ts +1 -1
- package/dist/types/contracts/types.d.ts.map +1 -1
- package/dist/types/features/cat20/admin/burnByAdmin.d.ts +12 -3
- package/dist/types/features/cat20/admin/burnByAdmin.d.ts.map +1 -1
- package/dist/types/features/cat20/admin/transferOwnership.d.ts +8 -3
- package/dist/types/features/cat20/admin/transferOwnership.d.ts.map +1 -1
- package/dist/types/features/cat20/burn/burn.d.ts +9 -2
- package/dist/types/features/cat20/burn/burn.d.ts.map +1 -1
- package/dist/types/features/cat20/deploy/closedMinter.d.ts +12 -5
- package/dist/types/features/cat20/deploy/closedMinter.d.ts.map +1 -1
- package/dist/types/features/cat20/deploy/openMinter.d.ts +14 -6
- package/dist/types/features/cat20/deploy/openMinter.d.ts.map +1 -1
- package/dist/types/features/cat20/index.d.ts +13 -12
- package/dist/types/features/cat20/index.d.ts.map +1 -1
- package/dist/types/features/cat20/mint/closedMinter.d.ts +9 -3
- package/dist/types/features/cat20/mint/closedMinter.d.ts.map +1 -1
- package/dist/types/features/cat20/mint/openMinter.d.ts +8 -3
- package/dist/types/features/cat20/mint/openMinter.d.ts.map +1 -1
- package/dist/types/features/cat20/send/contractSend.d.ts +16 -4
- package/dist/types/features/cat20/send/contractSend.d.ts.map +1 -1
- package/dist/types/features/cat20/send/mergeSend.d.ts +24 -0
- package/dist/types/features/cat20/send/mergeSend.d.ts.map +1 -0
- package/dist/types/features/cat20/send/singleSend.d.ts +17 -5
- package/dist/types/features/cat20/send/singleSend.d.ts.map +1 -1
- package/dist/types/features/cat721/burn/burn.d.ts +9 -2
- package/dist/types/features/cat721/burn/burn.d.ts.map +1 -1
- package/dist/types/features/cat721/deploy/cat721ClosedMinter.d.ts +17 -5
- package/dist/types/features/cat721/deploy/cat721ClosedMinter.d.ts.map +1 -1
- package/dist/types/features/cat721/deploy/cat721OpenMinter.d.ts +18 -6
- package/dist/types/features/cat721/deploy/cat721OpenMinter.d.ts.map +1 -1
- package/dist/types/features/cat721/index.d.ts +8 -8
- package/dist/types/features/cat721/index.d.ts.map +1 -1
- package/dist/types/features/cat721/mint/cat721ClosedMinter.d.ts +15 -4
- package/dist/types/features/cat721/mint/cat721ClosedMinter.d.ts.map +1 -1
- package/dist/types/features/cat721/mint/cat721OpenMinter.d.ts +15 -4
- package/dist/types/features/cat721/mint/cat721OpenMinter.d.ts.map +1 -1
- package/dist/types/features/cat721/mint/nft.d.ts +15 -5
- package/dist/types/features/cat721/mint/nft.d.ts.map +1 -1
- package/dist/types/features/cat721/send/singleSend.d.ts +12 -4
- package/dist/types/features/cat721/send/singleSend.d.ts.map +1 -1
- package/dist/types/features/index.d.ts +5 -5
- package/dist/types/features/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +9 -9
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/cat721OPenMinterMerkleTreeData.d.ts +1 -1
- package/dist/types/lib/cat721OPenMinterMerkleTreeData.d.ts.map +1 -1
- package/dist/types/lib/index.d.ts +2 -2
- package/dist/types/lib/index.d.ts.map +1 -1
- package/dist/types/lib/metadata.d.ts +2 -2
- package/dist/types/lib/metadata.d.ts.map +1 -1
- package/dist/types/typeConstants.d.ts +2 -1
- package/dist/types/typeConstants.d.ts.map +1 -1
- package/dist/types/utils/contractPeripheral.d.ts +7 -7
- package/dist/types/utils/contractPeripheral.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +24 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +7 -6
- package/scrypt.index.json +5 -5
|
@@ -11,7 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.CAT721GuardStateLib = void 0;
|
|
13
13
|
const scrypt_ts_opcat_1 = require("@opcat-labs/scrypt-ts-opcat");
|
|
14
|
-
const
|
|
14
|
+
const constants_js_1 = require("../constants.js");
|
|
15
15
|
/**
|
|
16
16
|
* The CAT721 guard state library
|
|
17
17
|
* @category Contract
|
|
@@ -21,14 +21,14 @@ const constants_1 = require("../constants");
|
|
|
21
21
|
class CAT721GuardStateLib extends scrypt_ts_opcat_1.StateLib {
|
|
22
22
|
static formalCheckState(_state, txInputCountMax) {
|
|
23
23
|
CAT721GuardStateLib.checkNftScriptsUniq(_state.nftScriptHashes);
|
|
24
|
-
for (let i = 0; i <
|
|
24
|
+
for (let i = 0; i < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX; i++) {
|
|
25
25
|
const scriptLen = (0, scrypt_ts_opcat_1.len)(_state.nftScriptHashes[i]);
|
|
26
26
|
(0, scrypt_ts_opcat_1.assert)(scriptLen == scrypt_ts_opcat_1.SHA256_HASH_LEN);
|
|
27
27
|
}
|
|
28
28
|
(0, scrypt_ts_opcat_1.assert)((0, scrypt_ts_opcat_1.len)(_state.nftScriptIndexes) == BigInt(txInputCountMax));
|
|
29
29
|
for (let i = 0; i < txInputCountMax; i++) {
|
|
30
30
|
const scriptIndex = (0, scrypt_ts_opcat_1.byteStringToInt)((0, scrypt_ts_opcat_1.slice)(_state.nftScriptIndexes, BigInt(i), BigInt(i + 1)));
|
|
31
|
-
(0, scrypt_ts_opcat_1.assert)(scriptIndex >= -1 && scriptIndex <
|
|
31
|
+
(0, scrypt_ts_opcat_1.assert)(scriptIndex >= -1 && scriptIndex < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
static checkNftScriptsUniq(nftScripts) {
|
|
@@ -41,12 +41,12 @@ class CAT721GuardStateLib extends scrypt_ts_opcat_1.StateLib {
|
|
|
41
41
|
(0, scrypt_ts_opcat_1.assert)(nftScripts[2] != nftScripts[3]);
|
|
42
42
|
}
|
|
43
43
|
static createEmptyState(txInputCountMax) {
|
|
44
|
-
const nftScriptHashes = (0, scrypt_ts_opcat_1.fill)((0, scrypt_ts_opcat_1.toByteString)(''),
|
|
44
|
+
const nftScriptHashes = (0, scrypt_ts_opcat_1.fill)((0, scrypt_ts_opcat_1.toByteString)(''), constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX);
|
|
45
45
|
// default value to ensure the uniqueness of nft scripts
|
|
46
|
-
nftScriptHashes[0] =
|
|
47
|
-
nftScriptHashes[1] =
|
|
48
|
-
nftScriptHashes[2] =
|
|
49
|
-
nftScriptHashes[3] =
|
|
46
|
+
nftScriptHashes[0] = constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FF;
|
|
47
|
+
nftScriptHashes[1] = constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FE;
|
|
48
|
+
nftScriptHashes[2] = constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FD;
|
|
49
|
+
nftScriptHashes[3] = constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FC;
|
|
50
50
|
let nftScriptIndexesArray = (0, scrypt_ts_opcat_1.fill)(-1n, txInputCountMax);
|
|
51
51
|
const nftScriptIndexes = nftScriptIndexesArray.map(index => (0, scrypt_ts_opcat_1.intToByteString)(index, 1n)).join('');
|
|
52
52
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cat721GuardStateLib.js","sourceRoot":"","sources":["../../../../src/contracts/cat721/cat721GuardStateLib.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAAmM;AAEnM,
|
|
1
|
+
{"version":3,"file":"cat721GuardStateLib.js","sourceRoot":"","sources":["../../../../src/contracts/cat721/cat721GuardStateLib.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,11 +15,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.CAT721Guard_12_12_2 = void 0;
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
18
|
+
const constants_js_1 = require("../constants.js");
|
|
19
|
+
const cat721GuardStateLib_js_1 = require("./cat721GuardStateLib.js");
|
|
20
|
+
const cat721StateLib_js_1 = require("./cat721StateLib.js");
|
|
21
21
|
const scrypt_ts_opcat_1 = require("@opcat-labs/scrypt-ts-opcat");
|
|
22
|
-
const
|
|
22
|
+
const catTags_js_1 = require("../catTags.js");
|
|
23
23
|
/**
|
|
24
24
|
* The CAT721 guard contract
|
|
25
25
|
* @category Contract
|
|
@@ -46,30 +46,30 @@ let CAT721Guard_12_12_2 = class CAT721Guard_12_12_2 extends scrypt_ts_opcat_1.Sm
|
|
|
46
46
|
outputLocalIds, nftScriptHashIndexes, outputSatoshis, cat721States,
|
|
47
47
|
// the number of curTx outputs except for the state hash root output
|
|
48
48
|
outputCount) {
|
|
49
|
-
|
|
49
|
+
cat721GuardStateLib_js_1.CAT721GuardStateLib.formalCheckState(this.state, 12);
|
|
50
50
|
// how many different types of nfts in curTx inputs
|
|
51
51
|
let inputNftTypes = 0n;
|
|
52
52
|
const nftScriptPlaceholders = [
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FF,
|
|
54
|
+
constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FE,
|
|
55
|
+
constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FD,
|
|
56
|
+
constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FC,
|
|
57
57
|
];
|
|
58
|
-
for (let i = 0; i <
|
|
59
|
-
if (i >=
|
|
58
|
+
for (let i = 0; i < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX; i++) {
|
|
59
|
+
if (i >= constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX_2) {
|
|
60
60
|
(0, scrypt_ts_opcat_1.assert)(this.state.nftScriptHashes[Number(i)] == nftScriptPlaceholders[Number(i)], 'nft script hash is invalid, should be placeholder');
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
for (let i = 0; i <
|
|
63
|
+
for (let i = 0; i < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX_2; i++) {
|
|
64
64
|
if (this.state.nftScriptHashes[i] != nftScriptPlaceholders[i]) {
|
|
65
65
|
inputNftTypes++;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
// ensure there are no placeholders between valid nft scripts in curState.nftScriptHashes
|
|
69
|
-
for (let i = 0; i <
|
|
69
|
+
for (let i = 0; i < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX_2; i++) {
|
|
70
70
|
if (i < Number(inputNftTypes)) {
|
|
71
71
|
(0, scrypt_ts_opcat_1.assert)(this.state.nftScriptHashes[i] != nftScriptPlaceholders[i], 'nft script hash is invalid, should not be placeholder');
|
|
72
|
-
(0, scrypt_ts_opcat_1.assert)((0, scrypt_ts_opcat_1.len)(this.state.nftScriptHashes[i]) ==
|
|
72
|
+
(0, scrypt_ts_opcat_1.assert)((0, scrypt_ts_opcat_1.len)(this.state.nftScriptHashes[i]) == constants_js_1.OUTPUT_LOCKING_SCRIPT_HASH_LEN, 'nft script hash length is invalid');
|
|
73
73
|
}
|
|
74
74
|
else {
|
|
75
75
|
(0, scrypt_ts_opcat_1.assert)(this.state.nftScriptHashes[i] == nftScriptPlaceholders[i], 'nft script hash is invalid, should be placeholder');
|
|
@@ -79,10 +79,10 @@ let CAT721Guard_12_12_2 = class CAT721Guard_12_12_2 extends scrypt_ts_opcat_1.Sm
|
|
|
79
79
|
// go through input nfts;
|
|
80
80
|
let nftScriptIndexMax = -1n;
|
|
81
81
|
// nextNfts are all the input nfts except the burned ones
|
|
82
|
-
const nextNfts = (0, scrypt_ts_opcat_1.fill)((0, scrypt_ts_opcat_1.toByteString)(''),
|
|
82
|
+
const nextNfts = (0, scrypt_ts_opcat_1.fill)((0, scrypt_ts_opcat_1.toByteString)(''), constants_js_1.TX_OUTPUT_COUNT_MAX_12);
|
|
83
83
|
let nextNftCount = 0n;
|
|
84
84
|
const inputCount = this.ctx.inputCount;
|
|
85
|
-
for (let i = 0n; i <
|
|
85
|
+
for (let i = 0n; i < constants_js_1.TX_INPUT_COUNT_MAX_12; i++) {
|
|
86
86
|
const nftScriptIndex = (0, scrypt_ts_opcat_1.byteStringToInt)((0, scrypt_ts_opcat_1.slice)(this.state.nftScriptIndexes, i, i + 1n));
|
|
87
87
|
const burnMask = (0, scrypt_ts_opcat_1.slice)(this.state.nftBurnMasks, i, i + 1n) == (0, scrypt_ts_opcat_1.toByteString)('01') ? true : false;
|
|
88
88
|
if (i < inputCount) {
|
|
@@ -91,8 +91,8 @@ let CAT721Guard_12_12_2 = class CAT721Guard_12_12_2 extends scrypt_ts_opcat_1.Sm
|
|
|
91
91
|
// this is a nft input
|
|
92
92
|
const nftScriptHash = this.state.nftScriptHashes[Number(nftScriptIndex)];
|
|
93
93
|
(0, scrypt_ts_opcat_1.assert)(nftScriptHash == scrypt_ts_opcat_1.ContextUtils.getSpentScriptHash(this.ctx.spentScriptHashes, BigInt(i)), 'nft script hash is invalid');
|
|
94
|
-
|
|
95
|
-
(0, scrypt_ts_opcat_1.assert)(scrypt_ts_opcat_1.ContextUtils.getSpentDataHash(this.ctx.spentDataHashes, BigInt(i)) ==
|
|
94
|
+
cat721StateLib_js_1.CAT721StateLib.checkState(cat721States[Number(i)]);
|
|
95
|
+
(0, scrypt_ts_opcat_1.assert)(scrypt_ts_opcat_1.ContextUtils.getSpentDataHash(this.ctx.spentDataHashes, BigInt(i)) == cat721StateLib_js_1.CAT721StateLib.stateHash(cat721States[Number(i)]), 'nft state hash is invalid');
|
|
96
96
|
nftScriptIndexMax = nftScriptIndex > nftScriptIndexMax ? nftScriptIndex : nftScriptIndexMax;
|
|
97
97
|
if (!burnMask) {
|
|
98
98
|
// this nft is not burned
|
|
@@ -111,10 +111,10 @@ let CAT721Guard_12_12_2 = class CAT721Guard_12_12_2 extends scrypt_ts_opcat_1.Sm
|
|
|
111
111
|
}
|
|
112
112
|
(0, scrypt_ts_opcat_1.assert)(nftScriptIndexMax >= 0n && nftScriptIndexMax == inputNftTypes - 1n, 'nft script index max is invalid');
|
|
113
113
|
// build curTx outputs
|
|
114
|
-
(0, scrypt_ts_opcat_1.assert)(outputCount >= 0n && outputCount <=
|
|
114
|
+
(0, scrypt_ts_opcat_1.assert)(outputCount >= 0n && outputCount <= constants_js_1.TX_OUTPUT_COUNT_MAX_12, 'output count is invalid');
|
|
115
115
|
let outputNftCount = 0n;
|
|
116
116
|
let outputs = (0, scrypt_ts_opcat_1.toByteString)('');
|
|
117
|
-
for (let i = 0n; i <
|
|
117
|
+
for (let i = 0n; i < constants_js_1.TX_OUTPUT_COUNT_MAX_12; i++) {
|
|
118
118
|
if (i < outputCount) {
|
|
119
119
|
const ownerAddrOrScriptHash = ownerAddrOrScriptHashes[Number(i)];
|
|
120
120
|
(0, scrypt_ts_opcat_1.assert)((0, scrypt_ts_opcat_1.len)(ownerAddrOrScriptHash) > 0n, 'owner addr or script hash is invalid, should not be empty');
|
|
@@ -127,7 +127,7 @@ let CAT721Guard_12_12_2 = class CAT721Guard_12_12_2 extends scrypt_ts_opcat_1.Sm
|
|
|
127
127
|
(0, scrypt_ts_opcat_1.assert)(localId >= 0n, 'local id is invalid');
|
|
128
128
|
(0, scrypt_ts_opcat_1.assert)(nextNfts[Number(outputNftCount)] == nftScriptHash + (0, scrypt_ts_opcat_1.hash160)((0, scrypt_ts_opcat_1.intToByteString)(localId)), 'next nft is invalid');
|
|
129
129
|
outputNftCount = outputNftCount + 1n;
|
|
130
|
-
const nftStateHash =
|
|
130
|
+
const nftStateHash = cat721StateLib_js_1.CAT721StateLib.stateHash({
|
|
131
131
|
ownerAddr: ownerAddrOrScriptHash,
|
|
132
132
|
localId: localId,
|
|
133
133
|
});
|
|
@@ -137,7 +137,7 @@ let CAT721Guard_12_12_2 = class CAT721Guard_12_12_2 extends scrypt_ts_opcat_1.Sm
|
|
|
137
137
|
else {
|
|
138
138
|
// this is a non-nft output
|
|
139
139
|
// locking script of this non-nft output cannot be the same as any nft script in curState
|
|
140
|
-
for (let j = 0; j <
|
|
140
|
+
for (let j = 0; j < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX_2; j++) {
|
|
141
141
|
(0, scrypt_ts_opcat_1.assert)(ownerAddrOrScriptHash != this.state.nftScriptHashes[j], 'owner addr or script hash is invalid');
|
|
142
142
|
}
|
|
143
143
|
outputs += scrypt_ts_opcat_1.TxUtils.buildDataOutput(ownerAddrOrScriptHash, outputSatoshis[Number(i)], nextStateHashes[Number(i)]);
|
|
@@ -152,7 +152,7 @@ let CAT721Guard_12_12_2 = class CAT721Guard_12_12_2 extends scrypt_ts_opcat_1.Sm
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
// ensure outputLocalIds is default value when there are no more output nfts
|
|
155
|
-
for (let i = 0; i <
|
|
155
|
+
for (let i = 0; i < constants_js_1.TX_OUTPUT_COUNT_MAX_12; i++) {
|
|
156
156
|
if (i >= outputNftCount) {
|
|
157
157
|
(0, scrypt_ts_opcat_1.assert)(outputLocalIds[Number(i)] == -1n, 'output local id is invalid, should be -1');
|
|
158
158
|
}
|
|
@@ -171,6 +171,6 @@ __decorate([
|
|
|
171
171
|
__metadata("design:returntype", void 0)
|
|
172
172
|
], CAT721Guard_12_12_2.prototype, "unlock", null);
|
|
173
173
|
exports.CAT721Guard_12_12_2 = CAT721Guard_12_12_2 = __decorate([
|
|
174
|
-
(0, scrypt_ts_opcat_1.tags)([
|
|
174
|
+
(0, scrypt_ts_opcat_1.tags)([catTags_js_1.CatTags.CAT721_GUARD_TAG, catTags_js_1.CatTags.CAT721_GUARD_12_12_2_TAG])
|
|
175
175
|
], CAT721Guard_12_12_2);
|
|
176
176
|
//# sourceMappingURL=cat721Guard_12_12_2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cat721Guard_12_12_2.js","sourceRoot":"","sources":["../../../../src/contracts/cat721/cat721Guard_12_12_2.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;;;;;;;;;;AAEF,
|
|
1
|
+
{"version":3,"file":"cat721Guard_12_12_2.js","sourceRoot":"","sources":["../../../../src/contracts/cat721/cat721Guard_12_12_2.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,11 +15,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.CAT721Guard_12_12_4 = void 0;
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
18
|
+
const constants_js_1 = require("../constants.js");
|
|
19
|
+
const cat721GuardStateLib_js_1 = require("./cat721GuardStateLib.js");
|
|
20
|
+
const cat721StateLib_js_1 = require("./cat721StateLib.js");
|
|
21
21
|
const scrypt_ts_opcat_1 = require("@opcat-labs/scrypt-ts-opcat");
|
|
22
|
-
const
|
|
22
|
+
const catTags_js_1 = require("../catTags.js");
|
|
23
23
|
/**
|
|
24
24
|
* The CAT721 guard contract
|
|
25
25
|
* @category Contract
|
|
@@ -46,30 +46,30 @@ let CAT721Guard_12_12_4 = class CAT721Guard_12_12_4 extends scrypt_ts_opcat_1.Sm
|
|
|
46
46
|
outputLocalIds, nftScriptHashIndexes, outputSatoshis, cat721States,
|
|
47
47
|
// the number of curTx outputs except for the state hash root output
|
|
48
48
|
outputCount) {
|
|
49
|
-
|
|
49
|
+
cat721GuardStateLib_js_1.CAT721GuardStateLib.formalCheckState(this.state, 12);
|
|
50
50
|
// how many different types of nfts in curTx inputs
|
|
51
51
|
let inputNftTypes = 0n;
|
|
52
52
|
const nftScriptPlaceholders = [
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FF,
|
|
54
|
+
constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FE,
|
|
55
|
+
constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FD,
|
|
56
|
+
constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FC,
|
|
57
57
|
];
|
|
58
|
-
for (let i = 0; i <
|
|
59
|
-
if (i >=
|
|
58
|
+
for (let i = 0; i < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX; i++) {
|
|
59
|
+
if (i >= constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX_4) {
|
|
60
60
|
(0, scrypt_ts_opcat_1.assert)(this.state.nftScriptHashes[Number(i)] == nftScriptPlaceholders[Number(i)], 'nft script hash is invalid, should be placeholder');
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
for (let i = 0; i <
|
|
63
|
+
for (let i = 0; i < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX_4; i++) {
|
|
64
64
|
if (this.state.nftScriptHashes[i] != nftScriptPlaceholders[i]) {
|
|
65
65
|
inputNftTypes++;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
// ensure there are no placeholders between valid nft scripts in curState.nftScriptHashes
|
|
69
|
-
for (let i = 0; i <
|
|
69
|
+
for (let i = 0; i < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX_4; i++) {
|
|
70
70
|
if (i < Number(inputNftTypes)) {
|
|
71
71
|
(0, scrypt_ts_opcat_1.assert)(this.state.nftScriptHashes[i] != nftScriptPlaceholders[i], 'nft script hash is invalid, should not be placeholder');
|
|
72
|
-
(0, scrypt_ts_opcat_1.assert)((0, scrypt_ts_opcat_1.len)(this.state.nftScriptHashes[i]) ==
|
|
72
|
+
(0, scrypt_ts_opcat_1.assert)((0, scrypt_ts_opcat_1.len)(this.state.nftScriptHashes[i]) == constants_js_1.OUTPUT_LOCKING_SCRIPT_HASH_LEN, 'nft script hash length is invalid');
|
|
73
73
|
}
|
|
74
74
|
else {
|
|
75
75
|
(0, scrypt_ts_opcat_1.assert)(this.state.nftScriptHashes[i] == nftScriptPlaceholders[i], 'nft script hash is invalid, should be placeholder');
|
|
@@ -79,10 +79,10 @@ let CAT721Guard_12_12_4 = class CAT721Guard_12_12_4 extends scrypt_ts_opcat_1.Sm
|
|
|
79
79
|
// go through input nfts;
|
|
80
80
|
let nftScriptIndexMax = -1n;
|
|
81
81
|
// nextNfts are all the input nfts except the burned ones
|
|
82
|
-
const nextNfts = (0, scrypt_ts_opcat_1.fill)((0, scrypt_ts_opcat_1.toByteString)(''),
|
|
82
|
+
const nextNfts = (0, scrypt_ts_opcat_1.fill)((0, scrypt_ts_opcat_1.toByteString)(''), constants_js_1.TX_OUTPUT_COUNT_MAX_12);
|
|
83
83
|
let nextNftCount = 0n;
|
|
84
84
|
const inputCount = this.ctx.inputCount;
|
|
85
|
-
for (let i = 0n; i <
|
|
85
|
+
for (let i = 0n; i < constants_js_1.TX_INPUT_COUNT_MAX_12; i++) {
|
|
86
86
|
const nftScriptIndex = (0, scrypt_ts_opcat_1.byteStringToInt)((0, scrypt_ts_opcat_1.slice)(this.state.nftScriptIndexes, i, i + 1n));
|
|
87
87
|
const burnMask = (0, scrypt_ts_opcat_1.slice)(this.state.nftBurnMasks, i, i + 1n) == (0, scrypt_ts_opcat_1.toByteString)('01') ? true : false;
|
|
88
88
|
if (i < inputCount) {
|
|
@@ -91,8 +91,8 @@ let CAT721Guard_12_12_4 = class CAT721Guard_12_12_4 extends scrypt_ts_opcat_1.Sm
|
|
|
91
91
|
// this is a nft input
|
|
92
92
|
const nftScriptHash = this.state.nftScriptHashes[Number(nftScriptIndex)];
|
|
93
93
|
(0, scrypt_ts_opcat_1.assert)(nftScriptHash == scrypt_ts_opcat_1.ContextUtils.getSpentScriptHash(this.ctx.spentScriptHashes, BigInt(i)), 'nft script hash is invalid');
|
|
94
|
-
|
|
95
|
-
(0, scrypt_ts_opcat_1.assert)(scrypt_ts_opcat_1.ContextUtils.getSpentDataHash(this.ctx.spentDataHashes, BigInt(i)) ==
|
|
94
|
+
cat721StateLib_js_1.CAT721StateLib.checkState(cat721States[Number(i)]);
|
|
95
|
+
(0, scrypt_ts_opcat_1.assert)(scrypt_ts_opcat_1.ContextUtils.getSpentDataHash(this.ctx.spentDataHashes, BigInt(i)) == cat721StateLib_js_1.CAT721StateLib.stateHash(cat721States[Number(i)]), 'nft state hash is invalid');
|
|
96
96
|
nftScriptIndexMax = nftScriptIndex > nftScriptIndexMax ? nftScriptIndex : nftScriptIndexMax;
|
|
97
97
|
if (!burnMask) {
|
|
98
98
|
// this nft is not burned
|
|
@@ -111,10 +111,10 @@ let CAT721Guard_12_12_4 = class CAT721Guard_12_12_4 extends scrypt_ts_opcat_1.Sm
|
|
|
111
111
|
}
|
|
112
112
|
(0, scrypt_ts_opcat_1.assert)(nftScriptIndexMax >= 0n && nftScriptIndexMax == inputNftTypes - 1n, 'nft script index max is invalid');
|
|
113
113
|
// build curTx outputs
|
|
114
|
-
(0, scrypt_ts_opcat_1.assert)(outputCount >= 0n && outputCount <=
|
|
114
|
+
(0, scrypt_ts_opcat_1.assert)(outputCount >= 0n && outputCount <= constants_js_1.TX_OUTPUT_COUNT_MAX_12, 'output count is invalid');
|
|
115
115
|
let outputNftCount = 0n;
|
|
116
116
|
let outputs = (0, scrypt_ts_opcat_1.toByteString)('');
|
|
117
|
-
for (let i = 0n; i <
|
|
117
|
+
for (let i = 0n; i < constants_js_1.TX_OUTPUT_COUNT_MAX_12; i++) {
|
|
118
118
|
if (i < outputCount) {
|
|
119
119
|
const ownerAddrOrScriptHash = ownerAddrOrScriptHashes[Number(i)];
|
|
120
120
|
(0, scrypt_ts_opcat_1.assert)((0, scrypt_ts_opcat_1.len)(ownerAddrOrScriptHash) > 0n, 'owner addr or script hash is invalid, should not be empty');
|
|
@@ -127,7 +127,7 @@ let CAT721Guard_12_12_4 = class CAT721Guard_12_12_4 extends scrypt_ts_opcat_1.Sm
|
|
|
127
127
|
(0, scrypt_ts_opcat_1.assert)(localId >= 0n, 'local id is invalid');
|
|
128
128
|
(0, scrypt_ts_opcat_1.assert)(nextNfts[Number(outputNftCount)] == nftScriptHash + (0, scrypt_ts_opcat_1.hash160)((0, scrypt_ts_opcat_1.intToByteString)(localId)), 'next nft is invalid');
|
|
129
129
|
outputNftCount = outputNftCount + 1n;
|
|
130
|
-
const nftStateHash =
|
|
130
|
+
const nftStateHash = cat721StateLib_js_1.CAT721StateLib.stateHash({
|
|
131
131
|
ownerAddr: ownerAddrOrScriptHash,
|
|
132
132
|
localId: localId,
|
|
133
133
|
});
|
|
@@ -137,7 +137,7 @@ let CAT721Guard_12_12_4 = class CAT721Guard_12_12_4 extends scrypt_ts_opcat_1.Sm
|
|
|
137
137
|
else {
|
|
138
138
|
// this is a non-nft output
|
|
139
139
|
// locking script of this non-nft output cannot be the same as any nft script in curState
|
|
140
|
-
for (let j = 0; j <
|
|
140
|
+
for (let j = 0; j < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX_4; j++) {
|
|
141
141
|
(0, scrypt_ts_opcat_1.assert)(ownerAddrOrScriptHash != this.state.nftScriptHashes[j], 'owner addr or script hash is invalid');
|
|
142
142
|
}
|
|
143
143
|
outputs += scrypt_ts_opcat_1.TxUtils.buildDataOutput(ownerAddrOrScriptHash, outputSatoshis[Number(i)], nextStateHashes[Number(i)]);
|
|
@@ -152,7 +152,7 @@ let CAT721Guard_12_12_4 = class CAT721Guard_12_12_4 extends scrypt_ts_opcat_1.Sm
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
// ensure outputLocalIds is default value when there are no more output nfts
|
|
155
|
-
for (let i = 0; i <
|
|
155
|
+
for (let i = 0; i < constants_js_1.TX_OUTPUT_COUNT_MAX_12; i++) {
|
|
156
156
|
if (i >= outputNftCount) {
|
|
157
157
|
(0, scrypt_ts_opcat_1.assert)(outputLocalIds[Number(i)] == -1n, 'output local id is invalid, should be -1');
|
|
158
158
|
}
|
|
@@ -171,6 +171,6 @@ __decorate([
|
|
|
171
171
|
__metadata("design:returntype", void 0)
|
|
172
172
|
], CAT721Guard_12_12_4.prototype, "unlock", null);
|
|
173
173
|
exports.CAT721Guard_12_12_4 = CAT721Guard_12_12_4 = __decorate([
|
|
174
|
-
(0, scrypt_ts_opcat_1.tags)([
|
|
174
|
+
(0, scrypt_ts_opcat_1.tags)([catTags_js_1.CatTags.CAT721_GUARD_TAG, catTags_js_1.CatTags.CAT721_GUARD_12_12_4_TAG])
|
|
175
175
|
], CAT721Guard_12_12_4);
|
|
176
176
|
//# sourceMappingURL=cat721Guard_12_12_4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cat721Guard_12_12_4.js","sourceRoot":"","sources":["../../../../src/contracts/cat721/cat721Guard_12_12_4.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;;;;;;;;;;AAEF,
|
|
1
|
+
{"version":3,"file":"cat721Guard_12_12_4.js","sourceRoot":"","sources":["../../../../src/contracts/cat721/cat721Guard_12_12_4.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,11 +15,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.CAT721Guard_6_6_2 = void 0;
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
18
|
+
const constants_js_1 = require("../constants.js");
|
|
19
|
+
const cat721GuardStateLib_js_1 = require("./cat721GuardStateLib.js");
|
|
20
|
+
const cat721StateLib_js_1 = require("./cat721StateLib.js");
|
|
21
21
|
const scrypt_ts_opcat_1 = require("@opcat-labs/scrypt-ts-opcat");
|
|
22
|
-
const
|
|
22
|
+
const catTags_js_1 = require("../catTags.js");
|
|
23
23
|
/**
|
|
24
24
|
* The CAT721 guard contract
|
|
25
25
|
* @category Contract
|
|
@@ -46,30 +46,30 @@ let CAT721Guard_6_6_2 = class CAT721Guard_6_6_2 extends scrypt_ts_opcat_1.SmartC
|
|
|
46
46
|
outputLocalIds, nftScriptHashIndexes, outputSatoshis, cat721States,
|
|
47
47
|
// the number of curTx outputs except for the state hash root output
|
|
48
48
|
outputCount) {
|
|
49
|
-
|
|
49
|
+
cat721GuardStateLib_js_1.CAT721GuardStateLib.formalCheckState(this.state, 6);
|
|
50
50
|
// how many different types of nfts in curTx inputs
|
|
51
51
|
let inputNftTypes = 0n;
|
|
52
52
|
const nftScriptPlaceholders = [
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FF,
|
|
54
|
+
constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FE,
|
|
55
|
+
constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FD,
|
|
56
|
+
constants_js_1.ConstantsLib.TOKEN_SCRIPT_HASH_PLACEHOLDER_FC,
|
|
57
57
|
];
|
|
58
|
-
for (let i = 0; i <
|
|
59
|
-
if (i >=
|
|
58
|
+
for (let i = 0; i < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX; i++) {
|
|
59
|
+
if (i >= constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX_2) {
|
|
60
60
|
(0, scrypt_ts_opcat_1.assert)(this.state.nftScriptHashes[Number(i)] == nftScriptPlaceholders[Number(i)], 'nft script hash is invalid, should be placeholder');
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
for (let i = 0; i <
|
|
63
|
+
for (let i = 0; i < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX_2; i++) {
|
|
64
64
|
if (this.state.nftScriptHashes[i] != nftScriptPlaceholders[i]) {
|
|
65
65
|
inputNftTypes++;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
// ensure there are no placeholders between valid nft scripts in curState.nftScriptHashes
|
|
69
|
-
for (let i = 0; i <
|
|
69
|
+
for (let i = 0; i < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX_2; i++) {
|
|
70
70
|
if (i < Number(inputNftTypes)) {
|
|
71
71
|
(0, scrypt_ts_opcat_1.assert)(this.state.nftScriptHashes[i] != nftScriptPlaceholders[i], 'nft script hash is invalid, should not be placeholder');
|
|
72
|
-
(0, scrypt_ts_opcat_1.assert)((0, scrypt_ts_opcat_1.len)(this.state.nftScriptHashes[i]) ==
|
|
72
|
+
(0, scrypt_ts_opcat_1.assert)((0, scrypt_ts_opcat_1.len)(this.state.nftScriptHashes[i]) == constants_js_1.OUTPUT_LOCKING_SCRIPT_HASH_LEN, 'nft script hash length is invalid');
|
|
73
73
|
}
|
|
74
74
|
else {
|
|
75
75
|
(0, scrypt_ts_opcat_1.assert)(this.state.nftScriptHashes[i] == nftScriptPlaceholders[i], 'nft script hash is invalid, should be placeholder');
|
|
@@ -79,10 +79,10 @@ let CAT721Guard_6_6_2 = class CAT721Guard_6_6_2 extends scrypt_ts_opcat_1.SmartC
|
|
|
79
79
|
// go through input nfts;
|
|
80
80
|
let nftScriptIndexMax = -1n;
|
|
81
81
|
// nextNfts are all the input nfts except the burned ones
|
|
82
|
-
const nextNfts = (0, scrypt_ts_opcat_1.fill)((0, scrypt_ts_opcat_1.toByteString)(''),
|
|
82
|
+
const nextNfts = (0, scrypt_ts_opcat_1.fill)((0, scrypt_ts_opcat_1.toByteString)(''), constants_js_1.TX_OUTPUT_COUNT_MAX_6);
|
|
83
83
|
let nextNftCount = 0n;
|
|
84
84
|
const inputCount = this.ctx.inputCount;
|
|
85
|
-
for (let i = 0n; i <
|
|
85
|
+
for (let i = 0n; i < constants_js_1.TX_INPUT_COUNT_MAX_6; i++) {
|
|
86
86
|
const nftScriptIndex = (0, scrypt_ts_opcat_1.byteStringToInt)((0, scrypt_ts_opcat_1.slice)(this.state.nftScriptIndexes, i, i + 1n));
|
|
87
87
|
const burnMask = (0, scrypt_ts_opcat_1.slice)(this.state.nftBurnMasks, i, i + 1n) == (0, scrypt_ts_opcat_1.toByteString)('01') ? true : false;
|
|
88
88
|
if (i < inputCount) {
|
|
@@ -91,8 +91,8 @@ let CAT721Guard_6_6_2 = class CAT721Guard_6_6_2 extends scrypt_ts_opcat_1.SmartC
|
|
|
91
91
|
// this is a nft input
|
|
92
92
|
const nftScriptHash = this.state.nftScriptHashes[Number(nftScriptIndex)];
|
|
93
93
|
(0, scrypt_ts_opcat_1.assert)(nftScriptHash == scrypt_ts_opcat_1.ContextUtils.getSpentScriptHash(this.ctx.spentScriptHashes, BigInt(i)), 'nft script hash is invalid');
|
|
94
|
-
|
|
95
|
-
(0, scrypt_ts_opcat_1.assert)(scrypt_ts_opcat_1.ContextUtils.getSpentDataHash(this.ctx.spentDataHashes, BigInt(i)) ==
|
|
94
|
+
cat721StateLib_js_1.CAT721StateLib.checkState(cat721States[Number(i)]);
|
|
95
|
+
(0, scrypt_ts_opcat_1.assert)(scrypt_ts_opcat_1.ContextUtils.getSpentDataHash(this.ctx.spentDataHashes, BigInt(i)) == cat721StateLib_js_1.CAT721StateLib.stateHash(cat721States[Number(i)]), 'nft state hash is invalid');
|
|
96
96
|
nftScriptIndexMax = nftScriptIndex > nftScriptIndexMax ? nftScriptIndex : nftScriptIndexMax;
|
|
97
97
|
if (!burnMask) {
|
|
98
98
|
// this nft is not burned
|
|
@@ -111,10 +111,10 @@ let CAT721Guard_6_6_2 = class CAT721Guard_6_6_2 extends scrypt_ts_opcat_1.SmartC
|
|
|
111
111
|
}
|
|
112
112
|
(0, scrypt_ts_opcat_1.assert)(nftScriptIndexMax >= 0n && nftScriptIndexMax == inputNftTypes - 1n, 'nft script index max is invalid');
|
|
113
113
|
// build curTx outputs
|
|
114
|
-
(0, scrypt_ts_opcat_1.assert)(outputCount >= 0n && outputCount <=
|
|
114
|
+
(0, scrypt_ts_opcat_1.assert)(outputCount >= 0n && outputCount <= constants_js_1.TX_OUTPUT_COUNT_MAX_6, 'output count is invalid');
|
|
115
115
|
let outputNftCount = 0n;
|
|
116
116
|
let outputs = (0, scrypt_ts_opcat_1.toByteString)('');
|
|
117
|
-
for (let i = 0n; i <
|
|
117
|
+
for (let i = 0n; i < constants_js_1.TX_OUTPUT_COUNT_MAX_6; i++) {
|
|
118
118
|
if (i < outputCount) {
|
|
119
119
|
const ownerAddrOrScriptHash = ownerAddrOrScriptHashes[Number(i)];
|
|
120
120
|
(0, scrypt_ts_opcat_1.assert)((0, scrypt_ts_opcat_1.len)(ownerAddrOrScriptHash) > 0n, 'owner addr or script hash is invalid, should not be empty');
|
|
@@ -127,7 +127,7 @@ let CAT721Guard_6_6_2 = class CAT721Guard_6_6_2 extends scrypt_ts_opcat_1.SmartC
|
|
|
127
127
|
(0, scrypt_ts_opcat_1.assert)(localId >= 0n, 'local id is invalid');
|
|
128
128
|
(0, scrypt_ts_opcat_1.assert)(nextNfts[Number(outputNftCount)] == nftScriptHash + (0, scrypt_ts_opcat_1.hash160)((0, scrypt_ts_opcat_1.intToByteString)(localId)), 'next nft is invalid');
|
|
129
129
|
outputNftCount = outputNftCount + 1n;
|
|
130
|
-
const nftStateHash =
|
|
130
|
+
const nftStateHash = cat721StateLib_js_1.CAT721StateLib.stateHash({
|
|
131
131
|
ownerAddr: ownerAddrOrScriptHash,
|
|
132
132
|
localId: localId,
|
|
133
133
|
});
|
|
@@ -137,7 +137,7 @@ let CAT721Guard_6_6_2 = class CAT721Guard_6_6_2 extends scrypt_ts_opcat_1.SmartC
|
|
|
137
137
|
else {
|
|
138
138
|
// this is a non-nft output
|
|
139
139
|
// locking script of this non-nft output cannot be the same as any nft script in curState
|
|
140
|
-
for (let j = 0; j <
|
|
140
|
+
for (let j = 0; j < constants_js_1.NFT_GUARD_COLLECTION_TYPE_MAX_2; j++) {
|
|
141
141
|
(0, scrypt_ts_opcat_1.assert)(ownerAddrOrScriptHash != this.state.nftScriptHashes[j], 'owner addr or script hash is invalid');
|
|
142
142
|
}
|
|
143
143
|
outputs += scrypt_ts_opcat_1.TxUtils.buildDataOutput(ownerAddrOrScriptHash, outputSatoshis[Number(i)], nextStateHashes[Number(i)]);
|
|
@@ -152,7 +152,7 @@ let CAT721Guard_6_6_2 = class CAT721Guard_6_6_2 extends scrypt_ts_opcat_1.SmartC
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
// ensure outputLocalIds is default value when there are no more output nfts
|
|
155
|
-
for (let i = 0; i <
|
|
155
|
+
for (let i = 0; i < constants_js_1.TX_OUTPUT_COUNT_MAX_6; i++) {
|
|
156
156
|
if (i >= outputNftCount) {
|
|
157
157
|
(0, scrypt_ts_opcat_1.assert)(outputLocalIds[Number(i)] == -1n, 'output local id is invalid, should be -1');
|
|
158
158
|
}
|
|
@@ -171,6 +171,6 @@ __decorate([
|
|
|
171
171
|
__metadata("design:returntype", void 0)
|
|
172
172
|
], CAT721Guard_6_6_2.prototype, "unlock", null);
|
|
173
173
|
exports.CAT721Guard_6_6_2 = CAT721Guard_6_6_2 = __decorate([
|
|
174
|
-
(0, scrypt_ts_opcat_1.tags)([
|
|
174
|
+
(0, scrypt_ts_opcat_1.tags)([catTags_js_1.CatTags.CAT721_GUARD_TAG, catTags_js_1.CatTags.CAT721_GUARD_6_6_2_TAG])
|
|
175
175
|
], CAT721Guard_6_6_2);
|
|
176
176
|
//# sourceMappingURL=cat721Guard_6_6_2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cat721Guard_6_6_2.js","sourceRoot":"","sources":["../../../../src/contracts/cat721/cat721Guard_6_6_2.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;;;;;;;;;;AAEF,
|
|
1
|
+
{"version":3,"file":"cat721Guard_6_6_2.js","sourceRoot":"","sources":["../../../../src/contracts/cat721/cat721Guard_6_6_2.ts"],"names":[],"mappings":"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"}
|