@etherna/sdk-js
Version:
Etherna SDKs for operations on the network
1 lines • 37.7 kB
Source Map (JSON)
{"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]}