import { FluenceClient } from "@fluencelabs/fluence"; import { atom, selector } from "recoil"; export const clientState = atom({ key: "clientState", default: null, dangerouslyAllowMutability: true, }); export const serviceIdState = atom({ key: "serviceIdState", default: null, }); export const wasmState = atom({ key: "serviceState", default: "Qmf8fH2cDZXGKS9uDGBcHxv5uQ51ChrigdZKe3QxS2C1AF", }); export const rpcAddrState = atom({ key: "rpcAddrState", default: null, }); export const fileCIDState = atom({ key: "fileCIDState", default: "Qmf8fH2cDZXGKS9uDGBcHxv5uQ51ChrigdZKe3QxS2C1AF", }); export const fileSizeState = atom({ key: "fileSizeState", default: null, }); export const fileSizeCIDState = atom({ key: "fileSizeCIDState", default: null, }); export const isConnectedState = selector({ key: "isConnectedState", get: ({ get }) => { const client = get(clientState); return client !== null && client.isConnected; }, dangerouslyAllowMutability: true, }); export const gotRpcAddrState = selector({ key: "getRpcAddrState", get: ({ get }) => { const rpcAddr = get(rpcAddrState); return rpcAddr !== null; }, }); export const isDeployedState = selector({ key: "isDeployedState", get: ({ get }) => { const serviceId = get(serviceIdState); return serviceId !== null; }, }); export const hasResultState = selector({ key: "hasResultState", get: ({ get }) => { const fileSize = get(fileSizeState); return fileSize !== null; }, });