@gurge/sdk 0.3.39 → 0.3.40
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/common/src/webworker/package.json +1 -1
- package/common/src/webworker/viteWorkerURL.constant.cjs +3 -3
- package/common/src/webworker/viteWorkerURL.constant.mjs +3 -3
- package/package.json +1 -1
- package/react-native/HinkalProvider.cjs +1 -1
- package/react-native/HinkalProvider.mjs +1 -0
- package/react-native/HinkalWebViewWorker.cjs +2 -2
- package/react-native/HinkalWebViewWorker.mjs +41 -45
- package/react-native/metro-config.js +4 -20
- package/react-native/setup.cjs +1 -1
- package/react-native/setup.mjs +7 -5
- package/sdk/package.json.cjs +1 -1
- package/sdk/package.json.mjs +1 -1
|
@@ -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.
|
|
18
|
-
[e.SnarkJS]: await getWorkerURL(domain + '/0.3.
|
|
19
|
-
[e.UTXO]: await getWorkerURL(domain + '/0.3.
|
|
17
|
+
[e.ZKProof]: await getWorkerURL(domain + '/0.3.40/' + 'zkProofWorkerLauncher.js'),
|
|
18
|
+
[e.SnarkJS]: await getWorkerURL(domain + '/0.3.40/' + 'snarkjsWorkerLauncher.js'),
|
|
19
|
+
[e.UTXO]: await getWorkerURL(domain + '/0.3.40/' + '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.
|
|
18
|
-
[e.SnarkJS]: await getWorkerURL(domain + '/0.3.
|
|
19
|
-
[e.UTXO]: await getWorkerURL(domain + '/0.3.
|
|
17
|
+
[e.ZKProof]: await getWorkerURL(domain + '/0.3.40/' + 'zkProofWorkerLauncher.js'),
|
|
18
|
+
[e.SnarkJS]: await getWorkerURL(domain + '/0.3.40/' + 'snarkjsWorkerLauncher.js'),
|
|
19
|
+
[e.UTXO]: await getWorkerURL(domain + '/0.3.40/' + 'utxoWorkerLauncher.js'),
|
|
20
20
|
});
|
|
21
21
|
export { n as getWorkerViteURL };
|
package/package.json
CHANGED
|
@@ -1 +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;
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`),require(`./setup.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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`./bridge/serialization.utils.cjs`),t=require(`./workerCDNUrls.cjs`);let n=require(`react-native`),r=require(`react`),i=require(`react-native-webview`),a=require(`react/jsx-runtime`);var o=`${new URL(Object.values(t.WORKER_CDN_URLS)[0]).origin}/`,s=`
|
|
2
2
|
if (!window.__hinkalPageBoot) (function(){
|
|
3
3
|
window.__hinkalPageBoot = true;
|
|
4
4
|
var URLS = ${JSON.stringify(t.WORKER_CDN_URLS)};
|
|
@@ -95,4 +95,4 @@ if (!window.__hinkalPageBoot) (function(){
|
|
|
95
95
|
|
|
96
96
|
post({ type: 'READY' });
|
|
97
97
|
})();
|
|
98
|
-
true;`,
|
|
98
|
+
true;`,c=`<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body><script>${s}<\/script></body></html>`,l=n.StyleSheet.create({hiddenHost:{position:`absolute`,height:1,width:1,left:-9999,top:-9999,opacity:0}}),u=()=>{let t=(0,r.useRef)(null),u=(0,r.useRef)({ready:!1,queue:[]}),d=(0,r.useCallback)((r,i,a)=>{let o;try{o=JSON.stringify({requestId:r,variant:i,message:a},e.bigIntReplacer)}catch(e){n.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,{requestId:r,type:`ERROR`,error:`serialize failed: ${e?.message??e}`});return}t.current?.injectJavaScript(`window.handleMessage && window.handleMessage(${o}); true;`)},[]);(0,r.useEffect)(()=>{let e=n.DeviceEventEmitter.addListener(`TO_WEBVIEW_WORKER`,e=>{let t={requestId:e?.__requestId??``,variant:e?.variant??``,message:e?.message};u.current.ready?d(t.requestId,t.variant,t.message):u.current.queue.push(t)});return()=>e.remove()},[d]);let f=(0,r.useCallback)(t=>{let r;try{r=e.reviveBigInts(JSON.parse(t.nativeEvent.data))}catch(e){n.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,{type:`ERROR`,error:e?.message??`parse error`});return}if(r?.type===`READY`){u.current.ready=!0;let e=u.current.queue;u.current.queue=[],e.forEach(({requestId:e,variant:t,message:n})=>d(e,t,n));return}n.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,r)},[d]);return(0,a.jsx)(n.View,{pointerEvents:`none`,style:l.hiddenHost,children:(0,a.jsx)(i.WebView,{ref:t,source:{html:c,baseUrl:o},originWhitelist:[`*`],javaScriptEnabled:!0,domStorageEnabled:!0,androidLayerType:`hardware`,onMessage:f,onLoad:()=>t.current?.injectJavaScript(s)})})};exports.default=u;
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { WORKER_CDN_URLS as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { WebView as d } from "react-native-webview";
|
|
8
|
-
import { jsx as f } from "react/jsx-runtime";
|
|
1
|
+
import { bigIntReplacer as e, reviveBigInts as t } from "./bridge/serialization.utils.mjs";
|
|
2
|
+
import { WORKER_CDN_URLS as n } from "./workerCDNUrls.mjs";
|
|
3
|
+
import { DeviceEventEmitter as r, StyleSheet as i, View as a } from "react-native";
|
|
4
|
+
import { useCallback as o, useEffect as s, useRef as c } from "react";
|
|
5
|
+
import { WebView as l } from "react-native-webview";
|
|
6
|
+
import { jsx as u } from "react/jsx-runtime";
|
|
9
7
|
//#region libs/shared/sdk/src/react-native/HinkalWebViewWorker.tsx
|
|
10
|
-
var
|
|
11
|
-
e.rnWorkerFactory = (e) => new i(e);
|
|
12
|
-
var m = `
|
|
8
|
+
var d = `${new URL(Object.values(n)[0]).origin}/`, f = `
|
|
13
9
|
if (!window.__hinkalPageBoot) (function(){
|
|
14
10
|
window.__hinkalPageBoot = true;
|
|
15
|
-
var URLS = ${JSON.stringify(
|
|
11
|
+
var URLS = ${JSON.stringify(n)};
|
|
16
12
|
var BLOBS = {};
|
|
17
13
|
|
|
18
14
|
function replacer(_key, value){
|
|
@@ -93,82 +89,82 @@ if (!window.__hinkalPageBoot) (function(){
|
|
|
93
89
|
|
|
94
90
|
post({ type: 'READY' });
|
|
95
91
|
})();
|
|
96
|
-
true;`,
|
|
92
|
+
true;`, p = `<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body><script>${f}<\/script></body></html>`, m = i.create({ hiddenHost: {
|
|
97
93
|
position: "absolute",
|
|
98
94
|
height: 1,
|
|
99
95
|
width: 1,
|
|
100
96
|
left: -9999,
|
|
101
97
|
top: -9999,
|
|
102
98
|
opacity: 0
|
|
103
|
-
} }),
|
|
104
|
-
let
|
|
99
|
+
} }), h = () => {
|
|
100
|
+
let n = c(null), i = c({
|
|
105
101
|
ready: !1,
|
|
106
102
|
queue: []
|
|
107
|
-
}),
|
|
108
|
-
let
|
|
103
|
+
}), h = o((t, i, a) => {
|
|
104
|
+
let o;
|
|
109
105
|
try {
|
|
110
|
-
|
|
106
|
+
o = JSON.stringify({
|
|
111
107
|
requestId: t,
|
|
112
|
-
variant:
|
|
113
|
-
message:
|
|
114
|
-
},
|
|
108
|
+
variant: i,
|
|
109
|
+
message: a
|
|
110
|
+
}, e);
|
|
115
111
|
} catch (e) {
|
|
116
|
-
|
|
112
|
+
r.emit("FROM_WEBVIEW_WORKER", {
|
|
117
113
|
requestId: t,
|
|
118
114
|
type: "ERROR",
|
|
119
115
|
error: `serialize failed: ${e?.message ?? e}`
|
|
120
116
|
});
|
|
121
117
|
return;
|
|
122
118
|
}
|
|
123
|
-
|
|
119
|
+
n.current?.injectJavaScript(`window.handleMessage && window.handleMessage(${o}); true;`);
|
|
124
120
|
}, []);
|
|
125
|
-
|
|
126
|
-
let e =
|
|
127
|
-
let
|
|
121
|
+
s(() => {
|
|
122
|
+
let e = r.addListener("TO_WEBVIEW_WORKER", (e) => {
|
|
123
|
+
let t = {
|
|
128
124
|
requestId: e?.__requestId ?? "",
|
|
129
125
|
variant: e?.variant ?? "",
|
|
130
126
|
message: e?.message
|
|
131
127
|
};
|
|
132
|
-
|
|
128
|
+
i.current.ready ? h(t.requestId, t.variant, t.message) : i.current.queue.push(t);
|
|
133
129
|
});
|
|
134
130
|
return () => e.remove();
|
|
135
|
-
}, [
|
|
136
|
-
let
|
|
131
|
+
}, [h]);
|
|
132
|
+
let g = o((e) => {
|
|
137
133
|
let n;
|
|
138
134
|
try {
|
|
139
|
-
n =
|
|
135
|
+
n = t(JSON.parse(e.nativeEvent.data));
|
|
140
136
|
} catch (e) {
|
|
141
|
-
|
|
137
|
+
r.emit("FROM_WEBVIEW_WORKER", {
|
|
142
138
|
type: "ERROR",
|
|
143
139
|
error: e?.message ?? "parse error"
|
|
144
140
|
});
|
|
145
141
|
return;
|
|
146
142
|
}
|
|
147
143
|
if (n?.type === "READY") {
|
|
148
|
-
|
|
149
|
-
let e =
|
|
150
|
-
|
|
144
|
+
i.current.ready = !0;
|
|
145
|
+
let e = i.current.queue;
|
|
146
|
+
i.current.queue = [], e.forEach(({ requestId: e, variant: t, message: n }) => h(e, t, n));
|
|
151
147
|
return;
|
|
152
148
|
}
|
|
153
|
-
|
|
154
|
-
}, [
|
|
155
|
-
return /* @__PURE__ */
|
|
149
|
+
r.emit("FROM_WEBVIEW_WORKER", n);
|
|
150
|
+
}, [h]);
|
|
151
|
+
return /* @__PURE__ */ u(a, {
|
|
156
152
|
pointerEvents: "none",
|
|
157
|
-
style:
|
|
158
|
-
children: /* @__PURE__ */
|
|
159
|
-
ref:
|
|
153
|
+
style: m.hiddenHost,
|
|
154
|
+
children: /* @__PURE__ */ u(l, {
|
|
155
|
+
ref: n,
|
|
160
156
|
source: {
|
|
161
|
-
html:
|
|
162
|
-
baseUrl:
|
|
157
|
+
html: p,
|
|
158
|
+
baseUrl: d
|
|
163
159
|
},
|
|
164
160
|
originWhitelist: ["*"],
|
|
165
161
|
javaScriptEnabled: !0,
|
|
166
162
|
domStorageEnabled: !0,
|
|
167
163
|
androidLayerType: "hardware",
|
|
168
|
-
onMessage:
|
|
169
|
-
onLoad: () =>
|
|
164
|
+
onMessage: g,
|
|
165
|
+
onLoad: () => n.current?.injectJavaScript(f)
|
|
170
166
|
})
|
|
171
167
|
});
|
|
172
168
|
};
|
|
173
169
|
//#endregion
|
|
174
|
-
export {
|
|
170
|
+
export { h as default };
|
|
@@ -9,21 +9,15 @@
|
|
|
9
9
|
* const config = getDefaultConfig(__dirname);
|
|
10
10
|
* module.exports = applyHinkalMetroConfig(config);
|
|
11
11
|
*
|
|
12
|
+
* In `index.ts`, import setup before any other `@hinkal/sdk` code:
|
|
13
|
+
*
|
|
14
|
+
* import "@hinkal/sdk/react-native/setup";
|
|
15
|
+
*
|
|
12
16
|
* Wrap your app with `HinkalProvider` from `@hinkal/sdk`.
|
|
13
17
|
*/
|
|
14
18
|
const path = require('path');
|
|
15
19
|
|
|
16
20
|
const shimDir = path.join(__dirname, 'shims');
|
|
17
|
-
|
|
18
|
-
const resolveSetupModule = () => {
|
|
19
|
-
try {
|
|
20
|
-
return require.resolve('@hinkal/sdk/react-native/setup');
|
|
21
|
-
} catch {
|
|
22
|
-
return path.join(__dirname, 'setup.cjs');
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const setupModule = resolveSetupModule();
|
|
27
21
|
const shim = (name) => ({
|
|
28
22
|
filePath: path.join(shimDir, `${name}.js`),
|
|
29
23
|
type: 'sourceFile',
|
|
@@ -65,7 +59,6 @@ const applyHinkalMetroConfig = (config) => {
|
|
|
65
59
|
transform: {
|
|
66
60
|
...(upstream.transform || {}),
|
|
67
61
|
experimentalImportSupport: false,
|
|
68
|
-
inlineRequires: true,
|
|
69
62
|
},
|
|
70
63
|
};
|
|
71
64
|
},
|
|
@@ -97,15 +90,6 @@ const applyHinkalMetroConfig = (config) => {
|
|
|
97
90
|
return context.resolveRequest(context, moduleName, platform);
|
|
98
91
|
};
|
|
99
92
|
|
|
100
|
-
const upstreamGetModulesRunBeforeMainModule = config.serializer?.getModulesRunBeforeMainModule;
|
|
101
|
-
config.serializer = {
|
|
102
|
-
...(config.serializer ?? {}),
|
|
103
|
-
getModulesRunBeforeMainModule: () => [
|
|
104
|
-
...(upstreamGetModulesRunBeforeMainModule?.() ?? []),
|
|
105
|
-
setupModule,
|
|
106
|
-
],
|
|
107
|
-
};
|
|
108
|
-
|
|
109
93
|
return config;
|
|
110
94
|
};
|
|
111
95
|
|
package/react-native/setup.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`)
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../common/src/webworker/workerFactory.cjs`),n=require(`./bridge/HinkalRNWorker.cjs`);let r=require(`buffer`);require(`react-native-get-random-values`);let i=require(`react-native`);i=e.__toESM(i),global.Buffer=r.Buffer,globalThis.indexedDB===void 0&&(globalThis.indexedDB={}),global.require===void 0&&(global.require=e=>{if(e===`react-native`)return i;throw Error(`global.require shim: unsupported module "${e}"`)}),t.WorkerFactory.rnWorkerFactory=e=>new n.HinkalRNWorker(e);
|
package/react-native/setup.mjs
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { WorkerFactory as e } from "../common/src/webworker/workerFactory.mjs";
|
|
2
|
+
import { HinkalRNWorker as t } from "./bridge/HinkalRNWorker.mjs";
|
|
3
|
+
import { Buffer as n } from "buffer";
|
|
3
4
|
import "react-native-get-random-values";
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
import * as r from "react-native";
|
|
6
|
+
global.Buffer = n, globalThis.indexedDB === void 0 && (globalThis.indexedDB = {}), global.require === void 0 && (global.require = (e) => {
|
|
7
|
+
if (e === "react-native") return r;
|
|
6
8
|
throw Error(`global.require shim: unsupported module "${e}"`);
|
|
7
|
-
});
|
|
9
|
+
}), e.rnWorkerFactory = (e) => new t(e);
|
|
8
10
|
//#endregion
|
package/sdk/package.json.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={name:`@gurge/sdk`,version:`0.3.
|
|
1
|
+
var e={name:`@gurge/sdk`,version:`0.3.39`,homepage:`hinkal.io`,author:{name:`Hinkal Protocol`},keywords:[`blockchain`,`privacy`,`zero-knowledge`,`stealth addresses`],exports:{".":{types:`./index.d.ts`,"react-native":{types:`./index.d.ts`,import:`./index.mjs`,default:`./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/setup":{types:`./react-native/setup.d.ts`,"react-native":`./react-native/setup.cjs`,import:`./react-native/setup.mjs`,default:`./react-native/setup.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;
|