signMessage method

Future<String> signMessage(
  1. String method,
  2. String from,
  3. dynamic message,
  4. String password,
)

Implementation

Future<String> signMessage(
    String method, String from, dynamic message, String password) async {
  try {
    // Validate signer
    await _validateSigner(from);

    switch (JsonRpcMethod.fromString(method)) {
      case JsonRpcMethod.PERSONAL_SIGN:
        return await _personalSign(message);
      case JsonRpcMethod.ETH_SIGN:
        return await _ethSign(message);
      case JsonRpcMethod.ETH_SIGN_TYPED_DATA:
        return await _signTypedData(message[0]);
      case JsonRpcMethod.ETH_SIGN_TYPED_DATA_V1:
        return await _signTypedDataV1(message);
      case JsonRpcMethod.ETH_SIGN_TYPED_DATA_V3:
        return await _signTypedDataV3(jsonDecode(message));
      case JsonRpcMethod.ETH_SIGN_TYPED_DATA_V4:
        return await _signTypedDataV4(jsonDecode(message));
      default:
        throw WalletException('Unsupported signing method: $method');
    }
  } catch (e) {
    throw WalletException('Signing failed: $e');
  }
}