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.addressKeyValidationFailed(
reason: "Unsuported ${publicKey.curve.name} public key.",
),
};
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.addressBytesValidationFailed(
details: {"error": e.toString()},
);
}
}