@gurge/sdk 0.3.24 → 0.3.25

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.
Files changed (41) hide show
  1. package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  2. package/common/src/data-structures/Hinkal/hinkalWithdraw.d.ts +1 -3
  3. package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +21 -34
  4. package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs +1 -1
  5. package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs +4 -4
  6. package/common/src/functions/pre-transaction/buildCommitmentValidationData.cjs +1 -1
  7. package/common/src/functions/pre-transaction/buildCommitmentValidationData.mjs +27 -20
  8. package/common/src/functions/pre-transaction/outputUtxoProcessing.cjs +1 -1
  9. package/common/src/functions/pre-transaction/outputUtxoProcessing.mjs +25 -20
  10. package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
  11. package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +60 -65
  12. package/common/src/functions/snarkjs/generateMainAndCommitmentZkProof.cjs +1 -1
  13. package/common/src/functions/snarkjs/generateMainAndCommitmentZkProof.mjs +10 -21
  14. package/common/src/functions/snarkjs/generateZkProof.cjs +1 -1
  15. package/common/src/functions/snarkjs/generateZkProof.mjs +13 -24
  16. package/common/src/functions/snarkjs/generateZkProofEnclave.cjs +1 -1
  17. package/common/src/functions/snarkjs/generateZkProofEnclave.mjs +11 -14
  18. package/common/src/functions/snarkjs/generateZkProofSelf.cjs +1 -1
  19. package/common/src/functions/snarkjs/generateZkProofSelf.mjs +16 -22
  20. package/common/src/functions/utils/hinkalTiming.utils.cjs +1 -1
  21. package/common/src/functions/utils/hinkalTiming.utils.d.ts +4 -2
  22. package/common/src/functions/utils/hinkalTiming.utils.mjs +13 -10
  23. package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
  24. package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +58 -42
  25. package/common/src/functions/web3/events/getInputUtxosEnclave.cjs +1 -1
  26. package/common/src/functions/web3/events/getInputUtxosEnclave.mjs +20 -21
  27. package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
  28. package/common/src/functions/web3/events/getShieldedBalance.mjs +53 -56
  29. package/common/src/webworker/package.json +1 -1
  30. package/common/src/webworker/performTaskWithWorker.cjs +1 -1
  31. package/common/src/webworker/performTaskWithWorker.mjs +6 -6
  32. package/common/src/webworker/viteWorkerURL.constant.cjs +3 -3
  33. package/common/src/webworker/viteWorkerURL.constant.mjs +3 -3
  34. package/package.json +1 -1
  35. package/react-native/HinkalWebViewWorker.cjs +16 -4
  36. package/react-native/HinkalWebViewWorker.mjs +69 -49
  37. package/react-native/bridge/HinkalRNWorker.cjs +1 -1
  38. package/react-native/bridge/HinkalRNWorker.d.ts +1 -0
  39. package/react-native/bridge/HinkalRNWorker.mjs +16 -11
  40. package/sdk/package.json.cjs +1 -1
  41. package/sdk/package.json.mjs +1 -1
@@ -8,23 +8,22 @@ import { ErrorWithAmount as o } from "../../../error-handling/customErrors/Error
8
8
  import "../../../error-handling/customErrors/index.mjs";
9
9
  import { encodeTokenWithId as s } from "../../utils/encodeTokenWithId.mjs";
10
10
  import { formatMintAddress as c } from "../../utils/solanaMint.utils.mjs";
11
- import { createHinkalTiming as l } from "../../utils/hinkalTiming.utils.mjs";
12
- import { getInputUtxoAndBalance as u, getInputUtxoAndBalanceOfStuckUtxos as d, getInputUtxoAndBalancePerToken as f } from "./getInputUtxoAndBalance.mjs";
13
- import { privateTokensDB as p } from "../../../data-structures/TokenDBs/PrivateTokensDB.mjs";
14
- import { getOrCreateMapValue as m } from "../../utils/map.utils.mjs";
15
- import { getChainBalanceFetchingMutex as h } from "../../utils/mutexes.utils.mjs";
16
- import { getErc20TokenFromAPI as g, getErc20TokensForChainAPI as _ } from "../../utils/erc20tokenFunctions.mjs";
17
- import { Mutex as v } from "async-mutex";
11
+ import { getInputUtxoAndBalance as l, getInputUtxoAndBalanceOfStuckUtxos as u, getInputUtxoAndBalancePerToken as d } from "./getInputUtxoAndBalance.mjs";
12
+ import { privateTokensDB as f } from "../../../data-structures/TokenDBs/PrivateTokensDB.mjs";
13
+ import { getOrCreateMapValue as p } from "../../utils/map.utils.mjs";
14
+ import { getChainBalanceFetchingMutex as m } from "../../utils/mutexes.utils.mjs";
15
+ import { getErc20TokenFromAPI as h, getErc20TokensForChainAPI as g } from "../../utils/erc20tokenFunctions.mjs";
16
+ import { Mutex as _ } from "async-mutex";
18
17
  //#region libs/shared/common/src/functions/web3/events/getShieldedBalance.ts
