sendContractInvocationOperation static method

Future<Map<String, dynamic>> sendContractInvocationOperation(
  1. String server,
  2. SoftSigner signer,
  3. KeyStoreModel keyStore,
  4. List<String> contract,
  5. List<int> amount,
  6. List<String> entrypoint,
  7. List<String> parameters, {
  8. dynamic parameterFormat = TezosParameterFormat.Michelson,
  9. dynamic offset = 54,
  10. bool? preapply,
  11. bool? gasEstimation = false,
})

send a contract invocation operation fee, gasLimit and storageLimit are estimated by the fee estimation service

Implementation

static Future<Map<String, dynamic>> sendContractInvocationOperation(
  String server,
  SoftSigner signer,
  KeyStoreModel keyStore,
  List<String> contract,
  List<int> amount,
  List<String> entrypoint,
  List<String> parameters, {
  var parameterFormat = TezosParameterFormat.Michelson,
  offset = 54,
  bool? preapply,
  bool? gasEstimation = false,
}) async {
  var counter = await TezosNodeReader.getCounterForAccount(
          server, keyStore.publicKeyHash) +
      1;

  var transactions = <OperationModel>[];

  for (var i = 0; i < entrypoint.length; i++) {
    transactions.add(
      constructContractInvocationOperation(
        keyStore.publicKeyHash,
        counter + i,
        contract[i],
        amount[i],
        entrypoint[i],
        parameters[i],
        parameterFormat is List ? parameterFormat[i] : parameterFormat,
      ),
    );
  }
  var operations = await appendRevealOperation(server, keyStore.publicKey,
      keyStore.publicKeyHash, counter - 1, [...transactions]);
  return sendOperation(
      server, operations, signer, offset, null, preapply, gasEstimation);
}