@gurge/sdk 0.3.32 → 0.3.36

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.
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../types/ethereum-network.types.cjs`),n=require(`../../types/balances.types.cjs`),r=require(`../../types/events.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../functions/utils/map.utils.cjs`),a=require(`../../functions/utils/mutexes.utils.cjs`),o=require(`../../functions/utils/create-provider.cjs`),s=require(`../../functions/utils/getContractAddress.cjs`),c=require(`../private-balances/BalanceChangedHandler.cjs`),l=require(`../event-service/evm/ClientBlockchainEventEmitter.cjs`),u=require(`../event-service/solana/ClientSolanaBlockchainEventEmitter.cjs`);require(`../event-service/index.cjs`);const d=require(`../snapshot/SnapshotFetcherService.cjs`),f=require(`../snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs`),p=require(`../snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs`),m=require(`../snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs`),h=require(`../snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs`);require(`../snapshot/index.cjs`);let g=require(`@solana/web3.js`),_=require(`async-mutex`);var v=new Map,y=e=>i.getOrCreateMapValue(v,e,()=>new _.Mutex),b=async(i,_)=>{let v=_??i.getSupportedChains();console.log(`[HinkalRnConnect] resetMerkleTrees: start`,{chainsToReset:v});let b=v.map(_=>y(_).runExclusive(async()=>{i.commitmentsSnapshotServiceByChain[_]?.intervalClear(),i.nullifierSnapshotServiceByChain[_]?.intervalClear();let{maxPageSize:v,fetchRpcUrl:y,contractData:b}=e.networkRegistry[_],x;if(e.isSolanaLike(_)){let e=b.hinkalAddress;if(!y||!e)throw Error(`Fetch RPC URL or Solana program ID is not set`);x=new u.ClientSolanaBlockchainEventEmitter(_,o.createCustomSolanaConnection(y),new g.PublicKey(e),0,a.getChainBalanceFetchingMutex(_),v);let t=b.hinkalIdl;t&&x.setIdl(t);let n=new d.SnapshotFetcherService(_,e);i.commitmentsSnapshotServiceByChain[_]=new f.ClientSolanaCommitmentsSnapshotService(x,n),i.nullifierSnapshotServiceByChain[_]=new p.ClientSolanaNullifierSnapshotService(x,n)}else{let e=i.getContractWithFetcherByChainId(_,t.ContractType.HinkalContract),n=i.getContractWithFetcherByChainId(_,t.ContractType.DepositOnChainUtxos),o=a.getChainBalanceFetchingMutex(_);x=new l.ClientBlockchainEventEmitter(r.EventCategory.MainContractEvents,_,e,0,o,v,n);let c=new d.SnapshotFetcherService(_,s.getContractAddress(e));i.commitmentsSnapshotServiceByChain[_]=new m.ClientCommitmentsSnapshotService(x,c),i.nullifierSnapshotServiceByChain[_]=new h.ClientNullifierSnapshotService(x,c)}let S=i.commitmentsSnapshotServiceByChain[_],C=i.nullifierSnapshotServiceByChain[_];if(!S||!C)throw Error(`Missing snapshot service for chain ${_}`);await Promise.all([S.init(),C.init()]),await x.init(),i.merkleTreeHinkalByChain[_]=S.merkleTree,i.nullifiersByChain[_]=C.nullifiers,i.encryptedOutputsByChain[_]=S.encryptedOutputs,x.onEventsProcessed=e=>{e>0&&c.balanceChangedHandler.dispatch({updateType:n.PrivateBalanceUpdateType.FreshWithoutLoader,updateTokensListBefore:!0,chainIdToUpdate:_})}}));await Promise.allSettled(b),console.log(`[HinkalRnConnect] resetMerkleTrees: done`,{chainsToReset:v})};exports.resetMerkleTrees=b;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../types/ethereum-network.types.cjs`),n=require(`../../types/balances.types.cjs`),r=require(`../../types/events.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../functions/utils/map.utils.cjs`),a=require(`../../functions/utils/mutexes.utils.cjs`),o=require(`../../functions/utils/create-provider.cjs`),s=require(`../../functions/utils/getContractAddress.cjs`),c=require(`../private-balances/BalanceChangedHandler.cjs`),l=require(`../event-service/evm/ClientBlockchainEventEmitter.cjs`),u=require(`../event-service/solana/ClientSolanaBlockchainEventEmitter.cjs`);require(`../event-service/index.cjs`);const d=require(`../snapshot/SnapshotFetcherService.cjs`),f=require(`../snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs`),p=require(`../snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs`),m=require(`../snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs`),h=require(`../snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs`);require(`../snapshot/index.cjs`);let g=require(`@solana/web3.js`),_=require(`async-mutex`);var v=new Map,y=e=>i.getOrCreateMapValue(v,e,()=>new _.Mutex),b=async(i,_)=>{let v=(_??i.getSupportedChains()).map(_=>y(_).runExclusive(async()=>{i.commitmentsSnapshotServiceByChain[_]?.intervalClear(),i.nullifierSnapshotServiceByChain[_]?.intervalClear();let{maxPageSize:v,fetchRpcUrl:y,contractData:b}=e.networkRegistry[_],x;if(e.isSolanaLike(_)){let e=b.hinkalAddress;if(!y||!e)throw Error(`Fetch RPC URL or Solana program ID is not set`);x=new u.ClientSolanaBlockchainEventEmitter(_,o.createCustomSolanaConnection(y),new g.PublicKey(e),0,a.getChainBalanceFetchingMutex(_),v);let t=b.hinkalIdl;t&&x.setIdl(t);let n=new d.SnapshotFetcherService(_,e);i.commitmentsSnapshotServiceByChain[_]=new f.ClientSolanaCommitmentsSnapshotService(x,n),i.nullifierSnapshotServiceByChain[_]=new p.ClientSolanaNullifierSnapshotService(x,n)}else{let e=i.getContractWithFetcherByChainId(_,t.ContractType.HinkalContract),n=i.getContractWithFetcherByChainId(_,t.ContractType.DepositOnChainUtxos),o=a.getChainBalanceFetchingMutex(_);x=new l.ClientBlockchainEventEmitter(r.EventCategory.MainContractEvents,_,e,0,o,v,n);let c=new d.SnapshotFetcherService(_,s.getContractAddress(e));i.commitmentsSnapshotServiceByChain[_]=new m.ClientCommitmentsSnapshotService(x,c),i.nullifierSnapshotServiceByChain[_]=new h.ClientNullifierSnapshotService(x,c)}let S=i.commitmentsSnapshotServiceByChain[_],C=i.nullifierSnapshotServiceByChain[_];if(!S||!C)throw Error(`Missing snapshot service for chain ${_}`);await Promise.all([S.init(),C.init()]),await x.init(),i.merkleTreeHinkalByChain[_]=S.merkleTree,i.nullifiersByChain[_]=C.nullifiers,i.encryptedOutputsByChain[_]=S.encryptedOutputs,x.onEventsProcessed=e=>{e>0&&c.balanceChangedHandler.dispatch({updateType:n.PrivateBalanceUpdateType.FreshWithoutLoader,updateTokensListBefore:!0,chainIdToUpdate:_})}}));await Promise.allSettled(v)};exports.resetMerkleTrees=b;
@@ -21,9 +21,7 @@ import { PublicKey as _ } from "@solana/web3.js";
21
21
  import { Mutex as v } from "async-mutex";
