addressToOutputScript static method
Implementation
static Uint8List? addressToOutputScript(String address, [NetworkType? nw]) {
var network = nw ?? bitcoin;
var decodeBase58;
var decodeBech32;
try {
decodeBase58 = bs58check.decode(address);
} catch (err) {
// Base58check decode fail
}
if (decodeBase58 != null) {
if (decodeBase58[0] == network.pubKeyHash) {
return P2PKH(data: PaymentData(address: address), network: network).data!.output;
}
if (decodeBase58[0] == network.scriptHash) {
return P2SH(data: PaymentData(address: address), network: network).data!.output;
}
throw ArgumentError('Invalid version or Network mismatch');
} else {
try {
decodeBech32 = segwit.decode(SegwitInput(network.bech32!, address));
} catch (err) {
// Bech32 decode fail
}
if (decodeBech32 != null) {
if (network.bech32 != decodeBech32.hrp) {
throw ArgumentError('Invalid prefix or Network mismatch');
}
if (decodeBech32.version != 0) {
throw ArgumentError('Invalid address version');
}
var p2wpkh = P2WPKH(data: PaymentData(address: address), network: network);
return p2wpkh.data!.output;
}
}
throw ArgumentError(address + ' has no matching Script');
}