Skip to content

Commit 32a9dbe

Browse files
committed
Add burntrx api test case
1 parent f09bedb commit 32a9dbe

File tree

3 files changed

+160
-34
lines changed

3 files changed

+160
-34
lines changed

framework/src/test/java/stest/tron/wallet/common/client/utils/HttpMethed.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2097,6 +2097,59 @@ public static HttpResponse getBlockBalance(String httpNode, Integer blockNum, St
20972097
return response;
20982098
}
20992099

2100+
/**
2101+
* constructor.
2102+
*/
2103+
public static Long getBurnTrx(String httpNode) {
2104+
try {
2105+
final String requestUrl = "http://" + httpNode + "/wallet/getburntrx";
2106+
JsonObject blockObj = new JsonObject();
2107+
response = createConnect(requestUrl, blockObj);
2108+
} catch (Exception e) {
2109+
e.printStackTrace();
2110+
httppost.releaseConnection();
2111+
return null;
2112+
}
2113+
responseContent = HttpMethed.parseResponseContent(response);
2114+
return responseContent.getLong("burnTrxAmount");
2115+
}
2116+
2117+
/**
2118+
* constructor.
2119+
*/
2120+
public static Long getBurnTrxFromSolidity(String httpNode) {
2121+
try {
2122+
final String requestUrl = "http://" + httpNode + "/walletsolidity/getburntrx";
2123+
JsonObject blockObj = new JsonObject();
2124+
response = createConnect(requestUrl, blockObj);
2125+
} catch (Exception e) {
2126+
e.printStackTrace();
2127+
httppost.releaseConnection();
2128+
return null;
2129+
}
2130+
responseContent = HttpMethed.parseResponseContent(response);
2131+
return responseContent.getLong("burnTrxAmount");
2132+
}
2133+
2134+
/**
2135+
* constructor.
2136+
*/
2137+
public static Long getBurnTrxFromPbft(String httpNode) {
2138+
try {
2139+
final String requestUrl = "http://" + httpNode + "/walletpbft/getburntrx";
2140+
JsonObject blockObj = new JsonObject();
2141+
response = createConnect(requestUrl, blockObj);
2142+
} catch (Exception e) {
2143+
e.printStackTrace();
2144+
httppost.releaseConnection();
2145+
return null;
2146+
}
2147+
responseContent = HttpMethed.parseResponseContent(response);
2148+
return responseContent.getLong("burnTrxAmount");
2149+
}
2150+
2151+
2152+
21002153

