mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-12-23 20:19:25 +00:00
65 lines
2.2 KiB
Dart
65 lines
2.2 KiB
Dart
import 'package:bitcoin_base/bitcoin_base.dart';
|
|
import 'package:cw_core/receive_page_option.dart';
|
|
|
|
class BitcoinReceivePageOption implements ReceivePageOption {
|
|
static const p2wpkh = BitcoinReceivePageOption._('Segwit (P2WPKH) (Default)');
|
|
static const p2sh = BitcoinReceivePageOption._('Segwit-Compatible (P2SH)');
|
|
static const p2tr = BitcoinReceivePageOption._('Taproot (P2TR)');
|
|
static const p2wsh = BitcoinReceivePageOption._('Segwit (P2WSH)');
|
|
static const p2pkh = BitcoinReceivePageOption._('Legacy (P2PKH)');
|
|
|
|
static const silent_payments = BitcoinReceivePageOption._('Silent Payments');
|
|
|
|
const BitcoinReceivePageOption._(this.value);
|
|
|
|
final String value;
|
|
|
|
String toString() {
|
|
return value;
|
|
}
|
|
|
|
static const all = [
|
|
BitcoinReceivePageOption.silent_payments,
|
|
BitcoinReceivePageOption.p2wpkh,
|
|
BitcoinReceivePageOption.p2tr,
|
|
BitcoinReceivePageOption.p2wsh,
|
|
BitcoinReceivePageOption.p2sh,
|
|
BitcoinReceivePageOption.p2pkh
|
|
];
|
|
|
|
BitcoinAddressType toType() {
|
|
switch (this) {
|
|
case BitcoinReceivePageOption.p2tr:
|
|
return SegwitAddresType.p2tr;
|
|
case BitcoinReceivePageOption.p2wsh:
|
|
return SegwitAddresType.p2wsh;
|
|
case BitcoinReceivePageOption.p2pkh:
|
|
return P2pkhAddressType.p2pkh;
|
|
case BitcoinReceivePageOption.p2sh:
|
|
return P2shAddressType.p2wpkhInP2sh;
|
|
case BitcoinReceivePageOption.silent_payments:
|
|
return SilentPaymentsAddresType.p2sp;
|
|
case BitcoinReceivePageOption.p2wpkh:
|
|
default:
|
|
return SegwitAddresType.p2wpkh;
|
|
}
|
|
}
|
|
|
|
factory BitcoinReceivePageOption.fromType(BitcoinAddressType type) {
|
|
switch (type) {
|
|
case SegwitAddresType.p2tr:
|
|
return BitcoinReceivePageOption.p2tr;
|
|
case SegwitAddresType.p2wsh:
|
|
return BitcoinReceivePageOption.p2wsh;
|
|
case P2pkhAddressType.p2pkh:
|
|
return BitcoinReceivePageOption.p2pkh;
|
|
case P2shAddressType.p2wpkhInP2sh:
|
|
return BitcoinReceivePageOption.p2sh;
|
|
case SilentPaymentsAddresType.p2sp:
|
|
return BitcoinReceivePageOption.silent_payments;
|
|
case SegwitAddresType.p2wpkh:
|
|
default:
|
|
return BitcoinReceivePageOption.p2wpkh;
|
|
}
|
|
}
|
|
}
|