use of org.aion.precompiled.ContractFactory in project aion by aionnetwork.
the class EDVerifyContractTest method invalidInputLengthTest.
@Test
public void invalidInputLengthTest() {
// note the length is 129
byte[] input = new byte[129];
input[128] = 0x1;
PrecompiledTransactionContext ctx = new PrecompiledTransactionContext(ContractInfo.ED_VERIFY.contractAddress, origin, caller, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), txHash, txHash, blockNumber, nrgLimit, depth);
PrecompiledContract contract = new ContractFactory().getPrecompiledContract(ctx, externalStateForTests);
PrecompiledTransactionResult result = contract.execute(input, 21000L);
assertEquals("FAILURE", result.getStatus().causeOfError);
}
use of org.aion.precompiled.ContractFactory in project aion by aionnetwork.
the class EDVerifyContractTest method shouldReturnSuccessTestingWith256.
@Test
public void shouldReturnSuccessTestingWith256() {
byte[] input = setupInput();
PrecompiledTransactionContext ctx = new PrecompiledTransactionContext(ContractInfo.ED_VERIFY.contractAddress, origin, caller, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), txHash, txHash, blockNumber, nrgLimit, depth);
PrecompiledContract contract = new ContractFactory().getPrecompiledContract(ctx, externalStateForTests);
assertNotNull(contract);
PrecompiledTransactionResult result = contract.execute(input, 21000L);
assertThat(result.getStatus().isSuccess());
assertThat(Arrays.equals(result.getReturnData(), pubKey));
}
use of org.aion.precompiled.ContractFactory in project aion by aionnetwork.
the class EDVerifyContractTest method incorrectInputTest.
@Test
public void incorrectInputTest() {
byte[] input = setupInput();
// modify sig
input[22] = (byte) ((int) (input[32]) - 10);
// modify sig
input[33] = (byte) ((int) (input[33]) + 4);
// modify sig
input[99] = (byte) ((int) (input[33]) - 40);
PrecompiledTransactionContext ctx = new PrecompiledTransactionContext(ContractInfo.ED_VERIFY.contractAddress, origin, caller, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), txHash, txHash, blockNumber, nrgLimit, depth);
PrecompiledContract contract = new ContractFactory().getPrecompiledContract(ctx, externalStateForTests);
assertNotNull(contract);
PrecompiledTransactionResult result = contract.execute(input, 21000L);
assertThat(result.getStatus().isSuccess());
assertThat(Arrays.equals(result.getReturnData(), AddressUtils.ZERO_ADDRESS.toByteArray()));
}
use of org.aion.precompiled.ContractFactory in project aion by aionnetwork.
the class EDVerifyContractTest method invalidInputLengthTest.
@Test
public void invalidInputLengthTest() {
// note the length is 129
byte[] input = new byte[129];
input[128] = 0x1;
PrecompiledTransactionContext ctx = new PrecompiledTransactionContext(ContractInfo.ED_VERIFY.contractAddress, origin, caller, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), txHash, txHash, blockNumber, nrgLimit, depth);
PrecompiledContract contract = new ContractFactory().getPrecompiledContract(ctx, externalStateForTests);
PrecompiledTransactionResult result = contract.execute(input, 21000L);
assertEquals("FAILURE", result.getStatus().causeOfError);
}
use of org.aion.precompiled.ContractFactory in project aion by aionnetwork.
the class EDVerifyContractTest method incorrectInputTest.
@Test
public void incorrectInputTest() {
byte[] input = setupInput();
// modify sig
input[22] = (byte) ((int) (input[32]) - 10);
// modify sig
input[33] = (byte) ((int) (input[33]) + 4);
// modify sig
input[99] = (byte) ((int) (input[33]) - 40);
PrecompiledTransactionContext ctx = new PrecompiledTransactionContext(ContractInfo.ED_VERIFY.contractAddress, origin, caller, Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), txHash, txHash, blockNumber, nrgLimit, depth);
PrecompiledContract contract = new ContractFactory().getPrecompiledContract(ctx, externalStateForTests);
assertNotNull(contract);
PrecompiledTransactionResult result = contract.execute(input, 21000L);
assertThat(result.getStatus().isSuccess());
assertThat(Arrays.equals(result.getReturnData(), AddressUtils.ZERO_ADDRESS.toByteArray()));
}
Aggregations