@@ -17,7 +17,8 @@ public class ProposalUtil {
1717 private static final long MAX_SUPPLY = 100_000_000_000L ;
1818 private static final String MAX_SUPPLY_ERROR = "Bad chain parameter value, valid range is [0, 100_000_000_000L]" ;
1919
20- public static void validator (DynamicPropertiesStore dynamicPropertiesStore , ForkController forkController ,
20+ public static void validator (DynamicPropertiesStore dynamicPropertiesStore ,
21+ ForkController forkController ,
2122 long code , long value )
2223 throws ContractValidateException {
2324 ProposalType proposalType = ProposalType .getEnum (code );
@@ -45,7 +46,7 @@ public static void validator(DynamicPropertiesStore dynamicPropertiesStore, Fork
4546 case ALLOW_CREATION_OF_CONTRACTS : {
4647 if (value != 1 ) {
4748 throw new ContractValidateException (
48- PRE_VALUE_NOT_ONE_ERROR + "ALLOW_CREATION_OF_CONTRACTS" + VALUE_NOT_ONE_ERROR );
49+ PRE_VALUE_NOT_ONE_ERROR + "ALLOW_CREATION_OF_CONTRACTS" + VALUE_NOT_ONE_ERROR );
4950 }
5051 break ;
5152 }
@@ -57,7 +58,7 @@ public static void validator(DynamicPropertiesStore dynamicPropertiesStore, Fork
5758
5859 if (value != 1 ) {
5960 throw new ContractValidateException (
60- PRE_VALUE_NOT_ONE_ERROR + "REMOVE_THE_POWER_OF_THE_GR" + VALUE_NOT_ONE_ERROR );
61+ PRE_VALUE_NOT_ONE_ERROR + "REMOVE_THE_POWER_OF_THE_GR" + VALUE_NOT_ONE_ERROR );
6162 }
6263 break ;
6364 }
@@ -73,21 +74,21 @@ public static void validator(DynamicPropertiesStore dynamicPropertiesStore, Fork
7374 case ALLOW_UPDATE_ACCOUNT_NAME : {
7475 if (value != 1 ) {
7576 throw new ContractValidateException (
76- PRE_VALUE_NOT_ONE_ERROR + "ALLOW_UPDATE_ACCOUNT_NAME" + VALUE_NOT_ONE_ERROR );
77+ PRE_VALUE_NOT_ONE_ERROR + "ALLOW_UPDATE_ACCOUNT_NAME" + VALUE_NOT_ONE_ERROR );
7778 }
7879 break ;
7980 }
8081 case ALLOW_SAME_TOKEN_NAME : {
8182 if (value != 1 ) {
8283 throw new ContractValidateException (
83- PRE_VALUE_NOT_ONE_ERROR + "ALLOW_SAME_TOKEN_NAME" + VALUE_NOT_ONE_ERROR );
84+ PRE_VALUE_NOT_ONE_ERROR + "ALLOW_SAME_TOKEN_NAME" + VALUE_NOT_ONE_ERROR );
8485 }
8586 break ;
8687 }
8788 case ALLOW_DELEGATE_RESOURCE : {
8889 if (value != 1 ) {
8990 throw new ContractValidateException (
90- PRE_VALUE_NOT_ONE_ERROR + "ALLOW_DELEGATE_RESOURCE" + VALUE_NOT_ONE_ERROR );
91+ PRE_VALUE_NOT_ONE_ERROR + "ALLOW_DELEGATE_RESOURCE" + VALUE_NOT_ONE_ERROR );
9192 }
9293 break ;
9394 }
@@ -106,7 +107,7 @@ public static void validator(DynamicPropertiesStore dynamicPropertiesStore, Fork
106107 case ALLOW_TVM_TRANSFER_TRC10 : {
107108 if (value != 1 ) {
108109 throw new ContractValidateException (
109- PRE_VALUE_NOT_ONE_ERROR + "ALLOW_TVM_TRANSFER_TRC10" + VALUE_NOT_ONE_ERROR );
110+ PRE_VALUE_NOT_ONE_ERROR + "ALLOW_TVM_TRANSFER_TRC10" + VALUE_NOT_ONE_ERROR );
110111 }
111112 if (dynamicPropertiesStore .getAllowSameTokenName () == 0 ) {
112113 throw new ContractValidateException ("[ALLOW_SAME_TOKEN_NAME] proposal must be approved "
@@ -129,7 +130,7 @@ public static void validator(DynamicPropertiesStore dynamicPropertiesStore, Fork
129130 }
130131 if (value != 1 ) {
131132 throw new ContractValidateException (
132- PRE_VALUE_NOT_ONE_ERROR + "ALLOW_MULTI_SIGN" + VALUE_NOT_ONE_ERROR );
133+ PRE_VALUE_NOT_ONE_ERROR + "ALLOW_MULTI_SIGN" + VALUE_NOT_ONE_ERROR );
133134 }
134135 break ;
135136 }
@@ -139,7 +140,7 @@ public static void validator(DynamicPropertiesStore dynamicPropertiesStore, Fork
139140 }
140141 if (value != 1 ) {
141142 throw new ContractValidateException (
142- PRE_VALUE_NOT_ONE_ERROR + "ALLOW_ADAPTIVE_ENERGY" + VALUE_NOT_ONE_ERROR );
143+ PRE_VALUE_NOT_ONE_ERROR + "ALLOW_ADAPTIVE_ENERGY" + VALUE_NOT_ONE_ERROR );
143144 }
144145 break ;
145146 }
@@ -188,7 +189,7 @@ public static void validator(DynamicPropertiesStore dynamicPropertiesStore, Fork
188189 }
189190 if (value != 1 ) {
190191 throw new ContractValidateException (
191- PRE_VALUE_NOT_ONE_ERROR + "ALLOW_TVM_CONSTANTINOPLE" + VALUE_NOT_ONE_ERROR );
192+ PRE_VALUE_NOT_ONE_ERROR + "ALLOW_TVM_CONSTANTINOPLE" + VALUE_NOT_ONE_ERROR );
192193 }
193194 if (dynamicPropertiesStore .getAllowTvmTransferTrc10 () == 0 ) {
194195 throw new ContractValidateException (
@@ -204,7 +205,7 @@ public static void validator(DynamicPropertiesStore dynamicPropertiesStore, Fork
204205 }
205206 if (value != 1 ) {
206207 throw new ContractValidateException (
207- PRE_VALUE_NOT_ONE_ERROR + "ALLOW_TVM_SOLIDITY_059" + VALUE_NOT_ONE_ERROR );
208+ PRE_VALUE_NOT_ONE_ERROR + "ALLOW_TVM_SOLIDITY_059" + VALUE_NOT_ONE_ERROR );
208209 }
209210 if (dynamicPropertiesStore .getAllowCreationOfContracts () == 0 ) {
210211 throw new ContractValidateException (
@@ -316,6 +317,17 @@ public static void validator(DynamicPropertiesStore dynamicPropertiesStore, Fork
316317 }
317318 break ;
318319 }
320+ case ALLOW_SHIELDED_TRC20_TRANSACTION : {
321+ if (!forkController .pass (ForkBlockVersionEnum .VERSION_4_0 )) {
322+ throw new ContractValidateException (
323+ "Bad chain parameter id [ALLOW_SHIELDED_TRC20_TRANSACTION]" );
324+ }
325+ if (value != 1 && value != 0 ) {
326+ throw new ContractValidateException (
327+ "This value[ALLOW_SHIELDED_TRC20_TRANSACTION] is only allowed to be 1 or 0" );
328+ }
329+ break ;
330+ }
319331 default :
320332 break ;
321333 }
@@ -349,15 +361,16 @@ public enum ProposalType { // current value, value range
349361 ALLOW_PROTO_FILTER_NUM (24 ), // 0, {0, 1}
350362 ALLOW_ACCOUNT_STATE_ROOT (25 ), // 1, {0, 1}
351363 ALLOW_TVM_CONSTANTINOPLE (26 ), // 1, {0, 1}
352- // ALLOW_SHIELDED_TRANSACTION(27), // 0, {0, 1}
353- // SHIELDED_TRANSACTION_FEE(28), // 10 TRX, [0, 10000] TRX
364+ // ALLOW_SHIELDED_TRANSACTION(27), // 0, {0, 1}
365+ // SHIELDED_TRANSACTION_FEE(28), // 10 TRX, [0, 10000] TRX
354366 ADAPTIVE_RESOURCE_LIMIT_MULTIPLIER (29 ), // 1000, [1, 10000]
355367 ALLOW_CHANGE_DELEGATION (30 ), // 1, {0, 1}
356368 WITNESS_127_PAY_PER_BLOCK (31 ), // 160 TRX, [0, 100000000000] TRX
357369 ALLOW_TVM_SOLIDITY_059 (32 ), // 1, {0, 1}
358370 ADAPTIVE_RESOURCE_LIMIT_TARGET_RATIO (33 ), // 10, [1, 1000]
359- // SHIELDED_TRANSACTION_CREATE_ACCOUNT_FEE(34), // 1 TRX, [0, 10000] TRX
371+ // SHIELDED_TRANSACTION_CREATE_ACCOUNT_FEE(34), // 1 TRX, [0, 10000] TRX
360372 FORBID_TRANSFER_TO_CONTRACT (35 ), // 1, {0, 1}
373+ ALLOW_SHIELDED_TRC20_TRANSACTION (39 ), // 1, 39
361374 ALLOW_PBFT (40 );// 1,40
362375
363376 private long code ;
0 commit comments