encodeKey method

  1. @override
String encodeKey(
  1. List<int> pubKey, {
  2. List<int>? pubSkey,
  3. ADANetwork network = ADANetwork.mainnet,
})
override

Blockchain address encoder for Ada Shelley addresses. This encoder is used to create addresses based on public and private key pairs.

Implementation

@override
String encodeKey(
  List<int> pubKey, {
  List<int>? pubSkey,
  ADANetwork network = ADANetwork.mainnet,
}) {
  /// Extract the public spending key (pub_skey) from the arguments.
  pubSkey = AddrKeyValidator.getAddrArg<List<int>>(pubSkey, "pubKey");

  /// Validate and retrieve public keys.
  final pubKeyObj = AddrKeyValidator.validateAndGetEd25519Key(pubKey);
  final pubSkeyObj = AddrKeyValidator.validateAndGetEd25519Key(pubSkey);

  // Compute key hashes for public spending and public delegation keys.
  final pubKeyHash = AdaShelleyAddrUtils.keyHash(
    pubKeyObj.compressed.sublist(1),
  );
  final pubSkeyHash = AdaShelleyAddrUtils.keyHash(
    pubSkeyObj.compressed.sublist(1),
  );

  return AdaShelleyAddrUtils.encode(
    credential: AdaStakeCredential(
      hash: pubKeyHash,
      type: AdaStakeCredType.key,
    ),
    network: network,
    hrp: AdaShelleyAddrUtils.getAddressHrp(network),
    stakeCredential: AdaStakeCredential(
      hash: pubSkeyHash,
      type: AdaStakeCredType.key,
    ),
    type: ADAAddressType.base,
  );
}