updateAccountStatus method

Future<void> updateAccountStatus({
  1. required String id,
  2. required String operator,
  3. required bool frozen,
  4. String? contextId,
})

A helper function that updates the ledger-account status

Implementation

Future<void> updateAccountStatus({
  required String id,
  required String operator,
  required bool frozen,
  String? contextId,
}) async {
  final account = await _getLedgerAccount(accountId: id, operator: operator);
  final freezeState = SetFreezeState()..accountId = hex.decode(id);

  if (account.frozen != frozen) {
    freezeState.frozen = frozen;
    final request = TransactionRequestPayload()
      ..data = (TransactionData()..setFreezeState = freezeState);
    final envelop = await requestEnvelope(
      request: request,
      contextId: contextId != null ? hex.decode(contextId) : null,
    );
    final client = getServiceClient(operator);
    await client.tx.createTransaction(envelop);
  }
}