Skip to content

Commit 635526c

Browse files
tomatoishealthytaihaofudpnekoBlueHoopor
authored
Release v4.1.1 (#3492)
* refine code * optimize tvm release4.1 * remove unit test for proposal Stake and AssetIssue * remove unnecessary code * remove useless chainParameter Co-authored-by: taihaofu <[email protected]> Co-authored-by: xiangdepeng <[email protected]> Co-authored-by: jeancky <[email protected]>
1 parent fb79e45 commit 635526c

File tree

10 files changed

+18
-2946
lines changed

10 files changed

+18
-2946
lines changed

actuator/src/main/java/org/tron/core/vm/OpCode.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -585,20 +585,6 @@ public enum OpCode {
585585
CALLTOKENID(0xd3, 0, 1, OpCode.Tier.BaseTier),
586586

587587
ISCONTRACT(0xd4, 1, 1, OpCode.Tier.ExtTier),
588-
589-
STAKE(0xd5, 2, 1, OpCode.Tier.ExtTier),
590-
591-
UNSTAKE(0xd6, 0, 1, OpCode.Tier.ExtTier),
592-
593-
WITHDRAWREWARD(0xd7, 1, 1, OpCode.Tier.ExtTier),
594-
595-
REWARDBALANCE(0xd8, 1, 1, OpCode.Tier.ExtTier),
596-
597-
ISSRCANDIDATE(0xd9, 1, 1, OpCode.Tier.ExtTier),
598-
599-
TOKENISSUE(0xda, 1, 1, Tier.HighTier),
600-
601-
UPDATEASSET(0xdb, 1, 1, OpCode.Tier.HighTier),
602588
/**
603589
* (0xf0) Create a new account with associated code
604590
*/

actuator/src/main/java/org/tron/core/vm/VM.java

Lines changed: 9 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -92,36 +92,15 @@ public void step(Program program) {
9292

9393
try {
9494
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+
) {
125104
throw Program.Exception.invalidOpCode(program.getCurrentOp());
126105
}
127106

@@ -173,9 +152,7 @@ public void step(Program program) {
173152
break;
174153
case TOKENBALANCE:
175154
case BALANCE:
176-
case REWARDBALANCE:
177155
case ISCONTRACT:
178-
case ISSRCANDIDATE:
179156
energyCost = energyCosts.getBALANCE();
180157
break;
181158

@@ -317,19 +294,6 @@ && isDeadAccount(program, callAddressWord)
317294
energyCost =
318295
(long) energyCosts.getEXP_ENERGY() + energyCosts.getEXP_BYTE_ENERGY() * bytesOccupied;
319296
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;
333297
default:
334298
break;
335299
}
@@ -763,20 +727,6 @@ && isDeadAccount(program, callAddressWord)
763727
program.step();
764728
}
765729
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;
780730
case ISCONTRACT: {
781731
DataWord address = program.stackPop();
782732
DataWord isContract = program.isContract(address);
@@ -785,14 +735,6 @@ && isDeadAccount(program, callAddressWord)
785735
program.step();
786736
}
787737
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;
796738
case ORIGIN: {
797739
DataWord originAddress = program.getOriginAddress();
798740

@@ -1452,46 +1394,6 @@ && isDeadAccount(program, callAddressWord)
14521394
program.step();
14531395
break;
14541396
}
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-
}
14951397
case RETURN:
14961398
case REVERT: {
14971399
DataWord offset = program.stackPop();

framework/src/main/java/org/tron/core/Wallet.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -973,15 +973,15 @@ public Protocol.ChainParameters getChainParameters() {
973973
.setValue(dbManager.getDynamicPropertiesStore().getAllowPBFT())
974974
.build());
975975

976-
builder.addChainParameter(Protocol.ChainParameters.ChainParameter.newBuilder()
977-
.setKey("getAllowTvmStake")
978-
.setValue(dbManager.getDynamicPropertiesStore().getAllowTvmStake())
979-
.build());
980-
981-
builder.addChainParameter(Protocol.ChainParameters.ChainParameter.newBuilder()
982-
.setKey("getAllowTvmAssetIssue")
983-
.setValue(dbManager.getDynamicPropertiesStore().getAllowTvmAssetIssue())
984-
.build());
976+
//builder.addChainParameter(Protocol.ChainParameters.ChainParameter.newBuilder()
977+
// .setKey("getAllowTvmStake")
978+
// .setValue(dbManager.getDynamicPropertiesStore().getAllowTvmStake())
979+
// .build());
980+
981+
//builder.addChainParameter(Protocol.ChainParameters.ChainParameter.newBuilder()
982+
// .setKey("getAllowTvmAssetIssue")
983+
// .setValue(dbManager.getDynamicPropertiesStore().getAllowTvmAssetIssue())
984+
// .build());
985985

986986
return builder.build();
987987
}

0 commit comments

Comments
 (0)