encodeKey method

  1. @override
String encodeKey(
  1. List<int> pubKey, {
  2. EllipticCurveTypes pubKeyType = EllipticCurveTypes.secp256k1,
})
override

Encodes a Ripple (XRP) public key as a blockchain address.

Implementation

@override
String encodeKey(
  List<int> pubKey, {
  EllipticCurveTypes pubKeyType = EllipticCurveTypes.secp256k1,
}) {
  if ((pubKeyType != EllipticCurveTypes.secp256k1 &&
      pubKeyType != EllipticCurveTypes.ed25519)) {
    throw AddressConverterException.addressKeyValidationFailed(
      reason: "Unsupported ${pubKeyType.name} public key.",
    );
  }
  if (pubKeyType == EllipticCurveTypes.secp256k1) {
    return P2PKHAddrEncoder().encodeKey(
      pubKey,
      alphabet: Base58Alphabets.ripple,
      netVersion: AddrKeyValidator.getConfigArg<List<int>>(
        CoinsConf.ripple.params.p2pkhNetVer,
        "p2pkhNetVer",
      ),
    );
  }
  AddrKeyValidator.validateAndGetEd25519Key(pubKey);
  return XRPAddressUtils._toAddress(pubKey);
}