19
- var y = async (t, r, i, a, o, s = !1, c, l = !1, f = !1) => m(t.balanceFetchingMutexByChain, r, () => new v()).runExclusive(async () => h(r).runShared(async () => {
20
- let { inputUtxos: m } = f ? await d({
18
+ var v = async (t, r, i, a, o, s = !1, c, d = !1, h = !1) => p(t.balanceFetchingMutexByChain, r, () => new _()).runExclusive(async () => m(r).runShared(async () => {
19
+ let { inputUtxos: p } = h ? await u({
21
20
  hinkal: t,
22
21
  chainId: r,
23
22
  ethAddress: o,
24
23
  passedShieldedPrivateKey: i,
25
24
  resetCacheBefore: s,
26
25
  allowRemoteDecryption: c
27
- }) : await u({
26
+ }) : await l({
28
27
  hinkal: t,
29
28
  sliceIfMore6: !1,
30
29
  chainId: r,
@@ -34,84 +33,82 @@ var y = async (t, r, i, a, o, s = !1, c, l = !1, f = !1) => m(t.balanceFetchingM
34
33
  resetCacheBefore: s,
35
34
  allowRemoteDecryption: c
36
35
  });
37
- l && e && await p.fetchAndUpdatePrivateTokens(m.map((e) => e.getTokenAddress(r)).filter((e) => e !== void 0), r, o);
38
- let h = (e ? await p.getPrivateTokens(r, o) : await _(r)).map((e) => ({
36
+ d && e && await f.fetchAndUpdatePrivateTokens(p.map((e) => e.getTokenAddress(r)).filter((e) => e !== void 0), r, o);
37
+ let m = (e ? await f.getPrivateTokens(r, o) : await g(r)).map((e) => ({
39
38
  token: e,
40
- balance: m.reduce((t, i) => {
39
+ balance: p.reduce((t, i) => {
41
40
  let a = e.erc20TokenAddress;
42
41
  return n(a, i.getTokenAddress(r)) ? t + i.amount : t;
43
42
  }, 0n),
44
- timestamp: m.filter((t) => n(t.getTokenAddress(r), e.erc20TokenAddress))[0]?.timeStamp,
43
+ timestamp: p.filter((t) => n(t.getTokenAddress(r), e.erc20TokenAddress))[0]?.timeStamp,
45
44
  nfts: []
46
- })), g = /* @__PURE__ */ new Map();
47
- return h.forEach((e) => {
48
- g.set(e.token.erc20TokenAddress.toLowerCase(), e);
49
- }), g;
50
- })), b = async (e, n, u, d, p = 6, m = u.map(() => 0), h = !1, _ = !1) => {
51
- let v = l("addPaddingToUtxos"), { userKeys: y } = e, b = y.getSpendingKeyPair().pubSpendingBJJPoint, x = [], S = [];
52
- if (u.length === 0) return [];
53
- if (h) {
54
- for (let e = 0; e < u.length; e += 1) {
55
- let r = t(n), i = r ? u[e] : void 0, o = r ? c(u[e]).compressedAddress : u[e];
56
- x.push(Array.from({ length: p }, () => new a({
45
+ })), _ = /* @__PURE__ */ new Map();
46
+ return m.forEach((e) => {
47
+ _.set(e.token.erc20TokenAddress.toLowerCase(), e);
48
+ }), _;
49
+ })), y = async (e, n, l, u, f = 6, p = l.map(() => 0), m = !1, g = !1) => {
50
+ let { userKeys: _ } = e, v = _.getSpendingKeyPair().pubSpendingBJJPoint, y = [], b = [];
51
+ if (l.length === 0) return [];
52
+ if (m) {
53
+ for (let e = 0; e < l.length; e += 1) {
54
+ let r = t(n), i = r ? l[e] : void 0, o = r ? c(l[e]).compressedAddress : l[e];
55
+ y.push(Array.from({ length: f }, () => new a({
57
56
  amount: 0n,
58
57
  erc20TokenAddress: o,
59
58
  mintAddress: i,
60
- nullifyingKey: y.getShieldedPrivateKey(),
61
- spendingPublicKey: b,
59
+ nullifyingKey: _.getShieldedPrivateKey(),
60
+ spendingPublicKey: v,
62
61
  isNewStyle: !0
63
62
  })));
64
63
  }
65
- return x;
64
+ return y;
66
65
  }
67
- let C = await f({
66
+ let x = await d({
68
67
  hinkal: e,
69
68
  sliceIfMore6: !1,
70
- ensuredTokensWithId: u.map((e, t) => ({
71
- erc20TokenAddress: u[t],
72
- tokenId: m[t]
69
+ ensuredTokensWithId: l.map((e, t) => ({
70
+ erc20TokenAddress: l[t],
71
+ tokenId: p[t]
73
72
  })),
74
73
  allowRemoteDecryption: e.generateProofRemotely,
75
- useBlockedUtxos: _,
74
+ useBlockedUtxos: g,
76
75
  chainId: n
77
- });
78
- v.log("getInputUtxoAndBalancePerToken");
79
- let w = 0;
80
- for (let e = 0; e < u.length; e += 1) {
81
- let t = C.get(s(n, {
82
- erc20TokenAddress: u[e],
83
- tokenId: m[e]
76
+ }), S = 0;
77
+ for (let e = 0; e < l.length; e += 1) {
78
+ let t = x.get(s(n, {
79
+ erc20TokenAddress: l[e],
80
+ tokenId: p[e]
84
81
  })) ?? [];
85
82
  if (!t) throw Error("Missing utxos for token");
86
- w = Math.max(t.length, w), S.push(t);
83
+ S = Math.max(t.length, S), b.push(t);
87
84
  }
88
- if (w === 2) return S;
89
- for (let [e, s] of S.entries()) if (s.length > p) {
90
- let t = s.slice(0, p), a = t.reduce((e, t) => e + t.amount, 0n);
91
- if (d[e] < 0n && a < -d[e]) {
92
- let t = await g(n, u[e]);
85
+ if (S === 2) return b;
86
+ for (let [e, s] of b.entries()) if (s.length > f) {
87
+ let t = s.slice(0, f), a = t.reduce((e, t) => e + t.amount, 0n);
88
+ if (u[e] < 0n && a < -u[e]) {
89
+ let t = await h(n, l[e]);
93
90
  if (!t) throw Error("Token not found");
94
91
  let s = t.decimals === 18 ? 6 : 2, c = Number(i(a, t, s));
95
92
  throw new o(c, `${r.UTXO_LIMITATIONS}. Please try again with ${c} ${t.symbol}, including gas fees.`);
96
93
  }
97
- x.push(t);
98
- } else if (s.length <= p) {
99
- let r = [...s], i = p - s.length;
94
+ y.push(t);
95
+ } else if (s.length <= f) {
96
+ let r = [...s], i = f - s.length;
100
97
  for (; i > 0;) {
101
98
  --i;
102
- let o = t(n), s = o ? u[e] : void 0, l = o ? c(u[e]).compressedAddress : u[e];
99
+ let o = t(n), s = o ? l[e] : void 0, u = o ? c(l[e]).compressedAddress : l[e];
103
100
  r.push(new a({
104
101
  amount: 0n,
105
- erc20TokenAddress: l,
102
+ erc20TokenAddress: u,
106
103
  mintAddress: s,
107
- nullifyingKey: y.getShieldedPrivateKey(),
108
- spendingPublicKey: b,
104
+ nullifyingKey: _.getShieldedPrivateKey(),
105
+ spendingPublicKey: v,
109
106
  isNewStyle: !0
110
107
  }));
111
108
  }
112
- x.push(r);
109
+ y.push(r);
113
110
  }
114
- return v.log("padding-done", { tokenCount: x.length }), x;
111
+ return y;
115
112
  };
116
113
  //#endregion
117
- export { b as addPaddingToUtxos, y as getShieldedBalance };
114
+ export { y as addPaddingToUtxos, v as getShieldedBalance };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gurge/sdk",
3
- "version": "0.3.24",
3
+ "version": "0.3.25",
4
4
  "homepage": "hinkal.io",
5
5
  "author": {
6
6
  "name": "Hinkal Protocol"
@@ -1 +1 @@
1
- const e=require(`../constants/vite.constants.cjs`),t=require(`../constants/chains.constants.cjs`),n=require(`../functions/utils/hinkalTiming.utils.cjs`),r=require(`./workerFactory.cjs`);var i=async i=>{let a=i.payload?.type??`unknown`,o=n.createHinkalTiming(`worker:${i.type}:${a}`),s=await r.WorkerFactory.getWebWorker(i.type);return o.log(`spawned`),new Promise((n,r)=>{let a={};if(typeof window<`u`&&window.location){let{origin:e,protocol:t,host:n,port:r,hostname:i,href:o}=window.location;a={origin:e,protocol:t,host:n,port:r,hostname:i,href:o}}s.onMessage(e=>{o.log(`completed`),n(e),s.terminate()}),s.onError(e=>{o.log(`error`),r(e),s.terminate()});let c={payload:i.payload,metadata:{hostLocation:a,constants:{chains:{chainIds:t.chainIds},isDevelopment:e.isDevelopment}}};s.postMessage(c)})};exports.performTaskWithWorker=i;
1
+ const e=require(`../constants/vite.constants.cjs`),t=require(`../constants/chains.constants.cjs`),n=require(`../functions/utils/hinkalTiming.utils.cjs`),r=require(`./workerFactory.cjs`);var i=async i=>{let a=i.payload?.type??`unknown`,o=n.createRnDeltaTiming(`webView.task:${i.type}:${a}`),s=await r.WorkerFactory.getWebWorker(i.type);return o.log(`rn-worker-created`),new Promise((n,r)=>{let a={};if(typeof window<`u`&&window.location){let{origin:e,protocol:t,host:n,port:r,hostname:i,href:o}=window.location;a={origin:e,protocol:t,host:n,port:r,hostname:i,href:o}}s.onMessage(e=>{o.log(`rn-result-received`),n(e),s.terminate()}),s.onError(e=>{o.log(`rn-error`),r(e),s.terminate()});let c={payload:i.payload,metadata:{hostLocation:a,constants:{chains:{chainIds:t.chainIds},isDevelopment:e.isDevelopment}}};s.postMessage(c),o.log(`rn-postMessage-sent`)})};exports.performTaskWithWorker=i;
@@ -1,11 +1,11 @@
1
1
  import { isDevelopment as e } from "../constants/vite.constants.mjs";
2
2
  import { chainIds as t } from "../constants/chains.constants.mjs";
3
- import { createHinkalTiming as n } from "../functions/utils/hinkalTiming.utils.mjs";
3
+ import { createRnDeltaTiming as n } from "../functions/utils/hinkalTiming.utils.mjs";
4
4
  import { WorkerFactory as r } from "./workerFactory.mjs";
5
5
  //#region libs/shared/common/src/webworker/performTaskWithWorker.ts
6
6
  var i = async (i) => {
7
- let a = i.payload?.type ?? "unknown", o = n(`worker:${i.type}:${a}`), s = await r.getWebWorker(i.type);
8
- return o.log("spawned"), new Promise((n, r) => {
7
+ let a = i.payload?.type ?? "unknown", o = n(`webView.task:${i.type}:${a}`), s = await r.getWebWorker(i.type);
8
+ return o.log("rn-worker-created"), new Promise((n, r) => {
9
9
  let a = {};
10
10
  if (typeof window < "u" && window.location) {
11
11
  let { origin: e, protocol: t, host: n, port: r, hostname: i, href: o } = window.location;
@@ -19,9 +19,9 @@ var i = async (i) => {
19
19
  };
20
20
  }
21
21
  s.onMessage((e) => {
22
- o.log("completed"), n(e), s.terminate();
22
+ o.log("rn-result-received"), n(e), s.terminate();
23
23
  }), s.onError((e) => {
24
- o.log("error"), r(e), s.terminate();
24
+ o.log("rn-error"), r(e), s.terminate();
25
25
  });
26
26
  let c = {
27
27
  payload: i.payload,
@@ -33,7 +33,7 @@ var i = async (i) => {
33
33
  }
34
34
  }
35
35
  };
36
- s.postMessage(c);
36
+ s.postMessage(c), o.log("rn-postMessage-sent");
37
37
  });
38
38
  };
39
39
  //#endregion
@@ -14,8 +14,8 @@
14
14
  var e = /* @__PURE__ */ ((r) => (r.ZKProof = "ZKProof", r.SnarkJS = "SnarkJS", r.UTXO = "UTXO", r))(e || {});
15
15
 
16
16
  const n = async () => ({
17
- [e.ZKProof]: await getWorkerURL(domain + '/0.3.24/' + 'zkProofWorkerLauncher.js'),
18
- [e.SnarkJS]: await getWorkerURL(domain + '/0.3.24/' + 'snarkjsWorkerLauncher.js'),
19
- [e.UTXO]: await getWorkerURL(domain + '/0.3.24/' + 'utxoWorkerLauncher.js'),
17
+ [e.ZKProof]: await getWorkerURL(domain + '/0.3.25/' + 'zkProofWorkerLauncher.js'),
18
+ [e.SnarkJS]: await getWorkerURL(domain + '/0.3.25/' + 'snarkjsWorkerLauncher.js'),
19
+ [e.UTXO]: await getWorkerURL(domain + '/0.3.25/' + 'utxoWorkerLauncher.js'),
20
20
  });
21
21
  exports.getWorkerViteURL = n;
@@ -14,8 +14,8 @@
14
14
  var e = /* @__PURE__ */ ((r) => (r.ZKProof = "ZKProof", r.SnarkJS = "SnarkJS", r.UTXO = "UTXO", r))(e || {});
15
15
 
16
16
  const n = async () => ({
17
- [e.ZKProof]: await getWorkerURL(domain + '/0.3.24/' + 'zkProofWorkerLauncher.js'),
18
- [e.SnarkJS]: await getWorkerURL(domain + '/0.3.24/' + 'snarkjsWorkerLauncher.js'),
19
- [e.UTXO]: await getWorkerURL(domain + '/0.3.24/' + 'utxoWorkerLauncher.js'),
17
+ [e.ZKProof]: await getWorkerURL(domain + '/0.3.25/' + 'zkProofWorkerLauncher.js'),
18
+ [e.SnarkJS]: await getWorkerURL(domain + '/0.3.25/' + 'snarkjsWorkerLauncher.js'),
19
+ [e.UTXO]: await getWorkerURL(domain + '/0.3.25/' + 'utxoWorkerLauncher.js'),
20
20
  });
21
21
  export { n as getWorkerViteURL };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gurge/sdk",
3
- "version": "0.3.24",
3
+ "version": "0.3.25",
4
4
  "homepage": "hinkal.io",
5
5
  "author": {
6
6
  "name": "Hinkal Protocol"
@@ -1,7 +1,7 @@
1
- require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../common/src/webworker/workerFactory.cjs`),t=require(`./workerCDNUrls.cjs`),n=require(`./bridge/serialization.utils.cjs`),r=require(`./bridge/HinkalRNWorker.cjs`);let i=require(`react`),a=require(`react-native`),o=require(`react-native-webview`),s=require(`react/jsx-runtime`);var c=`${new URL(Object.values(t.WORKER_CDN_URLS)[0]).origin}/`;e.WorkerFactory.rnWorkerFactory=e=>new r.HinkalRNWorker(e);var l=`
1
+ require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../common/src/functions/utils/hinkalTiming.utils.cjs`),t=require(`../common/src/webworker/workerFactory.cjs`),n=require(`./workerCDNUrls.cjs`),r=require(`./bridge/serialization.utils.cjs`),i=require(`./bridge/HinkalRNWorker.cjs`);let a=require(`react`),o=require(`react-native`),s=require(`react-native-webview`),c=require(`react/jsx-runtime`);var l=`${new URL(Object.values(n.WORKER_CDN_URLS)[0]).origin}/`;t.WorkerFactory.rnWorkerFactory=e=>new i.HinkalRNWorker(e);var u=`
2
2
  if (!window.__hinkalPageBoot) (function(){
3
3
  window.__hinkalPageBoot = true;
4
- var URLS = ${JSON.stringify(t.WORKER_CDN_URLS)};
4
+ var URLS = ${JSON.stringify(n.WORKER_CDN_URLS)};
5
5
  var BLOBS = {};
6
6
 
7
7
  function replacer(_key, value){
@@ -22,6 +22,9 @@ if (!window.__hinkalPageBoot) (function(){
22
22
  var out = {}; for (var i = 0; i < keys.length; i++) out[keys[i]] = revive(value[keys[i]]); return out;
23
23
  }
24
24
  function post(payload){ try { window.ReactNativeWebView.postMessage(JSON.stringify(payload, replacer)); } catch(_){} }
25
+ function postPhase(requestId, variant, phase, t0){
26
+ post({ type: 'TIMING', requestId: requestId, variant: variant, phase: phase, ms: Date.now() - t0 });
27
+ }
25
28
  function describe(error){
26
29
  if (!error) return 'worker error';
27
30
  if (error.message) return error.message;
@@ -60,10 +63,17 @@ if (!window.__hinkalPageBoot) (function(){
60
63
  var variant = envelope && envelope.variant;
61
64
  var message = revive(envelope && envelope.message);
62
65
  var url = URLS[variant];
66
+ var t0 = Date.now();
67
+ postPhase(requestId, variant, 'handleMessage-start', t0);
63
68
  if (!url) return post({ requestId: requestId, type: 'ERROR', error: 'Unknown variant: ' + variant });
64
69
 
65
70
  var worker;
66
- try { worker = spawn(await blobUrl(url)); }
71
+ try {
72
+ var blob = await blobUrl(url);
73
+ postPhase(requestId, variant, 'cdn-blob-ready', t0);
74
+ worker = spawn(blob);
75
+ postPhase(requestId, variant, 'inner-worker-spawned', t0);
76
+ }
67
77
  catch (error) { return post({ requestId: requestId, type: 'ERROR', error: 'spawn failed: ' + describe(error) }); }
68
78
 
69
79
  var done = false, ready = false, pending = message;
@@ -74,6 +84,7 @@ if (!window.__hinkalPageBoot) (function(){
74
84
  if (data && typeof data === 'object') {
75
85
  if (data.__hinkalWorkerReady) {
76
86
  ready = true;
87
+ postPhase(requestId, variant, 'inner-worker-ready', t0);
77
88
  try { worker.postMessage(pending); pending = null; }
78
89
  catch (error) { post({ requestId: requestId, type: 'ERROR', error: 'postMessage failed: ' + describe(error) }); finish(); }
79
90
  return;
@@ -85,6 +96,7 @@ if (!window.__hinkalPageBoot) (function(){
85
96
  }
86
97
  }
87
98
  post({ requestId: requestId, type: 'RESULT', data: data });
99
+ postPhase(requestId, variant, 'inner-worker-done', t0);
88
100
  finish();
89
101
  };
90
102
  worker.onerror = function(event){
@@ -95,4 +107,4 @@ if (!window.__hinkalPageBoot) (function(){
95
107
 
96
108
  post({ type: 'READY' });
97
109
  })();
98
- true;`,u=`<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body><script>${l}<\/script></body></html>`,d=a.StyleSheet.create({hiddenHost:{position:`absolute`,height:1,width:1,left:-9999,top:-9999,opacity:0}}),f=()=>{let e=(0,i.useRef)(null),t=(0,i.useRef)({ready:!1,queue:[]}),r=(0,i.useCallback)((t,r,i)=>{let o;try{o=JSON.stringify({requestId:t,variant:r,message:i},n.bigIntReplacer)}catch(e){a.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,{requestId:t,type:`ERROR`,error:`serialize failed: ${e?.message??e}`});return}e.current?.injectJavaScript(`window.handleMessage && window.handleMessage(${o}); true;`)},[]);(0,i.useEffect)(()=>{let e=a.DeviceEventEmitter.addListener(`TO_WEBVIEW_WORKER`,e=>{let n={requestId:e?.__requestId??``,variant:e?.variant??``,message:e?.message};t.current.ready?r(n.requestId,n.variant,n.message):t.current.queue.push(n)});return()=>e.remove()},[r]);let f=(0,i.useCallback)(e=>{let i;try{i=n.reviveBigInts(JSON.parse(e.nativeEvent.data))}catch(e){a.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,{type:`ERROR`,error:e?.message??`parse error`});return}if(i?.type===`READY`){t.current.ready=!0;let e=t.current.queue;t.current.queue=[],e.forEach(({requestId:e,variant:t,message:n})=>r(e,t,n));return}a.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,i)},[r]);return(0,s.jsx)(a.View,{pointerEvents:`none`,style:d.hiddenHost,children:(0,s.jsx)(o.WebView,{ref:e,source:{html:u,baseUrl:c},originWhitelist:[`*`],javaScriptEnabled:!0,domStorageEnabled:!0,androidLayerType:`hardware`,onMessage:f,onLoad:()=>e.current?.injectJavaScript(l)})})};module.exports=f;
110
+ true;`,d=`<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body><script>${u}<\/script></body></html>`,f=o.StyleSheet.create({hiddenHost:{position:`absolute`,height:1,width:1,left:-9999,top:-9999,opacity:0}}),p=()=>{let t=(0,a.useRef)(null),n=(0,a.useRef)({ready:!1,queue:[]}),i=(0,a.useCallback)((e,n,i)=>{let a;try{a=JSON.stringify({requestId:e,variant:n,message:i},r.bigIntReplacer)}catch(t){o.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,{requestId:e,type:`ERROR`,error:`serialize failed: ${t?.message??t}`});return}t.current?.injectJavaScript(`window.handleMessage && window.handleMessage(${a}); true;`)},[]);(0,a.useEffect)(()=>{let e=o.DeviceEventEmitter.addListener(`TO_WEBVIEW_WORKER`,e=>{let t={requestId:e?.__requestId??``,variant:e?.variant??``,message:e?.message};n.current.ready?i(t.requestId,t.variant,t.message):n.current.queue.push(t)});return()=>e.remove()},[i]);let p=(0,a.useCallback)(t=>{let a;try{a=r.reviveBigInts(JSON.parse(t.nativeEvent.data))}catch(e){o.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,{type:`ERROR`,error:e?.message??`parse error`});return}if(a?.type===`READY`){n.current.ready=!0;let e=n.current.queue;n.current.queue=[],e.forEach(({requestId:e,variant:t,message:n})=>i(e,t,n));return}if(a?.type===`TIMING`){e.logRnDeltaEvent(`webView.${a.variant}`,a.phase,{requestId:a.requestId,ms:a.ms});return}o.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,a)},[i]);return(0,c.jsx)(o.View,{pointerEvents:`none`,style:f.hiddenHost,children:(0,c.jsx)(s.WebView,{ref:t,source:{html:d,baseUrl:l},originWhitelist:[`*`],javaScriptEnabled:!0,domStorageEnabled:!0,androidLayerType:`hardware`,onMessage:p,onLoad:()=>t.current?.injectJavaScript(u)})})};module.exports=p;
@@ -1,18 +1,19 @@
1
- import { WorkerFactory as e } from "../common/src/webworker/workerFactory.mjs";
2
- import { WORKER_CDN_URLS as t } from "./workerCDNUrls.mjs";
3
- import { bigIntReplacer as n, reviveBigInts as r } from "./bridge/serialization.utils.mjs";
4
- import { HinkalRNWorker as i } from "./bridge/HinkalRNWorker.mjs";
5
- import { useCallback as a, useEffect as o, useRef as s } from "react";
6
- import { DeviceEventEmitter as c, StyleSheet as l, View as u } from "react-native";
7
- import { WebView as d } from "react-native-webview";
8
- import { jsx as f } from "react/jsx-runtime";
1
+ import { logRnDeltaEvent as e } from "../common/src/functions/utils/hinkalTiming.utils.mjs";
2
+ import { WorkerFactory as t } from "../common/src/webworker/workerFactory.mjs";
3
+ import { WORKER_CDN_URLS as n } from "./workerCDNUrls.mjs";
4
+ import { bigIntReplacer as r, reviveBigInts as i } from "./bridge/serialization.utils.mjs";
5
+ import { HinkalRNWorker as a } from "./bridge/HinkalRNWorker.mjs";
6
+ import { useCallback as o, useEffect as s, useRef as c } from "react";
7
+ import { DeviceEventEmitter as l, StyleSheet as u, View as d } from "react-native";
8
+ import { WebView as f } from "react-native-webview";
9
+ import { jsx as p } from "react/jsx-runtime";
9
10
  //#region libs/shared/sdk/src/react-native/HinkalWebViewWorker.tsx
10
- var p = `${new URL(Object.values(t)[0]).origin}/`;
11
- e.rnWorkerFactory = (e) => new i(e);
12
- var m = `
11
+ var m = `${new URL(Object.values(n)[0]).origin}/`;
12
+ t.rnWorkerFactory = (e) => new a(e);
13
+ var h = `
13
14
  if (!window.__hinkalPageBoot) (function(){
14
15
  window.__hinkalPageBoot = true;
15
- var URLS = ${JSON.stringify(t)};
16
+ var URLS = ${JSON.stringify(n)};
16
17
  var BLOBS = {};
17
18
 
18
19
  function replacer(_key, value){
@@ -33,6 +34,9 @@ if (!window.__hinkalPageBoot) (function(){
33
34
  var out = {}; for (var i = 0; i < keys.length; i++) out[keys[i]] = revive(value[keys[i]]); return out;
34
35
  }
35
36
  function post(payload){ try { window.ReactNativeWebView.postMessage(JSON.stringify(payload, replacer)); } catch(_){} }
37
+ function postPhase(requestId, variant, phase, t0){
38
+ post({ type: 'TIMING', requestId: requestId, variant: variant, phase: phase, ms: Date.now() - t0 });
39
+ }
36
40
  function describe(error){
37
41
  if (!error) return 'worker error';
38
42
  if (error.message) return error.message;
@@ -58,10 +62,17 @@ if (!window.__hinkalPageBoot) (function(){
58
62
  var variant = envelope && envelope.variant;
59
63
  var message = revive(envelope && envelope.message);
60
64
  var url = URLS[variant];
65
+ var t0 = Date.now();
66
+ postPhase(requestId, variant, 'handleMessage-start', t0);
61
67
  if (!url) return post({ requestId: requestId, type: 'ERROR', error: 'Unknown variant: ' + variant });
62
68
 
63
69
  var worker;
64
- try { worker = spawn(await blobUrl(url)); }
70
+ try {
71
+ var blob = await blobUrl(url);
72
+ postPhase(requestId, variant, 'cdn-blob-ready', t0);
73
+ worker = spawn(blob);
74
+ postPhase(requestId, variant, 'inner-worker-spawned', t0);
75
+ }
65
76
  catch (error) { return post({ requestId: requestId, type: 'ERROR', error: 'spawn failed: ' + describe(error) }); }
66
77
 
67
78
  var done = false, ready = false, pending = message;
@@ -72,6 +83,7 @@ if (!window.__hinkalPageBoot) (function(){
72
83
  if (data && typeof data === 'object') {
73
84
  if (data.__hinkalWorkerReady) {
74
85
  ready = true;
86
+ postPhase(requestId, variant, 'inner-worker-ready', t0);
75
87
  try { worker.postMessage(pending); pending = null; }
76
88
  catch (error) { post({ requestId: requestId, type: 'ERROR', error: 'postMessage failed: ' + describe(error) }); finish(); }
77
89
  return;
@@ -83,6 +95,7 @@ if (!window.__hinkalPageBoot) (function(){
83
95
  }
84
96
  }
85
97
  post({ requestId: requestId, type: 'RESULT', data: data });
98
+ postPhase(requestId, variant, 'inner-worker-done', t0);
86
99
  finish();
87
100
  };
88
101
  worker.onerror = function(event){
@@ -93,82 +106,89 @@ if (!window.__hinkalPageBoot) (function(){
93
106
 
94
107
  post({ type: 'READY' });
95
108
  })();
96
- true;`, h = `<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body><script>${m}<\/script></body></html>`, g = l.create({ hiddenHost: {
109
+ true;`, g = `<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body><script>${h}<\/script></body></html>`, _ = u.create({ hiddenHost: {
97
110
  position: "absolute",
98
111
  height: 1,
99
112
  width: 1,
100
113
  left: -9999,
101
114
  top: -9999,
102
115
  opacity: 0
103
- } }), _ = () => {
104
- let e = s(null), t = s({
116
+ } }), v = () => {
117
+ let t = c(null), n = c({
105
118
  ready: !1,
106
119
  queue: []
107
- }), i = a((t, r, i) => {
120
+ }), a = o((e, n, i) => {
108
121
  let a;
109
122
  try {
110
123
  a = JSON.stringify({
111
- requestId: t,
112
- variant: r,
124
+ requestId: e,
125
+ variant: n,
113
126
  message: i
114
- }, n);
115
- } catch (e) {
116
- c.emit("FROM_WEBVIEW_WORKER", {
117
- requestId: t,
127
+ }, r);
128
+ } catch (t) {
129
+ l.emit("FROM_WEBVIEW_WORKER", {
130
+ requestId: e,
118
131
  type: "ERROR",
119
- error: `serialize failed: ${e?.message ?? e}`
132
+ error: `serialize failed: ${t?.message ?? t}`
120
133
  });
121
134
  return;
122
135
  }
123
- e.current?.injectJavaScript(`window.handleMessage && window.handleMessage(${a}); true;`);
136
+ t.current?.injectJavaScript(`window.handleMessage && window.handleMessage(${a}); true;`);
124
137
  }, []);
125
- o(() => {
126
- let e = c.addListener("TO_WEBVIEW_WORKER", (e) => {
127
- let n = {
138
+ s(() => {
139
+ let e = l.addListener("TO_WEBVIEW_WORKER", (e) => {
140
+ let t = {
128
141
  requestId: e?.__requestId ?? "",
129
142
  variant: e?.variant ?? "",
130
143
  message: e?.message
131
144
  };
132
- t.current.ready ? i(n.requestId, n.variant, n.message) : t.current.queue.push(n);
145
+ n.current.ready ? a(t.requestId, t.variant, t.message) : n.current.queue.push(t);
133
146
  });
134
147
  return () => e.remove();
135
- }, [i]);
136
- let l = a((e) => {
137
- let n;
148
+ }, [a]);
149
+ let u = o((t) => {
150
+ let r;
138
151
  try {
139
- n = r(JSON.parse(e.nativeEvent.data));
152
+ r = i(JSON.parse(t.nativeEvent.data));
140
153
  } catch (e) {
141
- c.emit("FROM_WEBVIEW_WORKER", {
154
+ l.emit("FROM_WEBVIEW_WORKER", {
142
155
  type: "ERROR",
143
156
  error: e?.message ?? "parse error"
144
157
  });
145
158
  return;
146
159
  }
147
- if (n?.type === "READY") {
148
- t.current.ready = !0;
149
- let e = t.current.queue;
150
- t.current.queue = [], e.forEach(({ requestId: e, variant: t, message: n }) => i(e, t, n));
160
+ if (r?.type === "READY") {
161
+ n.current.ready = !0;
162
+ let e = n.current.queue;
163
+ n.current.queue = [], e.forEach(({ requestId: e, variant: t, message: n }) => a(e, t, n));
164
+ return;
165
+ }
166
+ if (r?.type === "TIMING") {
167
+ e(`webView.${r.variant}`, r.phase, {
168
+ requestId: r.requestId,
169
+ ms: r.ms
170
+ });
151
171
  return;
152
172
  }
153
- c.emit("FROM_WEBVIEW_WORKER", n);
154
- }, [i]);
155
- return /* @__PURE__ */ f(u, {
173
+ l.emit("FROM_WEBVIEW_WORKER", r);
174
+ }, [a]);
175
+ return /* @__PURE__ */ p(d, {
156
176
  pointerEvents: "none",
157
- style: g.hiddenHost,
158
- children: /* @__PURE__ */ f(d, {
159
- ref: e,
177
+ style: _.hiddenHost,
178
+ children: /* @__PURE__ */ p(f, {
179
+ ref: t,
160
180
  source: {
161
- html: h,
162
- baseUrl: p
181
+ html: g,
182
+ baseUrl: m
163
183
  },
164
184
  originWhitelist: ["*"],
165
185
  javaScriptEnabled: !0,
166
186
  domStorageEnabled: !0,
167
187
  androidLayerType: "hardware",
168
- onMessage: l,
169
- onLoad: () => e.current?.injectJavaScript(m)
188
+ onMessage: u,
189
+ onLoad: () => t.current?.injectJavaScript(h)
170
190
  })
171
191
  });
172
192
  };
173
193
  //#endregion
174
- export { _ as default };
194
+ export { v as default };
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`./serialization.utils.cjs`);let t=require(`react-native`);var n=class{onmessage=null;onerror=null;requestId=e.nextRequestId();subscription;constructor(e){this.variant=e,this.subscription=t.DeviceEventEmitter.addListener(`FROM_WEBVIEW_WORKER`,e=>{!e||e.requestId!==this.requestId||(e.type===`RESULT`?this.onmessage?.({data:e.data}):e.type===`ERROR`&&this.onerror?.(Error(e.error??`WebView worker error`)))})}postMessage(e){t.DeviceEventEmitter.emit(`TO_WEBVIEW_WORKER`,{__requestId:this.requestId,variant:this.variant,message:e})}terminate(){this.subscription?.remove?.(),this.subscription=null}};exports.HinkalRNWorker=n;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../common/src/functions/utils/hinkalTiming.utils.cjs`),t=require(`./serialization.utils.cjs`);let n=require(`react-native`);var r=class{onmessage=null;onerror=null;requestId=t.nextRequestId();sentAt=0;subscription;constructor(t){this.variant=t,this.subscription=n.DeviceEventEmitter.addListener(`FROM_WEBVIEW_WORKER`,t=>{!t||t.requestId!==this.requestId||(t.type===`RESULT`?(e.logRnDeltaEvent(`rnBridge.${this.variant}`,`round-trip`,{requestId:this.requestId,ms:Date.now()-this.sentAt}),this.onmessage?.({data:t.data})):t.type===`ERROR`&&this.onerror?.(Error(t.error??`WebView worker error`)))})}postMessage(t){this.sentAt=Date.now(),e.logRnDeltaEvent(`rnBridge.${this.variant}`,`postMessage-sent`,{requestId:this.requestId}),n.DeviceEventEmitter.emit(`TO_WEBVIEW_WORKER`,{__requestId:this.requestId,variant:this.variant,message:t})}terminate(){this.subscription?.remove?.(),this.subscription=null}};exports.HinkalRNWorker=r;
@@ -6,6 +6,7 @@ export declare class HinkalRNWorker {
6
6
  }) => void) | null;
7
7
  onerror: ((error: any) => void) | null;
8
8
  private requestId;
9
+ private sentAt;
9
10
  private subscription;
10
11
  constructor(variant: WorkerVariant);
11
12
  postMessage(message: unknown): void;
@@ -1,21 +1,26 @@
1
- import { nextRequestId as e } from "./serialization.utils.mjs";
2
- import { DeviceEventEmitter as t } from "react-native";
1
+ import { logRnDeltaEvent as e } from "../../common/src/functions/utils/hinkalTiming.utils.mjs";
2
+ import { nextRequestId as t } from "./serialization.utils.mjs";
3
+ import { DeviceEventEmitter as n } from "react-native";
3
4
  //#region libs/shared/sdk/src/react-native/bridge/HinkalRNWorker.ts
4
- var n = class {
5
+ var r = class {
5
6
  onmessage = null;
6
7
  onerror = null;
7
- requestId = e();
8
+ requestId = t();
9
+ sentAt = 0;
8
10
  subscription;
9
- constructor(e) {
10
- this.variant = e, this.subscription = t.addListener("FROM_WEBVIEW_WORKER", (e) => {
11
- !e || e.requestId !== this.requestId || (e.type === "RESULT" ? this.onmessage?.({ data: e.data }) : e.type === "ERROR" && this.onerror?.(Error(e.error ?? "WebView worker error")));
11
+ constructor(t) {
12
+ this.variant = t, this.subscription = n.addListener("FROM_WEBVIEW_WORKER", (t) => {
13
+ !t || t.requestId !== this.requestId || (t.type === "RESULT" ? (e(`rnBridge.${this.variant}`, "round-trip", {
14
+ requestId: this.requestId,
15
+ ms: Date.now() - this.sentAt
16
+ }), this.onmessage?.({ data: t.data })) : t.type === "ERROR" && this.onerror?.(Error(t.error ?? "WebView worker error")));
12
17
  });
13
18
  }
14
- postMessage(e) {
15
- t.emit("TO_WEBVIEW_WORKER", {
19
+ postMessage(t) {
20
+ this.sentAt = Date.now(), e(`rnBridge.${this.variant}`, "postMessage-sent", { requestId: this.requestId }), n.emit("TO_WEBVIEW_WORKER", {
16
21
  __requestId: this.requestId,
17
22
  variant: this.variant,
18
- message: e
23
+ message: t
19
24
  });
20
25
  }
21
26
  terminate() {
@@ -23,4 +28,4 @@ var n = class {
23
28
  }
24
29
  };
25
30
  //#endregion
26
- export { n as HinkalRNWorker };
31
+ export { r as HinkalRNWorker };
@@ -1 +1 @@
1
- var e={name:`@gurge/sdk`,version:`0.3.23`,homepage:`hinkal.io`,author:{name:`Hinkal Protocol`},keywords:[`blockchain`,`privacy`,`zero-knowledge`,`stealth addresses`],exports:{".":{types:`./index.d.ts`,"react-native":`./index.cjs`,import:`./index.mjs`,default:`./index.cjs`},"./providers/WagmiProviderAdapter":{types:`./providers/WagmiProviderAdapter.d.ts`,"react-native":`./providers/WagmiProviderAdapter.cjs`,import:`./providers/WagmiProviderAdapter.mjs`,default:`./providers/WagmiProviderAdapter.cjs`},"./providers/EthersProviderAdapter":{types:`./providers/EthersProviderAdapter.d.ts`,"react-native":`./providers/EthersProviderAdapter.cjs`,import:`./providers/EthersProviderAdapter.mjs`,default:`./providers/EthersProviderAdapter.cjs`},"./providers/TronProviderAdapter":{types:`./providers/TronProviderAdapter.d.ts`,"react-native":`./providers/TronProviderAdapter.cjs`,import:`./providers/TronProviderAdapter.mjs`,default:`./providers/TronProviderAdapter.cjs`},"./providers/SolanaProviderAdapter":{types:`./providers/SolanaProviderAdapter.d.ts`,"react-native":`./providers/SolanaProviderAdapter.cjs`,import:`./providers/SolanaProviderAdapter.mjs`,default:`./providers/SolanaProviderAdapter.cjs`},"./providers/prepareEthersHinkal":{types:`./providers/prepareEthersHinkal.d.ts`,"react-native":`./providers/prepareEthersHinkal.cjs`,import:`./providers/prepareEthersHinkal.mjs`,default:`./providers/prepareEthersHinkal.cjs`},"./providers/prepareWagmiHinkal":{types:`./providers/prepareWagmiHinkal.d.ts`,"react-native":`./providers/prepareWagmiHinkal.cjs`,import:`./providers/prepareWagmiHinkal.mjs`,default:`./providers/prepareWagmiHinkal.cjs`},"./providers/prepareTronHinkal":{types:`./providers/prepareTronHinkal.d.ts`,"react-native":`./providers/prepareTronHinkal.cjs`,import:`./providers/prepareTronHinkal.mjs`,default:`./providers/prepareTronHinkal.cjs`},"./providers/prepareSolanaHinkal":{types:`./providers/prepareSolanaHinkal.d.ts`,"react-native":`./providers/prepareSolanaHinkal.cjs`,import:`./providers/prepareSolanaHinkal.mjs`,default:`./providers/prepareSolanaHinkal.cjs`},"./react-native/HinkalWebViewWorker":{types:`./react-native/HinkalWebViewWorker.d.ts`,"react-native":`./react-native/HinkalWebViewWorker.cjs`,import:`./react-native/HinkalWebViewWorker.mjs`,default:`./react-native/HinkalWebViewWorker.cjs`},"./react-native/metro-config":`./react-native/metro-config.js`,"./react-native/shims/*":`./react-native/shims/*`},types:`./index.d.ts`,scripts:{prebuild:`nx prebuild:workers`,build:`nx build`,lint:`nx lint`,test:`nx test`},devDependencies:{nx:`22.6.4`,vite:`^8.0.4`,"vite-plugin-dts":`^4.5.4`,"vite-tsconfig-paths":`^6.1.1`},dependencies:{"@coral-xyz/anchor":`^0.31.0`,"@solana/spl-token":`^0.4.14`,"@solana/web3.js":`^1.98.4`,"@solana/wallet-adapter-react":`^0.15.39`,axios:`^1.15.0`,"async-mutex":`^0.4.0`,bs58:`^6.0.0`,buffer:`6.0.3`,"circomlibjs-hinkal-fork":`^0.0.10`,dotenv:`^16.4.5`,ethers:`^6.15.0`,"idb-keyval":`6.2.1`,multiformats:`^9.4.2`,snarkjs:`0.7.5`,"libsodium-wrappers":`^0.8.2`,lodash:`^4.17.21`,tweetnacl:`^1.0.3`,process:`0.11.10`,"ua-parser-js":`^1.0.37`,uuid:`^9.0.1`,"node-forge":`^1.3.1`,"poseidon-lite":`^0.3.0`,tronweb:`^6.2.0`},peerDependencies:{wagmi:`2.13.3`,"@walletconnect/utils":`^2.17.2`,react:`*`,"react-native":`*`,"react-native-webview":`*`},peerDependenciesMeta:{wagmi:{optional:!0},"@walletconnect/utils":{optional:!0},react:{optional:!0},"react-native":{optional:!0},"react-native-webview":{optional:!0}}};exports.default=e;
1
+ var e={name:`@gurge/sdk`,version:`0.3.24`,homepage:`hinkal.io`,author:{name:`Hinkal Protocol`},keywords:[`blockchain`,`privacy`,`zero-knowledge`,`stealth addresses`],exports:{".":{types:`./index.d.ts`,"react-native":`./index.cjs`,import:`./index.mjs`,default:`./index.cjs`},"./providers/WagmiProviderAdapter":{types:`./providers/WagmiProviderAdapter.d.ts`,"react-native":`./providers/WagmiProviderAdapter.cjs`,import:`./providers/WagmiProviderAdapter.mjs`,default:`./providers/WagmiProviderAdapter.cjs`},"./providers/EthersProviderAdapter":{types:`./providers/EthersProviderAdapter.d.ts`,"react-native":`./providers/EthersProviderAdapter.cjs`,import:`./providers/EthersProviderAdapter.mjs`,default:`./providers/EthersProviderAdapter.cjs`},"./providers/TronProviderAdapter":{types:`./providers/TronProviderAdapter.d.ts`,"react-native":`./providers/TronProviderAdapter.cjs`,import:`./providers/TronProviderAdapter.mjs`,default:`./providers/TronProviderAdapter.cjs`},"./providers/SolanaProviderAdapter":{types:`./providers/SolanaProviderAdapter.d.ts`,"react-native":`./providers/SolanaProviderAdapter.cjs`,import:`./providers/SolanaProviderAdapter.mjs`,default:`./providers/SolanaProviderAdapter.cjs`},"./providers/prepareEthersHinkal":{types:`./providers/prepareEthersHinkal.d.ts`,"react-native":`./providers/prepareEthersHinkal.cjs`,import:`./providers/prepareEthersHinkal.mjs`,default:`./providers/prepareEthersHinkal.cjs`},"./providers/prepareWagmiHinkal":{types:`./providers/prepareWagmiHinkal.d.ts`,"react-native":`./providers/prepareWagmiHinkal.cjs`,import:`./providers/prepareWagmiHinkal.mjs`,default:`./providers/prepareWagmiHinkal.cjs`},"./providers/prepareTronHinkal":{types:`./providers/prepareTronHinkal.d.ts`,"react-native":`./providers/prepareTronHinkal.cjs`,import:`./providers/prepareTronHinkal.mjs`,default:`./providers/prepareTronHinkal.cjs`},"./providers/prepareSolanaHinkal":{types:`./providers/prepareSolanaHinkal.d.ts`,"react-native":`./providers/prepareSolanaHinkal.cjs`,import:`./providers/prepareSolanaHinkal.mjs`,default:`./providers/prepareSolanaHinkal.cjs`},"./react-native/HinkalWebViewWorker":{types:`./react-native/HinkalWebViewWorker.d.ts`,"react-native":`./react-native/HinkalWebViewWorker.cjs`,import:`./react-native/HinkalWebViewWorker.mjs`,default:`./react-native/HinkalWebViewWorker.cjs`},"./react-native/metro-config":`./react-native/metro-config.js`,"./react-native/shims/*":`./react-native/shims/*`},types:`./index.d.ts`,scripts:{prebuild:`nx prebuild:workers`,build:`nx build`,lint:`nx lint`,test:`nx test`},devDependencies:{nx:`22.6.4`,vite:`^8.0.4`,"vite-plugin-dts":`^4.5.4`,"vite-tsconfig-paths":`^6.1.1`},dependencies:{"@coral-xyz/anchor":`^0.31.0`,"@solana/spl-token":`^0.4.14`,"@solana/web3.js":`^1.98.4`,"@solana/wallet-adapter-react":`^0.15.39`,axios:`^1.15.0`,"async-mutex":`^0.4.0`,bs58:`^6.0.0`,buffer:`6.0.3`,"circomlibjs-hinkal-fork":`^0.0.10`,dotenv:`^16.4.5`,ethers:`^6.15.0`,"idb-keyval":`6.2.1`,multiformats:`^9.4.2`,snarkjs:`0.7.5`,"libsodium-wrappers":`^0.8.2`,lodash:`^4.17.21`,tweetnacl:`^1.0.3`,process:`0.11.10`,"ua-parser-js":`^1.0.37`,uuid:`^9.0.1`,"node-forge":`^1.3.1`,"poseidon-lite":`^0.3.0`,tronweb:`^6.2.0`},peerDependencies:{wagmi:`2.13.3`,"@walletconnect/utils":`^2.17.2`,react:`*`,"react-native":`*`,"react-native-webview":`*`},peerDependenciesMeta:{wagmi:{optional:!0},"@walletconnect/utils":{optional:!0},react:{optional:!0},"react-native":{optional:!0},"react-native-webview":{optional:!0}}};exports.default=e;
@@ -1,6 +1,6 @@
1
1
  var e = {
2
2
  name: "@gurge/sdk",
3
- version: "0.3.23",
3
+ version: "0.3.24",
4
4
  homepage: "hinkal.io",
5
5
  author: { name: "Hinkal Protocol" },
6
6
  keywords: [