Search in sources :

Example 1 with AddressConverter

use of org.aion.rpc.types.RPCTypesConverter.AddressConverter in project aion by aionnetwork.

the class PersonalRPCImplTest method executePersonal_ecRecover.

@Test
public void executePersonal_ecRecover() {
    ECKey ecKey = ECKeyFac.inst().create();
    String helloMessage = "Hello World";
    ByteArray helloByteMessage = ByteArray.wrap(helloMessage.getBytes());
    // Create the signed message
    ByteArray signedMessage = ByteArray.wrap(ecKey.sign(helloByteMessage.toBytes()).toBytes());
    String pubKey = ByteUtil.toHexString(ecKey.getAddress());
    // well formed request
    Request request = new Request(idGenerator.generateID(), ecRecoverMethod, EcRecoverParamsConverter.encode(new EcRecoverParams(helloByteMessage, signedMessage)), VersionType.Version2);
    assertEquals(pubKey, execute(request, AddressConverter::decode).toString());
    // incorrect method name
    request = new Request(idGenerator.generateID(), ecRecoverMethod + "y", EcRecoverParamsConverter.encode(new EcRecoverParams(helloByteMessage, signedMessage)), VersionType.Version2);
    try {
        execute(request, AddressConverter::decode);
        fail();
    } catch (MethodNotFoundRPCException e) {
    }
    // incorrect params
    request = new Request(idGenerator.generateID(), ecRecoverMethod, ParamUnion.wrap(new VoidParams()).encode(), VersionType.Version2);
    try {
        execute(request, AddressConverter::decode);
        fail();
    } catch (InvalidParamsRPCException e) {
    }
}
Also used : MethodNotFoundRPCException(org.aion.rpc.errors.RPCExceptions.MethodNotFoundRPCException) EcRecoverParams(org.aion.rpc.types.RPCTypes.EcRecoverParams) InvalidParamsRPCException(org.aion.rpc.errors.RPCExceptions.InvalidParamsRPCException) Request(org.aion.rpc.types.RPCTypes.Request) AddressConverter(org.aion.rpc.types.RPCTypesConverter.AddressConverter) VoidParams(org.aion.rpc.types.RPCTypes.VoidParams) ByteArray(org.aion.rpc.types.RPCTypes.ByteArray) ECKey(org.aion.crypto.ECKey) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) Test(org.junit.Test)

Example 2 with AddressConverter

use of org.aion.rpc.types.RPCTypesConverter.AddressConverter in project aion by aionnetwork.

the class PersonalRPCImplTest method testPersonal_newAccount.

@Test
public void testPersonal_newAccount() {
    AionAddress expectedAddress = new AionAddress(ByteUtil.hexStringToBytes("a07913c03686c9659c1b614d098fd1db380a52b71fd58526b53d8107f7b355d5"));
    String password = "password";
    doReturn(expectedAddress).when(chainHolder).newAccount(anyString());
    Request request = new Request(idGenerator.generateID(), newAccountMethod, PasswordParamsConverter.encode(new PasswordParams(password)), VersionType.Version2);
    AionAddress responseAddress = execute(request, AddressConverter::decode);
    assertEquals(expectedAddress, responseAddress);
}
Also used : AionAddress(org.aion.types.AionAddress) PasswordParams(org.aion.rpc.types.RPCTypes.PasswordParams) Request(org.aion.rpc.types.RPCTypes.Request) AddressConverter(org.aion.rpc.types.RPCTypesConverter.AddressConverter) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) Test(org.junit.Test)

Aggregations

Request (org.aion.rpc.types.RPCTypes.Request)2 AddressConverter (org.aion.rpc.types.RPCTypesConverter.AddressConverter)2 Test (org.junit.Test)2 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)2 ECKey (org.aion.crypto.ECKey)1 InvalidParamsRPCException (org.aion.rpc.errors.RPCExceptions.InvalidParamsRPCException)1 MethodNotFoundRPCException (org.aion.rpc.errors.RPCExceptions.MethodNotFoundRPCException)1 ByteArray (org.aion.rpc.types.RPCTypes.ByteArray)1 EcRecoverParams (org.aion.rpc.types.RPCTypes.EcRecoverParams)1 PasswordParams (org.aion.rpc.types.RPCTypes.PasswordParams)1 VoidParams (org.aion.rpc.types.RPCTypes.VoidParams)1 AionAddress (org.aion.types.AionAddress)1