encodeAddress static method

String encodeAddress({
  1. required List<int> bytes,
  2. required ZCashAddressType type,
  3. required ZCashNetwork network,
  4. List<ZUnifiedReceiver>? receivers,
})

Implementation

static String encodeAddress({
  required List<int> bytes,
  required ZCashAddressType type,
  required ZCashNetwork network,
  List<ZUnifiedReceiver>? receivers,
}) {
  final config = ZcashConf().fromNetwork(network);
  try {
    switch (type) {
      case ZCashAddressType.p2sh:
        return encodeBase58Addresses(
          bytes: bytes,
          prefix: config.b58ScriptAddressPrefix,
          type: type,
        );
      case ZCashAddressType.p2pkh:
        return encodeBase58Addresses(
          bytes: bytes,
          prefix: config.b58PubkeyAddressPrefix,
          type: type,
        );
      case ZCashAddressType.sprout:
        return encodeBase58Addresses(
          bytes: bytes,
          prefix: config.b58SproutAddressPrefix,
          type: type,
        );
      case ZCashAddressType.tex:
        return encodeBech32Address(
          bytes: bytes,
          hrp: config.hrpTexAddress,
          type: type,
        );
      case ZCashAddressType.sapling:
        return encodeBech32Address(
          bytes: bytes,
          hrp: config.hrpSaplingPaymentAddress,
          type: type,
        );
      case ZCashAddressType.unified:
        return ZCashEncodingUtils.encodeUnifiedObject(
          addressBytes: bytes,
          hrp: config.hrpUnifiedAddress,
          receivers: receivers,
          mode: UnifiedReceiverMode.address,
        );
    }
  } on AddressConverterException {
    rethrow;
  } on ZCashKeyEncodingError catch (e) {
    throw AddressConverterException.addressValidationFailed(
      details: e.details,
    );
  } catch (e) {
    throw AddressConverterException.addressValidationFailed(
      reason: e.toString(),
    );
  }
}