getNamespacesFromAccounts static method

Map<String, Namespace> getNamespacesFromAccounts(
  1. List<String> accounts
)

Gets all unique namespaces from the provided list of accounts This function assumes that all accounts are valid

Implementation

static Map<String, Namespace> getNamespacesFromAccounts(
  List<String> accounts,
) {
  Map<String, Namespace> namespaces = {};
  for (var account in accounts) {
    final ns = account.split(':')[0];
    final cid = account.split(':')[1];
    if (namespaces[ns] == null) {
      namespaces[ns] = const Namespace(
        accounts: [],
        methods: [],
        events: [],
      );
    }
    namespaces[ns] = namespaces[ns]!.copyWith(
      accounts: [
        ...namespaces[ns]!.accounts,
        account,
      ],
      chains: [
        ...(namespaces[ns]?.chains ?? []),
        '$ns:$cid',
      ],
    );
  }

  return namespaces;
}