accountForAuth method

Account? accountForAuth(
  1. RelayAuth? auth
)

Account auth authenticates as, null when it must stay unattributable.

Implementation

Account? accountForAuth(RelayAuth? auth) {
  switch (auth) {
    case RelayAuthNever():
      return null;
    case RelayAuthAllow(:final account):
    case RelayAuthRequire(:final account):
      return account.signer.canSign() ? account : null;
    case null:
      // a request that says nothing still authenticates as the logged
      // account, so the relay decides when that identity is revealed
      final logged = _accounts?.getLoggedAccount();
      return logged != null && logged.signer.canSign() ? logged : null;
  }
}