22
22
  //#region libs/shared/common/src/data-structures/Hinkal/resetMerkleTrees.ts
23
23
  var y = /* @__PURE__ */ new Map(), b = (e) => a(y, e, () => new v()), x = async (a, v) => {
24
- let y = v ?? a.getSupportedChains();
25
- console.log("[HinkalRnConnect] resetMerkleTrees: start", { chainsToReset: y });
26
- let x = y.map((v) => b(v).runExclusive(async () => {
24
+ let y = (v ?? a.getSupportedChains()).map((v) => b(v).runExclusive(async () => {
27
25
  a.commitmentsSnapshotServiceByChain[v]?.intervalClear(), a.nullifierSnapshotServiceByChain[v]?.intervalClear();
28
26
  let { maxPageSize: y, fetchRpcUrl: b, contractData: x } = t[v], S;
29
27
  if (e(v)) {
@@ -50,7 +48,7 @@ var y = /* @__PURE__ */ new Map(), b = (e) => a(y, e, () => new v()), x = async
50
48
  });
51
49
  };
52
50
  }));
53
- await Promise.allSettled(x), console.log("[HinkalRnConnect] resetMerkleTrees: done", { chainsToReset: y });
51
+ await Promise.allSettled(y);
54
52
  };
55
53
  //#endregion
56
54
  export { x as resetMerkleTrees };
@@ -1 +1 @@
1
- const e=require(`../../functions/utils/serialize.utils.cjs`),t=require(`../../constants/vite.constants.cjs`);require(`../../constants/index.cjs`);const n=require(`../cacheDevices/FileCacheDevice.cjs`);var r=()=>typeof globalThis<`u`&&`indexedDB`in globalThis&&globalThis.indexedDB!=null||t.isReactNative,i=class{idbPromise=null;idb(){return this.idbPromise||(t.isReactNative?(console.log(`[HinkalRnConnect] keyValStore: loading idb-keyval shim (sync)`),this.idbPromise=Promise.resolve(require(`idb-keyval`))):this.idbPromise=import(`idb-keyval`)),this.idbPromise}async get(e){let{get:t}=await this.idb();return t(e)}async set(e,t){let{set:n}=await this.idb();await n(e,t)}async update(e,t){let{update:n}=await this.idb(),r;return await n(e,e=>(r=t(e),r)),r}},a=class{device;constructor(){let e=require(`path`);this.device=new n.FileCacheDevice(!0,e.resolve(process.cwd(),`hinkalKeyValCache.json`))}async get(t){let n=this.device.get(t);if(n)return e.CustomJSONParse(n)}async set(t,n){this.device.set(t,e.CustomJSONStringify(n))}async update(e,t){let n=t(await this.get(e));return await this.set(e,n),n}},o=r()?new i:new a;exports.keyValStore=o;
1
+ const e=require(`../../functions/utils/serialize.utils.cjs`),t=require(`../../constants/vite.constants.cjs`);require(`../../constants/index.cjs`);const n=require(`../cacheDevices/FileCacheDevice.cjs`);var r=()=>typeof globalThis<`u`&&`indexedDB`in globalThis&&globalThis.indexedDB!=null||t.isReactNative,i=class{idbPromise=null;idb(){return this.idbPromise||=Promise.resolve(require(`idb-keyval`)),this.idbPromise}async get(e){let{get:t}=await this.idb();return t(e)}async set(e,t){let{set:n}=await this.idb();await n(e,t)}async update(e,t){let{update:n}=await this.idb(),r;return await n(e,e=>(r=t(e),r)),r}},a=class{device;constructor(){let e=require(`path`);this.device=new n.FileCacheDevice(!0,e.resolve(process.cwd(),`hinkalKeyValCache.json`))}async get(t){let n=this.device.get(t);if(n)return e.CustomJSONParse(n)}async set(t,n){this.device.set(t,e.CustomJSONStringify(n))}async update(e,t){let n=t(await this.get(e));return await this.set(e,n),n}},o=r()?new i:new a;exports.keyValStore=o;
@@ -7,7 +7,7 @@ import { FileCacheDevice as i } from "../cacheDevices/FileCacheDevice.mjs";
7
7
  var a = () => typeof globalThis < "u" && "indexedDB" in globalThis && globalThis.indexedDB != null || r, o = class {
8
8
  idbPromise = null;
9
9
  idb() {
10
- return this.idbPromise || (r ? (console.log("[HinkalRnConnect] keyValStore: loading idb-keyval shim (sync)"), this.idbPromise = Promise.resolve(e("idb-keyval"))) : this.idbPromise = import("idb-keyval")), this.idbPromise;
10
+ return this.idbPromise ||= Promise.resolve(e("idb-keyval")), this.idbPromise;
11
11
  }
12
12
  async get(e) {
13
13
  let { get: t } = await this.idb();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gurge/sdk",
3
- "version": "0.3.32",
3
+ "version": "0.3.36",
4
4
  "homepage": "hinkal.io",
5
5
  "author": {
6
6
  "name": "Hinkal Protocol"
@@ -14,7 +14,11 @@
14
14
  "exports": {
15
15
  ".": {
16
16
  "types": "./index.d.ts",
17
- "react-native": "./index.cjs",
17
+ "react-native": {
18
+ "types": "./react-native/index.d.ts",
19
+ "import": "./react-native/index.mjs",
20
+ "default": "./react-native/index.cjs"
21
+ },
18
22
  "import": "./index.mjs",
19
23
  "default": "./index.cjs"
20
24
  },
@@ -66,14 +70,7 @@
66
70
  "import": "./providers/prepareSolanaHinkal.mjs",
67
71
  "default": "./providers/prepareSolanaHinkal.cjs"
68
72
  },
69
- "./react-native/HinkalWebViewWorker": {
70
- "types": "./react-native/HinkalWebViewWorker.d.ts",
71
- "react-native": "./react-native/HinkalWebViewWorker.cjs",
72
- "import": "./react-native/HinkalWebViewWorker.mjs",
73
- "default": "./react-native/HinkalWebViewWorker.cjs"
74
- },
75
- "./react-native/metro-config": "./react-native/metro-config.js",
76
- "./react-native/shims/*": "./react-native/shims/*"
73
+ "./react-native/metro-config": "./react-native/metro-config.js"
77
74
  },
78
75
  "types": "./index.d.ts",
79
76
  "scripts": {
@@ -111,14 +108,14 @@
111
108
  "uuid": "^9.0.1",
112
109
  "node-forge": "^1.3.1",
113
110
  "poseidon-lite": "^0.3.0",
114
- "tronweb": "^6.2.0"
111
+ "tronweb": "^6.2.0",
112
+ "@react-native-async-storage/async-storage": "^2.2.0",
113
+ "assert": "^2.1.0",
114
+ "react-native-get-random-values": "^1.11.0"
115
115
  },
116
116
  "peerDependencies": {
117
117
  "wagmi": "2.13.3",
118
- "@walletconnect/utils": "^2.17.2",
119
- "react": "*",
120
- "react-native": "*",
121
- "react-native-webview": "*"
118
+ "@walletconnect/utils": "^2.17.2"
122
119
  },
123
120
  "peerDependenciesMeta": {
124
121
  "wagmi": {
@@ -126,15 +123,6 @@
126
123
  },
127
124
  "@walletconnect/utils": {
128
125
  "optional": true
129
- },
130
- "react": {
131
- "optional": true
132
- },
133
- "react-native": {
134
- "optional": true
135
- },
136
- "react-native-webview": {
137
- "optional": true
138
126
  }
139
127
  }
140
128
  }
@@ -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.32/' + 'zkProofWorkerLauncher.js'),
18
- [e.SnarkJS]: await getWorkerURL(domain + '/0.3.32/' + 'snarkjsWorkerLauncher.js'),
19
- [e.UTXO]: await getWorkerURL(domain + '/0.3.32/' + 'utxoWorkerLauncher.js'),
17
+ [e.ZKProof]: await getWorkerURL(domain + '/0.3.36/' + 'zkProofWorkerLauncher.js'),
18
+ [e.SnarkJS]: await getWorkerURL(domain + '/0.3.36/' + 'snarkjsWorkerLauncher.js'),
19
+ [e.UTXO]: await getWorkerURL(domain + '/0.3.36/' + '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.32/' + 'zkProofWorkerLauncher.js'),
18
- [e.SnarkJS]: await getWorkerURL(domain + '/0.3.32/' + 'snarkjsWorkerLauncher.js'),
19
- [e.UTXO]: await getWorkerURL(domain + '/0.3.32/' + 'utxoWorkerLauncher.js'),
17
+ [e.ZKProof]: await getWorkerURL(domain + '/0.3.36/' + 'zkProofWorkerLauncher.js'),
18
+ [e.SnarkJS]: await getWorkerURL(domain + '/0.3.36/' + 'snarkjsWorkerLauncher.js'),
19
+ [e.UTXO]: await getWorkerURL(domain + '/0.3.36/' + '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.32",
3
+ "version": "0.3.36",
4
4
  "homepage": "hinkal.io",
5
5
  "author": {
6
6
  "name": "Hinkal Protocol"
@@ -14,7 +14,11 @@
14
14
  "exports": {
15
15
  ".": {
16
16
  "types": "./index.d.ts",
17
- "react-native": "./index.cjs",
17
+ "react-native": {
18
+ "types": "./react-native/index.d.ts",
19
+ "import": "./react-native/index.mjs",
20
+ "default": "./react-native/index.cjs"
21
+ },
18
22
  "import": "./index.mjs",
19
23
  "default": "./index.cjs"
20
24
  },
@@ -66,14 +70,7 @@
66
70
  "import": "./providers/prepareSolanaHinkal.mjs",
67
71
  "default": "./providers/prepareSolanaHinkal.cjs"
68
72
  },
69
- "./react-native/HinkalWebViewWorker": {
70
- "types": "./react-native/HinkalWebViewWorker.d.ts",
71
- "react-native": "./react-native/HinkalWebViewWorker.cjs",
72
- "import": "./react-native/HinkalWebViewWorker.mjs",
73
- "default": "./react-native/HinkalWebViewWorker.cjs"
74
- },
75
- "./react-native/metro-config": "./react-native/metro-config.js",
76
- "./react-native/shims/*": "./react-native/shims/*"
73
+ "./react-native/metro-config": "./react-native/metro-config.js"
77
74
  },
78
75
  "types": "./index.d.ts",
79
76
  "scripts": {
@@ -111,14 +108,14 @@
111
108
  "uuid": "^9.0.1",
112
109
  "node-forge": "^1.3.1",
113
110
  "poseidon-lite": "^0.3.0",
114
- "tronweb": "^6.2.0"
111
+ "tronweb": "^6.2.0",
112
+ "@react-native-async-storage/async-storage": "^2.2.0",
113
+ "assert": "^2.1.0",
114
+ "react-native-get-random-values": "^1.11.0"
115
115
  },
116
116
  "peerDependencies": {
117
117
  "wagmi": "2.13.3",
118
- "@walletconnect/utils": "^2.17.2",
119
- "react": "*",
120
- "react-native": "*",
121
- "react-native-webview": "*"
118
+ "@walletconnect/utils": "^2.17.2"
122
119
  },
123
120
  "peerDependenciesMeta": {
124
121
  "wagmi": {
@@ -126,15 +123,6 @@
126
123
  },
127
124
  "@walletconnect/utils": {
128
125
  "optional": true
129
- },
130
- "react": {
131
- "optional": true
132
- },
133
- "react-native": {
134
- "optional": true
135
- },
136
- "react-native-webview": {
137
- "optional": true
138
126
  }
139
127
  }
140
128
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../common/src/crypto/preProcessing.cjs`),t=require(`../services/Hinkal.cjs`);require(`../services/index.cjs`);const n=require(`../common/src/providers/WagmiProviderAdapter.cjs`);var r=(e,t)=>{console.log(`[HinkalRnConnect] prepareWagmiHinkal: ${e}`,t??``)},i=async(i,a)=>{let o=Date.now();try{r(`start`,{connectorId:i?.id}),r(`preProcessing`),await e.preProcessing(),r(`preProcessing done`,{ms:Date.now()-o});let s=new t.Hinkal,c=n.default();return c.initConfig?.(a),r(`initProviderAdapter`),await s.initProviderAdapter(i,c),r(`initProviderAdapter done`,{ms:Date.now()-o}),r(`initUserKeys (wallet sign prompt)`),await s.initUserKeys(),r(`initUserKeys done`,{ms:Date.now()-o}),r(`resetMerkle`),await s.resetMerkle(),r(`resetMerkle done`,{ms:Date.now()-o}),r(`complete`,{totalMs:Date.now()-o}),s}catch(e){throw r(`error`,{ms:Date.now()-o,err:String(e)}),e}};exports.prepareWagmiHinkal=i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../common/src/crypto/preProcessing.cjs`),t=require(`../services/Hinkal.cjs`);require(`../services/index.cjs`);const n=require(`../common/src/providers/WagmiProviderAdapter.cjs`);var r=async(r,i)=>{await e.preProcessing();let a=new t.Hinkal,o=n.default();return o.initConfig?.(i),await a.initProviderAdapter(r,o),await a.initUserKeys(),await a.resetMerkle(),a};exports.prepareWagmiHinkal=r;
@@ -3,20 +3,10 @@ import { Hinkal as t } from "../services/Hinkal.mjs";
3
3
  import "../services/index.mjs";
4
4
  import n from "../common/src/providers/WagmiProviderAdapter.mjs";
5
5
  //#region libs/shared/sdk/src/providers/prepareWagmiHinkal.ts
6
- var r = (e, t) => {
7
- console.log(`[HinkalRnConnect] prepareWagmiHinkal: ${e}`, t ?? "");
8
- }, i = async (i, a) => {
9
- let o = Date.now();
10
- try {
11
- r("start", { connectorId: i?.id }), r("preProcessing"), await e(), r("preProcessing done", { ms: Date.now() - o });
12
- let s = new t(), c = n();
13
- return c.initConfig?.(a), r("initProviderAdapter"), await s.initProviderAdapter(i, c), r("initProviderAdapter done", { ms: Date.now() - o }), r("initUserKeys (wallet sign prompt)"), await s.initUserKeys(), r("initUserKeys done", { ms: Date.now() - o }), r("resetMerkle"), await s.resetMerkle(), r("resetMerkle done", { ms: Date.now() - o }), r("complete", { totalMs: Date.now() - o }), s;
14
- } catch (e) {
15
- throw r("error", {
16
- ms: Date.now() - o,
17
- err: String(e)
18
- }), e;
19
- }
6
+ var r = async (r, i) => {
7
+ await e();
8
+ let a = new t(), o = n();
9
+ return o.initConfig?.(i), await a.initProviderAdapter(r, o), await a.initUserKeys(), await a.resetMerkle(), a;
20
10
  };
21
11
  //#endregion
22
- export { i as prepareWagmiHinkal };
12
+ export { r as prepareWagmiHinkal };
@@ -0,0 +1 @@
1
+ require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`./HinkalWebViewWorker.cjs`);let t=require(`react/jsx-runtime`);var n=({children:n})=>(0,t.jsxs)(t.Fragment,{children:[n,(0,t.jsx)(e.default,{})]});exports.HinkalProvider=n;
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from 'react';
2
+ type HinkalProviderProps = {
3
+ children: ReactNode;
4
+ };
5
+ export declare const HinkalProvider: ({ children }: HinkalProviderProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import e from "./HinkalWebViewWorker.mjs";
2
+ import { Fragment as t, jsx as n, jsxs as r } from "react/jsx-runtime";
3
+ //#region libs/shared/sdk/src/react-native/HinkalProvider.tsx
4
+ var i = ({ children: i }) => /* @__PURE__ */ r(t, { children: [i, /* @__PURE__ */ n(e, {})] });
5
+ //#endregion
6
+ export { i as HinkalProvider };
@@ -95,4 +95,4 @@ if (!window.__hinkalPageBoot) (function(){
95
95
 
96
96
  post({ type: 'READY' });
97
97
  })();
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;
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)})})};exports.default=f;
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../common/src/types/external-action.types.cjs`),t=require(`../common/src/types/balances.types.cjs`),n=require(`../common/src/functions/pre-transaction/getFeeStructure.cjs`),r=require(`../common/src/crypto/preProcessing.cjs`),i=require(`../services/Hinkal.cjs`),a=require(`../functions/utils/refreshBalance.cjs`),o=require(`../functions/integrations/swapApi.cjs`);require(`../index.cjs`);const s=require(`./HinkalProvider.cjs`);exports.ExternalActionId=e.ExternalActionId,exports.Hinkal=i.Hinkal,exports.HinkalProvider=s.HinkalProvider,exports.PrivateBalanceUpdateType=t.PrivateBalanceUpdateType,exports.getEvmSwapPrices=o.getEvmSwapPrices,exports.getFeeStructure=n.getFeeStructure,exports.getSolanaSwapPrices=o.getSolanaSwapPrices,exports.preProcessing=r.preProcessing,exports.refreshBalance=a.refreshBalance;
@@ -0,0 +1,2 @@
1
+ export * from '../index';
2
+ export { HinkalProvider } from './HinkalProvider';
@@ -0,0 +1,10 @@
1
+ import { ExternalActionId as e } from "../common/src/types/external-action.types.mjs";
2
+ import { PrivateBalanceUpdateType as t } from "../common/src/types/balances.types.mjs";
3
+ import { getFeeStructure as n } from "../common/src/functions/pre-transaction/getFeeStructure.mjs";
4
+ import { preProcessing as r } from "../common/src/crypto/preProcessing.mjs";
5
+ import { Hinkal as i } from "../services/Hinkal.mjs";
6
+ import { refreshBalance as a } from "../functions/utils/refreshBalance.mjs";
7
+ import { getEvmSwapPrices as o, getSolanaSwapPrices as s } from "../functions/integrations/swapApi.mjs";
8
+ import "../index.mjs";
9
+ import { HinkalProvider as c } from "./HinkalProvider.mjs";
10
+ export { e as ExternalActionId, i as Hinkal, c as HinkalProvider, t as PrivateBalanceUpdateType, o as getEvmSwapPrices, n as getFeeStructure, s as getSolanaSwapPrices, r as preProcessing, a as refreshBalance };
@@ -8,10 +8,13 @@
8
8
  *
9
9
  * const config = getDefaultConfig(__dirname);
10
10
  * module.exports = applyHinkalMetroConfig(config);
11
+ *
12
+ * Wrap your app with `HinkalProvider` from `@hinkal/sdk`.
11
13
  */
12
14
  const path = require('path');
13
15
 
14
16
  const shimDir = path.join(__dirname, 'shims');
17
+ const setupModule = path.join(__dirname, 'setup.cjs');
15
18
  const shim = (name) => ({
16
19
  filePath: path.join(shimDir, `${name}.js`),
17
20
  type: 'sourceFile',
@@ -84,6 +87,15 @@ const applyHinkalMetroConfig = (config) => {
84
87
  return context.resolveRequest(context, moduleName, platform);
85
88
  };
86
89
 
90
+ const upstreamGetModulesRunBeforeMainModule = config.serializer?.getModulesRunBeforeMainModule;
91
+ config.serializer = {
92
+ ...(config.serializer ?? {}),
93
+ getModulesRunBeforeMainModule: () => [
94
+ ...(upstreamGetModulesRunBeforeMainModule?.() ?? []),
95
+ setupModule,
96
+ ],
97
+ };
98
+
87
99
  return config;
88
100
  };
89
101
 
@@ -0,0 +1 @@
1
+ const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`buffer`),n=require(`react-native`);n=e.__toESM(n),require(`react-native-get-random-values`),global.Buffer=t.Buffer,globalThis.indexedDB===void 0&&(globalThis.indexedDB={}),global.require===void 0&&(global.require=e=>{if(e===`react-native`)return n;throw Error(`global.require shim: unsupported module "${e}"`)});
File without changes
@@ -0,0 +1,8 @@
1
+ import { Buffer as e } from "buffer";
2
+ import * as t from "react-native";
3
+ import "react-native-get-random-values";
4
+ global.Buffer = e, globalThis.indexedDB === void 0 && (globalThis.indexedDB = {}), global.require === void 0 && (global.require = (e) => {
5
+ if (e === "react-native") return t;
6
+ throw Error(`global.require shim: unsupported module "${e}"`);
7
+ });
8
+ //#endregion
@@ -1 +1 @@
1
- var e={name:`@gurge/sdk`,version:`0.3.31`,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.35`,homepage:`hinkal.io`,author:{name:`Hinkal Protocol`},keywords:[`blockchain`,`privacy`,`zero-knowledge`,`stealth addresses`],exports:{".":{types:`./index.d.ts`,"react-native":{types:`./react-native/index.d.ts`,import:`./react-native/index.mjs`,default:`./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/metro-config":`./react-native/metro-config.js`},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`,"@react-native-async-storage/async-storage":`^2.2.0`,assert:`^2.1.0`,"react-native-get-random-values":`^1.11.0`},peerDependencies:{wagmi:`2.13.3`,"@walletconnect/utils":`^2.17.2`},peerDependenciesMeta:{wagmi:{optional:!0},"@walletconnect/utils":{optional:!0}}};exports.default=e;
@@ -1,6 +1,6 @@
1
1
  var e = {
2
2
  name: "@gurge/sdk",
3
- version: "0.3.31",
3
+ version: "0.3.35",
4
4
  homepage: "hinkal.io",
5
5
  author: { name: "Hinkal Protocol" },
6
6
  keywords: [
@@ -12,7 +12,11 @@ var e = {
12
12
  exports: {
13
13
  ".": {
14
14
  types: "./index.d.ts",
15
- "react-native": "./index.cjs",
15
+ "react-native": {
16
+ types: "./react-native/index.d.ts",
17
+ import: "./react-native/index.mjs",
18
+ default: "./react-native/index.cjs"
19
+ },
16
20
  import: "./index.mjs",
17
21
  default: "./index.cjs"
18
22
  },
@@ -64,14 +68,7 @@ var e = {
64
68
  import: "./providers/prepareSolanaHinkal.mjs",
65
69
  default: "./providers/prepareSolanaHinkal.cjs"
66
70
  },
67
- "./react-native/HinkalWebViewWorker": {
68
- types: "./react-native/HinkalWebViewWorker.d.ts",
69
- "react-native": "./react-native/HinkalWebViewWorker.cjs",
70
- import: "./react-native/HinkalWebViewWorker.mjs",
71
- default: "./react-native/HinkalWebViewWorker.cjs"
72
- },
73
- "./react-native/metro-config": "./react-native/metro-config.js",
74
- "./react-native/shims/*": "./react-native/shims/*"
71
+ "./react-native/metro-config": "./react-native/metro-config.js"
75
72
  },
76
73
  types: "./index.d.ts",
77
74
  scripts: {
@@ -109,21 +106,18 @@ var e = {
109
106
  uuid: "^9.0.1",
110
107
  "node-forge": "^1.3.1",
111
108
  "poseidon-lite": "^0.3.0",
112
- tronweb: "^6.2.0"
109
+ tronweb: "^6.2.0",
110
+ "@react-native-async-storage/async-storage": "^2.2.0",
111
+ assert: "^2.1.0",
112
+ "react-native-get-random-values": "^1.11.0"
113
113
  },
114
114
  peerDependencies: {
115
115
  wagmi: "2.13.3",
116
- "@walletconnect/utils": "^2.17.2",
117
- react: "*",
118
- "react-native": "*",
119
- "react-native-webview": "*"
116
+ "@walletconnect/utils": "^2.17.2"
120
117
  },
121
118
  peerDependenciesMeta: {
122
119
  wagmi: { optional: !0 },
123
- "@walletconnect/utils": { optional: !0 },
124
- react: { optional: !0 },
125
- "react-native": { optional: !0 },
126
- "react-native-webview": { optional: !0 }
120
+ "@walletconnect/utils": { optional: !0 }
127
121
  }
128
122
  };
129
123
  //#endregion
@@ -1,15 +0,0 @@
1
- import { Buffer } from "buffer";
2
- import * as ReactNative from "react-native";
3
- global.Buffer = Buffer;
4
-
5
- // key-val-store probes indexedDB; without it the SDK falls back to FileKeyValStore (process.cwd).
6
- if (typeof globalThis.indexedDB === "undefined") {
7
- globalThis.indexedDB = {};
8
- }
9
-
10
- if (typeof global.require === "undefined") {
11
- global.require = (m) => {
12
- if (m === "react-native") return ReactNative;
13
- throw new Error(`global.require shim: unsupported module "${m}"`);
14
- };
15
- }
@@ -1,16 +0,0 @@
1
- declare module '@hinkal/sdk/react-native/shims/globals';
2
- declare module '@hinkal/sdk/react-native/shims/circomlibjs';
3
- declare module '@hinkal/sdk/react-native/shims/circomlibjs-hinkal-fork';
4
- declare module '@hinkal/sdk/react-native/shims/constants';
5
- declare module '@hinkal/sdk/react-native/shims/crypto';
6
- declare module '@hinkal/sdk/react-native/shims/ffjavascript';
7
- declare module '@hinkal/sdk/react-native/shims/fs';
8
- declare module '@hinkal/sdk/react-native/shims/idb-keyval';
9
- declare module '@hinkal/sdk/react-native/shims/multiformats';
10
- declare module '@hinkal/sdk/react-native/shims/os';
11
- declare module '@hinkal/sdk/react-native/shims/path';
12
- declare module '@hinkal/sdk/react-native/shims/readline';
13
- declare module '@hinkal/sdk/react-native/shims/snarkjs';
14
- declare module '@hinkal/sdk/react-native/shims/url';
15
- declare module '@hinkal/sdk/react-native/shims/web-worker';
16
- declare module '@hinkal/sdk/react-native/shims/worker_threads';