mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-29 06:38:45 +01:00
Upstream reformatted its whole tree in 16ddc0837. Matching it removes
formatting from the conflict surface of this and every later sync.
34 lines
1.2 KiB
Dart
34 lines
1.2 KiB
Dart
import 'package:bitcoin_base/bitcoin_base.dart';
|
|
|
|
String addressFromOutputScript(Script script, BasedUtxoNetwork network) {
|
|
try {
|
|
return addressFromScript(script, network).toAddress(network);
|
|
} catch (_) {}
|
|
|
|
return '';
|
|
}
|
|
|
|
BitcoinBaseAddress addressFromScript(Script script,
|
|
[BasedUtxoNetwork network = BitcoinNetwork.mainnet]) {
|
|
final addressType = script.getAddressType();
|
|
if (addressType == null) {
|
|
throw ArgumentError("Invalid script");
|
|
}
|
|
|
|
switch (addressType) {
|
|
case P2pkhAddressType.p2pkh:
|
|
return P2pkhAddress.fromScriptPubkey(script: script, network: BitcoinNetwork.mainnet);
|
|
case P2shAddressType.p2pkhInP2sh:
|
|
case P2shAddressType.p2pkInP2sh:
|
|
return P2shAddress.fromScriptPubkey(script: script, network: BitcoinNetwork.mainnet);
|
|
case SegwitAddresType.p2wpkh:
|
|
return P2wpkhAddress.fromScriptPubkey(script: script, network: BitcoinNetwork.mainnet);
|
|
case SegwitAddresType.p2wsh:
|
|
return P2wshAddress.fromScriptPubkey(script: script, network: BitcoinNetwork.mainnet);
|
|
case SegwitAddresType.p2tr:
|
|
return P2trAddress.fromScriptPubkey(script: script, network: BitcoinNetwork.mainnet);
|
|
}
|
|
|
|
throw ArgumentError("Invalid script");
|
|
}
|