21012154
/**
21022155
* constructor.

framework/src/test/java/stest/tron/wallet/dailybuild/account/TransactionFee001.java

Lines changed: 84 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
import org.testng.annotations.BeforeSuite;
1717
import org.testng.annotations.Test;
1818
import org.tron.api.GrpcAPI;
19+
import org.tron.api.GrpcAPI.EmptyMessage;
1920
import org.tron.api.WalletGrpc;
21+
import org.tron.api.WalletSolidityGrpc;
2022
import org.tron.common.crypto.ECKey;
2123
import org.tron.common.parameter.CommonParameter;
2224
import org.tron.common.utils.ByteArray;
@@ -58,13 +60,22 @@ public class TransactionFee001 {
5860

5961
private ManagedChannel channelFull = null;
6062
private WalletGrpc.WalletBlockingStub blockingStubFull = null;
63+
private WalletSolidityGrpc.WalletSolidityBlockingStub blockingStubSolidity = null;
64+
private ManagedChannel channelSolidity = null;
65+
private WalletSolidityGrpc.WalletSolidityBlockingStub blockingStubPbft = null;
66+
private ManagedChannel channelPbft = null;
67+
6168

6269
ECKey ecKey1 = new ECKey(Utils.getRandom());
6370
byte[] deployAddress = ecKey1.getAddress();
6471
final String deployKey = ByteArray.toHexString(ecKey1.getPrivKeyBytes());
6572

6673
private String fullnode = Configuration.getByPath("testng.conf")
6774
.getStringList("fullnode.ip.list").get(0);
75+
private String soliditynode = Configuration.getByPath("testng.conf")
76+
.getStringList("solidityNode.ip.list").get(0);
77+
private String soliInPbft = Configuration.getByPath("testng.conf")
78+
.getStringList("solidityNode.ip.list").get(2);
6879

6980
Long startNum = 0L;
7081
Long endNum = 0L;
@@ -76,7 +87,8 @@ public class TransactionFee001 {
7687
Long blackHoleBalance2 = 0L;
7788
Long witness01Increase = 0L;
7889
Long witness02Increase = 0L;
79-
//Long blackHoleIncrease = 0L;
90+
Long beforeBurnTrxAmount = 0L;
91+
Long afterBurnTrxAmount = 0L;
8092
String txid = null;
8193

8294

@@ -96,15 +108,22 @@ public void beforeClass() {
96108
.usePlaintext(true)
97109
.build();
98110
blockingStubFull = WalletGrpc.newBlockingStub(channelFull);
111+
112+
channelSolidity = ManagedChannelBuilder.forTarget(soliditynode)
113+
.usePlaintext(true)
114+
.build();
115+
blockingStubSolidity = WalletSolidityGrpc.newBlockingStub(channelSolidity);
116+
channelPbft = ManagedChannelBuilder.forTarget(soliInPbft)
117+
.usePlaintext(true)
118+
.build();
119+
blockingStubPbft = WalletSolidityGrpc.newBlockingStub(channelPbft);
99120
}
100121

101122
@Test(enabled = true, description = "Test deploy contract with energy fee to sr")
102123
public void test01DeployContractEnergyFeeToSr() {
103-
104124
Assert.assertTrue(PublicMethed.sendcoin(deployAddress, 20000000000L, fromAddress,
105125
testKey002, blockingStubFull));
106-
PublicMethed.waitProduceNextBlock(blockingStubFull);
107-
PublicMethed.waitProduceNextBlock(blockingStubFull);
126+
PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
108127
String filePath = "src/test/resources/soliditycode//contractLinkage003.sol";
109128
String contractName = "divideIHaveArgsReturnStorage";
110129
HashMap retMap = null;
@@ -122,12 +141,13 @@ public void test01DeployContractEnergyFeeToSr() {
122141
.getAllowance();
123142
blackHoleBalance1 = PublicMethed.queryAccount(Commons.decode58Check(blackHoleAdd),
124143
blockingStubFull).getBalance();
144+
beforeBurnTrxAmount = blockingStubSolidity
145+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
125146

126-
txid = PublicMethed
127-
.deployContractAndGetTransactionInfoById(contractName, abi, code, "", maxFeeLimit,
128-
0L, 0, null,
147+
txid = PublicMethed.deployContractAndGetTransactionInfoById(contractName, abi, code,
148+
"", maxFeeLimit, 0L, 0, null,
129149
deployKey, deployAddress, blockingStubFull);
130-
PublicMethed.waitProduceNextBlock(blockingStubFull);
150+
PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
131151

132152
endNum = blockingStubFull.getNowBlock(GrpcAPI.EmptyMessage.newBuilder().build())
133153
.getBlockHeader().getRawData().getNumber();
@@ -157,12 +177,14 @@ public void test01DeployContractEnergyFeeToSr() {
157177
Optional<Protocol.TransactionInfo> infoById =
158178
PublicMethed.getTransactionInfoById(txid, blockingStubFull);
159179
Assert.assertEquals(infoById.get().getFee(),infoById.get().getPackingFee());
180+
afterBurnTrxAmount = blockingStubSolidity
181+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
182+
Assert.assertEquals(beforeBurnTrxAmount,afterBurnTrxAmount);
160183
}
161184

162185
@Test(enabled = true, description = "Test update account permission fee to black hole,"
163186
+ "trans with multi sign and fee to sr")
164187
public void test02UpdateAccountPermissionAndMultiSiginTrans() {
165-
166188
ECKey ecKey1 = new ECKey(Utils.getRandom());
167189
byte[] ownerAddress = ecKey1.getAddress();
168190
final String ownerKey = ByteArray.toHexString(ecKey1.getPrivKeyBytes());
@@ -174,8 +196,7 @@ public void test02UpdateAccountPermissionAndMultiSiginTrans() {
174196

175197
Assert.assertTrue(PublicMethed.sendcoin(ownerAddress, needCoin + 1_000_000, fromAddress,
176198
testKey002, blockingStubFull));
177-
PublicMethed.waitProduceNextBlock(blockingStubFull);
178-
PublicMethed.waitProduceNextBlock(blockingStubFull);
199+
PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
179200
Long balanceBefore = PublicMethed.queryAccount(ownerAddress, blockingStubFull)
180201
.getBalance();
181202
logger.info("balanceBefore: " + balanceBefore);
@@ -197,6 +218,8 @@ public void test02UpdateAccountPermissionAndMultiSiginTrans() {
197218
PublicMethed.queryAccount(witnessAddress02, blockingStubFull).getAllowance();
198219
blackHoleBalance1 = PublicMethed.queryAccount(Commons.decode58Check(blackHoleAdd),
199220
blockingStubFull).getBalance();
221+
beforeBurnTrxAmount = blockingStubSolidity
222+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
200223
String accountPermissionJson =
201224
"{\"owner_permission\":{\"type\":0,\"permission_name\":\"owner1\","
202225
+ "\"threshold\":1,\"keys\":["
@@ -217,8 +240,7 @@ public void test02UpdateAccountPermissionAndMultiSiginTrans() {
217240
ownerAddress, ownerKey, blockingStubFull,
218241
ownerPermissionKeys.toArray(new String[ownerPermissionKeys.size()]));
219242

220-
PublicMethed.waitProduceNextBlock(blockingStubFull);
221-
PublicMethed.waitProduceNextBlock(blockingStubFull);
243+
PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
222244
Optional<Protocol.TransactionInfo> infoById =
223245
PublicMethed.getTransactionInfoById(txid, blockingStubFull);
224246
Assert.assertEquals(infoById.get().getPackingFee(),0);
@@ -265,7 +287,7 @@ public void test02UpdateAccountPermissionAndMultiSiginTrans() {
265287
logger.info(PublicMethedForMutiSign.printPermission(PublicMethed.queryAccount(ownerAddress,
266288
blockingStubFull).getOwnerPermission()));
267289

268-
PublicMethed.waitProduceNextBlock(blockingStubFull);
290+
//PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
269291

270292
startNum = blockingStubFull.getNowBlock(GrpcAPI.EmptyMessage.newBuilder().build())
271293
.getBlockHeader().getRawData().getNumber();
@@ -276,6 +298,14 @@ public void test02UpdateAccountPermissionAndMultiSiginTrans() {
276298
blackHoleBalance1 = PublicMethed.queryAccount(Commons.decode58Check(blackHoleAdd),
277299
blockingStubFull).getBalance();
278300

301+
afterBurnTrxAmount = blockingStubSolidity
302+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
303+
Assert.assertTrue(afterBurnTrxAmount - beforeBurnTrxAmount == 100000000L);
304+
305+
306+
beforeBurnTrxAmount = blockingStubSolidity
307+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
308+
279309
Protocol.Transaction transaction = PublicMethedForMutiSign
280310
.sendcoin2(fromAddress, 1000_000, ownerAddress, ownerKey, blockingStubFull);
281311
txid = ByteArray.toHexString(Sha256Hash
@@ -300,7 +330,7 @@ public void test02UpdateAccountPermissionAndMultiSiginTrans() {
300330
logger.info("TransactionSignWeight info : " + txWeight);
301331

302332
Assert.assertTrue(PublicMethedForMutiSign.broadcastTransaction(transaction2, blockingStubFull));
303-
PublicMethed.waitProduceNextBlock(blockingStubFull);
333+
PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
304334

305335
endNum = blockingStubFull.getNowBlock(GrpcAPI.EmptyMessage.newBuilder().build())
306336
.getBlockHeader().getRawData().getNumber();
@@ -328,6 +358,9 @@ public void test02UpdateAccountPermissionAndMultiSiginTrans() {
328358
infoById = PublicMethed.getTransactionInfoById(txid, blockingStubFull);
329359
Assert.assertEquals(infoById.get().getPackingFee(),0);
330360
Assert.assertEquals(infoById.get().getFee(),1000000L);
361+
afterBurnTrxAmount = blockingStubSolidity
362+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
363+
Assert.assertTrue(afterBurnTrxAmount - beforeBurnTrxAmount == 1000000L);
331364
}
332365

333366
@Test(enabled = true, description = "Test trigger result is \"OUT_OF_TIME\""
@@ -348,8 +381,7 @@ public void test03OutOfTimeEnergyFeeToBlackHole() {
348381
contractAddress = PublicMethed.deployContract(contractName, abi, code,
349382
"", maxFeeLimit,
350383
0L, 100, null, deployKey, deployAddress, blockingStubFull);
351-
PublicMethed.waitProduceNextBlock(blockingStubFull);
352-
PublicMethed.waitProduceNextBlock(blockingStubFull);
384+
PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
353385

354386
startNum = blockingStubFull.getNowBlock(GrpcAPI.EmptyMessage.newBuilder().build())
355387
.getBlockHeader().getRawData().getNumber();
@@ -359,11 +391,12 @@ public void test03OutOfTimeEnergyFeeToBlackHole() {
359391
PublicMethed.queryAccount(witnessAddress02, blockingStubFull).getAllowance();
360392
blackHoleBalance1 = PublicMethed.queryAccount(Commons.decode58Check(blackHoleAdd),
361393
blockingStubFull).getBalance();
394+
beforeBurnTrxAmount = blockingStubSolidity
395+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
362396
txid = PublicMethed.triggerContract(contractAddress,
363397
"testUseCpu(uint256)", "90100", false,
364398
0, maxFeeLimit, deployAddress, deployKey, blockingStubFull);
365-
// PublicMethed.waitProduceNextBlock(blockingStubFull);
366-
PublicMethed.waitProduceNextBlock(blockingStubFull);
399+
PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
367400
endNum = blockingStubFull.getNowBlock(GrpcAPI.EmptyMessage.newBuilder().build())
368401
.getBlockHeader().getRawData().getNumber();
369402
witness01Allowance2 =
@@ -396,11 +429,13 @@ public void test03OutOfTimeEnergyFeeToBlackHole() {
396429
logger.info("receipt:" + infoById.get().getReceipt());
397430
Assert.assertTrue(packingFee == 0L);
398431
Assert.assertTrue(infoById.get().getFee() >= maxFeeLimit);
432+
afterBurnTrxAmount = blockingStubSolidity
433+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
434+
Assert.assertTrue(afterBurnTrxAmount - beforeBurnTrxAmount == maxFeeLimit);
399435
}
400436

401437
@Test(enabled = true, description = "Test create account with netFee to sr")
402438
public void test04AccountCreate() {
403-
PublicMethed.waitProduceNextBlock(blockingStubFull);
404439
startNum = blockingStubFull.getNowBlock(GrpcAPI.EmptyMessage.newBuilder().build())
405440
.getBlockHeader().getRawData().getNumber();
406441
witness01Allowance1 =
@@ -409,14 +444,15 @@ public void test04AccountCreate() {
409444
PublicMethed.queryAccount(witnessAddress02, blockingStubFull).getAllowance();
410445
blackHoleBalance1 = PublicMethed.queryAccount(Commons.decode58Check(blackHoleAdd),
411446
blockingStubFull).getBalance();
412-
447+
beforeBurnTrxAmount = blockingStubSolidity
448+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
413449
ECKey ecKey = new ECKey(Utils.getRandom());
414450
byte[] lowBalAddress = ecKey.getAddress();
415451
txid = PublicMethed.createAccountGetTxid(fromAddress, lowBalAddress,
416452
testKey002, blockingStubFull);
417453

418-
PublicMethed.waitProduceNextBlock(blockingStubFull);
419-
PublicMethed.waitProduceNextBlock(blockingStubFull);
454+
455+
PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
420456
endNum = blockingStubFull.getNowBlock(GrpcAPI.EmptyMessage.newBuilder().build())
421457
.getBlockHeader().getRawData().getNumber();
422458
witness01Allowance2 =
@@ -445,6 +481,9 @@ public void test04AccountCreate() {
445481
PublicMethed.getTransactionInfoById(txid, blockingStubFull);
446482
Assert.assertTrue(infoById.get().getPackingFee() == 0L);
447483
Assert.assertTrue(infoById.get().getFee() == 100000L);
484+
afterBurnTrxAmount = blockingStubSolidity
485+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
486+
Assert.assertTrue(afterBurnTrxAmount - beforeBurnTrxAmount == 100000L);
448487
}
449488

450489
@Test(enabled = true, description = "Test trigger contract with netFee and energyFee to sr")
@@ -470,8 +509,8 @@ public void test05NetFeeAndEnergyFee2Sr() {
470509
"testUseCpu(uint256)", "700", false,
471510
0, maxFeeLimit, deployAddress, deployKey, blockingStubFull);
472511
}
473-
PublicMethed.waitProduceNextBlock(blockingStubFull);
474-
PublicMethed.waitProduceNextBlock(blockingStubFull);
512+
513+
PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
475514

476515
startNum = blockingStubFull.getNowBlock(GrpcAPI.EmptyMessage.newBuilder().build())
477516
.getBlockHeader().getRawData().getNumber();
@@ -481,11 +520,13 @@ public void test05NetFeeAndEnergyFee2Sr() {
481520
PublicMethed.queryAccount(witnessAddress02, blockingStubFull).getAllowance();
482521
blackHoleBalance1 = PublicMethed.queryAccount(Commons.decode58Check(blackHoleAdd),
483522
blockingStubFull).getBalance();
523+
beforeBurnTrxAmount = blockingStubSolidity
524+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
484525
txid = PublicMethed.triggerContract(contractAddress,
485526
"testUseCpu(uint256)", "700", false,
486527
0, maxFeeLimit, deployAddress, deployKey, blockingStubFull);
487528
// PublicMethed.waitProduceNextBlock(blockingStubFull);
488-
PublicMethed.waitProduceNextBlock(blockingStubFull);
529+
PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
489530
endNum = blockingStubFull.getNowBlock(GrpcAPI.EmptyMessage.newBuilder().build())
490531
.getBlockHeader().getRawData().getNumber();
491532
witness01Allowance2 =
@@ -512,6 +553,9 @@ public void test05NetFeeAndEnergyFee2Sr() {
512553
Assert.assertTrue((Math.abs(witnessAllowance.get(ByteArray.toHexString(witnessAddress02))
513554
- witness02Increase)) <= 2);
514555
Assert.assertEquals(blackHoleBalance1,blackHoleBalance2);
556+
afterBurnTrxAmount = blockingStubSolidity
557+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
558+
Assert.assertEquals(beforeBurnTrxAmount,afterBurnTrxAmount);
515559
}
516560

517561
/**
@@ -530,7 +574,7 @@ public void test06CreateAssetIssue() {
530574
Assert.assertTrue(PublicMethed
531575
.sendcoin(tokenAccountAddress, 1028000000L, fromAddress, testKey002, blockingStubFull));
532576

533-
PublicMethed.waitProduceNextBlock(blockingStubFull);
577+
PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
534578
startNum = blockingStubFull.getNowBlock(GrpcAPI.EmptyMessage.newBuilder().build())
535579
.getBlockHeader().getRawData().getNumber();
536580
witness01Allowance1 =
@@ -539,7 +583,8 @@ public void test06CreateAssetIssue() {
539583
PublicMethed.queryAccount(witnessAddress02, blockingStubFull).getAllowance();
540584
blackHoleBalance1 = PublicMethed.queryAccount(Commons.decode58Check(blackHoleAdd),
541585
blockingStubFull).getBalance();
542-
586+
beforeBurnTrxAmount = blockingStubSolidity
587+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
543588
Long start = System.currentTimeMillis() + 2000;
544589
Long end = System.currentTimeMillis() + 1000000000;
545590
long now = System.currentTimeMillis();
@@ -551,7 +596,7 @@ public void test06CreateAssetIssue() {
551596
1, 1, start, end, 1, description, url, 0L,
552597
0L, 1L, 1L, tokenAccountKey,
553598
blockingStubFull);
554-
PublicMethed.waitProduceNextBlock(blockingStubFull);
599+
PublicMethed.waitSolidityNodeSynFullNodeData(blockingStubFull,blockingStubSolidity);
555600

556601
endNum = blockingStubFull.getNowBlock(GrpcAPI.EmptyMessage.newBuilder().build())
557602
.getBlockHeader().getRawData().getNumber();
@@ -581,6 +626,16 @@ public void test06CreateAssetIssue() {
581626
PublicMethed.getTransactionInfoById(txid, blockingStubFull);
582627
Assert.assertTrue(infoById.get().getPackingFee() == 0L);
583628
Assert.assertTrue(infoById.get().getFee() == 1024000000L);
629+
afterBurnTrxAmount = blockingStubSolidity
630+
.getBurnTrx(EmptyMessage.newBuilder().build()).getNum();
631+
Assert.assertTrue(afterBurnTrxAmount - beforeBurnTrxAmount == 1024000000L);
632+
633+
Assert.assertEquals(blockingStubFull
634+
.getBurnTrx(EmptyMessage.newBuilder().build()),blockingStubSolidity.getBurnTrx(
635+
EmptyMessage.newBuilder().build()));
636+
Assert.assertEquals(blockingStubFull.getBurnTrx(EmptyMessage.newBuilder().build()),
637+
blockingStubPbft.getBurnTrx(
638+
EmptyMessage.newBuilder().build()));
584639
}
585640
/**
586641
* constructor.

0 commit comments

Comments
 (0)