CakeWallet/cw_bitcoin/lib/address_from_output.dart
rafael_xmr 7b8ddf9685
FIX (#2283)
* FIX!

* resolve conflicts with main

* undo debug changes

* fix: methods

* fix: methods2

* Fix Tron issue

* fix: 1k limit & reaching top

* fix: missing unspents

* fix: missing commit

---------

Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
2025-05-25 22:28:08 +03:00

33 lines
1 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);
case P2shAddressType.p2pkhInP2sh:
case P2shAddressType.p2pkInP2sh:
return P2shAddress.fromScriptPubkey(script: script);
case SegwitAddressType.p2wpkh:
return P2wpkhAddress.fromScriptPubkey(script: script);
case SegwitAddressType.p2wsh:
return P2wshAddress.fromScriptPubkey(script: script);
case SegwitAddressType.p2tr:
return P2trAddress.fromScriptPubkey(script: script);
}
throw ArgumentError("Invalid script");
}