UnifiedAddressRequest constructor

UnifiedAddressRequest({
  1. bool? transparent,
  2. bool? sapling,
  3. bool? orchard,
  4. PubKeyModes? transparentPubKeyMode,
  5. List<int>? transparentScriptHash,
  6. TransparentAddressRequestType transparentAddressType = TransparentAddressRequestType.p2pkh,
})

Implementation

factory UnifiedAddressRequest({
  bool? transparent,
  bool? sapling,
  bool? orchard,
  PubKeyModes? transparentPubKeyMode,
  List<int>? transparentScriptHash,
  TransparentAddressRequestType transparentAddressType =
      TransparentAddressRequestType.p2pkh,
}) {
  switch (transparentAddressType) {
    case TransparentAddressRequestType.p2pkh:
      if (transparentScriptHash != null) {
        throw ArgumentException.invalidOperationArguments(
          "UnifiedAddressRequest",
          reason: "P2PKH addresses cannot include a script hash.",
        );
      }
      break;
    case TransparentAddressRequestType.p2sh:
      if (transparentPubKeyMode != null &&
          transparentPubKeyMode != PubKeyModes.compressed) {
        throw ArgumentException.invalidOperationArguments(
          "UnifiedAddressRequest",
          reason: "P2SH addresses require a compressed public key mode.",
        );
      }
      break;
  }
  return UnifiedAddressRequest._(
    transparent: transparent,
    sapling: sapling,
    orchard: orchard,
    transparentAddressType: transparentAddressType,
    transparentScriptHash: transparentScriptHash,
    transparentPubKeyMode: transparentPubKeyMode ?? PubKeyModes.compressed,
  );
}