encodeSingleKey static method
encode public key to SignleKey address
Implementation
static List<int> encodeSingleKey(IPublicKey publicKey) {
try {
final pubkeyBytes = switch (publicKey.curve) {
EllipticCurveTypes.secp256k1 => publicKey.uncompressed,
EllipticCurveTypes.ed25519 => publicKey.compressed.sublist(1),
_ => throw AddressConverterException(
"Unsupported public key: Aptos SingleKey can only be generated from secp256k1 or ed25519 public keys.")
};
final structLayout = {publicKey.curve.name: pubkeyBytes};
final encode =
AptosAddrConst.singleKeyAddressLayout.serialize(structLayout);
return hashKeyBytes(
bytes: encode, scheme: AptosAddrConst.signleKeyAddressFlag);
} on AddressConverterException {
rethrow;
} catch (e) {
throw AddressConverterException("Invalid aptos MultiKey address bytes.",
details: {"error": e.toString()});
}
}