getNonce method Null safety

Future<int> getNonce(
  1. String accountId,
  2. String contractId
)

Implementation

Future<int> getNonce(String accountId, String contractId) async {
  XdrLedgerKey ledgerKey = XdrLedgerKey(XdrLedgerEntryType.CONTRACT_DATA);
  ledgerKey.contractID = XdrHash(Util.hexToBytes(contractId));
  Address address = Address.forAccountId(accountId);
  XdrSCVal nonceKeyVal =
      XdrSCVal.forObject(XdrSCObject.forNonceKey(address.toXdr()));
  ledgerKey.contractDataKey = nonceKeyVal;
  GetLedgerEntryResponse response =
      await getLedgerEntry(ledgerKey.toBase64EncodedXdrString());
  if (!response.isErrorResponse &&
      response.ledgerEntryDataXdr != null &&
      response.ledgerEntryDataXdr!.contractData != null) {
    XdrSCObject? obj = response.ledgerEntryDataXdr!.contractData!.val.obj;
    if (obj != null && obj.u64 != null) {
      return obj.u64!.uint64;
    }
  }
  return 0;
}