encodeKey method
Encodes a public key or address bytes into a blockchain address.
Implementation
@override
String encodeKey(List<int> pubKey, {int? ss58Format}) {
ss58Format = AddrKeyValidator.getAddrArg<int>(ss58Format, "ss58Format");
try {
if (AddrKeyValidator.hasValidPubkeyBytes(
pubKey,
EllipticCurveTypes.secp256k1,
)) {
return SubstrateSecp256k1AddrEncoder().encodeKey(
pubKey,
ss58Format: ss58Format,
);
} else if (!AddrKeyValidator.hasValidPubkeyBytes(
pubKey,
EllipticCurveTypes.sr25519,
)) {
return SubstrateEd25519AddrEncoder().encodeKey(
pubKey,
ss58Format: ss58Format,
);
}
return SubstrateSr25519AddrEncoder().encodeKey(
pubKey,
ss58Format: ss58Format,
);
} catch (e) {
throw AddressConverterException.addressKeyValidationFailed(
reason: "Unsupported public key.",
);
}
}