Search in sources :

Example 1 with EcRecoverParams

use of org.aion.rpc.types.RPCTypes.EcRecoverParams 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)

Aggregations

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 Request (org.aion.rpc.types.RPCTypes.Request)1 VoidParams (org.aion.rpc.types.RPCTypes.VoidParams)1 AddressConverter (org.aion.rpc.types.RPCTypesConverter.AddressConverter)1 Test (org.junit.Test)1 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)1