@provablehq/aleo-hooks 0.1.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,60 @@
1
+ import * as _provablehq_sdk from '@provablehq/sdk';
2
+ import * as _provablehq_aleo_types_src_transaction from '@provablehq/aleo-types/src/transaction';
3
+ import * as _tanstack_react_query from '@tanstack/react-query';
4
+ import { QueryClient } from '@tanstack/react-query';
5
+ import * as React from 'react';
6
+ import { FunctionKeyProvider as FunctionKeyProvider$2, RecordProvider as RecordProvider$2, ProgramManager as ProgramManager$2 } from '@provablehq/sdk/testnet.js';
7
+ import { FunctionKeyProvider as FunctionKeyProvider$1, RecordProvider as RecordProvider$1, ProgramManager as ProgramManager$1 } from '@provablehq/sdk/mainnet.js';
8
+
9
+ declare enum Network {
10
+ TESTNET = "testnet",
11
+ MAINNET = "mainnet"
12
+ }
13
+
14
+ type FunctionKeyProvider<N extends Network> = N extends Network.MAINNET ? FunctionKeyProvider$1 : FunctionKeyProvider$2;
15
+ type RecordProvider<N extends Network> = N extends Network.MAINNET ? RecordProvider$1 : RecordProvider$2;
16
+ type ProgramManager<N extends Network> = N extends Network.MAINNET ? ProgramManager$1 : ProgramManager$2;
17
+ declare function newProgramManager<N extends Network>(network: N, host?: string | undefined, functionKeyProvider?: FunctionKeyProvider<N> | undefined, recordProvider?: RecordProvider<N> | undefined): ProgramManager<N>;
18
+
19
+ declare const queryClient: QueryClient;
20
+ declare function AleoHooksProvider({ children }: {
21
+ children: React.ReactNode;
22
+ }): React.FunctionComponentElement<_tanstack_react_query.QueryClientProviderProps>;
23
+ declare function useLatestHeight(refetchInterval?: number): {
24
+ latestHeight: number | undefined;
25
+ latestHeightIsLoading: boolean;
26
+ latestHeightIsError: boolean;
27
+ latestHeightError: Error | null;
28
+ refetchLatestHeight: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<number, Error>>;
29
+ };
30
+ declare function useTransactions(blockHeight: number): {
31
+ transactions: _provablehq_aleo_types_src_transaction.Transaction[] | undefined;
32
+ transactionsIsLoading: boolean;
33
+ transactionsIsError: boolean;
34
+ transactionsError: Error | null;
35
+ };
36
+ declare function useTransaction(transactionId: string): {
37
+ transaction: _provablehq_sdk.TransactionJSON | undefined;
38
+ transactionIsLoading: boolean;
39
+ transactionIsError: boolean;
40
+ transactionError: Error | null;
41
+ };
42
+ declare function useProgram(programName: string): {
43
+ program: string | undefined;
44
+ programIsLoading: boolean;
45
+ programIsError: boolean;
46
+ programError: Error | null;
47
+ };
48
+ declare function useProgramMappingValue(): {
49
+ watchProgramMappingValue: (programName: string, mappingName: string, key: string, refetchInterval?: number) => {
50
+ programMappingValue: string | null | undefined;
51
+ programMappingValueIsLoading: boolean;
52
+ programMappingValueIsError: boolean;
53
+ programMappingValueError: Error | null;
54
+ refetchProgramMappingValue: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<string | null, Error>>;
55
+ };
56
+ getProgramMappingValue: (programName: string, mappingName: string, key: string) => Promise<string | null>;
57
+ pollProgramMappingValueUpdate: (programName: string, mappingName: string, key: string, callback?: (value: string) => string, retries?: number, interval?: number) => Promise<string | null>;
58
+ };
59
+
60
+ export { AleoHooksProvider, Network, type ProgramManager, newProgramManager, queryClient, useLatestHeight, useProgram, useProgramMappingValue, useTransaction, useTransactions };
@@ -0,0 +1,60 @@
1
+ import * as _provablehq_sdk from '@provablehq/sdk';
2
+ import * as _provablehq_aleo_types_src_transaction from '@provablehq/aleo-types/src/transaction';
3
+ import * as _tanstack_react_query from '@tanstack/react-query';
4
+ import { QueryClient } from '@tanstack/react-query';
5
+ import * as React from 'react';
6
+ import { FunctionKeyProvider as FunctionKeyProvider$2, RecordProvider as RecordProvider$2, ProgramManager as ProgramManager$2 } from '@provablehq/sdk/testnet.js';
7
+ import { FunctionKeyProvider as FunctionKeyProvider$1, RecordProvider as RecordProvider$1, ProgramManager as ProgramManager$1 } from '@provablehq/sdk/mainnet.js';
8
+
9
+ declare enum Network {
10
+ TESTNET = "testnet",
11
+ MAINNET = "mainnet"
12
+ }
13
+
14
+ type FunctionKeyProvider<N extends Network> = N extends Network.MAINNET ? FunctionKeyProvider$1 : FunctionKeyProvider$2;
15
+ type RecordProvider<N extends Network> = N extends Network.MAINNET ? RecordProvider$1 : RecordProvider$2;
16
+ type ProgramManager<N extends Network> = N extends Network.MAINNET ? ProgramManager$1 : ProgramManager$2;
17
+ declare function newProgramManager<N extends Network>(network: N, host?: string | undefined, functionKeyProvider?: FunctionKeyProvider<N> | undefined, recordProvider?: RecordProvider<N> | undefined): ProgramManager<N>;
18
+
19
+ declare const queryClient: QueryClient;
20
+ declare function AleoHooksProvider({ children }: {
21
+ children: React.ReactNode;
22
+ }): React.FunctionComponentElement<_tanstack_react_query.QueryClientProviderProps>;
23
+ declare function useLatestHeight(refetchInterval?: number): {
24
+ latestHeight: number | undefined;
25
+ latestHeightIsLoading: boolean;
26
+ latestHeightIsError: boolean;
27
+ latestHeightError: Error | null;
28
+ refetchLatestHeight: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<number, Error>>;
29
+ };
30
+ declare function useTransactions(blockHeight: number): {
31
+ transactions: _provablehq_aleo_types_src_transaction.Transaction[] | undefined;
32
+ transactionsIsLoading: boolean;
33
+ transactionsIsError: boolean;
34
+ transactionsError: Error | null;
35
+ };
36
+ declare function useTransaction(transactionId: string): {
37
+ transaction: _provablehq_sdk.TransactionJSON | undefined;
38
+ transactionIsLoading: boolean;
39
+ transactionIsError: boolean;
40
+ transactionError: Error | null;
41
+ };
42
+ declare function useProgram(programName: string): {
43
+ program: string | undefined;
44
+ programIsLoading: boolean;
45
+ programIsError: boolean;
46
+ programError: Error | null;
47
+ };
48
+ declare function useProgramMappingValue(): {
49
+ watchProgramMappingValue: (programName: string, mappingName: string, key: string, refetchInterval?: number) => {
50
+ programMappingValue: string | null | undefined;
51
+ programMappingValueIsLoading: boolean;
52
+ programMappingValueIsError: boolean;
53
+ programMappingValueError: Error | null;
54
+ refetchProgramMappingValue: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<string | null, Error>>;
55
+ };
56
+ getProgramMappingValue: (programName: string, mappingName: string, key: string) => Promise<string | null>;
57
+ pollProgramMappingValueUpdate: (programName: string, mappingName: string, key: string, callback?: (value: string) => string, retries?: number, interval?: number) => Promise<string | null>;
58
+ };
59
+
60
+ export { AleoHooksProvider, Network, type ProgramManager, newProgramManager, queryClient, useLatestHeight, useProgram, useProgramMappingValue, useTransaction, useTransactions };
package/dist/index.js ADDED
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ AleoHooksProvider: () => AleoHooksProvider,
34
+ Network: () => Network,
35
+ newProgramManager: () => newProgramManager,
36
+ queryClient: () => queryClient,
37
+ useLatestHeight: () => useLatestHeight,
38
+ useProgram: () => useProgram,
39
+ useProgramMappingValue: () => useProgramMappingValue,
40
+ useTransaction: () => useTransaction,
41
+ useTransactions: () => useTransactions
42
+ });
43
+ module.exports = __toCommonJS(index_exports);
44
+ var import_react_query = require("@tanstack/react-query");
45
+ var React = __toESM(require("react"));
46
+
47
+ // src/createConfig.ts
48
+ var import_aleo_wallet_standard = require("@provablehq/aleo-wallet-standard");
49
+
50
+ // src/types/network.ts
51
+ var Network = /* @__PURE__ */ ((Network3) => {
52
+ Network3["TESTNET"] = "testnet";
53
+ Network3["MAINNET"] = "mainnet";
54
+ return Network3;
55
+ })(Network || {});
56
+
57
+ // src/types/programManager.ts
58
+ var import_testnet = require("@provablehq/sdk/testnet.js");
59
+ var import_mainnet = require("@provablehq/sdk/mainnet.js");
60
+ function newProgramManager(network, host, functionKeyProvider, recordProvider) {
61
+ let programManager;
62
+ switch (network) {
63
+ case "mainnet" /* MAINNET */:
64
+ programManager = new import_mainnet.ProgramManager(
65
+ host,
66
+ functionKeyProvider,
67
+ recordProvider
68
+ );
69
+ break;
70
+ case "testnet" /* TESTNET */:
71
+ programManager = new import_testnet.ProgramManager(
72
+ host,
73
+ functionKeyProvider,
74
+ recordProvider
75
+ );
76
+ break;
77
+ }
78
+ return programManager;
79
+ }
80
+
81
+ // src/createConfig.ts
82
+ var State = class {
83
+ emitter = new import_aleo_wallet_standard.EventEmitter();
84
+ programManager;
85
+ constructor(network) {
86
+ this.programManager = newProgramManager(network);
87
+ }
88
+ async pollProgramMappingValueUpdate(programName, mappingName, key, callback = (value) => value, retries = 10, interval = 1e3) {
89
+ while (retries > 0) {
90
+ try {
91
+ const value = await this.programManager.networkClient.getProgramMappingValue(
92
+ programName,
93
+ mappingName,
94
+ key
95
+ );
96
+ return callback(value);
97
+ } catch (error) {
98
+ if (retries === 0) {
99
+ throw error;
100
+ }
101
+ console.error(error);
102
+ retries--;
103
+ console.log("Retrying...");
104
+ console.log(retries, "retries left");
105
+ await new Promise((resolve) => setTimeout(resolve, interval));
106
+ }
107
+ }
108
+ }
109
+ };
110
+
111
+ // src/actions/getLatestHeight.ts
112
+ function getLatestHeight(config) {
113
+ return config.state.programManager.networkClient.getLatestHeight();
114
+ }
115
+
116
+ // src/actions/getProgram.ts
117
+ async function getProgram(config, programName) {
118
+ return config.state.programManager.networkClient.getProgram(programName);
119
+ }
120
+
121
+ // src/actions/getProgramMappingValue.ts
122
+ async function getProgramMappingValue(config, programName, mappingName, key) {
123
+ return config.state.programManager.networkClient.getProgramMappingValue(programName, mappingName, key);
124
+ }
125
+
126
+ // src/actions/getTransaction.ts
127
+ async function getTransaction(config, transactionId) {
128
+ return config.state.programManager.networkClient.getTransaction(transactionId);
129
+ }
130
+
131
+ // src/actions/getTransactions.ts
132
+ async function getTransactions(config, blockHeight) {
133
+ return (await config.state.programManager.networkClient.getTransactions(blockHeight)).map((transaction) => ({
134
+ type: transaction.transaction.type,
135
+ id: transaction.transaction.id,
136
+ fee: transaction.transaction.fee,
137
+ owner: transaction.transaction.owner,
138
+ deployment: transaction.transaction.deployment,
139
+ execution: transaction.transaction.execution
140
+ }));
141
+ }
142
+
143
+ // src/actions/pollProgramMappingValueUpdate.ts
144
+ async function pollProgramMappingValueUpdate(config, programName, mappingName, key, callback = (value) => value, retries = 10, interval = 1e3) {
145
+ let res = await config.state.pollProgramMappingValueUpdate(programName, mappingName, key, callback, retries, interval);
146
+ return res ?? null;
147
+ }
148
+
149
+ // src/index.ts
150
+ var state = new State("testnet" /* TESTNET */);
151
+ var queryClient = new import_react_query.QueryClient();
152
+ function AleoHooksProvider({ children }) {
153
+ return React.createElement(import_react_query.QueryClientProvider, { client: queryClient }, children);
154
+ }
155
+ function useLatestHeight(refetchInterval = 1e4) {
156
+ let query;
157
+ if (refetchInterval > 0) {
158
+ query = (0, import_react_query.useQuery)({
159
+ queryKey: ["latestHeight"],
160
+ queryFn: () => getLatestHeight({ state }),
161
+ refetchInterval
162
+ });
163
+ } else {
164
+ query = (0, import_react_query.useQuery)({
165
+ queryKey: ["latestHeight"],
166
+ queryFn: () => getLatestHeight({ state })
167
+ });
168
+ }
169
+ return {
170
+ latestHeight: query.data,
171
+ latestHeightIsLoading: query.isLoading,
172
+ latestHeightIsError: query.isError,
173
+ latestHeightError: query.error,
174
+ refetchLatestHeight: query.refetch
175
+ };
176
+ }
177
+ function useTransactions(blockHeight) {
178
+ let query = (0, import_react_query.useQuery)({
179
+ queryKey: ["transactions", blockHeight],
180
+ queryFn: () => getTransactions({ state }, blockHeight),
181
+ staleTime: Infinity,
182
+ gcTime: Infinity
183
+ });
184
+ return {
185
+ transactions: query.data,
186
+ transactionsIsLoading: query.isLoading,
187
+ transactionsIsError: query.isError,
188
+ transactionsError: query.error
189
+ };
190
+ }
191
+ function useTransaction(transactionId) {
192
+ let query = (0, import_react_query.useQuery)({
193
+ queryKey: ["transaction", transactionId],
194
+ queryFn: () => getTransaction({ state }, transactionId),
195
+ staleTime: Infinity,
196
+ gcTime: Infinity
197
+ });
198
+ return {
199
+ transaction: query.data,
200
+ transactionIsLoading: query.isLoading,
201
+ transactionIsError: query.isError,
202
+ transactionError: query.error
203
+ };
204
+ }
205
+ function useProgram(programName) {
206
+ let query = (0, import_react_query.useQuery)({
207
+ queryKey: ["program", programName],
208
+ queryFn: () => getProgram({ state }, programName)
209
+ });
210
+ return {
211
+ program: query.data,
212
+ programIsLoading: query.isLoading,
213
+ programIsError: query.isError,
214
+ programError: query.error
215
+ };
216
+ }
217
+ function useProgramMappingValue() {
218
+ return {
219
+ watchProgramMappingValue: (programName, mappingName, key, refetchInterval = 1e4) => {
220
+ const query = (0, import_react_query.useQuery)({
221
+ queryKey: ["programMappingValue", programName, mappingName, key],
222
+ queryFn: () => getProgramMappingValue({ state }, programName, mappingName, key),
223
+ refetchInterval
224
+ });
225
+ return {
226
+ programMappingValue: query.data,
227
+ programMappingValueIsLoading: query.isLoading,
228
+ programMappingValueIsError: query.isError,
229
+ programMappingValueError: query.error,
230
+ refetchProgramMappingValue: query.refetch
231
+ };
232
+ },
233
+ getProgramMappingValue: (programName, mappingName, key) => getProgramMappingValue({ state }, programName, mappingName, key),
234
+ pollProgramMappingValueUpdate: (programName, mappingName, key, callback = (value) => value, retries = 10, interval = 1e3) => pollProgramMappingValueUpdate(
235
+ { state },
236
+ programName,
237
+ mappingName,
238
+ key,
239
+ callback,
240
+ retries,
241
+ interval
242
+ )
243
+ };
244
+ }
245
+ // Annotate the CommonJS export names for ESM import in node:
246
+ 0 && (module.exports = {
247
+ AleoHooksProvider,
248
+ Network,
249
+ newProgramManager,
250
+ queryClient,
251
+ useLatestHeight,
252
+ useProgram,
253
+ useProgramMappingValue,
254
+ useTransaction,
255
+ useTransactions
256
+ });
257
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/createConfig.ts","../src/types/network.ts","../src/types/programManager.ts","../src/actions/getLatestHeight.ts","../src/actions/getProgram.ts","../src/actions/getProgramMappingValue.ts","../src/actions/getTransaction.ts","../src/actions/getTransactions.ts","../src/actions/pollProgramMappingValueUpdate.ts"],"sourcesContent":["import { useQuery, QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport * as React from 'react';\nimport { State } from './createConfig';\nimport { Network } from './types';\nimport {\n getLatestHeight,\n getProgram,\n getProgramMappingValue,\n getTransaction,\n getTransactions,\n pollProgramMappingValueUpdate,\n} from './actions';\nexport * from './types';\n\nconst state = new State(Network.TESTNET);\n\nexport const queryClient = new QueryClient();\n\nexport function AleoHooksProvider({ children }: { children: React.ReactNode }) {\n return React.createElement(QueryClientProvider, { client: queryClient }, children);\n}\n\nexport function useLatestHeight(refetchInterval: number = 10_000) {\n let query;\n if (refetchInterval > 0) {\n query = useQuery({\n queryKey: ['latestHeight'],\n queryFn: () => getLatestHeight({ state }),\n refetchInterval,\n });\n } else {\n query = useQuery({\n queryKey: ['latestHeight'],\n queryFn: () => getLatestHeight({ state }),\n });\n }\n\n return {\n latestHeight: query.data,\n latestHeightIsLoading: query.isLoading,\n latestHeightIsError: query.isError,\n latestHeightError: query.error,\n refetchLatestHeight: query.refetch,\n };\n}\n\nexport function useTransactions(blockHeight: number) {\n let query = useQuery({\n queryKey: ['transactions', blockHeight],\n queryFn: () => getTransactions({ state }, blockHeight),\n staleTime: Infinity,\n gcTime: Infinity,\n });\n\n return {\n transactions: query.data,\n transactionsIsLoading: query.isLoading,\n transactionsIsError: query.isError,\n transactionsError: query.error,\n };\n}\n\nexport function useTransaction(transactionId: string) {\n let query = useQuery({\n queryKey: ['transaction', transactionId],\n queryFn: () => getTransaction({ state }, transactionId),\n staleTime: Infinity,\n gcTime: Infinity,\n });\n\n return {\n transaction: query.data,\n transactionIsLoading: query.isLoading,\n transactionIsError: query.isError,\n transactionError: query.error,\n };\n}\n\nexport function useProgram(programName: string) {\n let query = useQuery({\n queryKey: ['program', programName],\n queryFn: () => getProgram({ state }, programName),\n });\n\n return {\n program: query.data,\n programIsLoading: query.isLoading,\n programIsError: query.isError,\n programError: query.error,\n };\n}\n\nexport function useProgramMappingValue() {\n return {\n watchProgramMappingValue: (\n programName: string,\n mappingName: string,\n key: string,\n refetchInterval: number = 10_000,\n ) => {\n const query = useQuery({\n queryKey: ['programMappingValue', programName, mappingName, key],\n queryFn: () => getProgramMappingValue({ state }, programName, mappingName, key),\n refetchInterval,\n });\n return {\n programMappingValue: query.data,\n programMappingValueIsLoading: query.isLoading,\n programMappingValueIsError: query.isError,\n programMappingValueError: query.error,\n refetchProgramMappingValue: query.refetch,\n };\n },\n getProgramMappingValue: (programName: string, mappingName: string, key: string) =>\n getProgramMappingValue({ state }, programName, mappingName, key),\n pollProgramMappingValueUpdate: (\n programName: string,\n mappingName: string,\n key: string,\n callback: (value: string) => string = value => value,\n retries: number = 10,\n interval: number = 1000,\n ) =>\n pollProgramMappingValueUpdate(\n { state },\n programName,\n mappingName,\n key,\n callback,\n retries,\n interval,\n ),\n };\n}\n","import { EventEmitter } from '@provablehq/aleo-wallet-standard';\nimport { Network, newProgramManager, ProgramManager } from './types';\n\nexport type Config = {\n readonly state: State;\n};\n\nexport class State {\n emitter: EventEmitter = new EventEmitter();\n programManager: ProgramManager<Network.MAINNET | Network.TESTNET>;\n\n constructor(network: Network) {\n this.programManager = newProgramManager(network);\n }\n\n async pollProgramMappingValueUpdate(\n programName: string,\n mappingName: string,\n key: string,\n callback: (value: string) => string = value => value,\n retries: number = 10,\n interval: number = 1000,\n ): Promise<string | void> {\n while (retries > 0) {\n try {\n const value = await this.programManager.networkClient.getProgramMappingValue(\n programName,\n mappingName,\n key,\n );\n return callback(value);\n } catch (error) {\n if (retries === 0) {\n throw error;\n }\n console.error(error);\n retries--;\n console.log('Retrying...');\n console.log(retries, 'retries left');\n await new Promise(resolve => setTimeout(resolve, interval));\n }\n }\n }\n}\n","export enum Network {\n TESTNET = 'testnet',\n MAINNET = 'mainnet',\n}\n","import {\n ProgramManager as TestnetProgramManager,\n // AleoNetworkClientOptions as TestnetClientOptions,\n FunctionKeyProvider as TestnetFunctionKeyProvider,\n RecordProvider as TestnetRecordProvider,\n} from '@provablehq/sdk/testnet.js';\n\nimport {\n ProgramManager as MainnetProgramManager,\n // AleoNetworkClientOptions as MainnetClientOptions,\n FunctionKeyProvider as MainnetFunctionKeyProvider,\n RecordProvider as MainnetRecordProvider,\n} from '@provablehq/sdk/mainnet.js';\n\nimport { Network } from './network';\n\n// export type AleoNetworkClientOptions<N extends Network> = N extends Network.MAINNET ? MainnetClientOptions : TestnetClientOptions\nexport type FunctionKeyProvider<N extends Network> = N extends Network.MAINNET\n ? MainnetFunctionKeyProvider\n : TestnetFunctionKeyProvider;\nexport type RecordProvider<N extends Network> = N extends Network.MAINNET\n ? MainnetRecordProvider\n : TestnetRecordProvider;\n\nexport type ProgramManager<N extends Network> = N extends Network.MAINNET\n ? MainnetProgramManager\n : TestnetProgramManager;\n\nexport function newProgramManager<N extends Network>(\n network: N,\n host?: string | undefined,\n functionKeyProvider?: FunctionKeyProvider<N> | undefined,\n recordProvider?: RecordProvider<N> | undefined,\n // networkClientOptions?: AleoNetworkClientOptions<N> | undefined,\n): ProgramManager<N> {\n let programManager;\n switch (network) {\n case Network.MAINNET:\n programManager = new MainnetProgramManager(\n host,\n functionKeyProvider,\n <MainnetRecordProvider | undefined>recordProvider,\n );\n break;\n case Network.TESTNET:\n programManager = new TestnetProgramManager(\n host,\n functionKeyProvider,\n <TestnetRecordProvider | undefined>recordProvider,\n );\n break;\n }\n return <ProgramManager<N>>programManager;\n}\n","import { Config } from \"../createConfig\";\n\nexport default function getLatestHeight(config: Config): Promise<number> {\n return config.state.programManager.networkClient.getLatestHeight()\n}","import { Network } from \"../types\"\nimport { Config } from \"../createConfig\"\n\nexport default async function getProgram(config: Config, programName: string) {\n return config.state.programManager.networkClient.getProgram(programName)\n}","import { Config } from \"../createConfig\";\nimport { Network } from \"../types\";\n\nexport default async function getProgramMappingValue(\n config: Config,\n programName: string,\n mappingName: string,\n key: string,\n): Promise<string | null> {\n return config.state.programManager.networkClient.getProgramMappingValue(programName, mappingName, key)\n}","import { Config } from \"../createConfig\";\n\nexport default async function getTransaction(config: Config, transactionId: string) {\n return config.state.programManager.networkClient.getTransaction(transactionId)\n}","import { Config } from \"../createConfig\";\nimport { Transaction } from \"@provablehq/aleo-types/src/transaction\";\n\nexport default async function getTransactions(config: Config, blockHeight: number): Promise<Transaction[]> {\n return (await config.state.programManager.networkClient.getTransactions(blockHeight)).map(transaction => (<Transaction>{\n type: transaction.transaction.type,\n id: transaction.transaction.id,\n fee: transaction.transaction.fee,\n owner: transaction.transaction.owner,\n deployment: transaction.transaction.deployment,\n execution: transaction.transaction.execution,\n }))\n}\n","import { Config } from \"../createConfig\";\nimport { Network } from \"../types\";\n\nexport default async function pollProgramMappingValueUpdate(\n config: Config,\n programName: string,\n mappingName: string,\n key: string,\n callback: (value: string) => string = (value) => value,\n retries: number = 10,\n interval: number = 1000,\n): Promise<string | null> {\n let res = await config.state.pollProgramMappingValueUpdate(programName, mappingName, key, callback, retries, interval)\n return res ?? null\n}"],"mappings":"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","names":["Network","MainnetProgramManager","TestnetProgramManager"]}
package/dist/index.mjs ADDED
@@ -0,0 +1,218 @@
1
+ // src/index.ts
2
+ import { useQuery, QueryClient, QueryClientProvider } from "@tanstack/react-query";
3
+ import * as React from "react";
4
+
5
+ // src/createConfig.ts
6
+ import { EventEmitter } from "@provablehq/aleo-wallet-standard";
7
+
8
+ // src/types/network.ts
9
+ var Network = /* @__PURE__ */ ((Network3) => {
10
+ Network3["TESTNET"] = "testnet";
11
+ Network3["MAINNET"] = "mainnet";
12
+ return Network3;
13
+ })(Network || {});
14
+
15
+ // src/types/programManager.ts
16
+ import {
17
+ ProgramManager as TestnetProgramManager
18
+ } from "@provablehq/sdk/testnet.js";
19
+ import {
20
+ ProgramManager as MainnetProgramManager
21
+ } from "@provablehq/sdk/mainnet.js";
22
+ function newProgramManager(network, host, functionKeyProvider, recordProvider) {
23
+ let programManager;
24
+ switch (network) {
25
+ case "mainnet" /* MAINNET */:
26
+ programManager = new MainnetProgramManager(
27
+ host,
28
+ functionKeyProvider,
29
+ recordProvider
30
+ );
31
+ break;
32
+ case "testnet" /* TESTNET */:
33
+ programManager = new TestnetProgramManager(
34
+ host,
35
+ functionKeyProvider,
36
+ recordProvider
37
+ );
38
+ break;
39
+ }
40
+ return programManager;
41
+ }
42
+
43
+ // src/createConfig.ts
44
+ var State = class {
45
+ emitter = new EventEmitter();
46
+ programManager;
47
+ constructor(network) {
48
+ this.programManager = newProgramManager(network);
49
+ }
50
+ async pollProgramMappingValueUpdate(programName, mappingName, key, callback = (value) => value, retries = 10, interval = 1e3) {
51
+ while (retries > 0) {
52
+ try {
53
+ const value = await this.programManager.networkClient.getProgramMappingValue(
54
+ programName,
55
+ mappingName,
56
+ key
57
+ );
58
+ return callback(value);
59
+ } catch (error) {
60
+ if (retries === 0) {
61
+ throw error;
62
+ }
63
+ console.error(error);
64
+ retries--;
65
+ console.log("Retrying...");
66
+ console.log(retries, "retries left");
67
+ await new Promise((resolve) => setTimeout(resolve, interval));
68
+ }
69
+ }
70
+ }
71
+ };
72
+
73
+ // src/actions/getLatestHeight.ts
74
+ function getLatestHeight(config) {
75
+ return config.state.programManager.networkClient.getLatestHeight();
76
+ }
77
+
78
+ // src/actions/getProgram.ts
79
+ async function getProgram(config, programName) {
80
+ return config.state.programManager.networkClient.getProgram(programName);
81
+ }
82
+
83
+ // src/actions/getProgramMappingValue.ts
84
+ async function getProgramMappingValue(config, programName, mappingName, key) {
85
+ return config.state.programManager.networkClient.getProgramMappingValue(programName, mappingName, key);
86
+ }
87
+
88
+ // src/actions/getTransaction.ts
89
+ async function getTransaction(config, transactionId) {
90
+ return config.state.programManager.networkClient.getTransaction(transactionId);
91
+ }
92
+
93
+ // src/actions/getTransactions.ts
94
+ async function getTransactions(config, blockHeight) {
95
+ return (await config.state.programManager.networkClient.getTransactions(blockHeight)).map((transaction) => ({
96
+ type: transaction.transaction.type,
97
+ id: transaction.transaction.id,
98
+ fee: transaction.transaction.fee,
99
+ owner: transaction.transaction.owner,
100
+ deployment: transaction.transaction.deployment,
101
+ execution: transaction.transaction.execution
102
+ }));
103
+ }
104
+
105
+ // src/actions/pollProgramMappingValueUpdate.ts
106
+ async function pollProgramMappingValueUpdate(config, programName, mappingName, key, callback = (value) => value, retries = 10, interval = 1e3) {
107
+ let res = await config.state.pollProgramMappingValueUpdate(programName, mappingName, key, callback, retries, interval);
108
+ return res ?? null;
109
+ }
110
+
111
+ // src/index.ts
112
+ var state = new State("testnet" /* TESTNET */);
113
+ var queryClient = new QueryClient();
114
+ function AleoHooksProvider({ children }) {
115
+ return React.createElement(QueryClientProvider, { client: queryClient }, children);
116
+ }
117
+ function useLatestHeight(refetchInterval = 1e4) {
118
+ let query;
119
+ if (refetchInterval > 0) {
120
+ query = useQuery({
121
+ queryKey: ["latestHeight"],
122
+ queryFn: () => getLatestHeight({ state }),
123
+ refetchInterval
124
+ });
125
+ } else {
126
+ query = useQuery({
127
+ queryKey: ["latestHeight"],
128
+ queryFn: () => getLatestHeight({ state })
129
+ });
130
+ }
131
+ return {
132
+ latestHeight: query.data,
133
+ latestHeightIsLoading: query.isLoading,
134
+ latestHeightIsError: query.isError,
135
+ latestHeightError: query.error,
136
+ refetchLatestHeight: query.refetch
137
+ };
138
+ }
139
+ function useTransactions(blockHeight) {
140
+ let query = useQuery({
141
+ queryKey: ["transactions", blockHeight],
142
+ queryFn: () => getTransactions({ state }, blockHeight),
143
+ staleTime: Infinity,
144
+ gcTime: Infinity
145
+ });
146
+ return {
147
+ transactions: query.data,
148
+ transactionsIsLoading: query.isLoading,
149
+ transactionsIsError: query.isError,
150
+ transactionsError: query.error
151
+ };
152
+ }
153
+ function useTransaction(transactionId) {
154
+ let query = useQuery({
155
+ queryKey: ["transaction", transactionId],
156
+ queryFn: () => getTransaction({ state }, transactionId),
157
+ staleTime: Infinity,
158
+ gcTime: Infinity
159
+ });
160
+ return {
161
+ transaction: query.data,
162
+ transactionIsLoading: query.isLoading,
163
+ transactionIsError: query.isError,
164
+ transactionError: query.error
165
+ };
166
+ }
167
+ function useProgram(programName) {
168
+ let query = useQuery({
169
+ queryKey: ["program", programName],
170
+ queryFn: () => getProgram({ state }, programName)
171
+ });
172
+ return {
173
+ program: query.data,
174
+ programIsLoading: query.isLoading,
175
+ programIsError: query.isError,
176
+ programError: query.error
177
+ };
178
+ }
179
+ function useProgramMappingValue() {
180
+ return {
181
+ watchProgramMappingValue: (programName, mappingName, key, refetchInterval = 1e4) => {
182
+ const query = useQuery({
183
+ queryKey: ["programMappingValue", programName, mappingName, key],
184
+ queryFn: () => getProgramMappingValue({ state }, programName, mappingName, key),
185
+ refetchInterval
186
+ });
187
+ return {
188
+ programMappingValue: query.data,
189
+ programMappingValueIsLoading: query.isLoading,
190
+ programMappingValueIsError: query.isError,
191
+ programMappingValueError: query.error,
192
+ refetchProgramMappingValue: query.refetch
193
+ };
194
+ },
195
+ getProgramMappingValue: (programName, mappingName, key) => getProgramMappingValue({ state }, programName, mappingName, key),
196
+ pollProgramMappingValueUpdate: (programName, mappingName, key, callback = (value) => value, retries = 10, interval = 1e3) => pollProgramMappingValueUpdate(
197
+ { state },
198
+ programName,
199
+ mappingName,
200
+ key,
201
+ callback,
202
+ retries,
203
+ interval
204
+ )
205
+ };
206
+ }
207
+ export {
208
+ AleoHooksProvider,
209
+ Network,
210
+ newProgramManager,
211
+ queryClient,
212
+ useLatestHeight,
213
+ useProgram,
214
+ useProgramMappingValue,
215
+ useTransaction,
216
+ useTransactions
217
+ };
218
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/createConfig.ts","../src/types/network.ts","../src/types/programManager.ts","../src/actions/getLatestHeight.ts","../src/actions/getProgram.ts","../src/actions/getProgramMappingValue.ts","../src/actions/getTransaction.ts","../src/actions/getTransactions.ts","../src/actions/pollProgramMappingValueUpdate.ts"],"sourcesContent":["import { useQuery, QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport * as React from 'react';\nimport { State } from './createConfig';\nimport { Network } from './types';\nimport {\n getLatestHeight,\n getProgram,\n getProgramMappingValue,\n getTransaction,\n getTransactions,\n pollProgramMappingValueUpdate,\n} from './actions';\nexport * from './types';\n\nconst state = new State(Network.TESTNET);\n\nexport const queryClient = new QueryClient();\n\nexport function AleoHooksProvider({ children }: { children: React.ReactNode }) {\n return React.createElement(QueryClientProvider, { client: queryClient }, children);\n}\n\nexport function useLatestHeight(refetchInterval: number = 10_000) {\n let query;\n if (refetchInterval > 0) {\n query = useQuery({\n queryKey: ['latestHeight'],\n queryFn: () => getLatestHeight({ state }),\n refetchInterval,\n });\n } else {\n query = useQuery({\n queryKey: ['latestHeight'],\n queryFn: () => getLatestHeight({ state }),\n });\n }\n\n return {\n latestHeight: query.data,\n latestHeightIsLoading: query.isLoading,\n latestHeightIsError: query.isError,\n latestHeightError: query.error,\n refetchLatestHeight: query.refetch,\n };\n}\n\nexport function useTransactions(blockHeight: number) {\n let query = useQuery({\n queryKey: ['transactions', blockHeight],\n queryFn: () => getTransactions({ state }, blockHeight),\n staleTime: Infinity,\n gcTime: Infinity,\n });\n\n return {\n transactions: query.data,\n transactionsIsLoading: query.isLoading,\n transactionsIsError: query.isError,\n transactionsError: query.error,\n };\n}\n\nexport function useTransaction(transactionId: string) {\n let query = useQuery({\n queryKey: ['transaction', transactionId],\n queryFn: () => getTransaction({ state }, transactionId),\n staleTime: Infinity,\n gcTime: Infinity,\n });\n\n return {\n transaction: query.data,\n transactionIsLoading: query.isLoading,\n transactionIsError: query.isError,\n transactionError: query.error,\n };\n}\n\nexport function useProgram(programName: string) {\n let query = useQuery({\n queryKey: ['program', programName],\n queryFn: () => getProgram({ state }, programName),\n });\n\n return {\n program: query.data,\n programIsLoading: query.isLoading,\n programIsError: query.isError,\n programError: query.error,\n };\n}\n\nexport function useProgramMappingValue() {\n return {\n watchProgramMappingValue: (\n programName: string,\n mappingName: string,\n key: string,\n refetchInterval: number = 10_000,\n ) => {\n const query = useQuery({\n queryKey: ['programMappingValue', programName, mappingName, key],\n queryFn: () => getProgramMappingValue({ state }, programName, mappingName, key),\n refetchInterval,\n });\n return {\n programMappingValue: query.data,\n programMappingValueIsLoading: query.isLoading,\n programMappingValueIsError: query.isError,\n programMappingValueError: query.error,\n refetchProgramMappingValue: query.refetch,\n };\n },\n getProgramMappingValue: (programName: string, mappingName: string, key: string) =>\n getProgramMappingValue({ state }, programName, mappingName, key),\n pollProgramMappingValueUpdate: (\n programName: string,\n mappingName: string,\n key: string,\n callback: (value: string) => string = value => value,\n retries: number = 10,\n interval: number = 1000,\n ) =>\n pollProgramMappingValueUpdate(\n { state },\n programName,\n mappingName,\n key,\n callback,\n retries,\n interval,\n ),\n };\n}\n","import { EventEmitter } from '@provablehq/aleo-wallet-standard';\nimport { Network, newProgramManager, ProgramManager } from './types';\n\nexport type Config = {\n readonly state: State;\n};\n\nexport class State {\n emitter: EventEmitter = new EventEmitter();\n programManager: ProgramManager<Network.MAINNET | Network.TESTNET>;\n\n constructor(network: Network) {\n this.programManager = newProgramManager(network);\n }\n\n async pollProgramMappingValueUpdate(\n programName: string,\n mappingName: string,\n key: string,\n callback: (value: string) => string = value => value,\n retries: number = 10,\n interval: number = 1000,\n ): Promise<string | void> {\n while (retries > 0) {\n try {\n const value = await this.programManager.networkClient.getProgramMappingValue(\n programName,\n mappingName,\n key,\n );\n return callback(value);\n } catch (error) {\n if (retries === 0) {\n throw error;\n }\n console.error(error);\n retries--;\n console.log('Retrying...');\n console.log(retries, 'retries left');\n await new Promise(resolve => setTimeout(resolve, interval));\n }\n }\n }\n}\n","export enum Network {\n TESTNET = 'testnet',\n MAINNET = 'mainnet',\n}\n","import {\n ProgramManager as TestnetProgramManager,\n // AleoNetworkClientOptions as TestnetClientOptions,\n FunctionKeyProvider as TestnetFunctionKeyProvider,\n RecordProvider as TestnetRecordProvider,\n} from '@provablehq/sdk/testnet.js';\n\nimport {\n ProgramManager as MainnetProgramManager,\n // AleoNetworkClientOptions as MainnetClientOptions,\n FunctionKeyProvider as MainnetFunctionKeyProvider,\n RecordProvider as MainnetRecordProvider,\n} from '@provablehq/sdk/mainnet.js';\n\nimport { Network } from './network';\n\n// export type AleoNetworkClientOptions<N extends Network> = N extends Network.MAINNET ? MainnetClientOptions : TestnetClientOptions\nexport type FunctionKeyProvider<N extends Network> = N extends Network.MAINNET\n ? MainnetFunctionKeyProvider\n : TestnetFunctionKeyProvider;\nexport type RecordProvider<N extends Network> = N extends Network.MAINNET\n ? MainnetRecordProvider\n : TestnetRecordProvider;\n\nexport type ProgramManager<N extends Network> = N extends Network.MAINNET\n ? MainnetProgramManager\n : TestnetProgramManager;\n\nexport function newProgramManager<N extends Network>(\n network: N,\n host?: string | undefined,\n functionKeyProvider?: FunctionKeyProvider<N> | undefined,\n recordProvider?: RecordProvider<N> | undefined,\n // networkClientOptions?: AleoNetworkClientOptions<N> | undefined,\n): ProgramManager<N> {\n let programManager;\n switch (network) {\n case Network.MAINNET:\n programManager = new MainnetProgramManager(\n host,\n functionKeyProvider,\n <MainnetRecordProvider | undefined>recordProvider,\n );\n break;\n case Network.TESTNET:\n programManager = new TestnetProgramManager(\n host,\n functionKeyProvider,\n <TestnetRecordProvider | undefined>recordProvider,\n );\n break;\n }\n return <ProgramManager<N>>programManager;\n}\n","import { Config } from \"../createConfig\";\n\nexport default function getLatestHeight(config: Config): Promise<number> {\n return config.state.programManager.networkClient.getLatestHeight()\n}","import { Network } from \"../types\"\nimport { Config } from \"../createConfig\"\n\nexport default async function getProgram(config: Config, programName: string) {\n return config.state.programManager.networkClient.getProgram(programName)\n}","import { Config } from \"../createConfig\";\nimport { Network } from \"../types\";\n\nexport default async function getProgramMappingValue(\n config: Config,\n programName: string,\n mappingName: string,\n key: string,\n): Promise<string | null> {\n return config.state.programManager.networkClient.getProgramMappingValue(programName, mappingName, key)\n}","import { Config } from \"../createConfig\";\n\nexport default async function getTransaction(config: Config, transactionId: string) {\n return config.state.programManager.networkClient.getTransaction(transactionId)\n}","import { Config } from \"../createConfig\";\nimport { Transaction } from \"@provablehq/aleo-types/src/transaction\";\n\nexport default async function getTransactions(config: Config, blockHeight: number): Promise<Transaction[]> {\n return (await config.state.programManager.networkClient.getTransactions(blockHeight)).map(transaction => (<Transaction>{\n type: transaction.transaction.type,\n id: transaction.transaction.id,\n fee: transaction.transaction.fee,\n owner: transaction.transaction.owner,\n deployment: transaction.transaction.deployment,\n execution: transaction.transaction.execution,\n }))\n}\n","import { Config } from \"../createConfig\";\nimport { Network } from \"../types\";\n\nexport default async function pollProgramMappingValueUpdate(\n config: Config,\n programName: string,\n mappingName: string,\n key: string,\n callback: (value: string) => string = (value) => value,\n retries: number = 10,\n interval: number = 1000,\n): Promise<string | null> {\n let res = await config.state.pollProgramMappingValueUpdate(programName, mappingName, key, callback, retries, interval)\n return res ?? null\n}"],"mappings":"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","names":["Network"]}