CosmosBaseAddress.fromPublicKey constructor

CosmosBaseAddress.fromPublicKey({
  1. required List<int> pubkeyBytes,
  2. required CosmosKeysAlgs algorithm,
  3. String hrp = CosmosAddrConst.accHRP,
})

Factory constructor to create a CosmosBaseAddress from public key and algorithm.

Implementation

factory CosmosBaseAddress.fromPublicKey({
  required List<int> pubkeyBytes,
  required CosmosKeysAlgs algorithm,
  String hrp = CosmosAddrConst.accHRP,
}) {
  final addressBytes = switch (algorithm) {
    CosmosKeysAlgs.ed25519 => AtomAddressUtils.ed25519PubkeyToAddress(
      pubkeyBytes,
    ),
    CosmosKeysAlgs.secp256k1 => AtomAddressUtils.secp256k1PubKeyToAddress(
      pubkeyBytes,
    ),
    CosmosKeysAlgs.secp256r1 => AtomAddressUtils.secp256r1PubKeyToAddress(
      pubkeyBytes,
    ),
    CosmosKeysAlgs.stratosEthsecp256k1 ||
    CosmosKeysAlgs.intiaEthsecp256k1 ||
    CosmosKeysAlgs.ethsecp256k1 ||
    CosmosKeysAlgs.injectiveEthsecp256k1 ||
    CosmosKeysAlgs.comosEthsecp256k1 =>
      AtomAddressUtils.ethSecp256k1PubKeyToAddress(pubkeyBytes),
  };

  /// Create a CosmosBaseAddress instance by converting byte data to an address string.
  return CosmosBaseAddress._(
    AtomAddressUtils.encodeAddressBytes(addressBytes: addressBytes, hrp: hrp),
    hrp,
  );
}