{
  "version": 3,
  "sources": ["../../src/store/store.ts"],
  "sourcesContent": ["import { createJSONStorage, devtools, persist } from 'zustand/middleware';\nimport { immer } from 'zustand/middleware/immer';\nimport { createStore } from 'zustand/vanilla';\nimport { applyMiddlewares } from './middleware';\nimport { accountSlice } from './slices/account';\nimport { cacheSlice } from './slices/cache';\nimport { configSlice } from './slices/config';\nimport { loginInfoSlice } from './slices/loginInfo';\nimport { networkSlice } from './slices/network';\nimport { toastSlice } from './slices/toast';\nimport { transactionsSlice } from './slices/transactions';\nimport { uiSlice } from './slices/ui';\nimport {\n  InMemoryStorage,\n  defaultStorageCallback,\n  StorageCallback\n} from './storage';\nimport { StoreType } from './store.types';\n\nexport type MutatorsIn = [\n  ['zustand/devtools', never],\n  ['zustand/persist', unknown],\n  ['zustand/immer', never]\n];\n\nexport type MutatorsOut = [\n  ['zustand/devtools', never],\n  ['zustand/persist', StoreType],\n  ['zustand/immer', never]\n];\n\nexport const createDAppStore = (getStorageCallback: StorageCallback) => {\n  const store = createStore<StoreType, MutatorsOut>(\n    devtools(\n      persist(\n        immer((...args) => ({\n          network: networkSlice(...args),\n          account: accountSlice(...args),\n          loginInfo: loginInfoSlice(...args),\n          config: configSlice(...args),\n          transactions: transactionsSlice(...args),\n          toasts: toastSlice(...args),\n          cache: cacheSlice(...args),\n          ui: uiSlice(...args)\n        })),\n        {\n          name: 'sdk-dapp-store',\n          storage: createJSONStorage(getStorageCallback)\n        }\n      ),\n      {\n        name: 'sdk-dapp'\n      }\n    )\n  );\n  store.subscribe(applyMiddlewares);\n  return store;\n};\n\nexport type StoreApi = ReturnType<typeof createDAppStore>;\n\nlet store: StoreApi;\n\nexport const setDAppStore = (_store: StoreApi) => {\n  store = _store;\n};\n\nexport const getStore = () => {\n  if (!store) {\n    setDAppStore(createDAppStore(() => new InMemoryStorage()));\n  }\n  return store;\n};\n\n/**\n * Initialize store with the preferred storage by passing a callback.\n * Default storage is localStorage.\n * You can pass your own storage.\n * Call this function before using store, ideally before app bootstrapping.\n * @param getStorageCallback\n * @default () => localStorage\n * @returns persistent store instance\n * @example\n * initStore(() => window.localStorage);\n * initStore(() => window.sessionStorage);\n * initStore(() => new InMemoryStorage());\n * */\nexport const initStore = (getStorageCallback = defaultStorageCallback) => {\n  const dappStore = createDAppStore(getStorageCallback);\n  setDAppStore(dappStore);\n  return dappStore;\n};\n\nexport const getState = () => getStore().getState();\n"],
  "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,aAAAC,EAAA,aAAAC,EAAA,cAAAC,EAAA,iBAAAC,IAAA,eAAAC,EAAAP,GAAA,IAAAQ,EAAqD,8BACrDC,EAAsB,oCACtBC,EAA4B,2BAC5BF,EAAiC,wBACjCG,EAA6B,4BAC7BC,EAA2B,0BAC3BC,EAA4B,2BAC5BC,EAA+B,8BAC/BC,EAA6B,4BAC7BC,EAA2B,0BAC3BC,EAAkC,iCAClCC,EAAwB,uBACxBC,EAIO,qBAeA,MAAMjB,EAAmBkB,GAAwC,CACtE,MAAMC,KAAQ,kBACZ,eACE,cACE,SAAM,IAAIC,KAAU,CAClB,WAAS,gBAAa,GAAGA,CAAI,EAC7B,WAAS,gBAAa,GAAGA,CAAI,EAC7B,aAAW,kBAAe,GAAGA,CAAI,EACjC,UAAQ,eAAY,GAAGA,CAAI,EAC3B,gBAAc,qBAAkB,GAAGA,CAAI,EACvC,UAAQ,cAAW,GAAGA,CAAI,EAC1B,SAAO,cAAW,GAAGA,CAAI,EACzB,MAAI,WAAQ,GAAGA,CAAI,CACrB,EAAE,EACF,CACE,KAAM,iBACN,WAAS,qBAAkBF,CAAkB,CAC/C,CACF,EACA,CACE,KAAM,UACR,CACF,CACF,EACA,OAAAC,EAAM,UAAU,kBAAgB,EACzBA,CACT,EAIA,IAAIA,EAEG,MAAMf,EAAgBiB,GAAqB,CAChDF,EAAQE,CACV,EAEanB,EAAW,KACjBiB,GACHf,EAAaJ,EAAgB,IAAM,IAAI,iBAAiB,CAAC,EAEpDmB,GAgBIhB,EAAY,CAACe,EAAqB,2BAA2B,CACxE,MAAMI,EAAYtB,EAAgBkB,CAAkB,EACpD,OAAAd,EAAakB,CAAS,EACfA,CACT,EAEarB,EAAW,IAAMC,EAAS,EAAE,SAAS",
  "names": ["store_exports", "__export", "createDAppStore", "getState", "getStore", "initStore", "setDAppStore", "__toCommonJS", "import_middleware", "import_immer", "import_vanilla", "import_account", "import_cache", "import_config", "import_loginInfo", "import_network", "import_toast", "import_transactions", "import_ui", "import_storage", "getStorageCallback", "store", "args", "_store", "dappStore"]
}
