createApplicationCreateTransaction method

Future<ApplicationCreateTransaction> createApplicationCreateTransaction({
  1. required Address sender,
  2. required TEALProgram approvalProgram,
  3. required TEALProgram clearStateProgram,
  4. required StateSchema globalStateSchema,
  5. required StateSchema localStateSchema,
  6. bool optIn = false,
  7. List<Uint8List>? arguments,
  8. List<Address>? accounts,
  9. String? note,
  10. TransactionParams? suggestedParams,
})

Create a new ApplicationCreateTransaction.

@param sender The sender of the transaction. @param approvalProgram The compiled approval teal program. @param clearStateProgram The compiled clear state teal program @param globalStateSchema The global state schema. @param localStateSchema The local state schema.

@returns The constructed application creation transaction.

Implementation

Future<ApplicationCreateTransaction> createApplicationCreateTransaction({
  required Address sender,
  required TEALProgram approvalProgram,
  required TEALProgram clearStateProgram,
  required StateSchema globalStateSchema,
  required StateSchema localStateSchema,
  bool optIn = false,
  List<Uint8List>? arguments,
  List<Address>? accounts,
  String? note,
  TransactionParams? suggestedParams,
}) async {
  // Fetch the suggested transaction params
  final params = suggestedParams ?? (await getSuggestedTransactionParams());

  // Create the transaction
  final tx = await (ApplicationCreateTransactionBuilder()
        ..sender = sender
        ..optIn = optIn
        ..approvalProgram = approvalProgram
        ..clearStateProgram = clearStateProgram
        ..globalStateSchema = globalStateSchema
        ..localStateSchema = localStateSchema
        ..noteText = note
        ..arguments = arguments
        ..suggestedParams = params)
      .build();

  return tx;
}