estimateSize method
Implementation
int estimateSize({ADAAddress? onChangeAddress}) {
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 ADATransaction transaction = ADATransaction(
data: aux,
body: TransactionBody(
inputs: utxos.map((e) => e.toInput).toList(),
outputs: outs,
mint: getMint(),
fee: BigInt.from(mask32),
certs: certificates.map((e) => e.certificate).toList(),
auxiliaryDataHash: aux?.toHash()),
witnessSet: TransactionWitnessSet(
bootstraps: transactionSigners
.where((element) => element.addressType == ADAAddressType.byron)
.map((e) =>
ADATransactionBuilderUtils.fakeBootStrapWitness(e.address))
.toList(),
nativeScripts: transactionNativeScripts,
vKeys: transactionSigners
.where((element) => element.addressType != ADAAddressType.byron)
.map((e) => ADATransactionBuilderUtils.fakeVkeyWitnessWitness())
.toList(),
),
);
return transaction.size;
}