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