estimateSize method
Implementation
int estimateSize() {
if (utxos.isEmpty || _outputs.isEmpty) {
throw const ADAPluginException(
'Utxos and outputs must not be not empty.');
}
final outs = _outputs.map((e) {
if (e.amount.coin == BigInt.zero) {
return e.copyWith(amount: e.amount.copyWith(coin: maxU64));
}
return e;
}).toList();
final transactionSigners = signers;
final aux = auxiliaryData;
final transaction = ADATransaction(
data: aux,
body: TransactionBody(
inputs: TransactionInputs(utxos.map((e) => e.input).toList()),
outputs: TransactionOutputs(outs),
mint: getMint(),
fee: BigInt.from(mask32),
certificates: certificates.isEmpty
? null
: Certificates(certificates.map((e) => e.certificate).toList()),
auxiliaryDataHash: aux?.toHash()),
witnessSet: TransactionWitnessSet(
bootstraps: BootstrapWitnesses(transactionSigners
.where((element) => element.addressType == ADAAddressType.byron)
.map((e) =>
ADATransactionBuilderUtils.fakeBootStrapWitness(e.cast()))
.toList()),
nativeScripts: nativeScripts,
vKeys: VkeyWitnesses(transactionSigners
.where((element) => element.addressType != ADAAddressType.byron)
.map((e) => ADATransactionBuilderUtils.fakeVkeyWitnessWitness())
.toList()),
),
);
return transaction.size;
}