@@ -92,36 +92,15 @@ public void step(Program program) {
92
92
93
93
try {
94
94
OpCode op = OpCode .code (program .getCurrentOp ());
95
- if (op == null ) {
96
- throw Program .Exception .invalidOpCode (program .getCurrentOp ());
97
- }
98
-
99
- // hard fork for 3.2
100
- if (!VMConfig .allowTvmTransferTrc10 ()
101
- && (op == CALLTOKEN || op == TOKENBALANCE || op == CALLTOKENVALUE || op == CALLTOKENID )) {
102
- throw Program .Exception .invalidOpCode (program .getCurrentOp ());
103
- }
104
-
105
- if (!VMConfig .allowTvmConstantinople ()
106
- && (op == SHL || op == SHR || op == SAR || op == CREATE2 || op == EXTCODEHASH )) {
107
- throw Program .Exception .invalidOpCode (program .getCurrentOp ());
108
- }
109
-
110
- if (!VMConfig .allowTvmSolidity059 () && op == ISCONTRACT ) {
111
- throw Program .Exception .invalidOpCode (program .getCurrentOp ());
112
- }
113
-
114
- if (!VMConfig .allowTvmIstanbul () && (op == SELFBALANCE || op == CHAINID )) {
115
- throw Program .Exception .invalidOpCode (program .getCurrentOp ());
116
- }
117
-
118
- if (!VMConfig .allowTvmStake ()
119
- && (op == ISSRCANDIDATE || op == REWARDBALANCE || op == STAKE || op == UNSTAKE
120
- || op == WITHDRAWREWARD )) {
121
- throw Program .Exception .invalidOpCode (program .getCurrentOp ());
122
- }
123
-
124
- if (!VMConfig .allowTvmAssetIssue () && (op == TOKENISSUE || op == UPDATEASSET )) {
95
+ if (op == null
96
+ || (!VMConfig .allowTvmTransferTrc10 ()
97
+ && (op == CALLTOKEN || op == TOKENBALANCE || op == CALLTOKENVALUE
98
+ || op == CALLTOKENID ))
99
+ || (!VMConfig .allowTvmConstantinople ()
100
+ && (op == SHL || op == SHR || op == SAR || op == CREATE2 || op == EXTCODEHASH ))
101
+ || (!VMConfig .allowTvmSolidity059 () && op == ISCONTRACT )
102
+ || (!VMConfig .allowTvmIstanbul () && (op == SELFBALANCE || op == CHAINID ))
103
+ ) {
125
104
throw Program .Exception .invalidOpCode (program .getCurrentOp ());
126
105
}
127
106
@@ -173,9 +152,7 @@ public void step(Program program) {
173
152
break ;
174
153
case TOKENBALANCE :
175
154
case BALANCE :
176
- case REWARDBALANCE :
177
155
case ISCONTRACT :
178
- case ISSRCANDIDATE :
179
156
energyCost = energyCosts .getBALANCE ();
180
157
break ;
181
158
@@ -317,19 +294,6 @@ && isDeadAccount(program, callAddressWord)
317
294
energyCost =
318
295
(long ) energyCosts .getEXP_ENERGY () + energyCosts .getEXP_BYTE_ENERGY () * bytesOccupied ;
319
296
break ;
320
- case STAKE :
321
- case UNSTAKE :
322
- energyCost = energyCosts .getStakeAndUnstake ();
323
- break ;
324
- case WITHDRAWREWARD :
325
- energyCost = energyCosts .getWithdrawReward ();
326
- break ;
327
- case TOKENISSUE :
328
- energyCost = energyCosts .getTokenIssue ();
329
- break ;
330
- case UPDATEASSET :
331
- energyCost = energyCosts .getUpdateAsset ();
332
- break ;
333
297
default :
334
298
break ;
335
299
}
@@ -763,20 +727,6 @@ && isDeadAccount(program, callAddressWord)
763
727
program .step ();
764
728
}
765
729
break ;
766
- case REWARDBALANCE : {
767
- DataWord address = program .stackPop ();
768
- DataWord rewardBalance = program .getRewardBalance (address );
769
-
770
- if (logger .isDebugEnabled ()) {
771
- hint = ADDRESS_LOG
772
- + Hex .toHexString (address .getLast20Bytes ())
773
- + " reward balance: " + rewardBalance .toString ();
774
- }
775
-
776
- program .stackPush (rewardBalance );
777
- program .step ();
778
- }
779
- break ;
780
730
case ISCONTRACT : {
781
731
DataWord address = program .stackPop ();
782
732
DataWord isContract = program .isContract (address );
@@ -785,14 +735,6 @@ && isDeadAccount(program, callAddressWord)
785
735
program .step ();
786
736
}
787
737
break ;
788
- case ISSRCANDIDATE : {
789
- DataWord address = program .stackPop ();
790
- DataWord isSRCandidate = program .isSRCandidate (address );
791
-
792
- program .stackPush (isSRCandidate );
793
- program .step ();
794
- }
795
- break ;
796
738
case ORIGIN : {
797
739
DataWord originAddress = program .getOriginAddress ();
798
740
@@ -1452,46 +1394,6 @@ && isDeadAccount(program, callAddressWord)
1452
1394
program .step ();
1453
1395
break ;
1454
1396
}
1455
- case STAKE : {
1456
- DataWord srAddress = program .stackPop ();
1457
- DataWord stakeAmount = program .stackPop ();
1458
- boolean result = program .stake (srAddress , stakeAmount );
1459
- program .stackPush (new DataWord (result ? 1 : 0 ));
1460
-
1461
- program .step ();
1462
- }
1463
- break ;
1464
- case UNSTAKE : {
1465
- boolean result = program .unstake ();
1466
- program .stackPush (new DataWord (result ? 1 : 0 ));
1467
-
1468
- program .step ();
1469
- }
1470
- break ;
1471
- case WITHDRAWREWARD : {
1472
- program .withdrawReward ();
1473
- program .step ();
1474
- }
1475
- break ;
1476
- case TOKENISSUE : {
1477
- DataWord name = program .stackPop ();
1478
- DataWord abbr = program .stackPop ();
1479
- DataWord totalSupply = program .stackPop ();
1480
- DataWord precision = program .stackPop ();
1481
-
1482
- program .tokenIssue (name , abbr , totalSupply , precision );
1483
- program .step ();
1484
- break ;
1485
- }
1486
- case UPDATEASSET : {
1487
- program .stackPop ();
1488
- DataWord urlDataOffs = program .stackPop ();
1489
- DataWord descriptionDataOffs = program .stackPop ();
1490
-
1491
- program .updateAsset (urlDataOffs , descriptionDataOffs );
1492
- program .step ();
1493
- break ;
1494
- }
1495
1397
case RETURN :
1496
1398
case REVERT : {
1497
1399
DataWord offset = program .stackPop ();
0 commit comments