docs: public void messageToWallet(ClientMessageBase incoming) {
          PersistedV2WalletDescriptor w = walletDAO.get(incoming.getKey());
          if (w != null) {
              if (incoming.getCommand().equals(Command.GET_ADDRESS) || incoming.getCommand().equals(Command.GET_INSTRUMENT_DATA)) {
                  if (hasPayloadEntry(incoming, "pin")) {
                      Object p = getPayloadEntry(incoming, "pin");
                      if (p instanceof String) {
                          UserPin pin = new UserPin(w.owner, (String) p);
                          if (pinRegistry.isRegistered(pin) == false) {
                              pinRegistry.add(pin);
                          }
                      }
                  }
              }
              V2Wallet wallet = wallets.getWallet(incoming.getKey());
              if (wallet == null) {
                  wallet = init(incoming.getKey());
              }
              wallet.messageTo((IMessage) incoming);
          }
      }