PartialTxV2.fromBytes constructor
PartialTxV2.fromBytes(
- Uint8List bytes
Implementation
factory PartialTxV2.fromBytes(Uint8List bytes) {
final sections = PsbtCodec.decode(bytes);
if (sections.isEmpty) {
throw FormatException('Invalid PSBT v2: no global section');
}
final global = sections[0];
int txVersion = 2;
int locktime = 0;
int inputCount = 0;
int outputCount = 0;
for (final kv in global) {
if (kv.key.isEmpty) continue;
final keyType = kv.key[0];
if (keyType == PsbtGlobal.txVersion.keyType && kv.value.length >= 4) {
txVersion = kv.value[0] |
(kv.value[1] << 8) |
(kv.value[2] << 16) |
(kv.value[3] << 24);
} else if (keyType == PsbtGlobal.fallbackLocktime.keyType &&
kv.value.length >= 4) {
locktime = kv.value[0] |
(kv.value[1] << 8) |
(kv.value[2] << 16) |
(kv.value[3] << 24);
} else if (keyType == PsbtGlobal.inputCount.keyType) {
inputCount = _readCompactSize(kv.value);
} else if (keyType == PsbtGlobal.outputCount.keyType) {
outputCount = _readCompactSize(kv.value);
}
}
final result = PartialTxV2(txVersion: txVersion, locktime: locktime);
result._inputCount = inputCount;
result._outputCount = outputCount;
result._sections = sections;
return result;
}