Skip to content

Commit 140847f

Browse files
add
1 parent 1ae400b commit 140847f

File tree

11 files changed

+631
-161
lines changed

11 files changed

+631
-161
lines changed

TransactionConfiguration.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,16 @@
3838
<bean id="transferTRC20" class="org.tron.stresstest.dispatch.creator.contract.TransferTrc20Creator">
3939
<property name="name" value="transferTRC20"/>
4040
<property name="begin" value="0"/>
41-
<property name="end" value="4"/>
41+
<property name="end" value="24"/>
4242
</bean>
4343
<bean id="MultiSignTriggerContract" class="org.tron.stresstest.dispatch.creator.MultiSign.MultiSignTriggerContract">
4444
<property name="name" value="MultiSignTriggerContract"/>
45-
<property name="begin" value="5"/>
46-
<property name="end" value="14"/>
45+
<property name="begin" value="25"/>
46+
<property name="end" value="34"/>
4747
</bean>
4848
<bean id="transferToken" class="org.tron.stresstest.dispatch.creator.contract.TransferTokenCreator">
4949
<property name="name" value="transferToken"/>
50-
<property name="begin" value="15"/>
50+
<property name="begin" value="35"/>
5151
<property name="end" value="74"/>
5252
</bean>
5353
<bean id="freezeEnergy" class="org.tron.stresstest.dispatch.creator.freeze.FreezeEnergyCreator">

src/main/java/org/tron/stresstest/dispatch/AbstractTransactionCreator.java

Lines changed: 39 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import com.google.protobuf.Any;
66
import com.google.protobuf.ByteString;
77
import java.math.BigInteger;
8-
import java.util.Arrays;
98
import java.util.HashMap;
9+
import java.util.List;
1010
import java.util.Objects;
1111
import java.util.concurrent.atomic.AtomicLong;
1212
import lombok.Getter;
@@ -23,6 +23,7 @@
2323
import org.tron.protos.Contract.FreezeBalanceContract;
2424
import org.tron.protos.Contract.UnfreezeBalanceContract;
2525
import org.tron.protos.Protocol.Transaction;
26+
import org.tron.protos.Protocol.Transaction.Contract;
2627
import org.tron.protos.Protocol.Transaction.Contract.ContractType;
2728
import org.tron.stresstest.dispatch.strategy.Level2Strategy;
2829

