   Error:  The state store has not been set
         A chain does not exist under that name"
   ([name]
-   (get-chain *client* name))
+   (get-channel *client* name))
   ([client name]
    (if (nil? client)
      (throw (Exception. "The state store has not been set"))

       ;; Implementation Note
       ;;       The spec says that Returns is chain Instance or None
       ;;       How it can be None and also throw an exception?
       (throw (Exception. "A chain does not exist under that name"))))))

;; Alias
(defonce get-channel get-chain)

;;; query_chain-info
(defn query-chain-info
  "This is a network call to the designated Peer(s) to discover the chain information.
  The target Peer(s) must be part of the chain in question to be able to return the requested
  information.


(defrecord Client [channels crypto-suite user-context])

;;; new_chain
;;;
;; "Initializes a chain instance with the given name. This is really representing the \"Channel\"
;;   (as explained above), and this call returns an empty object. To initialize the channel, a list of
;;   participating endorsers and orderer peers must be configured first on the returned object.
;;   Params:
;;         name (str): The name of the chain, recommend using namespaces to avoid collision
;;   Returns:
;;         (Chain instance): The uninitialized chain instance."
(defn add-channel!
  ([channel]
   (add-channel! *client* channel))
  ([client channel]
   (let [found (get @(:channels client) name)]
     (if (= found channel)
       ;; Implementation Note
       ;;       The spec doesn't say anything about existing channel.
       ;;       Return if there is an existing channel with the name.
       found
       ;; replace or add
       (swap! (:channels client) assoc name channel)))))

#_
(defn new-channel!
  
  ([name]
   (new-channel! *client* name))
  ([client name]
   (new-channel! *client* name {}))
  ([client name opts]
   (let [channels (:channels client)]
     (if-let [found (get @channels name)]
