use of io.nuls.contract.vm.program.ProgramCall in project nuls by nuls-io.
the class VoteTest method transactions.
public List transactions() throws IOException {
List transactions = new ArrayList();
for (int i = 0; i < 10; i++) {
ProgramCall programCall = new ProgramCall();
programCall.setContractAddress(NativeAddress.toBytes(ADDRESS));
programCall.setSender(NativeAddress.toBytes(SENDER));
programCall.setPrice(1);
programCall.setGasLimit(200000);
programCall.setNumber(1);
programCall.setMethodName("create");
programCall.setMethodDesc("");
programCall.setValue(new BigInteger("10000"));
String[][] args = new String[][] { { "投票" }, { "这是一个投票" }, { "选项1", "选项2", "选项3" }, { "1535012808000" }, { "1545197500000" }, { "true" }, { "3" }, { "true" } };
programCall.setArgs(args);
transactions.add(programCall);
}
ProgramCall programCall = new ProgramCall();
programCall.setContractAddress(NativeAddress.toBytes(ADDRESS));
programCall.setSender(NativeAddress.toBytes(SENDER));
programCall.setPrice(1);
programCall.setGasLimit(200000);
programCall.setNumber(1);
programCall.setMethodName("redemption");
programCall.setMethodDesc("");
programCall.setValue(new BigInteger("0"));
String[][] args = new String[][] { { "1" } };
programCall.setArgs(args);
transactions.add(programCall);
return transactions;
}
use of io.nuls.contract.vm.program.ProgramCall in project nuls by nuls-io.
the class VoteTest method testBatch.
public byte[] testBatch(byte[] prevStateRoot, List transactions) throws IOException {
long start = System.currentTimeMillis();
ProgramExecutor track = programExecutor.begin(prevStateRoot);
for (int i = 0; i < transactions.size(); i++) {
long transactionStart = System.currentTimeMillis();
Object transaction = transactions.get(i);
if (transaction instanceof ProgramCreate) {
ProgramCreate create = (ProgramCreate) transaction;
ProgramExecutor txTrack = track.startTracking();
ProgramResult programResult = txTrack.create(create);
txTrack.commit();
System.out.println(programResult);
} else if (transaction instanceof ProgramCall) {
ProgramCall call = (ProgramCall) transaction;
ProgramExecutor txTrack = track.startTracking();
ProgramResult programResult = txTrack.call(call);
txTrack.commit();
System.out.println(programResult);
}
System.out.println("交易" + i + ", 耗时:" + (System.currentTimeMillis() - transactionStart) + "ms");
}
long time = System.currentTimeMillis() - start;
System.out.println("完成" + transactions.size() + "笔交易, 耗时:" + time + "ms,平均:" + (time / transactions.size()) + "ms");
System.out.println("提交");
long commitStart = System.currentTimeMillis();
track.commit();
System.out.println("提交耗时:" + (System.currentTimeMillis() - commitStart) + "ms");
byte[] root = track.getRoot();
System.out.println("stateRoot: " + Hex.toHexString(root));
System.out.println("总耗时:" + (System.currentTimeMillis() - start) + "ms");
return root;
}
use of io.nuls.contract.vm.program.ProgramCall in project nuls by nuls-io.
the class VoteTest method testOne.
public byte[] testOne(byte[] prevStateRoot, List transactions) throws IOException {
long start = System.currentTimeMillis();
for (int i = 0; i < transactions.size(); i++) {
long transactionStart = System.currentTimeMillis();
Object transaction = transactions.get(i);
if (transaction instanceof ProgramCreate) {
ProgramCreate create = (ProgramCreate) transaction;
// ProgramExecutor txTrack = track.startTracking();
ProgramExecutor track = programExecutor.begin(prevStateRoot);
ProgramResult programResult = track.create(create);
track.commit();
System.out.println(programResult);
prevStateRoot = track.getRoot();
System.out.println("stateRoot: " + Hex.toHexString(prevStateRoot));
} else if (transaction instanceof ProgramCall) {
ProgramCall call = (ProgramCall) transaction;
// ProgramExecutor txTrack = track.startTracking();
ProgramExecutor track = programExecutor.begin(prevStateRoot);
ProgramResult programResult = track.call(call);
track.commit();
System.out.println(programResult);
prevStateRoot = track.getRoot();
System.out.println("stateRoot: " + Hex.toHexString(prevStateRoot));
}
System.out.println("交易" + i + ", 耗时:" + (System.currentTimeMillis() - transactionStart) + "ms");
}
long time = System.currentTimeMillis() - start;
System.out.println("完成" + transactions.size() + "笔交易, 耗时:" + time + "ms,平均:" + (time / transactions.size()) + "ms");
// System.out.println("总耗时:" + (System.currentTimeMillis() - start) + "ms");
return prevStateRoot;
}
use of io.nuls.contract.vm.program.ProgramCall in project nuls by nuls-io.
the class CrowdsaleTest method balanceOf.
public void balanceOf(byte[] prevStateRoot) throws IOException {
ProgramCall programCall = new ProgramCall();
programCall.setContractAddress(NativeAddress.toBytes(TOKEN_ADDRESS));
programCall.setSender(NativeAddress.toBytes(SENDER));
programCall.setPrice(1);
programCall.setGasLimit(1000000);
programCall.setNumber(1);
programCall.setMethodName("balanceOf");
programCall.setMethodDesc("");
programCall.args(BUYER);
ProgramExecutor track = programExecutor.begin(prevStateRoot);
ProgramResult programResult = track.call(programCall);
track.commit();
System.out.println(programResult);
System.out.println("stateRoot: " + Hex.toHexString(track.getRoot()));
System.out.println();
sleep();
}
use of io.nuls.contract.vm.program.ProgramCall in project nuls by nuls-io.
the class CrowdsaleTest method testBuyTokens.
@Test
public void testBuyTokens() throws IOException {
byte[] prevStateRoot = Hex.decode("5d62069546b3da54d9ae5ba3bdddcbe38a1a99b63c41846667b94288cec455ab");
balanceOf(prevStateRoot);
ProgramCall programCall = new ProgramCall();
programCall.setContractAddress(NativeAddress.toBytes(CROWDSALE_ADDRESS));
programCall.setSender(NativeAddress.toBytes(SENDER));
programCall.setValue(new BigInteger("1000"));
programCall.setPrice(1);
programCall.setGasLimit(1000000);
programCall.setNumber(1);
programCall.setMethodName("buyTokens");
programCall.setMethodDesc("");
programCall.args(BUYER);
System.out.println(programCall);
ProgramExecutor track = programExecutor.begin(prevStateRoot);
ProgramResult programResult = track.call(programCall);
track.commit();
System.out.println(programResult);
System.out.println("stateRoot: " + Hex.toHexString(track.getRoot()));
System.out.println();
balanceOf(track.getRoot());
sleep();
}
Aggregations