UNPKG

@roochnetwork/rooch-sdk-kit

Version:
241 lines (222 loc) 7.61 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/hooks/client/index.ts var client_exports = {}; __export(client_exports, { createNetworkConfig: () => createNetworkConfig, useCurrentNetwork: () => useCurrentNetwork, useRoochClient: () => useRoochClient, useRoochClientQuery: () => useRoochClientQuery, useRoochContext: () => useRoochContext, useSignAndExecuteTransaction: () => useSignAndExecuteTransaction, useSwitchNetwork: () => useSwitchNetwork, useTransferCoin: () => useTransferCoin, useTransferObject: () => useTransferObject }); module.exports = __toCommonJS(client_exports); // src/hooks/client/useCurrentNetwork.ts function useCurrentNetwork() { return useRoochContext().network; } // src/hooks/client/useRoochContext.ts var import_react4 = require("react"); // src/provider/clientProvider.tsx var import_react3 = require("react"); var import_rooch_sdk = require("@roochnetwork/rooch-sdk"); // src/hooks/useSessionsStore.ts var import_react2 = require("react"); var import_zustand = require("zustand"); // src/provider/roochProvider.tsx var import_react = require("react"); var import_jsx_runtime = require("react/jsx-runtime"); var RoochContext = (0, import_react.createContext)(null); // src/constants/roochMutationKeys.ts function formMutationKeyFn(baseEntity) { return function mutationKeyFn(additionalKeys = []) { return [{ ...roochMutationKeys.all, baseEntity }, ...additionalKeys]; }; } var roochMutationKeys = { all: { baseScope: "rooch" }, addNetwork: formMutationKeyFn("add-network"), switchNetwork: formMutationKeyFn("switch-network"), removeNetwork: formMutationKeyFn("remove-network"), removeSession: formMutationKeyFn("remove-session"), transferObject: formMutationKeyFn("transfer-object"), transferCoin: formMutationKeyFn("transfer-coin"), signAndExecuteTransaction: formMutationKeyFn("sign-and-execute-transaction") }; // src/hooks/useCurrentSession.ts function useCurrentSession() { return useSessionStore((state) => state.currentSession); } // src/hooks/useSessionsStore.ts function useSessionStore(selector) { const store = (0, import_react2.useContext)(RoochContext); if (!store) { throw new Error( "Could not find RoochSessionContext. Ensure that you have set up the RoochClientProvider." ); } return (0, import_zustand.useStore)(store, selector); } // src/provider/clientProvider.tsx var import_jsx_runtime2 = require("react/jsx-runtime"); var ClientContext = (0, import_react3.createContext)(null); var DEFAULT_NETWORKS = { localnet: { url: (0, import_rooch_sdk.getRoochNodeUrl)("localnet") } }; // src/hooks/client/useRoochContext.ts function useRoochContext() { const context = (0, import_react4.useContext)(ClientContext); if (!context) { throw new Error( "Could not find RoochClientContext. Ensure that you have set up the RoochClientProvider." ); } return context; } // src/hooks/client/useRoochClient.ts function useRoochClient() { return useRoochContext().client; } // src/hooks/client/useRoochClientQuery.ts var import_react_query = require("@tanstack/react-query"); function useRoochClientQuery(...args) { const [method, params, { queryKey = [], ...options } = {}] = args; const network = useCurrentNetwork(); const roochClient = useRoochClient(); return (0, import_react_query.useQuery)({ ...options, queryKey: [network, method, params, ...queryKey], queryFn: async () => { return await roochClient[method](params); } }); } // src/hooks/client/useSwitchNetwork.ts var import_react_query2 = require("@tanstack/react-query"); function useSwitchNetwork({ mutationKey, ...mutationOptions } = {}) { const switchNetwork = useRoochContext().selectNetwork; return (0, import_react_query2.useMutation)({ mutationKey: roochMutationKeys.switchNetwork(mutationKey), mutationFn: async (args) => { switchNetwork(args); }, ...mutationOptions }); } // src/hooks/client/useTransferObject.ts var import_react_query3 = require("@tanstack/react-query"); function useTransferObject({ mutationKey, ...mutationOptions } = {}) { const client = useRoochClient(); return (0, import_react_query3.useMutation)({ mutationKey: roochMutationKeys.transferObject(mutationKey), mutationFn: async (args) => { const result = await client.transferObject(args); if (result.execution_info.status.type !== "executed") { Error("transfer failed" + result.execution_info.status.type); } }, ...mutationOptions }); } // src/hooks/client/useTransferCoin.ts var import_react_query4 = require("@tanstack/react-query"); function useTransferCoin({ mutationKey, ...mutationOptions } = {}) { const client = useRoochClient(); const curSession = useCurrentSession(); return (0, import_react_query4.useMutation)({ mutationKey: roochMutationKeys.transferCoin(mutationKey), mutationFn: async (args) => { const signer = args.signer || curSession; if (signer === null) { throw Error(""); } const result = await client.transfer({ ...args, signer: args.signer || curSession }); if (result.execution_info.status.type !== "executed") { Error("transfer failed" + result.execution_info.status.type); } }, ...mutationOptions }); } // src/hooks/client/networks-config.ts function createNetworkConfig(networkConfig) { function useNetworkConfig() { const { config } = useRoochContext(); if (!config) { throw new Error("No network config found"); } return config; } function useNetworkVariables() { const { variables } = useNetworkConfig(); return variables ?? {}; } function useNetworkVariable(name) { const variables = useNetworkVariables(); return variables[name]; } return { networkConfig, useNetworkConfig, useNetworkVariables, useNetworkVariable }; } // src/hooks/client/useSignAndExecuteTransaction.ts var import_react_query5 = require("@tanstack/react-query"); function useSignAndExecuteTransaction({ mutationKey, ...mutationOptions } = {}) { const client = useRoochClient(); const session = useCurrentSession(); return (0, import_react_query5.useMutation)({ mutationKey: roochMutationKeys.signAndExecuteTransaction(mutationKey), mutationFn: async (args) => { if (!session) { throw Error("Create a session first"); } const result = await client.signAndExecuteTransaction({ transaction: args.transaction, signer: args.signer || session }); if (result.execution_info.status.type !== "executed" && result.execution_info.status) { Error("transfer failed" + result.execution_info.status.type); } return result; }, ...mutationOptions }); } //# sourceMappingURL=index.js.map