use of io.nuls.contract.vm.program.ProgramCreate 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.ProgramCreate in project nuls by nuls-io.
the class VoteTest method createTransactions.
public List createTransactions() throws IOException {
List transactions = new ArrayList();
ProgramCreate programCreate = new ProgramCreate();
programCreate.setContractAddress(NativeAddress.toBytes(ADDRESS));
programCreate.setSender(NativeAddress.toBytes(SENDER));
programCreate.setPrice(1);
programCreate.setGasLimit(1000000);
programCreate.setNumber(1);
InputStream in = new FileInputStream(ContractTest.class.getResource("/vote_contract").getFile());
// InputStream in = new FileInputStream("C:\\workspace\\nuls-vote\\out\\artifacts\\contract\\contract.jar");
byte[] contractCode = IOUtils.toByteArray(in);
programCreate.setContractCode(contractCode);
programCreate.args("10000");
transactions.add(programCreate);
return transactions;
}
use of io.nuls.contract.vm.program.ProgramCreate 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.ProgramCreate in project nuls by nuls-io.
the class CrowdsaleTest method testCreate.
@Test
public void testCreate() throws IOException {
InputStream in = new FileInputStream(ContractTest.class.getResource("/crowdsale_contract").getFile());
byte[] contractCode = IOUtils.toByteArray(in);
ProgramCreate programCreate = new ProgramCreate();
programCreate.setContractAddress(NativeAddress.toBytes(CROWDSALE_ADDRESS));
programCreate.setSender(NativeAddress.toBytes(SENDER));
programCreate.setPrice(1);
programCreate.setGasLimit(1000000);
programCreate.setNumber(1);
programCreate.setContractCode(contractCode);
programCreate.args("1535012808001", "1635012808001", "10", WALLET_ADDRESS, "20000000", TOKEN_ADDRESS, "10000000");
System.out.println(programCreate);
byte[] prevStateRoot = Hex.decode("68def44ff5e8cfaede55b572b78064f549a07683fa2a09e44ae252aa50b10ec0");
ProgramExecutor track = programExecutor.begin(prevStateRoot);
ProgramResult programResult = track.create(programCreate);
track.commit();
System.out.println(programResult);
System.out.println("stateRoot: " + Hex.toHexString(track.getRoot()));
System.out.println();
sleep();
}
Aggregations