code: public synchronized void storeChannelInWallet(Sha256Hash id) {
          stateMachine.checkState(State.SAVE_STATE_IN_WALLET);
          checkState(id != null);
          if (storedChannel != null) {
              checkState(storedChannel.id.equals(id));
              return;
          }
          doStoreChannelInWallet(id);
  
          try {
              wallet.commitTx(getContractInternal());
          } catch (VerificationException e) {
              throw new RuntimeException(e); // We created it
          }
          stateMachine.transition(State.PROVIDE_MULTISIG_CONTRACT_TO_SERVER);
      }
docs: <p>Stores this channel's state in the wallet as a part of a {@link StoredPaymentChannelClientStates} wallet
  extension and keeps it up-to-date each time payment is incremented. This allows the
  {@link StoredPaymentChannelClientStates} object to keep track of timeouts and broadcast the refund transaction
  when the channel expires.</p>
  
  <p>A channel may only be stored after it has fully opened (ie state == State.READY). The wallet provided in the
  constructor must already have a {@link StoredPaymentChannelClientStates} object in its extensions set.</p>
  
  @param id A hash providing this channel with an id which uniquely identifies this server. It does not have to be
  unique.