@@ -48,8 +49,18 @@ public abstract class AbstractTransactionCreator extends Level2Strategy {
4849
.getString("privateKey.commonWitnessPrivateKey");
4950
protected String WithdrawToPrivateKey = Configuration.getByPath("stress.conf")
5051
.getString("privateKey.WithdrawToPrivateKey");
52+
protected String WithdrawTrc10ToPrivateKey = Configuration.getByPath("stress.conf")
53+
.getString("privateKey.WithdrawTrc10ToPrivateKey");
54+
protected String WithdrawTrc20ToPrivateKey = Configuration.getByPath("stress.conf")
55+
.getString("privateKey.WithdrawTrc20ToPrivateKey");
56+
57+
5158
protected String WithdrawToAddress = Configuration.getByPath("stress.conf")
5259
.getString("address.WithdrawToAddress");
60+
protected String WithdrawTrc10ToAddress = Configuration.getByPath("stress.conf")
61+
.getString("address.WithdrawTrc10ToAddress");
62+
protected String WithdrawTrc20ToAddress = Configuration.getByPath("stress.conf")
63+
.getString("address.WithdrawTrc20ToAddress");
5364

5465
protected String commonContractAddress1 = Configuration.getByPath("stress.conf")
5566
.getString("address.commonContractAddress1");
@@ -65,6 +76,9 @@ public abstract class AbstractTransactionCreator extends Level2Strategy {
6576
.getString("address.commonContractAddress6");
6677
protected String SideGatewayContractAddress = Configuration.getByPath("stress.conf")
6778
.getString("address.SideGatewayContractAddress");
79+
protected String SideTRC20ContractContractAddress = Configuration.getByPath("stress.conf")
80+
.getString("address.SideTRC20ContractContractAddress");
81+
6882
protected String commontokenid = Configuration.getByPath("stress.conf")
6983
.getString("param.commontokenid");
7084
protected long commonexchangeid = Configuration.getByPath("stress.conf")
@@ -239,36 +253,36 @@ public Transaction setExpiration(Transaction transaction, long expiration) {
239253
}
240254

241255
public static Transaction sign(Transaction transaction, ECKey myKey) {
242-
// Transaction.Builder transactionBuilderSigned = transaction.toBuilder();
243-
// byte[] hash = Sha256Hash.hash(transaction.getRawData().toByteArray());
244-
// List<Contract> listContract = transaction.getRawData().getContractList();
245-
// for (int i = 0; i < listContract.size(); i++) {
246-
// ECDSASignature signature = myKey.sign(hash);
247-
// ByteString bsSign = ByteString.copyFrom(signature.toByteArray());
248-
// transactionBuilderSigned.addSignature(
249-
// bsSign);
250-
// }
251-
//
252-
// transaction = transactionBuilderSigned.build();
253-
// return transaction;
254-
byte[] chainId = decodeFromBase58Check("TUmGh8c2VcpfmJ7rBYq1FU9hneXhz3P8z3");
255256
Transaction.Builder transactionBuilderSigned = transaction.toBuilder();
256257
byte[] hash = Sha256Hash.hash(transaction.getRawData().toByteArray());
257-
258-
byte[] newHash;
259-
if (false) {
260-
newHash = hash;
261-
} else {
262-
byte[] hashWithChainId = Arrays.copyOf(hash, hash.length + chainId.length);
263-
System.arraycopy(chainId, 0, hashWithChainId, hash.length, chainId.length);
264-
newHash = Sha256Hash.hash(hashWithChainId);
258+
List<Contract> listContract = transaction.getRawData().getContractList();
259+
for (int i = 0; i < listContract.size(); i++) {
260+
ECDSASignature signature = myKey.sign(hash);
261+
ByteString bsSign = ByteString.copyFrom(signature.toByteArray());
262+
transactionBuilderSigned.addSignature(
263+
bsSign);
265264
}
266265

267-
ECDSASignature signature = myKey.sign(newHash);
268-
ByteString bsSign = ByteString.copyFrom(signature.toByteArray());
269-
transactionBuilderSigned.addSignature(bsSign);
270266
transaction = transactionBuilderSigned.build();
271267
return transaction;
268+
// byte[] chainId = decodeFromBase58Check("TUmGh8c2VcpfmJ7rBYq1FU9hneXhz3P8z3");
269+
// Transaction.Builder transactionBuilderSigned = transaction.toBuilder();
270+
// byte[] hash = Sha256Hash.hash(transaction.getRawData().toByteArray());
271+
//
272+
// byte[] newHash;
273+
// if (false) {
274+
// newHash = hash;
275+
// } else {
276+
// byte[] hashWithChainId = Arrays.copyOf(hash, hash.length + chainId.length);
277+
// System.arraycopy(chainId, 0, hashWithChainId, hash.length, chainId.length);
278+
// newHash = Sha256Hash.hash(hashWithChainId);
279+
// }
280+
//
281+
// ECDSASignature signature = myKey.sign(newHash);
282+
// ByteString bsSign = ByteString.copyFrom(signature.toByteArray());
283+
// transactionBuilderSigned.addSignature(bsSign);
284+
// transaction = transactionBuilderSigned.build();
285+
// return transaction;
272286
}
273287

274288
public static Transaction mutiSignNew(Transaction transaction, String[] permissionKeyString) {

src/main/java/org/tron/stresstest/dispatch/creator/contract/DeployContractTransactionCreator.java

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
public class DeployContractTransactionCreator extends AbstractTransactionCreator implements
1717
GoodCaseTransactonCreator {
1818

19-
private String contractName = "createContract";
19+
private String contractName = "trc20Contract";
2020
private String ownerAddress = commonOwnerAddress;
21-
private String abi = "[{\"constant\":false,\"inputs\":[{\"name\":\"a\",\"type\":\"int256\"},{\"name\":\"b\",\"type\":\"int256\"}],\"name\":\"multiply\",\"outputs\":[{\"name\":\"output\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"a\",\"type\":\"int256\"},{\"indexed\":false,\"name\":\"b\",\"type\":\"int256\"},{\"indexed\":false,\"name\":\"output\",\"type\":\"int256\"}],\"name\":\"MultiplyEvent\",\"type\":\"event\"}]";
22-
private String code = "6080604052348015600f57600080fd5b5060e98061001e6000396000f300608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633c4308a881146043575b600080fd5b348015604e57600080fd5b50605b600435602435606d565b60408051918252519081900360200190f35b60408051338152602081018490528082018390528383026060820181905291517feb4e4c25ee4bb2b9466eb38f13989c0c221efa6f1c631b8b4820f00afcf5a3e59181900360800190a1929150505600a165627a7a723058200dbf85f2b87350cd0aaa578b300b50d62fb3508880a151d2db70356c1fe463da0029";
21+
private String abi = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"stop\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"stopped\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"start\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"setName\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_addressFounder\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]";
22+
private String code = "60c0604052600660808190527f54726f6e6978000000000000000000000000000000000000000000000000000060a090815261003e916000919061013c565b506040805180820190915260038082527f545258000000000000000000000000000000000000000000000000000000000060209092019182526100839160019161013c565b506006600281905560006005558054600160a860020a03191690553480156100aa57600080fd5b50604051602080610a8383398101604081815291516006805461010060a860020a031916336101000217905567016345785d8a00006005819055600160a060020a03821660008181526003602090815286822084905592855294519294909390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3506101d7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061017d57805160ff19168380011785556101aa565b828001600101855582156101aa579182015b828111156101aa57825182559160200191906001019061018f565b506101b69291506101ba565b5090565b6101d491905b808211156101b657600081556001016101c0565b90565b61089d806101e66000396000f3006080604052600436106100cf5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100d457806307da68f51461015e578063095ea7b31461017557806318160ddd146101ad57806323b872dd146101d4578063313ce567146101fe57806342966c681461021357806370a082311461022b57806375f12b211461024c57806395d89b4114610261578063a9059cbb14610276578063be9a65551461029a578063c47f0027146102af578063dd62ed3e14610308575b600080fd5b3480156100e057600080fd5b506100e961032f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012357818101518382015260200161010b565b50505050905090810190601f1680156101505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016a57600080fd5b506101736103bd565b005b34801561018157600080fd5b50610199600160a060020a03600435166024356103e5565b604080519115158252519081900360200190f35b3480156101b957600080fd5b506101c2610465565b60408051918252519081900360200190f35b3480156101e057600080fd5b50610199600160a060020a036004358116906024351660443561046b565b34801561020a57600080fd5b506101c2610588565b34801561021f57600080fd5b5061017360043561058e565b34801561023757600080fd5b506101c2600160a060020a0360043516610625565b34801561025857600080fd5b50610199610637565b34801561026d57600080fd5b506100e9610640565b34801561028257600080fd5b50610199600160a060020a036004351660243561069a565b3480156102a657600080fd5b50610173610764565b3480156102bb57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101739436949293602493928401919081908401838280828437509497506107899650505050505050565b34801561031457600080fd5b506101c2600160a060020a03600435811690602435166107b9565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103b55780601f1061038a576101008083540402835291602001916103b5565b820191906000526020600020905b81548152906001019060200180831161039857829003601f168201915b505050505081565b6006546101009004600160a060020a031633146103d657fe5b6006805460ff19166001179055565b60065460009060ff16156103f557fe5b3315156103fe57fe5b336000818152600460209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60055481565b60065460009060ff161561047b57fe5b33151561048457fe5b600160a060020a0384166000908152600360205260409020548211156104a957600080fd5b600160a060020a03831660009081526003602052604090205482810110156104d057600080fd5b600160a060020a038416600090815260046020908152604080832033845290915290205482111561050057600080fd5b600160a060020a03808416600081815260036020908152604080832080548801905593881680835284832080548890039055600482528483203384528252918490208054879003905583518681529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060019392505050565b60025481565b336000908152600360205260409020548111156105aa57600080fd5b336000818152600360209081526040808320805486900390558280527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff805486019055805185815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350565b60036020526000908152604090205481565b60065460ff1681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103b55780601f1061038a576101008083540402835291602001916103b5565b60065460009060ff16156106aa57fe5b3315156106b357fe5b336000908152600360205260409020548211156106cf57600080fd5b600160a060020a03831660009081526003602052604090205482810110156106f657600080fd5b33600081815260036020908152604080832080548790039055600160a060020a03871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b6006546101009004600160a060020a0316331461077d57fe5b6006805460ff19169055565b6006546101009004600160a060020a031633146107a257fe5b80516107b59060009060208401906107d6565b5050565b600460209081526000928352604080842090915290825290205481565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061081757805160ff1916838001178555610844565b82800160010185558215610844579182015b82811115610844578251825591602001919060010190610829565b50610850929150610854565b5090565b61086e91905b80821115610850576000815560010161085a565b905600a165627a7a723058202b251653003f1859e00d30411fa90d271d66cfc390ba62946fe50260d824d6c50029";
2323
private long value = 0L;
2424
private long consumeUserResourcePercent = 100L;
2525
private String libraryAddressPair = null;
@@ -32,19 +32,22 @@ protected Protocol.Transaction create() {
3232

3333
TransactionFactory.context.getBean(CreatorCounter.class).put(this.getClass().getName());
3434

35-
CreateSmartContract contract = org.tron.stresstest.dispatch.CreateSmartContract.createContractDeployContract(
36-
contractName,
37-
ownerAddressBytes,
38-
abi,
39-
code,
40-
value,
41-
consumeUserResourcePercent,
42-
libraryAddressPair
43-
);
44-
45-
Protocol.Transaction transaction = createTransaction(contract, ContractType.CreateSmartContract);
46-
47-
transaction = transaction.toBuilder().setRawData(transaction.getRawData().toBuilder().setFeeLimit(feeLimit).build()).build();
35+
CreateSmartContract contract = org.tron.stresstest.dispatch.CreateSmartContract
36+
.createContractDeployContract(
37+
contractName,
38+
ownerAddressBytes,
39+
abi,
40+
code,
41+
value,
42+
consumeUserResourcePercent,
43+
libraryAddressPair
44+
);
45+
46+
Protocol.Transaction transaction = createTransaction(contract,
47+
ContractType.CreateSmartContract);
48+
49+
transaction = transaction.toBuilder()
50+
.setRawData(transaction.getRawData().toBuilder().setFeeLimit(feeLimit).build()).build();
4851

4952
transaction = sign(transaction, ECKey.fromPrivate(ByteArray.fromHexString(privateKey)));
5053
return transaction;

0 commit comments

Comments
 (0)