@opcat-labs/cat-sdk 4.0.0 → 4.1.0-beta-6ff2628d-20260307
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/.templates/cat20/minters/cat20OpenMinter.scrypt.map +1 -1
- package/artifacts/.templates/cat20/minters/cat20OpenMinter.scrypt.tpl +1 -0
- package/artifacts/cat20/cat20.json +35 -35
- package/artifacts/cat20/cat20.scrypt +19 -19
- package/artifacts/cat20/cat20Admin.json +34 -34
- package/artifacts/cat20/cat20Admin.scrypt +24 -24
- package/artifacts/cat20/cat20GuardStateLib.json +22 -22
- package/artifacts/cat20/cat20GuardStateLib.scrypt +5 -5
- package/artifacts/cat20/cat20GuardVariants.json +2 -2
- package/artifacts/cat20/cat20GuardVariants.scrypt +1 -1
- package/artifacts/cat20/cat20Guard_12_12_2.json +29 -29
- package/artifacts/cat20/cat20Guard_12_12_2.scrypt +20 -20
- package/artifacts/cat20/cat20Guard_12_12_4.json +29 -29
- package/artifacts/cat20/cat20Guard_12_12_4.scrypt +20 -20
- package/artifacts/cat20/cat20Guard_6_6_2.json +29 -29
- package/artifacts/cat20/cat20Guard_6_6_2.scrypt +20 -20
- package/artifacts/cat20/cat20Guard_6_6_4.json +29 -29
- package/artifacts/cat20/cat20Guard_6_6_4.scrypt +20 -20
- package/artifacts/cat20/cat20StateLib.json +23 -23
- package/artifacts/cat20/cat20StateLib.scrypt +5 -5
- package/artifacts/cat20/minters/cat20ClosedMinter.json +32 -32
- package/artifacts/cat20/minters/cat20ClosedMinter.scrypt +19 -19
- package/artifacts/cat20/minters/cat20OpenMinter.json +34 -34
- package/artifacts/cat20/minters/cat20OpenMinter.scrypt +17 -16
- package/artifacts/cat20/types.json +5 -5
- package/artifacts/cat20/types.scrypt +5 -5
- package/artifacts/cat721/cat721.json +35 -35
- package/artifacts/cat721/cat721.scrypt +19 -19
- package/artifacts/cat721/cat721GuardStateLib.json +22 -22
- package/artifacts/cat721/cat721GuardStateLib.scrypt +5 -5
- package/artifacts/cat721/cat721GuardVariants.json +2 -2
- package/artifacts/cat721/cat721GuardVariants.scrypt +1 -1
- package/artifacts/cat721/cat721Guard_12_12_2.json +29 -29
- package/artifacts/cat721/cat721Guard_12_12_2.scrypt +20 -20
- package/artifacts/cat721/cat721Guard_12_12_4.json +29 -29
- package/artifacts/cat721/cat721Guard_12_12_4.scrypt +20 -20
- package/artifacts/cat721/cat721Guard_6_6_2.json +29 -29
- package/artifacts/cat721/cat721Guard_6_6_2.scrypt +20 -20
- package/artifacts/cat721/cat721Guard_6_6_4.json +29 -29
- package/artifacts/cat721/cat721Guard_6_6_4.scrypt +20 -20
- package/artifacts/cat721/cat721StateLib.json +23 -23
- package/artifacts/cat721/cat721StateLib.scrypt +5 -5
- package/artifacts/cat721/minters/cat721ClosedMinter.json +32 -32
- package/artifacts/cat721/minters/cat721ClosedMinter.scrypt +15 -15
- package/artifacts/cat721/minters/cat721OpenMintInfo.json +5 -5
- package/artifacts/cat721/minters/cat721OpenMintInfo.scrypt +4 -4
- package/artifacts/cat721/minters/cat721OpenMinter.json +37 -37
- package/artifacts/cat721/minters/cat721OpenMinter.scrypt +21 -21
- package/artifacts/cat721/minters/cat721OpenMinterMerkleTree.json +20 -20
- 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 +13 -13
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scrypt +18 -18
- package/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stdUtils.scrypt +18 -18
- 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 +9 -9
- package/artifacts/types.json +2 -2
- package/artifacts/types.scrypt +2 -2
- package/artifacts/utils/ownerUtils.json +15 -15
- package/artifacts/utils/ownerUtils.scrypt +3 -3
- package/dist/artifacts/cat20/cat20.json +35 -35
- package/dist/artifacts/cat20/cat20.scrypt +19 -19
- package/dist/artifacts/cat20/cat20Admin.json +34 -34
- package/dist/artifacts/cat20/cat20Admin.scrypt +24 -24
- package/dist/artifacts/cat20/cat20GuardStateLib.json +22 -22
- package/dist/artifacts/cat20/cat20GuardStateLib.scrypt +5 -5
- package/dist/artifacts/cat20/cat20GuardVariants.json +2 -2
- package/dist/artifacts/cat20/cat20GuardVariants.scrypt +1 -1
- package/dist/artifacts/cat20/cat20Guard_12_12_2.json +29 -29
- package/dist/artifacts/cat20/cat20Guard_12_12_2.scrypt +20 -20
- package/dist/artifacts/cat20/cat20Guard_12_12_4.json +29 -29
- package/dist/artifacts/cat20/cat20Guard_12_12_4.scrypt +20 -20
- package/dist/artifacts/cat20/cat20Guard_6_6_2.json +29 -29
- package/dist/artifacts/cat20/cat20Guard_6_6_2.scrypt +20 -20
- package/dist/artifacts/cat20/cat20Guard_6_6_4.json +29 -29
- package/dist/artifacts/cat20/cat20Guard_6_6_4.scrypt +20 -20
- package/dist/artifacts/cat20/cat20StateLib.json +23 -23
- package/dist/artifacts/cat20/cat20StateLib.scrypt +5 -5
- package/dist/artifacts/cat20/minters/cat20ClosedMinter.json +32 -32
- package/dist/artifacts/cat20/minters/cat20ClosedMinter.scrypt +19 -19
- package/dist/artifacts/cat20/minters/cat20OpenMinter.json +34 -34
- package/dist/artifacts/cat20/minters/cat20OpenMinter.scrypt +17 -16
- package/dist/artifacts/cat20/types.json +5 -5
- package/dist/artifacts/cat20/types.scrypt +5 -5
- package/dist/artifacts/cat721/cat721.json +35 -35
- package/dist/artifacts/cat721/cat721.scrypt +19 -19
- package/dist/artifacts/cat721/cat721GuardStateLib.json +22 -22
- package/dist/artifacts/cat721/cat721GuardStateLib.scrypt +5 -5
- package/dist/artifacts/cat721/cat721GuardVariants.json +2 -2
- package/dist/artifacts/cat721/cat721GuardVariants.scrypt +1 -1
- package/dist/artifacts/cat721/cat721Guard_12_12_2.json +29 -29
- package/dist/artifacts/cat721/cat721Guard_12_12_2.scrypt +20 -20
- package/dist/artifacts/cat721/cat721Guard_12_12_4.json +29 -29
- package/dist/artifacts/cat721/cat721Guard_12_12_4.scrypt +20 -20
- package/dist/artifacts/cat721/cat721Guard_6_6_2.json +29 -29
- package/dist/artifacts/cat721/cat721Guard_6_6_2.scrypt +20 -20
- package/dist/artifacts/cat721/cat721Guard_6_6_4.json +29 -29
- package/dist/artifacts/cat721/cat721Guard_6_6_4.scrypt +20 -20
- package/dist/artifacts/cat721/cat721StateLib.json +23 -23
- package/dist/artifacts/cat721/cat721StateLib.scrypt +5 -5
- package/dist/artifacts/cat721/minters/cat721ClosedMinter.json +32 -32
- package/dist/artifacts/cat721/minters/cat721ClosedMinter.scrypt +15 -15
- 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 +37 -37
- package/dist/artifacts/cat721/minters/cat721OpenMinter.scrypt +21 -21
- package/dist/artifacts/cat721/minters/cat721OpenMinterMerkleTree.json +20 -20
- 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 +13 -13
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/contextUtils.scrypt +18 -18
- package/dist/artifacts/scrypt-ts-opcat/assets/smart-contract/builtin-libs/stdUtils.scrypt +18 -18
- 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 +9 -9
- package/dist/artifacts/types.json +2 -2
- package/dist/artifacts/types.scrypt +2 -2
- package/dist/artifacts/utils/ownerUtils.json +15 -15
- package/dist/artifacts/utils/ownerUtils.scrypt +3 -3
- package/dist/cjs/contracts/cat20/minters/cat20OpenMinter.js +3 -0
- package/dist/cjs/contracts/cat20/minters/cat20OpenMinter.js.map +1 -1
- package/dist/esm/contracts/cat20/minters/cat20OpenMinter.js +3 -0
- package/dist/esm/contracts/cat20/minters/cat20OpenMinter.js.map +1 -1
- package/dist/types/contracts/cat20/minters/cat20OpenMinter.d.ts.map +1 -1
- package/package.json +4 -4
- package/scrypt.index.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
[[],[],[],[],[],[],[],[],[],[],[[9,0,41,13]],[[2,0,43,19],[8,0,43,2]],[[2,0,47,12],[6,0,47,2]],[[2,0,50,16],[6,0,50,2]],[[2,0,53,9],[6,0,53,2]],[[2,0,56,16],[8,0,56,2]],[[2,0,58,2],[14,0,59,21],[20,0,59,4],[37,0,60,14],[41,0,60,4],[51,0,61,18],[55,0,61,4],[69,0,62,11],[73,0,62,4],[80,0,63,17],[86,0,63,4]],[[4,0,66,4],[8,0,66,9],[25,0,66,4],[27,0,66,27]],[[4,0,67,4],[8,0,67,9],[18,0,67,4],[20,0,67,20]],[[4,0,68,4],[8,0,68,9],[22,0,68,4],[24,0,68,24]],[[4,0,69,4],[8,0,69,9],[15,0,69,4],[17,0,69,17]],[[4,0,70,4],[8,0,70,9],[22,0,70,4],[24,0,70,24]],[[4,0,72,4],[12,0,73,6],[16,0,73,11],[30,0,73,6],[33,0,73,27]],[[4,0,76,4],[12,0,77,6],[16,0,77,11],[23,0,77,6],[25,0,77,19]],[[4,0,80,4],[12,0,81,6],[16,0,81,11],[30,0,81,6],[33,0,81,27],[37,0,81,32]],[],[[2,0,87,2],[18,0,87,9],[23,0,89,15],[34,0,89,4],[45,0,90,25],[48,0,90,25],[52,0,90,4],[73,0,92,20],[80,0,92,4],[96,0,93,17],[100,0,93,4],[113,0,95,20],[117,0,95,4],[133,0,97,19],[137,0,97,4],[152,0,99,19],[166,0,99,4]],[],[],[],[],[],[],[],[],[],[],[],[[4,0,102,4],[46,0,102,11],[49,0,102,34]],[[4,0,105,4],[12,0,105,11],[26,0,105,11],[28,0,105,27]],[[33,0,
|
|
1
|
+
[[],[],[],[],[],[],[],[],[],[],[[9,0,41,13]],[[2,0,43,19],[8,0,43,2]],[[2,0,47,12],[6,0,47,2]],[[2,0,50,16],[6,0,50,2]],[[2,0,53,9],[6,0,53,2]],[[2,0,56,16],[8,0,56,2]],[[2,0,58,2],[14,0,59,21],[20,0,59,4],[37,0,60,14],[41,0,60,4],[51,0,61,18],[55,0,61,4],[69,0,62,11],[73,0,62,4],[80,0,63,17],[86,0,63,4]],[[4,0,66,4],[8,0,66,9],[25,0,66,4],[27,0,66,27]],[[4,0,67,4],[8,0,67,9],[18,0,67,4],[20,0,67,20]],[[4,0,68,4],[8,0,68,9],[22,0,68,4],[24,0,68,24]],[[4,0,69,4],[8,0,69,9],[15,0,69,4],[17,0,69,17]],[[4,0,70,4],[8,0,70,9],[22,0,70,4],[24,0,70,24]],[[4,0,72,4],[12,0,73,6],[16,0,73,11],[30,0,73,6],[33,0,73,27]],[[4,0,76,4],[12,0,77,6],[16,0,77,11],[23,0,77,6],[25,0,77,19]],[[4,0,80,4],[12,0,81,6],[16,0,81,11],[30,0,81,6],[33,0,81,27],[37,0,81,32]],[],[[2,0,87,2],[18,0,87,9],[23,0,89,15],[34,0,89,4],[45,0,90,25],[48,0,90,25],[52,0,90,4],[73,0,92,20],[80,0,92,4],[96,0,93,17],[100,0,93,4],[113,0,95,20],[117,0,95,4],[133,0,97,19],[137,0,97,4],[152,0,99,19],[166,0,99,4]],[],[],[],[],[],[],[],[],[],[],[],[[4,0,102,4],[46,0,102,11],[49,0,102,34]],[[4,0,105,4],[12,0,105,11],[26,0,105,11],[28,0,105,27]],[[4,0,109,4],[33,0,109,22],[49,0,109,11],[52,0,109,40],[56,0,109,45]],[[33,0,112,29],[81,0,112,44],[85,0,112,49]],[[4,0,115,24],[10,0,115,8],[26,0,115,37]],[[4,0,116,32],[8,0,116,8],[32,0,116,32]],[[15,0,117,13]],[[8,0,118,29],[12,0,118,12],[29,0,118,29],[49,0,118,49]],[[8,0,119,6],[11,0,119,10],[26,0,119,10],[28,0,119,27]],[[10,0,121,8],[18,0,121,15],[33,0,121,15],[35,0,121,32]],[[10,0,122,8],[32,0,122,8],[35,0,122,33]],[[10,0,123,8],[24,0,123,8],[27,0,123,25],[34,0,123,33],[91,0,125,10],[107,0,126,10],[114,0,126,17],[129,0,126,33],[145,0,126,48],[167,0,127,40],[185,0,128,29]],[],[],[[4,0,136,4],[17,0,136,18],[29,0,136,29]],[[4,0,137,27],[11,0,137,10],[28,0,137,27],[35,0,137,34],[48,0,137,48],[64,0,137,63]],[[4,0,138,24],[10,0,138,10],[24,0,138,24],[31,0,138,32],[69,0,139,17],[87,0,140,6],[102,0,141,6]],[[4,0,143,20],[8,0,143,10],[18,0,143,20],[22,0,143,25],[36,0,143,20],[38,0,143,40],[42,0,143,45]],[[4,0,144,4],[7,0,144,8],[29,0,144,20],[46,0,144,8],[49,0,144,39],[57,0,144,39],[59,0,144,49]],[[8,0,146,6],[16,0,146,13],[20,0,146,18],[30,0,146,13],[54,0,146,41],[70,0,146,30],[72,0,146,58],[76,0,146,63]],[[8,0,148,6],[18,0,148,17],[34,0,148,32],[50,0,148,48],[54,0,148,53]],[[8,0,149,6],[16,0,149,13],[17,0,149,27],[33,0,149,27],[113,0,149,18],[121,0,149,13],[122,0,149,27],[135,0,149,40],[149,0,149,13]],[[8,0,151,6],[16,0,151,13],[38,0,151,13],[62,0,151,49]],[[8,0,152,6],[16,0,152,13],[25,0,152,23],[33,0,152,13],[36,0,152,33]],[],[[8,0,155,6],[11,0,155,10],[33,0,155,22]],[[10,0,157,8],[18,0,157,15],[22,0,157,20],[32,0,157,15],[56,0,157,43]],[[10,0,158,8],[18,0,158,15],[22,0,158,20],[36,0,158,15],[39,0,158,36]],[],[[8,0,160,6],[16,0,160,13],[38,0,160,13],[62,0,160,49],[78,0,160,38],[80,0,160,66]],[[8,0,161,6],[16,0,161,13],[25,0,161,23],[33,0,161,13],[36,0,161,33],[40,0,161,38]],[],[[4,0,165,25],[10,0,165,10]],[],[[4,0,168,4],[20,0,168,29],[34,0,168,29],[36,0,168,45],[48,0,168,29],[50,0,168,59]],[],[],[],[],[],[],[],[]]
|
|
@@ -38,6 +38,7 @@ contract CAT20OpenMinter {
|
|
|
38
38
|
|
|
39
39
|
require(__scrypt_ts_shPreimage.inputIndex == 0);
|
|
40
40
|
require(tokenSatoshis > 0);
|
|
41
|
+
require(__scrypt_ts_nextState.remainingCount <= this.maxCount);
|
|
41
42
|
Backtrace.verifyFromOutpoint(backtraceInfo, __scrypt_ts_prevout.outputIndex, this.genesisOutpoint, __scrypt_ts_shPreimage.spentScriptHash, __scrypt_ts_prevTxHashPreimage.inputList);
|
|
42
43
|
bytes minterOutputs = b'';
|
|
43
44
|
int sumNextRemainingCount = 0;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 10,
|
|
3
3
|
"compilerVersion": "1.22.0+commit.47800da",
|
|
4
|
-
"contract": "
|
|
4
|
+
"contract": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20",
|
|
5
5
|
"md5": "0e31e1d6cea6a36e721561337c6851f0",
|
|
6
6
|
"structs": [
|
|
7
7
|
{
|
|
8
|
-
"name": "
|
|
8
|
+
"name": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20GuardConstState",
|
|
9
9
|
"params": [
|
|
10
10
|
{
|
|
11
11
|
"name": "deployerAddr",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"genericTypes": []
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
|
-
"name": "
|
|
26
|
+
"name": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20State",
|
|
27
27
|
"params": [
|
|
28
28
|
{
|
|
29
29
|
"name": "ownerAddr",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"genericTypes": []
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
"name": "
|
|
40
|
+
"name": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20ClosedMinterState",
|
|
41
41
|
"params": [
|
|
42
42
|
{
|
|
43
43
|
"name": "tokenScriptHash",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"genericTypes": []
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
"name": "
|
|
50
|
+
"name": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20OpenMinterState",
|
|
51
51
|
"params": [
|
|
52
52
|
{
|
|
53
53
|
"name": "tokenScriptHash",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"genericTypes": []
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
|
-
"name": "
|
|
68
|
+
"name": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20AdminState",
|
|
69
69
|
"params": [
|
|
70
70
|
{
|
|
71
71
|
"name": "tag",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"genericTypes": []
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
|
-
"name": "
|
|
82
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__TxOut",
|
|
83
83
|
"params": [
|
|
84
84
|
{
|
|
85
85
|
"name": "scriptHash",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"genericTypes": []
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
|
-
"name": "
|
|
100
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__TxIn",
|
|
101
101
|
"params": [
|
|
102
102
|
{
|
|
103
103
|
"name": "prevTxHash",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"genericTypes": []
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
|
-
"name": "
|
|
122
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__TxHashPreimage",
|
|
123
123
|
"params": [
|
|
124
124
|
{
|
|
125
125
|
"name": "version",
|
|
@@ -141,11 +141,11 @@
|
|
|
141
141
|
"genericTypes": []
|
|
142
142
|
},
|
|
143
143
|
{
|
|
144
|
-
"name": "
|
|
144
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__BacktraceInfo",
|
|
145
145
|
"params": [
|
|
146
146
|
{
|
|
147
147
|
"name": "prevTxInput",
|
|
148
|
-
"type": "
|
|
148
|
+
"type": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__TxIn"
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
151
|
"name": "prevTxInputIndex",
|
|
@@ -153,13 +153,13 @@
|
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
"name": "prevPrevTxPreimage",
|
|
156
|
-
"type": "
|
|
156
|
+
"type": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__TxHashPreimage"
|
|
157
157
|
}
|
|
158
158
|
],
|
|
159
159
|
"genericTypes": []
|
|
160
160
|
},
|
|
161
161
|
{
|
|
162
|
-
"name": "
|
|
162
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__SHPreimage",
|
|
163
163
|
"params": [
|
|
164
164
|
{
|
|
165
165
|
"name": "nVersion",
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
"genericTypes": []
|
|
226
226
|
},
|
|
227
227
|
{
|
|
228
|
-
"name": "
|
|
228
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__Outpoint",
|
|
229
229
|
"params": [
|
|
230
230
|
{
|
|
231
231
|
"name": "txHash",
|
|
@@ -239,7 +239,7 @@
|
|
|
239
239
|
"genericTypes": []
|
|
240
240
|
},
|
|
241
241
|
{
|
|
242
|
-
"name": "
|
|
242
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ChangeInfo",
|
|
243
243
|
"params": [
|
|
244
244
|
{
|
|
245
245
|
"name": "pubkeyhash",
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
"genericTypes": []
|
|
258
258
|
},
|
|
259
259
|
{
|
|
260
|
-
"name": "
|
|
260
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ChainTxVerifyResponse",
|
|
261
261
|
"params": [
|
|
262
262
|
{
|
|
263
263
|
"name": "prevPrevScript",
|
|
@@ -271,7 +271,7 @@
|
|
|
271
271
|
"genericTypes": []
|
|
272
272
|
},
|
|
273
273
|
{
|
|
274
|
-
"name": "
|
|
274
|
+
"name": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20ContractUnlockArgs",
|
|
275
275
|
"params": [
|
|
276
276
|
{
|
|
277
277
|
"name": "spendType",
|
|
@@ -293,7 +293,7 @@
|
|
|
293
293
|
"genericTypes": []
|
|
294
294
|
},
|
|
295
295
|
{
|
|
296
|
-
"name": "
|
|
296
|
+
"name": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT721ContractUnlockArgs",
|
|
297
297
|
"params": [
|
|
298
298
|
{
|
|
299
299
|
"name": "userPubKey",
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
"genericTypes": []
|
|
312
312
|
},
|
|
313
313
|
{
|
|
314
|
-
"name": "
|
|
314
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ReadVarintResult",
|
|
315
315
|
"params": [
|
|
316
316
|
{
|
|
317
317
|
"name": "data",
|
|
@@ -327,50 +327,50 @@
|
|
|
327
327
|
],
|
|
328
328
|
"library": [
|
|
329
329
|
{
|
|
330
|
-
"name": "
|
|
330
|
+
"name": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20GuardVariants",
|
|
331
331
|
"params": [],
|
|
332
332
|
"properties": [],
|
|
333
333
|
"genericTypes": []
|
|
334
334
|
},
|
|
335
335
|
{
|
|
336
|
-
"name": "
|
|
336
|
+
"name": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__OwnerUtils",
|
|
337
337
|
"params": [],
|
|
338
338
|
"properties": [],
|
|
339
339
|
"genericTypes": []
|
|
340
340
|
},
|
|
341
341
|
{
|
|
342
|
-
"name": "
|
|
342
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__TxUtils",
|
|
343
343
|
"params": [],
|
|
344
344
|
"properties": [],
|
|
345
345
|
"genericTypes": []
|
|
346
346
|
},
|
|
347
347
|
{
|
|
348
|
-
"name": "
|
|
348
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__TxHashPreimageUtils",
|
|
349
349
|
"params": [],
|
|
350
350
|
"properties": [],
|
|
351
351
|
"genericTypes": []
|
|
352
352
|
},
|
|
353
353
|
{
|
|
354
|
-
"name": "
|
|
354
|
+
"name": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20GuardStateLib",
|
|
355
355
|
"params": [],
|
|
356
356
|
"properties": [],
|
|
357
357
|
"genericTypes": [],
|
|
358
|
-
"stateType": "
|
|
358
|
+
"stateType": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20GuardConstState"
|
|
359
359
|
},
|
|
360
360
|
{
|
|
361
|
-
"name": "
|
|
361
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__Backtrace",
|
|
362
362
|
"params": [],
|
|
363
363
|
"properties": [],
|
|
364
364
|
"genericTypes": []
|
|
365
365
|
},
|
|
366
366
|
{
|
|
367
|
-
"name": "
|
|
367
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ContextUtils",
|
|
368
368
|
"params": [],
|
|
369
369
|
"properties": [],
|
|
370
370
|
"genericTypes": []
|
|
371
371
|
},
|
|
372
372
|
{
|
|
373
|
-
"name": "
|
|
373
|
+
"name": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__StdUtils",
|
|
374
374
|
"params": [],
|
|
375
375
|
"properties": [],
|
|
376
376
|
"genericTypes": []
|
|
@@ -385,11 +385,11 @@
|
|
|
385
385
|
"params": [
|
|
386
386
|
{
|
|
387
387
|
"name": "unlockArgs",
|
|
388
|
-
"type": "
|
|
388
|
+
"type": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20ContractUnlockArgs"
|
|
389
389
|
},
|
|
390
390
|
{
|
|
391
391
|
"name": "guardState",
|
|
392
|
-
"type": "
|
|
392
|
+
"type": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20GuardConstState"
|
|
393
393
|
},
|
|
394
394
|
{
|
|
395
395
|
"name": "guardInputIndex",
|
|
@@ -397,11 +397,11 @@
|
|
|
397
397
|
},
|
|
398
398
|
{
|
|
399
399
|
"name": "backtraceInfo",
|
|
400
|
-
"type": "
|
|
400
|
+
"type": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__BacktraceInfo"
|
|
401
401
|
},
|
|
402
402
|
{
|
|
403
403
|
"name": "__scrypt_ts_shPreimage",
|
|
404
|
-
"type": "
|
|
404
|
+
"type": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__SHPreimage"
|
|
405
405
|
},
|
|
406
406
|
{
|
|
407
407
|
"name": "__scrypt_ts_preimageSig",
|
|
@@ -409,7 +409,7 @@
|
|
|
409
409
|
},
|
|
410
410
|
{
|
|
411
411
|
"name": "__scrypt_ts_curState",
|
|
412
|
-
"type": "
|
|
412
|
+
"type": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20State"
|
|
413
413
|
},
|
|
414
414
|
{
|
|
415
415
|
"name": "__scrypt_ts_spentAmounts",
|
|
@@ -425,7 +425,7 @@
|
|
|
425
425
|
},
|
|
426
426
|
{
|
|
427
427
|
"name": "__scrypt_ts_prevTxHashPreimage",
|
|
428
|
-
"type": "
|
|
428
|
+
"type": "_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__TxHashPreimage"
|
|
429
429
|
}
|
|
430
430
|
]
|
|
431
431
|
},
|
|
@@ -448,7 +448,7 @@
|
|
|
448
448
|
}
|
|
449
449
|
],
|
|
450
450
|
"stateProps": [],
|
|
451
|
-
"stateType": "
|
|
451
|
+
"stateType": "_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20State",
|
|
452
452
|
"buildType": "release",
|
|
453
453
|
"file": "../cat20.scrypt",
|
|
454
454
|
"hex": "20601e909c283e225292d842557615ea08baf192d9e0530024d9cecf9eb91ab73c20babfe958552a9a6703a7b0cbb04042224ba7baa9fbbbf46103017aeeb81ee6df20be2a9bf514987adf49314cdb1fb76aa604fafd798039aaaf2d9b507faf6e9e9f20516ac274a191c8e5183cdb883b70b83e07f0358e9eb50c17e38fbd52554be72a01fd01fe01ff2102ba79df5f8ae7604a9830f03c7933028186aede0675a16f025dc4f8be8eec03825779577957795779000000<minterScriptHash><hasAdmin><adminScriptHash>5279567a757171557a78557a75547a547a547a547a76547a7572537a786376827701209d67760088686d75011979519d01187901197982778c7f77011a795280517f75007f7787630119795280517f770100876700686301187901197982778c7f75007f770128790128790128790128790128790128790128790128790128790128790128790128790128790128790128795e798277549d5d79827701209d5c7900a2695b79827701249d5a79827701209d5979827701209d587900a26957798277549d5679827701209d5579827701209d5479827701209d5379827701209d5279827701209d7800a26976519c6476529c6751686476539c67516864760281009c67516864760282009c67516864760283009c675168695e795e797e5d79546e8b806e7c7f75007f6b6d6d6c7e5c797e5b797e5a797e5979767600a2637609ffffffffffffffff00a16700686976586e8b806e7c7f75007f6b6d6d6d6c7e58797e57797e56797e55797e54797e53797e5279546e8b806e7c7f75007f6b6d6d6c7e7854807e6b6d6d6d6d6d6d6d6c77a85979ba670068630118795879ac6700686901157901207978aa7888785878827d77527997009d6e7c966b6d6d6c770114790120796f75aa527988765379012078827d77527997009d6e7c967777779d6d75011579011f796f75aa527988765379012078827d77527997009d6e7c967777779d6d75011879011879012579011b79011b79788277528052797e78827752807e787e5279a95279a97ea97ea8777788011579011579011579011579012b79547954795479547953798277549d5279014878827d77527997009d6e7c967777775279014878827d77527997009d6e7c96777777557952790000527902fd009f637551675279030000019f63011c797b757c52776752790500000000019f63011b797b757c547767011a797b757c587768686878537952796e8b806e7c7f75007f6b6d6d6c7e7777777e55797e780000527902fd009f637551675279030000019f63011c797b757c52776752790500000000019f63011b797b757c547767011a797b757c587768686878537952796e8b806e7c7f75007f6b6d6d6c7e7777777e54797e53797eaa6b6d6d6d6c6e7c01207f75007f77886d6d6d0133790133790133790133790133790133790133790133790133795e79013079011f795b795b795b795b795b795b795b795b795b7959797656798b0148957f7556790148957f775a795a795a795a795379827701209d76827701209d707600a2637605ffffffff00a16700686976546e8b806e7c7f75007f6b6d6d6c777e787e52797600a2637605ffffffff00a16700686976546e8b806e7c7f75007f6b6d6d6c777e6b6d6d6c88597976567956795679567953798277549d5279014878827d77527997009d6e7c967777775279014878827d77527997009d6e7c96777777557952790000527902fd009f637551675279030000019f63012f797b757c52776752790500000000019f63012e797b757c547767012d797b757c587768686878537952796e8b806e7c7f75007f6b6d6d6c7e7777777e55797e780000527902fd009f637551675279030000019f63012f797b757c52776752790500000000019f63012e797b757c547767012d797b757c587768686878537952796e8b806e7c7f75007f6b6d6d6c7e7777777e54797e53797eaa6b6d6d6d6c8853795a7901489558930120937f755a7901489558937f77785b797600a2637605ffffffff00a16700686976546e8b806e7c7f75007f6b6d6d6c777e787c726d726d726d726d726d726d785579876478547987675168696d6d6d6d6d6d6d01347900a26301347953799f67006869013a79013a79013a79013a79013a79013a79012c79012f79013c79011f790121797853796e8b0120957f75780120957f7777777601167901167901167901167953766b796c756b6d6d6c87647601167901167901167901167952766b796c756b6d6d6c87675168647601167901167901167901167951766b796c756b6d6d6c87675168647601167901167901167901167900766b796c756b6d6d6c87675168697854796e8b0120957f75780120957f7777775c795c795c795c795c795c7955798277528056797e557955795579557953766b796c756b6d6d6c827752807e557955795579557953766b796c756b6d6d6c7e557955795579557952766b796c756b6d6d6c827752807e557955795579557952766b796c756b6d6d6c7e557955795579557951766b796c756b6d6d6c827752807e557955795579557951766b796c756b6d6d6c7e557955795579557900766b796c756b6d6d6c827752807e557955795579557900766b796c756b6d6d6c7e78827752807e787e5679a9567956795679567953766b796c756b6d6d6ca97e567956795679567952766b796c756b6d6d6ca97e567956795679567951766b796c756b6d6d6ca97e567956795679567900766b796c756b6d6d6ca97e5279a97ea97ea86b6d6d6d6c88567955798b7f7555797f77815b795b795b795b795455797600a26976549f69948c766b796c756b6d6d6c5779886d6d6d6d6d6d75013e7900a263013e7952a16700686900013f79519c64013f79529c67516863013c7900a269013c7954799f69013c79012a799e69013c790136799e69011779013d796e8b0120957f75780120957f6b6d6d6c68013f79009c63013e795379787676827701219d750376a91478a97e0288ac7e7778886d013d79013e7982778c7f77515280517f75007f778763515280517f7701008767006863013d79013f79ac6700686967013f79519c6352797888675579697655798868686d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d51"
|
|
@@ -12,8 +12,8 @@ import "../scrypt-ts-opcat/assets/smart-contract/builtin-libs/backtrace.scrypt";
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
contract
|
|
16
|
-
static const Sha256[4] guardVariantScriptHashes = [
|
|
15
|
+
contract _opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20 {
|
|
16
|
+
static const Sha256[4] guardVariantScriptHashes = [_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20GuardVariants.CANONICAL_GUARD_6_6_2, _opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20GuardVariants.CANONICAL_GUARD_6_6_4, _opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20GuardVariants.CANONICAL_GUARD_12_12_2, _opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20GuardVariants.CANONICAL_GUARD_12_12_4];
|
|
17
17
|
bytes minterScriptHash;
|
|
18
18
|
bool hasAdmin;
|
|
19
19
|
bytes adminScriptHash;
|
|
@@ -27,23 +27,23 @@ contract _opcat_labs_cat_sdk_4_0_0__rs__CAT20 {
|
|
|
27
27
|
require(adminScriptHash == b'');
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
public function unlock(
|
|
30
|
+
public function unlock(_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20ContractUnlockArgs unlockArgs, _opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20GuardConstState guardState, int guardInputIndex, _opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__BacktraceInfo backtraceInfo, _opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__SHPreimage __scrypt_ts_shPreimage, Sig __scrypt_ts_preimageSig, _opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20State __scrypt_ts_curState, bytes __scrypt_ts_spentAmounts, bytes __scrypt_ts_spentDataHashes, bytes __scrypt_ts_spentScriptHashes, _opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__TxHashPreimage __scrypt_ts_prevTxHashPreimage) {
|
|
31
31
|
require(__scrypt_ts_shPreimage.sigHashType == 1);
|
|
32
|
-
require(__scrypt_ts_preimageSig[len(__scrypt_ts_preimageSig) - 1 : ] == num2bin(__scrypt_ts_shPreimage.sigHashType, 2)[0 : 1] && num2bin(__scrypt_ts_shPreimage.sigHashType, 2)[1 : ] == b'00' && checkDataSig(Sig(__scrypt_ts_preimageSig[0 : len(__scrypt_ts_preimageSig) - 1]), sha256(
|
|
32
|
+
require(__scrypt_ts_preimageSig[len(__scrypt_ts_preimageSig) - 1 : ] == num2bin(__scrypt_ts_shPreimage.sigHashType, 2)[0 : 1] && num2bin(__scrypt_ts_shPreimage.sigHashType, 2)[1 : ] == b'00' && checkDataSig(Sig(__scrypt_ts_preimageSig[0 : len(__scrypt_ts_preimageSig) - 1]), sha256(_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ContextUtils.serializeSHPreimage(__scrypt_ts_shPreimage)), _opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ContextUtils.pubKey) && checkSig(__scrypt_ts_preimageSig, _opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ContextUtils.pubKey));
|
|
33
33
|
|
|
34
|
-
int __scrypt_ts_inputCount =
|
|
34
|
+
int __scrypt_ts_inputCount = _opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ContextUtils.checkSpentAmounts(__scrypt_ts_spentAmounts, __scrypt_ts_shPreimage.hashSpentAmounts);
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ContextUtils.checkSpentScripts(__scrypt_ts_spentScriptHashes, __scrypt_ts_shPreimage.hashSpentScriptHashes, __scrypt_ts_inputCount);
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ContextUtils.checkSpentDataHashes(__scrypt_ts_spentDataHashes, __scrypt_ts_shPreimage.hashSpentDataHashes, __scrypt_ts_inputCount);
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20State __scrypt_ts_nextState = __scrypt_ts_curState;
|
|
41
41
|
|
|
42
|
-
require(__scrypt_ts_shPreimage.spentDataHash ==
|
|
42
|
+
require(__scrypt_ts_shPreimage.spentDataHash == _opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20.stateHash(__scrypt_ts_curState));
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__Backtrace.checkPrevTxHashPreimage(__scrypt_ts_prevTxHashPreimage, __scrypt_ts_shPreimage.outpoint);
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__Backtrace.verifyFromScript(backtraceInfo, this.minterScriptHash, __scrypt_ts_shPreimage.spentScriptHash, __scrypt_ts_prevTxHashPreimage.inputList);
|
|
47
47
|
require(guardInputIndex >= 0 && guardInputIndex < __scrypt_ts_inputCount);
|
|
48
48
|
this.checkGuard(guardState, __scrypt_ts_shPreimage.spentScriptHash, __scrypt_ts_shPreimage.inputIndex, guardInputIndex, __scrypt_ts_spentScriptHashes, __scrypt_ts_spentDataHashes);
|
|
49
49
|
require(unlockArgs.spendType >= 0 && unlockArgs.spendType <= 2);
|
|
@@ -53,10 +53,10 @@ contract _opcat_labs_cat_sdk_4_0_0__rs__CAT20 {
|
|
|
53
53
|
require(unlockArgs.spendScriptInputIndex < __scrypt_ts_inputCount);
|
|
54
54
|
require(unlockArgs.spendScriptInputIndex != __scrypt_ts_shPreimage.inputIndex);
|
|
55
55
|
require(unlockArgs.spendScriptInputIndex != guardInputIndex);
|
|
56
|
-
spentScriptHash =
|
|
56
|
+
spentScriptHash = _opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ContextUtils.getSpentScriptHash(__scrypt_ts_spentScriptHashes, unlockArgs.spendScriptInputIndex);
|
|
57
57
|
}
|
|
58
58
|
if(unlockArgs.spendType == 0) {
|
|
59
|
-
|
|
59
|
+
_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__OwnerUtils.checkUserOwner(unlockArgs.userPubKey, __scrypt_ts_nextState.ownerAddr);
|
|
60
60
|
require((unlockArgs.userSig[len(unlockArgs.userSig) - 1 : ] == num2bin(1, 2)[0 : 1] && num2bin(1, 2)[1 : ] == b'00' && checkSig(unlockArgs.userSig, unlockArgs.userPubKey)));
|
|
61
61
|
} else if(unlockArgs.spendType == 1) {
|
|
62
62
|
require(__scrypt_ts_nextState.ownerAddr == spentScriptHash);
|
|
@@ -66,18 +66,18 @@ contract _opcat_labs_cat_sdk_4_0_0__rs__CAT20 {
|
|
|
66
66
|
}
|
|
67
67
|
require(true);
|
|
68
68
|
}
|
|
69
|
-
function checkGuard(
|
|
70
|
-
bytes guardScriptHash =
|
|
71
|
-
require(guardScriptHash ==
|
|
72
|
-
require(
|
|
69
|
+
function checkGuard(_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20GuardConstState guardState, bytes t_cat20ScriptHash, int t_cat20InputIndexVal, int guardInputIndexVal, bytes t_spentScriptsCtx, bytes t_spentDataHashesCtx) : bool {
|
|
70
|
+
bytes guardScriptHash = _opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ContextUtils.getSpentScriptHash(t_spentScriptsCtx, guardInputIndexVal);
|
|
71
|
+
require(guardScriptHash == _opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20.guardVariantScriptHashes[0] || guardScriptHash == _opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20.guardVariantScriptHashes[1] || guardScriptHash == _opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20.guardVariantScriptHashes[2] || guardScriptHash == _opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20.guardVariantScriptHashes[3]);
|
|
72
|
+
require(_opcat_labs_scrypt_ts_opcat_4_1_0_beta_6ff2628d_20260307__rs__ContextUtils.getSpentDataHash(t_spentDataHashesCtx, guardInputIndexVal) == _opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20GuardStateLib.stateHash(guardState));
|
|
73
73
|
int tokenScriptIndex = unpack(guardState.tokenScriptIndexes[t_cat20InputIndexVal : t_cat20InputIndexVal + 1]);
|
|
74
74
|
require(guardState.tokenScriptHashes[(tokenScriptIndex)] == t_cat20ScriptHash);
|
|
75
75
|
return true;
|
|
76
76
|
}
|
|
77
|
-
static function serializeState(
|
|
77
|
+
static function serializeState(_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20State __scrypt_ts_curState): bytes {
|
|
78
78
|
return num2bin(len(__scrypt_ts_curState.ownerAddr), 2) + __scrypt_ts_curState.ownerAddr + num2bin(len(pack(__scrypt_ts_curState.amount)), 2) + pack(__scrypt_ts_curState.amount) + hash160(hash160(__scrypt_ts_curState.ownerAddr) + hash160(pack(__scrypt_ts_curState.amount)));
|
|
79
79
|
}
|
|
80
|
-
static function stateHash(
|
|
80
|
+
static function stateHash(_opcat_labs_cat_sdk_4_1_0_beta_6ff2628d_20260307__rs__CAT20State __scrypt_ts_curState): bytes {
|
|
81
81
|
return sha256(num2bin(len(__scrypt_ts_curState.ownerAddr), 2) + __scrypt_ts_curState.ownerAddr + num2bin(len(pack(__scrypt_ts_curState.amount)), 2) + pack(__scrypt_ts_curState.amount) + hash160(hash160(__scrypt_ts_curState.ownerAddr) + hash160(pack(__scrypt_ts_curState.amount))));
|
|
82
82
|
}
|
|
83
83
|
}
|