{"version":3,"file":"index.mjs","sources":["../../node_modules/.pnpm/zustand@4.5.2_immer@10.0.4_react@18.3.1/node_modules/zustand/esm/middleware.mjs","../../node_modules/.pnpm/zustand@4.5.2_immer@10.0.4_react@18.3.1/node_modules/zustand/esm/middleware/immer.mjs","../../node_modules/.pnpm/zustand@4.5.2_immer@10.0.4_react@18.3.1/node_modules/zustand/esm/vanilla.mjs","../../src/stores/batches.ts"],"sourcesContent":["const reduxImpl = (reducer, initial) => (set, _get, api) => {\n  api.dispatch = (action) => {\n    set((state) => reducer(state, action), false, action);\n    return action;\n  };\n  api.dispatchFromDevtools = true;\n  return { dispatch: (...a) => api.dispatch(...a), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n  const api = trackedConnections.get(name);\n  if (!api)\n    return {};\n  return Object.fromEntries(\n    Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n  );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n  if (store === void 0) {\n    return {\n      type: \"untracked\",\n      connection: extensionConnector.connect(options)\n    };\n  }\n  const existingConnection = trackedConnections.get(options.name);\n  if (existingConnection) {\n    return { type: \"tracked\", store, ...existingConnection };\n  }\n  const newConnection = {\n    connection: extensionConnector.connect(options),\n    stores: {}\n  };\n  trackedConnections.set(options.name, newConnection);\n  return { type: \"tracked\", store, ...newConnection };\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n  const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n  let extensionConnector;\n  try {\n    extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n  } catch (e) {\n  }\n  if (!extensionConnector) {\n    if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && enabled) {\n      console.warn(\n        \"[zustand devtools middleware] Please install/enable Redux devtools extension\"\n      );\n    }\n    return fn(set, get, api);\n  }\n  const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n  let isRecording = true;\n  api.setState = (state, replace, nameOrAction) => {\n    const r = set(state, replace);\n    if (!isRecording)\n      return r;\n    const action = nameOrAction === void 0 ? { type: anonymousActionType || \"anonymous\" } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n    if (store === void 0) {\n      connection == null ? void 0 : connection.send(action, get());\n      return r;\n    }\n    connection == null ? void 0 : connection.send(\n      {\n        ...action,\n        type: `${store}/${action.type}`\n      },\n      {\n        ...getTrackedConnectionState(options.name),\n        [store]: api.getState()\n      }\n    );\n    return r;\n  };\n  const setStateFromDevtools = (...a) => {\n    const originalIsRecording = isRecording;\n    isRecording = false;\n    set(...a);\n    isRecording = originalIsRecording;\n  };\n  const initialState = fn(api.setState, get, api);\n  if (connectionInformation.type === \"untracked\") {\n    connection == null ? void 0 : connection.init(initialState);\n  } else {\n    connectionInformation.stores[connectionInformation.store] = api;\n    connection == null ? void 0 : connection.init(\n      Object.fromEntries(\n        Object.entries(connectionInformation.stores).map(([key, store2]) => [\n          key,\n          key === connectionInformation.store ? initialState : store2.getState()\n        ])\n      )\n    );\n  }\n  if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n    let didWarnAboutReservedActionType = false;\n    const originalDispatch = api.dispatch;\n    api.dispatch = (...a) => {\n      if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && a[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n        console.warn(\n          '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n        );\n        didWarnAboutReservedActionType = true;\n      }\n      originalDispatch(...a);\n    };\n  }\n  connection.subscribe((message) => {\n    var _a;\n    switch (message.type) {\n      case \"ACTION\":\n        if (typeof message.payload !== \"string\") {\n          console.error(\n            \"[zustand devtools middleware] Unsupported action format\"\n          );\n          return;\n        }\n        return parseJsonThen(\n          message.payload,\n          (action) => {\n            if (action.type === \"__setState\") {\n              if (store === void 0) {\n                setStateFromDevtools(action.state);\n                return;\n              }\n              if (Object.keys(action.state).length !== 1) {\n                console.error(\n                  `\n                    [zustand devtools middleware] Unsupported __setState action format. \n                    When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n                    and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n                    `\n                );\n              }\n              const stateFromDevtools = action.state[store];\n              if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n                return;\n              }\n              if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n                setStateFromDevtools(stateFromDevtools);\n              }\n              return;\n            }\n            if (!api.dispatchFromDevtools)\n              return;\n            if (typeof api.dispatch !== \"function\")\n              return;\n            api.dispatch(action);\n          }\n        );\n      case \"DISPATCH\":\n        switch (message.payload.type) {\n          case \"RESET\":\n            setStateFromDevtools(initialState);\n            if (store === void 0) {\n              return connection == null ? void 0 : connection.init(api.getState());\n            }\n            return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n          case \"COMMIT\":\n            if (store === void 0) {\n              connection == null ? void 0 : connection.init(api.getState());\n              return;\n            }\n            return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n          case \"ROLLBACK\":\n            return parseJsonThen(message.state, (state) => {\n              if (store === void 0) {\n                setStateFromDevtools(state);\n                connection == null ? void 0 : connection.init(api.getState());\n                return;\n              }\n              setStateFromDevtools(state[store]);\n              connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n            });\n          case \"JUMP_TO_STATE\":\n          case \"JUMP_TO_ACTION\":\n            return parseJsonThen(message.state, (state) => {\n              if (store === void 0) {\n                setStateFromDevtools(state);\n                return;\n              }\n              if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n                setStateFromDevtools(state[store]);\n              }\n            });\n          case \"IMPORT_STATE\": {\n            const { nextLiftedState } = message.payload;\n            const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n            if (!lastComputedState)\n              return;\n            if (store === void 0) {\n              setStateFromDevtools(lastComputedState);\n            } else {\n              setStateFromDevtools(lastComputedState[store]);\n            }\n            connection == null ? void 0 : connection.send(\n              null,\n              // FIXME no-any\n              nextLiftedState\n            );\n            return;\n          }\n          case \"PAUSE_RECORDING\":\n            return isRecording = !isRecording;\n        }\n        return;\n    }\n  });\n  return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, f) => {\n  let parsed;\n  try {\n    parsed = JSON.parse(stringified);\n  } catch (e) {\n    console.error(\n      \"[zustand devtools middleware] Could not parse the received json\",\n      e\n    );\n  }\n  if (parsed !== void 0)\n    f(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n  const origSubscribe = api.subscribe;\n  api.subscribe = (selector, optListener, options) => {\n    let listener = selector;\n    if (optListener) {\n      const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n      let currentSlice = selector(api.getState());\n      listener = (state) => {\n        const nextSlice = selector(state);\n        if (!equalityFn(currentSlice, nextSlice)) {\n          const previousSlice = currentSlice;\n          optListener(currentSlice = nextSlice, previousSlice);\n        }\n      };\n      if (options == null ? void 0 : options.fireImmediately) {\n        optListener(currentSlice, currentSlice);\n      }\n    }\n    return origSubscribe(listener);\n  };\n  const initialState = fn(set, get, api);\n  return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nconst combine = (initialState, create) => (...a) => Object.assign({}, initialState, create(...a));\n\nfunction createJSONStorage(getStorage, options) {\n  let storage;\n  try {\n    storage = getStorage();\n  } catch (e) {\n    return;\n  }\n  const persistStorage = {\n    getItem: (name) => {\n      var _a;\n      const parse = (str2) => {\n        if (str2 === null) {\n          return null;\n        }\n        return JSON.parse(str2, options == null ? void 0 : options.reviver);\n      };\n      const str = (_a = storage.getItem(name)) != null ? _a : null;\n      if (str instanceof Promise) {\n        return str.then(parse);\n      }\n      return parse(str);\n    },\n    setItem: (name, newValue) => storage.setItem(\n      name,\n      JSON.stringify(newValue, options == null ? void 0 : options.replacer)\n    ),\n    removeItem: (name) => storage.removeItem(name)\n  };\n  return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n  try {\n    const result = fn(input);\n    if (result instanceof Promise) {\n      return result;\n    }\n    return {\n      then(onFulfilled) {\n        return toThenable(onFulfilled)(result);\n      },\n      catch(_onRejected) {\n        return this;\n      }\n    };\n  } catch (e) {\n    return {\n      then(_onFulfilled) {\n        return this;\n      },\n      catch(onRejected) {\n        return toThenable(onRejected)(e);\n      }\n    };\n  }\n};\nconst oldImpl = (config, baseOptions) => (set, get, api) => {\n  let options = {\n    getStorage: () => localStorage,\n    serialize: JSON.stringify,\n    deserialize: JSON.parse,\n    partialize: (state) => state,\n    version: 0,\n    merge: (persistedState, currentState) => ({\n      ...currentState,\n      ...persistedState\n    }),\n    ...baseOptions\n  };\n  let hasHydrated = false;\n  const hydrationListeners = /* @__PURE__ */ new Set();\n  const finishHydrationListeners = /* @__PURE__ */ new Set();\n  let storage;\n  try {\n    storage = options.getStorage();\n  } catch (e) {\n  }\n  if (!storage) {\n    return config(\n      (...args) => {\n        console.warn(\n          `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n        );\n        set(...args);\n      },\n      get,\n      api\n    );\n  }\n  const thenableSerialize = toThenable(options.serialize);\n  const setItem = () => {\n    const state = options.partialize({ ...get() });\n    let errorInSync;\n    const thenable = thenableSerialize({ state, version: options.version }).then(\n      (serializedValue) => storage.setItem(options.name, serializedValue)\n    ).catch((e) => {\n      errorInSync = e;\n    });\n    if (errorInSync) {\n      throw errorInSync;\n    }\n    return thenable;\n  };\n  const savedSetState = api.setState;\n  api.setState = (state, replace) => {\n    savedSetState(state, replace);\n    void setItem();\n  };\n  const configResult = config(\n    (...args) => {\n      set(...args);\n      void setItem();\n    },\n    get,\n    api\n  );\n  let stateFromStorage;\n  const hydrate = () => {\n    var _a;\n    if (!storage)\n      return;\n    hasHydrated = false;\n    hydrationListeners.forEach((cb) => cb(get()));\n    const postRehydrationCallback = ((_a = options.onRehydrateStorage) == null ? void 0 : _a.call(options, get())) || void 0;\n    return toThenable(storage.getItem.bind(storage))(options.name).then((storageValue) => {\n      if (storageValue) {\n        return options.deserialize(storageValue);\n      }\n    }).then((deserializedStorageValue) => {\n      if (deserializedStorageValue) {\n        if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n          if (options.migrate) {\n            return options.migrate(\n              deserializedStorageValue.state,\n              deserializedStorageValue.version\n            );\n          }\n          console.error(\n            `State loaded from storage couldn't be migrated since no migrate function was provided`\n          );\n        } else {\n          return deserializedStorageValue.state;\n        }\n      }\n    }).then((migratedState) => {\n      var _a2;\n      stateFromStorage = options.merge(\n        migratedState,\n        (_a2 = get()) != null ? _a2 : configResult\n      );\n      set(stateFromStorage, true);\n      return setItem();\n    }).then(() => {\n      postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n      hasHydrated = true;\n      finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n    }).catch((e) => {\n      postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n    });\n  };\n  api.persist = {\n    setOptions: (newOptions) => {\n      options = {\n        ...options,\n        ...newOptions\n      };\n      if (newOptions.getStorage) {\n        storage = newOptions.getStorage();\n      }\n    },\n    clearStorage: () => {\n      storage == null ? void 0 : storage.removeItem(options.name);\n    },\n    getOptions: () => options,\n    rehydrate: () => hydrate(),\n    hasHydrated: () => hasHydrated,\n    onHydrate: (cb) => {\n      hydrationListeners.add(cb);\n      return () => {\n        hydrationListeners.delete(cb);\n      };\n    },\n    onFinishHydration: (cb) => {\n      finishHydrationListeners.add(cb);\n      return () => {\n        finishHydrationListeners.delete(cb);\n      };\n    }\n  };\n  hydrate();\n  return stateFromStorage || configResult;\n};\nconst newImpl = (config, baseOptions) => (set, get, api) => {\n  let options = {\n    storage: createJSONStorage(() => localStorage),\n    partialize: (state) => state,\n    version: 0,\n    merge: (persistedState, currentState) => ({\n      ...currentState,\n      ...persistedState\n    }),\n    ...baseOptions\n  };\n  let hasHydrated = false;\n  const hydrationListeners = /* @__PURE__ */ new Set();\n  const finishHydrationListeners = /* @__PURE__ */ new Set();\n  let storage = options.storage;\n  if (!storage) {\n    return config(\n      (...args) => {\n        console.warn(\n          `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n        );\n        set(...args);\n      },\n      get,\n      api\n    );\n  }\n  const setItem = () => {\n    const state = options.partialize({ ...get() });\n    return storage.setItem(options.name, {\n      state,\n      version: options.version\n    });\n  };\n  const savedSetState = api.setState;\n  api.setState = (state, replace) => {\n    savedSetState(state, replace);\n    void setItem();\n  };\n  const configResult = config(\n    (...args) => {\n      set(...args);\n      void setItem();\n    },\n    get,\n    api\n  );\n  api.getInitialState = () => configResult;\n  let stateFromStorage;\n  const hydrate = () => {\n    var _a, _b;\n    if (!storage)\n      return;\n    hasHydrated = false;\n    hydrationListeners.forEach((cb) => {\n      var _a2;\n      return cb((_a2 = get()) != null ? _a2 : configResult);\n    });\n    const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n    return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n      if (deserializedStorageValue) {\n        if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n          if (options.migrate) {\n            return options.migrate(\n              deserializedStorageValue.state,\n              deserializedStorageValue.version\n            );\n          }\n          console.error(\n            `State loaded from storage couldn't be migrated since no migrate function was provided`\n          );\n        } else {\n          return deserializedStorageValue.state;\n        }\n      }\n    }).then((migratedState) => {\n      var _a2;\n      stateFromStorage = options.merge(\n        migratedState,\n        (_a2 = get()) != null ? _a2 : configResult\n      );\n      set(stateFromStorage, true);\n      return setItem();\n    }).then(() => {\n      postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n      stateFromStorage = get();\n      hasHydrated = true;\n      finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n    }).catch((e) => {\n      postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n    });\n  };\n  api.persist = {\n    setOptions: (newOptions) => {\n      options = {\n        ...options,\n        ...newOptions\n      };\n      if (newOptions.storage) {\n        storage = newOptions.storage;\n      }\n    },\n    clearStorage: () => {\n      storage == null ? void 0 : storage.removeItem(options.name);\n    },\n    getOptions: () => options,\n    rehydrate: () => hydrate(),\n    hasHydrated: () => hasHydrated,\n    onHydrate: (cb) => {\n      hydrationListeners.add(cb);\n      return () => {\n        hydrationListeners.delete(cb);\n      };\n    },\n    onFinishHydration: (cb) => {\n      finishHydrationListeners.add(cb);\n      return () => {\n        finishHydrationListeners.delete(cb);\n      };\n    }\n  };\n  if (!options.skipHydration) {\n    hydrate();\n  }\n  return stateFromStorage || configResult;\n};\nconst persistImpl = (config, baseOptions) => {\n  if (\"getStorage\" in baseOptions || \"serialize\" in baseOptions || \"deserialize\" in baseOptions) {\n    if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n      console.warn(\n        \"[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead.\"\n      );\n    }\n    return oldImpl(config, baseOptions);\n  }\n  return newImpl(config, baseOptions);\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","import { produce } from 'immer';\n\nconst immerImpl = (initializer) => (set, get, store) => {\n  store.setState = (updater, replace, ...a) => {\n    const nextState = typeof updater === \"function\" ? produce(updater) : updater;\n    return set(nextState, replace, ...a);\n  };\n  return initializer(store.setState, get, store);\n};\nconst immer = immerImpl;\n\nexport { immer };\n","const createStoreImpl = (createState) => {\n  let state;\n  const listeners = /* @__PURE__ */ new Set();\n  const setState = (partial, replace) => {\n    const nextState = typeof partial === \"function\" ? partial(state) : partial;\n    if (!Object.is(nextState, state)) {\n      const previousState = state;\n      state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n      listeners.forEach((listener) => listener(state, previousState));\n    }\n  };\n  const getState = () => state;\n  const getInitialState = () => initialState;\n  const subscribe = (listener) => {\n    listeners.add(listener);\n    return () => listeners.delete(listener);\n  };\n  const destroy = () => {\n    if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n      console.warn(\n        \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n      );\n    }\n    listeners.clear();\n  };\n  const api = { setState, getState, getInitialState, subscribe, destroy };\n  const initialState = state = createState(setState, getState, api);\n  return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n  if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n    console.warn(\n      \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n    );\n  }\n  return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n","import { createJSONStorage, devtools, persist } from \"zustand/middleware\"\nimport { immer } from \"zustand/middleware/immer\"\nimport { createStore } from \"zustand/vanilla\"\n\nimport type { BatchId, GatewayBatch, PostageBatch } from \"../clients\"\n\nexport enum BatchUpdateType {\n  Create = 1,\n  Topup = 2,\n  Dilute = 4,\n}\n\nexport type UpdatingBatch = {\n  id: BatchId\n  depth: number\n  amount: string\n  flag: BatchUpdateType\n}\n\nexport type BatchesState = {\n  updatingBatches: UpdatingBatch[]\n  addBatchUpdate(batch: PostageBatch | GatewayBatch | UpdatingBatch, type: BatchUpdateType): void\n  removeBatchUpdate(batchId: BatchId): void\n}\n\nexport const batchesStore = createStore<BatchesState>()(\n  devtools(\n    persist(\n      immer((set) => ({\n        updatingBatches: [],\n        addBatchUpdate(batch, type) {\n          set((state) => {\n            const id = \"id\" in batch ? batch.id : batch.batchID\n            const index = state.updatingBatches.findIndex(\n              (b) =>\n                b.id === id &&\n                b.depth === batch.depth &&\n                b.amount === batch.amount &&\n                b.flag === type,\n            )\n\n            if (index === -1) {\n              state.updatingBatches.push({\n                id,\n                depth: batch.depth,\n                amount: batch.amount,\n                flag: type,\n              })\n            }\n          })\n        },\n        removeBatchUpdate(batchId) {\n          set((state) => {\n            state.updatingBatches.splice(\n              state.updatingBatches.findIndex((b) => b.id === batchId),\n              1,\n            )\n          })\n        },\n      })),\n      {\n        name: \"etherna:batches\",\n        storage: createJSONStorage(() => localStorage),\n      },\n    ),\n    {\n      name: \"batches\",\n    },\n  ),\n)\n"],"names":["trackedConnections","getTrackedConnectionState","name","api","key","api2","extractConnectionInformation","store","extensionConnector","options","existingConnection","newConnection","devtoolsImpl","fn","devtoolsOptions","set","get","enabled","anonymousActionType","define_import_meta_env_default","connection","connectionInformation","isRecording","state","replace","nameOrAction","r","action","setStateFromDevtools","a","originalIsRecording","initialState","store2","didWarnAboutReservedActionType","originalDispatch","message","_a","parseJsonThen","stateFromDevtools","nextLiftedState","lastComputedState","devtools","stringified","f","parsed","e","createJSONStorage","getStorage","storage","parse","str2","str","newValue","toThenable","input","result","onFulfilled","_onRejected","_onFulfilled","onRejected","oldImpl","config","baseOptions","persistedState","currentState","hasHydrated","hydrationListeners","finishHydrationListeners","args","thenableSerialize","setItem","errorInSync","thenable","serializedValue","savedSetState","configResult","stateFromStorage","hydrate","cb","postRehydrationCallback","storageValue","deserializedStorageValue","migratedState","_a2","newOptions","newImpl","_b","persistImpl","persist","immerImpl","initializer","updater","nextState","produce","immer","createStoreImpl","createState","listeners","setState","partial","previousState","listener","getState","createStore","BatchUpdateType","batchesStore","batch","type","id","b","batchId"],"mappings":"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","x_google_ignoreList":[0,1,2]}