prepareTransaction method

Future<Uint8List> prepareTransaction(
  1. Transaction tx, {
  2. required String sender,
  3. BigInt? gasBudget,
})

Prepare tx (sender, gas price/payment/budget) and return the built TransactionData BCS bytes, ready to sign.

Implementation

Future<Uint8List> prepareTransaction(
  Transaction tx, {
  required String sender,
  BigInt? gasBudget,
}) async {
  // The adapter lets the builder resolve object references and moveCall
  // signatures over gRPC; offline limits avoid a protocol-config fetch.
  final buildOptions = BuildOptions(
    client: GrpcBuilderAdapter(this),
    limits: <String, dynamic>{},
  );

  // Resolve any Move Registry (`@org/app`) names in moveCall targets/types.
  await tx.resolveNames(
    resolvePackage: resolvePackage,
    resolveType: resolveType,
  );

  tx.setSenderIfNotSet(sender);
  if (gasBudget != null) {
    tx.setGasBudget(gasBudget);
  }

  // Gas is resolved inside build() (see Transaction._prepare).
  return tx.build(buildOptions);
}