@gardenfi/react-hooks 3.0.7-beta.7 → 3.0.7-beta.8

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.
package/dist/index2.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),g=require("./index3.cjs"),a=require("@gardenfi/core"),c=require("./index4.cjs"),E=require("./index5.cjs"),u=require("@gardenfi/utils"),K=require("./index6.cjs"),v=n.createContext({pendingOrders:[]}),M=({children:d,config:e,store:i})=>{const[s,p]=n.useState(),m=!0,{digestKey:q}=E.useDigestKey(m),y=n.useMemo(()=>{const{network:r}=a.resolveApiConfig(e.environment);return r},[e.environment]),G=n.useMemo(()=>new K.PendingOrdersManager(i,u.StoreKeys.PENDING_ORDERS),[i]),{pendingOrders:h}=g.useOrderbook(s,i,y),w=n.useMemo(()=>{const{api:r}=a.resolveApiConfig(e.environment);return e.quote??new a.Quote(r.baseurl,c.resolveAuth(e.apiKey))},[e.environment,e.quote,e.apiKey]),O=n.useMemo(()=>async({fromAsset:r,toAsset:l,amount:t,isExactOut:o=!1,options:b})=>await(s?s.quote:w).getQuoteFromAssets({fromAsset:r,toAsset:l,amount:t,isExactOut:o,options:b}),[s,w]),k=async(r,l)=>{if(!s)return u.Err("Garden not initialized");const t=await s.createSwap(r,l);if(!t.val)return u.Err(t.error||"Unknown error occurred");try{let o;typeof t.val=="string"?o=t.val:t.val&&typeof t.val.order_id=="string"&&(o=t.val.order_id),o&&G.add(y,o)}catch(o){console.error("Failed to persist pending order id",o)}return u.Ok(t.val)};return n.useEffect(()=>{if(!("wallets"in e)&&!("htlc"in e))return;let r;if("wallets"in e&&Object.keys(e.wallets??{}).length>0&&c.hasAnyValidValue(e.wallets??{}))r=a.Garden.fromWallets({...e,digestKey:void 0});else if("htlc"in e&&Object.keys(e.htlc??{}).length>0&&c.hasAnyValidValue(e.htlc??{}))r=new a.Garden({...e,digestKey:void 0});else return;p(r)},[e,q]),n.createElement(v.Provider,{value:{swap:k,pendingOrders:h,getQuote:O,garden:s,orderBook:s}},d)},P=()=>{const d=n.useContext(v);if(!d)throw new Error("useGarden must be used within a GardenProvider");return d};exports.GardenContext=v;exports.GardenProvider=M;exports.useGarden=P;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),k=require("./index3.cjs"),a=require("@gardenfi/core"),c=require("./index4.cjs"),u=require("@gardenfi/utils"),b=require("./index5.cjs"),v=n.createContext({pendingOrders:[]}),M=({children:d,config:e,store:l})=>{const[s,y]=n.useState(),w=n.useMemo(()=>{const{network:r}=a.resolveApiConfig(e.environment);return r},[e.environment]),m=n.useMemo(()=>new b.PendingOrdersManager(l,u.StoreKeys.PENDING_ORDERS),[l]),{pendingOrders:G}=k.useOrderbook(s,l,w),p=n.useMemo(()=>{const{api:r}=a.resolveApiConfig(e.environment);return e.quote??new a.Quote(r.baseurl,c.resolveAuth(e.apiKey))},[e.environment,e.quote,e.apiKey]),h=n.useMemo(()=>async({fromAsset:r,toAsset:i,amount:t,isExactOut:o=!1,options:O})=>await(s?s.quote:p).getQuoteFromAssets({fromAsset:r,toAsset:i,amount:t,isExactOut:o,options:O}),[s,p]),q=async(r,i)=>{if(!s)return u.Err("Garden not initialized");const t=await s.createSwap(r,i);if(!t.val)return u.Err(t.error||"Unknown error occurred");try{let o;typeof t.val=="string"?o=t.val:t.val&&typeof t.val.order_id=="string"&&(o=t.val.order_id),o&&m.add(w,o)}catch(o){console.error("Failed to persist pending order id",o)}return u.Ok(t.val)};return n.useEffect(()=>{if(!("wallets"in e)&&!("htlc"in e))return;let r;if("wallets"in e&&Object.keys(e.wallets??{}).length>0&&c.hasAnyValidValue(e.wallets??{}))r=a.Garden.fromWallets({...e});else if("htlc"in e&&Object.keys(e.htlc??{}).length>0&&c.hasAnyValidValue(e.htlc??{}))r=new a.Garden({...e});else return;y(r)},[e]),n.createElement(v.Provider,{value:{swap:q,pendingOrders:G,getQuote:h,garden:s,orderBook:s}},d)},E=()=>{const d=n.useContext(v);if(!d)throw new Error("useGarden must be used within a GardenProvider");return d};exports.GardenContext=v;exports.GardenProvider=M;exports.useGarden=E;
package/dist/index2.js CHANGED
@@ -1,90 +1,87 @@
1
- import w, { useState as f, useMemo as a, useEffect as P, createContext as S } from "react";
2
- import { useOrderbook as _ } from "./index3.js";
3
- import { resolveApiConfig as m, Quote as x, Garden as v } from "@gardenfi/core";
4
- import { resolveAuth as A, hasAnyValidValue as p } from "./index4.js";
5
- import { useDigestKey as C } from "./index5.js";
6
- import { StoreKeys as R, Err as c, Ok as D } from "@gardenfi/utils";
7
- import { PendingOrdersManager as M } from "./index6.js";
8
- const y = S({
1
+ import c, { useState as b, useMemo as a, useEffect as P, createContext as _ } from "react";
2
+ import { useOrderbook as f } from "./index3.js";
3
+ import { resolveApiConfig as m, Quote as x, Garden as p } from "@gardenfi/core";
4
+ import { resolveAuth as A, hasAnyValidValue as v } from "./index4.js";
5
+ import { StoreKeys as C, Err as w, Ok as S } from "@gardenfi/utils";
6
+ import { PendingOrdersManager as K } from "./index5.js";
7
+ const h = _({
9
8
  pendingOrders: []
10
- }), B = ({
9
+ }), I = ({
11
10
  children: s,
12
11
  config: e,
13
12
  store: d
14
13
  }) => {
15
- const [n, h] = f(), k = !0, { digestKey: G } = C(k), l = a(() => {
14
+ const [n, y] = b(), i = a(() => {
16
15
  const { network: r } = m(e.environment);
17
16
  return r;
18
- }, [e.environment]), O = a(
19
- () => new M(d, R.PENDING_ORDERS),
17
+ }, [e.environment]), k = a(
18
+ () => new K(d, C.PENDING_ORDERS),
20
19
  [d]
21
- ), { pendingOrders: E } = _(n, d, l), u = a(() => {
20
+ ), { pendingOrders: G } = f(n, d, i), u = a(() => {
22
21
  const { api: r } = m(e.environment);
23
22
  return e.quote ?? new x(r.baseurl, A(e.apiKey));
24
- }, [e.environment, e.quote, e.apiKey]), K = a(
23
+ }, [e.environment, e.quote, e.apiKey]), O = a(
25
24
  () => async ({
26
25
  fromAsset: r,
27
- toAsset: i,
26
+ toAsset: l,
28
27
  amount: t,
29
28
  isExactOut: o = !1,
30
- options: q
29
+ options: E
31
30
  }) => await (n ? n.quote : u).getQuoteFromAssets({
32
31
  fromAsset: r,
33
- toAsset: i,
32
+ toAsset: l,
34
33
  amount: t,
35
34
  isExactOut: o,
36
- options: q
35
+ options: E
37
36
  }),
38
37
  [n, u]
39
- ), b = async (r, i) => {
40
- if (!n) return c("Garden not initialized");
41
- const t = await n.createSwap(r, i);
42
- if (!t.val) return c(t.error || "Unknown error occurred");
38
+ ), q = async (r, l) => {
39
+ if (!n) return w("Garden not initialized");
40
+ const t = await n.createSwap(r, l);
41
+ if (!t.val) return w(t.error || "Unknown error occurred");
43
42
  try {
44
43
  let o;
45
- typeof t.val == "string" ? o = t.val : t.val && typeof t.val.order_id == "string" && (o = t.val.order_id), o && O.add(l, o);
44
+ typeof t.val == "string" ? o = t.val : t.val && typeof t.val.order_id == "string" && (o = t.val.order_id), o && k.add(i, o);
46
45
  } catch (o) {
47
46
  console.error("Failed to persist pending order id", o);
48
47
  }
49
- return D(t.val);
48
+ return S(t.val);
50
49
  };
51
50
  return P(() => {
52
51
  if (!("wallets" in e) && !("htlc" in e)) return;
53
52
  let r;
54
- if ("wallets" in e && Object.keys(e.wallets ?? {}).length > 0 && p(e.wallets ?? {}))
55
- r = v.fromWallets({
56
- ...e,
57
- digestKey: void 0
53
+ if ("wallets" in e && Object.keys(e.wallets ?? {}).length > 0 && v(e.wallets ?? {}))
54
+ r = p.fromWallets({
55
+ ...e
58
56
  });
59
- else if ("htlc" in e && Object.keys(e.htlc ?? {}).length > 0 && p(e.htlc ?? {}))
60
- r = new v({
61
- ...e,
62
- digestKey: void 0
57
+ else if ("htlc" in e && Object.keys(e.htlc ?? {}).length > 0 && v(e.htlc ?? {}))
58
+ r = new p({
59
+ ...e
63
60
  });
64
61
  else
65
62
  return;
66
- h(r);
67
- }, [e, G]), /* @__PURE__ */ w.createElement(
68
- y.Provider,
63
+ y(r);
64
+ }, [e]), /* @__PURE__ */ c.createElement(
65
+ h.Provider,
69
66
  {
70
67
  value: {
71
- swap: b,
72
- pendingOrders: E,
73
- getQuote: K,
68
+ swap: q,
69
+ pendingOrders: G,
70
+ getQuote: O,
74
71
  garden: n,
75
72
  orderBook: n
76
73
  }
77
74
  },
78
75
  s
79
76
  );
80
- }, U = () => {
81
- const s = w.useContext(y);
77
+ }, V = () => {
78
+ const s = c.useContext(h);
82
79
  if (!s)
83
80
  throw new Error("useGarden must be used within a GardenProvider");
84
81
  return s;
85
82
  };
86
83
  export {
87
- y as GardenContext,
88
- B as GardenProvider,
89
- U as useGarden
84
+ h as GardenContext,
85
+ I as GardenProvider,
86
+ V as useGarden
90
87
  };
package/dist/index3.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("@gardenfi/orderbook"),w=require("@gardenfi/utils"),n=require("react"),H=require("./index6.cjs"),_=(e,S,a)=>{const[M,g]=n.useState([]),O=n.useRef(null),C=n.useRef(!1),E=n.useRef(!1),k=5e3,h=n.useMemo(()=>new H.PendingOrdersManager(S,w.StoreKeys.PENDING_ORDERS),[S]),m=n.useCallback(()=>{var t,d,f,i,l,s,o,c,u,I,v,L,T,q;if(!e)return[];const r=new Set;try{[(d=(t=e.htlcs)==null?void 0:t.evm)==null?void 0:d.htlcActorAddress,(i=(f=e.htlcs)==null?void 0:f.sui)==null?void 0:i.htlcActorAddress,(s=(l=e.htlcs)==null?void 0:l.solana)==null?void 0:s.htlcActorAddress,(c=(o=e.htlcs)==null?void 0:o.starknet)==null?void 0:c.htlcActorAddress,(I=(u=e.htlcs)==null?void 0:u.bitcoin)==null?void 0:I.htlcActorAddress,(L=(v=e.htlcs)==null?void 0:v.tron)==null?void 0:L.htlcActorAddress,(q=(T=e.htlcs)==null?void 0:T.xrpl)==null?void 0:q.htlcActorAddress].filter(y=>!!y&&y.length>0).forEach(y=>r.add(y.toLowerCase()))}catch(F){console.error("Error getting HTLC addresses:",F)}return Array.from(r)},[e]),R=n.useCallback(async()=>{if(e)try{const r=m();if(r.length===0){console.log("No HTLC addresses found for initial pending orders fetch");return}const t=r.map(async s=>{try{const[o,c]=await Promise.all([e.getOrders({address:s,status:p.OrderLifecycle.pending,per_page:500}),e.getOrders({address:s,status:p.OrderLifecycle.notInitiated,per_page:500})]),u=[];return o.ok?u.push(...o.val.data):console.error(`Failed to fetch pending orders for address ${s}:`,o.error),c.ok?u.push(...c.val.data):console.error(`Failed to fetch notInitiated orders for address ${s}:`,c.error),u}catch(o){return console.error(`Error fetching orders for address ${s}:`,o),[]}}),i=(await Promise.all(t)).flat().map(s=>s.order_id),l=Array.from(new Set(i));l.length>0&&h.set(a,l)}catch(r){console.error("Error fetching initial pending orders:",r)}},[e,h,m,a]),P=n.useCallback(async()=>{if(e)try{const r=h.get(a),t=Array.from(new Set(r));if(t.length===0){g([]);return}const d=await Promise.all(t.map(s=>e.getOrder(s))),f=[],i=[];d.forEach((s,o)=>{if(!s.ok){i.push(t[o]);return}const c=s.val;c.status===p.OrderStatus.Redeemed||c.status===p.OrderStatus.Refunded||c.status===p.OrderStatus.Expired||(f.push(c),i.push(t[o]))});const l=Array.from(new Set(i));h.set(a,l),g(f)}catch(r){console.error("Error fetching pending orders:",r)}},[e,h,a]),A=n.useMemo(()=>{try{return m().join(",")}catch(r){return console.error("Error computing HTLC addresses:",r),""}},[m]),b=n.useRef("");return n.useEffect(()=>{if(!e||!e.redeemServiceEnabled||!A)return;b.current!==A&&(E.current=!1,b.current=A),E.current||(R(),E.current=!0)},[e,A,R,a]),n.useEffect(()=>{if(e)if(e.redeemServiceEnabled){let r=!1;const t=()=>{r||(O.current=setTimeout(d,k))},d=async()=>{if(!r){if(C.current){t();return}C.current=!0;try{await P()}finally{C.current=!1}t()}};return d(),()=>{r=!0,O.current&&(clearTimeout(O.current),O.current=null)}}else{const r=t=>g(t);return e.on("onPendingOrdersChanged",r),()=>{e.off("onPendingOrdersChanged",r)}}},[e,P]),{pendingOrders:M}};exports.useOrderbook=_;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("@gardenfi/orderbook"),w=require("@gardenfi/utils"),n=require("react"),H=require("./index5.cjs"),_=(e,S,a)=>{const[M,g]=n.useState([]),O=n.useRef(null),C=n.useRef(!1),E=n.useRef(!1),k=5e3,h=n.useMemo(()=>new H.PendingOrdersManager(S,w.StoreKeys.PENDING_ORDERS),[S]),m=n.useCallback(()=>{var t,d,f,i,l,s,o,c,u,I,v,L,T,q;if(!e)return[];const r=new Set;try{[(d=(t=e.htlcs)==null?void 0:t.evm)==null?void 0:d.htlcActorAddress,(i=(f=e.htlcs)==null?void 0:f.sui)==null?void 0:i.htlcActorAddress,(s=(l=e.htlcs)==null?void 0:l.solana)==null?void 0:s.htlcActorAddress,(c=(o=e.htlcs)==null?void 0:o.starknet)==null?void 0:c.htlcActorAddress,(I=(u=e.htlcs)==null?void 0:u.bitcoin)==null?void 0:I.htlcActorAddress,(L=(v=e.htlcs)==null?void 0:v.tron)==null?void 0:L.htlcActorAddress,(q=(T=e.htlcs)==null?void 0:T.xrpl)==null?void 0:q.htlcActorAddress].filter(y=>!!y&&y.length>0).forEach(y=>r.add(y.toLowerCase()))}catch(F){console.error("Error getting HTLC addresses:",F)}return Array.from(r)},[e]),R=n.useCallback(async()=>{if(e)try{const r=m();if(r.length===0){console.log("No HTLC addresses found for initial pending orders fetch");return}const t=r.map(async s=>{try{const[o,c]=await Promise.all([e.getOrders({address:s,status:p.OrderLifecycle.pending,per_page:500}),e.getOrders({address:s,status:p.OrderLifecycle.notInitiated,per_page:500})]),u=[];return o.ok?u.push(...o.val.data):console.error(`Failed to fetch pending orders for address ${s}:`,o.error),c.ok?u.push(...c.val.data):console.error(`Failed to fetch notInitiated orders for address ${s}:`,c.error),u}catch(o){return console.error(`Error fetching orders for address ${s}:`,o),[]}}),i=(await Promise.all(t)).flat().map(s=>s.order_id),l=Array.from(new Set(i));l.length>0&&h.set(a,l)}catch(r){console.error("Error fetching initial pending orders:",r)}},[e,h,m,a]),P=n.useCallback(async()=>{if(e)try{const r=h.get(a),t=Array.from(new Set(r));if(t.length===0){g([]);return}const d=await Promise.all(t.map(s=>e.getOrder(s))),f=[],i=[];d.forEach((s,o)=>{if(!s.ok){i.push(t[o]);return}const c=s.val;c.status===p.OrderStatus.Redeemed||c.status===p.OrderStatus.Refunded||c.status===p.OrderStatus.Expired||(f.push(c),i.push(t[o]))});const l=Array.from(new Set(i));h.set(a,l),g(f)}catch(r){console.error("Error fetching pending orders:",r)}},[e,h,a]),A=n.useMemo(()=>{try{return m().join(",")}catch(r){return console.error("Error computing HTLC addresses:",r),""}},[m]),b=n.useRef("");return n.useEffect(()=>{if(!e||!e.redeemServiceEnabled||!A)return;b.current!==A&&(E.current=!1,b.current=A),E.current||(R(),E.current=!0)},[e,A,R,a]),n.useEffect(()=>{if(e)if(e.redeemServiceEnabled){let r=!1;const t=()=>{r||(O.current=setTimeout(d,k))},d=async()=>{if(!r){if(C.current){t();return}C.current=!0;try{await P()}finally{C.current=!1}t()}};return d(),()=>{r=!0,O.current&&(clearTimeout(O.current),O.current=null)}}else{const r=t=>g(t);return e.on("onPendingOrdersChanged",r),()=>{e.off("onPendingOrdersChanged",r)}}},[e,P]),{pendingOrders:M}};exports.useOrderbook=_;
package/dist/index3.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { OrderLifecycle as _, OrderStatus as C } from "@gardenfi/orderbook";
2
2
  import { StoreKeys as M } from "@gardenfi/utils";
3
3
  import { useState as $, useRef as O, useMemo as D, useCallback as P, useEffect as N } from "react";
4
- import { PendingOrdersManager as j } from "./index6.js";
4
+ import { PendingOrdersManager as j } from "./index5.js";
5
5
  const z = (r, S, a) => {
6
6
  const [q, y] = $([]), h = O(null), g = O(!1), E = O(!1), x = 5e3, f = D(
7
7
  () => new j(S, M.PENDING_ORDERS),
package/dist/index5.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("@gardenfi/utils"),e=require("./index7.cjs"),y=require("react"),f=(a=!0)=>{const[E,g]=y.useState();return y.useEffect(()=>{if(a)return;if(!indexedDB){console.error("IndexedDB is not supported in this browser");return}let o;const d=indexedDB.open(e.DB_NAME,e.VERSION);d.onerror=s=>{console.error("IndexedDB error:",s.target.error)},d.onupgradeneeded=s=>{const n=s.target.result;n.objectStoreNames.contains(e.STORE_NAME)||n.createObjectStore(e.STORE_NAME,{keyPath:"id"})},d.onsuccess=s=>{if(o=s.target.result,!o.objectStoreNames.contains(e.STORE_NAME)){o.close();const r=indexedDB.open(e.DB_NAME,o.version+1);r.onupgradeneeded=n=>{n.target.result.createObjectStore(e.STORE_NAME,{keyPath:"id"})},r.onsuccess=()=>{l(r.result)};return}l(o)};function l(s){try{const r=s.transaction(e.STORE_NAME,"readwrite"),n=r.objectStore(e.STORE_NAME),c=n.get(e.DIGEST_KEY);c.onsuccess=()=>{if(c.result){const i=u.DigestKey.from(c.result.value);if(!i.error){g(i.val);return}}const t=u.DigestKey.generateRandom();if(!t.ok){console.error("Error generating new digest key:",t.error);return}if(a)g(u.DigestKey.from(t.val.digestKey).val);else{const i=n.put({id:e.DIGEST_KEY,value:t.val.digestKey});i.onsuccess=()=>{g(u.DigestKey.from(t.val.digestKey).val)},i.onerror=D=>{console.error("Error storing new digest key:",D)}}},c.onerror=t=>{console.error("Error retrieving digest key:",t)},r.oncomplete=()=>{},r.onerror=t=>{console.error("Error in digestKey transaction:",t)}}catch(r){console.error("Transaction error:",r)}}return()=>{o&&o.close()}},[a]),{digestKey:E}};exports.useDigestKey=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@gardenfi/utils");class i{constructor(t,e){this.store=t,this.storeKey=e,this.defaultStorage={mainnet:[],testnet:[],staging:[]}}getNetworkKey(t){if(!t)return"mainnet";const e=String(t).toLowerCase();return e.includes("staging")?"staging":e===a.Network.TESTNET?"testnet":(e===a.Network.MAINNET||e===a.Network.LOCALNET,"mainnet")}getStorageData(){try{const t=this.store.getItem(this.storeKey);return t?JSON.parse(t):{...this.defaultStorage}}catch{return{...this.defaultStorage}}}saveStorageData(t){try{this.store.setItem(this.storeKey,JSON.stringify(t))}catch(e){console.error("Error saving pending orders to storage:",e)}}get(t){const e=this.getStorageData(),r=this.getNetworkKey(t);return e[r]||[]}set(t,e){const r=this.getStorageData(),s=this.getNetworkKey(t);r[s]=Array.from(new Set(e)),this.saveStorageData(r)}add(t,e){const r=this.get(t);r.includes(e)||this.set(t,[...r,e])}remove(t,e){const r=this.get(t);this.set(t,r.filter(s=>s!==e))}clear(t){t?this.set(t,[]):this.saveStorageData({...this.defaultStorage})}}exports.PendingOrdersManager=i;
package/dist/index5.js CHANGED
@@ -1,82 +1,55 @@
1
- import { DigestKey as a } from "@gardenfi/utils";
2
- import { DB_NAME as f, VERSION as m, STORE_NAME as n, DIGEST_KEY as y } from "./index7.js";
3
- import { useState as K, useEffect as E } from "react";
4
- const S = (u = !0) => {
5
- const [p, d] = K();
6
- return E(() => {
7
- if (u)
8
- return;
9
- if (!indexedDB) {
10
- console.error("IndexedDB is not supported in this browser");
11
- return;
12
- }
13
- let t;
14
- const g = indexedDB.open(f, m);
15
- g.onerror = (o) => {
16
- console.error(
17
- "IndexedDB error:",
18
- o.target.error
19
- );
20
- }, g.onupgradeneeded = (o) => {
21
- const s = o.target.result;
22
- s.objectStoreNames.contains(n) || s.createObjectStore(n, { keyPath: "id" });
23
- }, g.onsuccess = (o) => {
24
- if (t = o.target.result, !t.objectStoreNames.contains(n)) {
25
- t.close();
26
- const e = indexedDB.open(f, t.version + 1);
27
- e.onupgradeneeded = (s) => {
28
- s.target.result.createObjectStore(n, { keyPath: "id" });
29
- }, e.onsuccess = () => {
30
- l(e.result);
31
- };
32
- return;
33
- }
34
- l(t);
1
+ import { Network as a } from "@gardenfi/utils";
2
+ class o {
3
+ constructor(t, e) {
4
+ this.store = t, this.storeKey = e, this.defaultStorage = {
5
+ mainnet: [],
6
+ testnet: [],
7
+ staging: []
35
8
  };
36
- function l(o) {
37
- try {
38
- const e = o.transaction(n, "readwrite"), s = e.objectStore(n), c = s.get(y);
39
- c.onsuccess = () => {
40
- if (c.result) {
41
- const i = a.from(c.result.value);
42
- if (!i.error) {
43
- d(i.val);
44
- return;
45
- }
46
- }
47
- const r = a.generateRandom();
48
- if (!r.ok) {
49
- console.error("Error generating new digest key:", r.error);
50
- return;
51
- }
52
- if (u)
53
- d(a.from(r.val.digestKey).val);
54
- else {
55
- const i = s.put({
56
- id: y,
57
- value: r.val.digestKey
58
- });
59
- i.onsuccess = () => {
60
- d(a.from(r.val.digestKey).val);
61
- }, i.onerror = (D) => {
62
- console.error("Error storing new digest key:", D);
63
- };
64
- }
65
- }, c.onerror = (r) => {
66
- console.error("Error retrieving digest key:", r);
67
- }, e.oncomplete = () => {
68
- }, e.onerror = (r) => {
69
- console.error("Error in digestKey transaction:", r);
70
- };
71
- } catch (e) {
72
- console.error("Transaction error:", e);
73
- }
9
+ }
10
+ getNetworkKey(t) {
11
+ if (!t) return "mainnet";
12
+ const e = String(t).toLowerCase();
13
+ return e.includes("staging") ? "staging" : e === a.TESTNET ? "testnet" : (e === a.MAINNET || e === a.LOCALNET, "mainnet");
14
+ }
15
+ getStorageData() {
16
+ try {
17
+ const t = this.store.getItem(this.storeKey);
18
+ return t ? JSON.parse(t) : { ...this.defaultStorage };
19
+ } catch {
20
+ return { ...this.defaultStorage };
74
21
  }
75
- return () => {
76
- t && t.close();
77
- };
78
- }, [u]), { digestKey: p };
79
- };
22
+ }
23
+ saveStorageData(t) {
24
+ try {
25
+ this.store.setItem(this.storeKey, JSON.stringify(t));
26
+ } catch (e) {
27
+ console.error("Error saving pending orders to storage:", e);
28
+ }
29
+ }
30
+ get(t) {
31
+ const e = this.getStorageData(), r = this.getNetworkKey(t);
32
+ return e[r] || [];
33
+ }
34
+ set(t, e) {
35
+ const r = this.getStorageData(), s = this.getNetworkKey(t);
36
+ r[s] = Array.from(new Set(e)), this.saveStorageData(r);
37
+ }
38
+ add(t, e) {
39
+ const r = this.get(t);
40
+ r.includes(e) || this.set(t, [...r, e]);
41
+ }
42
+ remove(t, e) {
43
+ const r = this.get(t);
44
+ this.set(
45
+ t,
46
+ r.filter((s) => s !== e)
47
+ );
48
+ }
49
+ clear(t) {
50
+ t ? this.set(t, []) : this.saveStorageData({ ...this.defaultStorage });
51
+ }
52
+ }
80
53
  export {
81
- S as useDigestKey
54
+ o as PendingOrdersManager
82
55
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gardenfi/react-hooks",
3
- "version": "3.0.7-beta.7",
3
+ "version": "3.0.7-beta.8",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -27,9 +27,9 @@
27
27
  "registry": "https://registry.npmjs.org/"
28
28
  },
29
29
  "dependencies": {
30
- "@gardenfi/core": "3.0.8-beta.10",
31
- "@gardenfi/orderbook": "3.0.6-beta.10",
32
- "@gardenfi/utils": "3.0.0-beta.11",
30
+ "@gardenfi/core": "3.0.8-beta.11",
31
+ "@gardenfi/orderbook": "3.0.6-beta.11",
32
+ "@gardenfi/utils": "3.0.0-beta.12",
33
33
  "react": "^18.3.1",
34
34
  "starknet": "8.0.0"
35
35
  },
package/dist/index6.cjs DELETED
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@gardenfi/utils");class i{constructor(t,e){this.store=t,this.storeKey=e,this.defaultStorage={mainnet:[],testnet:[],staging:[]}}getNetworkKey(t){if(!t)return"mainnet";const e=String(t).toLowerCase();return e.includes("staging")?"staging":e===a.Network.TESTNET?"testnet":(e===a.Network.MAINNET||e===a.Network.LOCALNET,"mainnet")}getStorageData(){try{const t=this.store.getItem(this.storeKey);return t?JSON.parse(t):{...this.defaultStorage}}catch{return{...this.defaultStorage}}}saveStorageData(t){try{this.store.setItem(this.storeKey,JSON.stringify(t))}catch(e){console.error("Error saving pending orders to storage:",e)}}get(t){const e=this.getStorageData(),r=this.getNetworkKey(t);return e[r]||[]}set(t,e){const r=this.getStorageData(),s=this.getNetworkKey(t);r[s]=Array.from(new Set(e)),this.saveStorageData(r)}add(t,e){const r=this.get(t);r.includes(e)||this.set(t,[...r,e])}remove(t,e){const r=this.get(t);this.set(t,r.filter(s=>s!==e))}clear(t){t?this.set(t,[]):this.saveStorageData({...this.defaultStorage})}}exports.PendingOrdersManager=i;
package/dist/index6.js DELETED
@@ -1,55 +0,0 @@
1
- import { Network as a } from "@gardenfi/utils";
2
- class o {
3
- constructor(t, e) {
4
- this.store = t, this.storeKey = e, this.defaultStorage = {
5
- mainnet: [],
6
- testnet: [],
7
- staging: []
8
- };
9
- }
10
- getNetworkKey(t) {
11
- if (!t) return "mainnet";
12
- const e = String(t).toLowerCase();
13
- return e.includes("staging") ? "staging" : e === a.TESTNET ? "testnet" : (e === a.MAINNET || e === a.LOCALNET, "mainnet");
14
- }
15
- getStorageData() {
16
- try {
17
- const t = this.store.getItem(this.storeKey);
18
- return t ? JSON.parse(t) : { ...this.defaultStorage };
19
- } catch {
20
- return { ...this.defaultStorage };
21
- }
22
- }
23
- saveStorageData(t) {
24
- try {
25
- this.store.setItem(this.storeKey, JSON.stringify(t));
26
- } catch (e) {
27
- console.error("Error saving pending orders to storage:", e);
28
- }
29
- }
30
- get(t) {
31
- const e = this.getStorageData(), r = this.getNetworkKey(t);
32
- return e[r] || [];
33
- }
34
- set(t, e) {
35
- const r = this.getStorageData(), s = this.getNetworkKey(t);
36
- r[s] = Array.from(new Set(e)), this.saveStorageData(r);
37
- }
38
- add(t, e) {
39
- const r = this.get(t);
40
- r.includes(e) || this.set(t, [...r, e]);
41
- }
42
- remove(t, e) {
43
- const r = this.get(t);
44
- this.set(
45
- t,
46
- r.filter((s) => s !== e)
47
- );
48
- }
49
- clear(t) {
50
- t ? this.set(t, []) : this.saveStorageData({ ...this.defaultStorage });
51
- }
52
- }
53
- export {
54
- o as PendingOrdersManager
55
- };
package/dist/index7.cjs DELETED
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="garden-finance-db",n="garden-finance-store",t="digest-key",E=1;exports.DB_NAME=e;exports.DIGEST_KEY=t;exports.STORE_NAME=n;exports.VERSION=E;
package/dist/index7.js DELETED
@@ -1,7 +0,0 @@
1
- const n = "garden-finance-db", e = "garden-finance-store", t = "digest-key", c = 1;
2
- export {
3
- n as DB_NAME,
4
- t as DIGEST_KEY,
5
- e as STORE_NAME,
6
- c as VERSION
7
- };