mapArguments method

dynamic mapArguments(
  1. dynamic fn(
    1. dynamic arg,
    2. dynamic command
    )
)

Implementation

mapArguments(dynamic Function(dynamic arg, dynamic command) fn) {
  for (final command in commands) {
    if (command["MoveCall"] != null) {
      command["MoveCall"]["arguments"] = command["MoveCall"]["arguments"]
          .map((arg) => fn(arg, command))
          .toList();
    } else if (command["TransferObjects"] != null) {
      command["TransferObjects"]["objects"] = command["TransferObjects"]
              ["objects"]
          .map((arg) => fn(arg, command))
          .toList();
      command["TransferObjects"]["address"] =
          fn(command["TransferObjects"]["address"], command);
    } else if (command["SplitCoins"] != null) {
      command["SplitCoins"]["coin"] =
          fn(command["SplitCoins"]["coin"], command);
      command["SplitCoins"]["amounts"] = command["SplitCoins"]["amounts"]
          .map((arg) => fn(arg, command))
          .toList();
    } else if (command["MergeCoins"] != null) {
      command["MergeCoins"]["destination"] =
          fn(command["MergeCoins"]["destination"], command);
      command["MergeCoins"]["sources"] = command["MergeCoins"]["sources"]
          .map((arg) => fn(arg, command))
          .toList();
    } else if (command["MakeMoveVec"] != null) {
      command["MakeMoveVec"]["elements"] = command["MakeMoveVec"]["elements"]
          .map((arg) => fn(arg, command))
          .toList();
    } else if (command["Upgrade"] != null) {
      command["Upgrade"]["ticket"] =
          fn(command["Upgrade"]["ticket"], command);
    } else if (command["\$Intent"] != null) {
      final inputs = command["\$Intent"]["inputs"];
      command["\$Intent"]["inputs"] = {};

      for (final [key, value] in inputs) {
        command["\$Intent"]["inputs"][key] = value is Iterable
            ? value.map((arg) => fn(arg, command)).toList()
            : fn(value, command);
      }
    } else if (command["Publish"] != null) {
    } else {
      throw ArgumentError("Unexpected transaction kind: $command");
    }
  }
}