@0xkey-io/react-wallet-kit 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/onramp/OnRamp.d.ts +4 -2
- package/dist/components/onramp/OnRamp.d.ts.map +1 -1
- package/dist/components/onramp/OnRamp.js +6 -2
- package/dist/components/onramp/OnRamp.js.map +1 -1
- package/dist/components/onramp/OnRamp.mjs +7 -2
- package/dist/components/onramp/OnRamp.mjs.map +1 -1
- package/dist/components/verify/VerifyEnclave.d.ts +23 -0
- package/dist/components/verify/VerifyEnclave.d.ts.map +1 -0
- package/dist/components/verify/VerifyEnclave.js +168 -0
- package/dist/components/verify/VerifyEnclave.js.map +1 -0
- package/dist/components/verify/VerifyEnclave.mjs +200 -0
- package/dist/components/verify/VerifyEnclave.mjs.map +1 -0
- package/dist/providers/client/Provider.d.ts.map +1 -1
- package/dist/providers/client/Provider.js +142 -85
- package/dist/providers/client/Provider.js.map +1 -1
- package/dist/providers/client/Provider.mjs +881 -783
- package/dist/providers/client/Provider.mjs.map +1 -1
- package/dist/providers/client/Types.d.ts +21 -5
- package/dist/providers/client/Types.d.ts.map +1 -1
- package/dist/providers/client/Types.js.map +1 -1
- package/dist/providers/client/Types.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/method-types.d.ts +26 -2
- package/dist/types/method-types.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import type { OnRampFlowResult } from "@0xkey-io/core";
|
|
2
3
|
type OnRampPageProps = {
|
|
3
4
|
icon: React.ReactNode;
|
|
4
5
|
onrampProvider: string;
|
|
5
6
|
action: () => Promise<void>;
|
|
6
7
|
completed: boolean;
|
|
8
|
+
result?: OnRampFlowResult | undefined;
|
|
7
9
|
successPageDuration?: number;
|
|
8
10
|
sandboxMode?: boolean;
|
|
9
|
-
onSuccess?: () => void;
|
|
11
|
+
onSuccess?: (result: OnRampFlowResult) => void;
|
|
10
12
|
onError?: (error: any) => void;
|
|
11
13
|
};
|
|
12
|
-
export declare function OnRampPage({ icon, onrampProvider, action, completed, successPageDuration, sandboxMode, onSuccess, onError, }: OnRampPageProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function OnRampPage({ icon, onrampProvider, action, completed, result, successPageDuration, sandboxMode, onSuccess, onError, }: OnRampPageProps): import("react/jsx-runtime").JSX.Element;
|
|
13
15
|
export {};
|
|
14
16
|
//# sourceMappingURL=OnRamp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnRamp.d.ts","sourceRoot":"","sources":["../../../src/components/onramp/OnRamp.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"OnRamp.d.ts","sourceRoot":"","sources":["../../../src/components/onramp/OnRamp.tsx"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,cAAc,EACd,MAAM,EACN,SAAS,EACT,MAAM,EACN,mBAA0B,EAC1B,WAAmB,EACnB,SAAS,EACT,OAAO,GACR,EAAE,eAAe,2CA0DjB"}
|
|
@@ -11,6 +11,7 @@ function OnRampPage({
|
|
|
11
11
|
onrampProvider,
|
|
12
12
|
action,
|
|
13
13
|
completed,
|
|
14
|
+
result,
|
|
14
15
|
successPageDuration = 2000,
|
|
15
16
|
sandboxMode = false,
|
|
16
17
|
onSuccess,
|
|
@@ -21,13 +22,16 @@ function OnRampPage({
|
|
|
21
22
|
isMobile
|
|
22
23
|
} = Hook.useModal();
|
|
23
24
|
if (completed) {
|
|
25
|
+
const status = result?.status ?? "unknown";
|
|
24
26
|
return jsxRuntime.jsx("div", {
|
|
25
27
|
className: clsx("flex flex-col items-center justify-center py-5 transition-all duration-300 text-center", isMobile ? "w-full" : "w-72"),
|
|
26
28
|
children: jsxRuntime.jsx(Success.SuccessPage, {
|
|
27
|
-
text:
|
|
29
|
+
text: `On Ramp Transaction ${status === "completed" ? "Complete" : status}!`,
|
|
28
30
|
duration: successPageDuration,
|
|
29
31
|
onComplete: () => {
|
|
30
|
-
|
|
32
|
+
if (result) {
|
|
33
|
+
onSuccess?.(result);
|
|
34
|
+
}
|
|
31
35
|
closeModal();
|
|
32
36
|
}
|
|
33
37
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnRamp.js","sources":["../../../src/components/onramp/OnRamp.tsx"],"sourcesContent":[null],"names":["OnRampPage","icon","onrampProvider","action","completed","successPageDuration","sandboxMode","onSuccess","onError","closeModal","isMobile","useModal","_jsx","className","clsx","children","SuccessPage","text","duration","onComplete","_jsxs","ActionPage","title","err","closeOnComplete"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"OnRamp.js","sources":["../../../src/components/onramp/OnRamp.tsx"],"sourcesContent":[null],"names":["OnRampPage","icon","onrampProvider","action","completed","result","successPageDuration","sandboxMode","onSuccess","onError","closeModal","isMobile","useModal","status","_jsx","className","clsx","children","SuccessPage","text","duration","onComplete","_jsxs","ActionPage","title","err","closeOnComplete"],"mappings":";;;;;;;;AAkBM,SAAUA,UAAUA,CAAC;EACzBC,IAAI;EACJC,cAAc;EACdC,MAAM;EACNC,SAAS;EACTC,MAAM;AACNC,EAAAA,mBAAmB,GAAG,IAAI;AAC1BC,EAAAA,WAAW,GAAG,KAAK;EACnBC,SAAS;AACTC,EAAAA;AAAO,CACS,EAAA;EAChB,MAAM;IAAEC,UAAU;AAAEC,IAAAA;GAAU,GAAGC,aAAQ,EAAE;AAE3C,EAAA,IAAIR,SAAS,EAAE;AACb,IAAA,MAAMS,MAAM,GAAGR,MAAM,EAAEQ,MAAM,IAAI,SAAS;IAC1C,OACEC;MACEC,SAAS,EAAEC,IAAI,CACb,wFAAwF,EACxFL,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAAAM,MAAAA,QAAA,EAEDH,eAACI,mBAAW,EAAA;QACVC,IAAI,EAAE,uBAAuBN,MAAM,KAAK,WAAW,GAAG,UAAU,GAAGA,MAAM,CAAA,CAAA,CAAG;AAC5EO,QAAAA,QAAQ,EAAEd,mBAAmB;QAC7Be,UAAU,EAAEA,MAAK;AACf,UAAA,IAAIhB,MAAM,EAAE;YACVG,SAAS,GAAGH,MAAM,CAAC;AACrB,UAAA;AACAK,UAAAA,UAAU,EAAE;AACd,QAAA;OAAC;AACD,KAAA,CACE;AAEV,EAAA;EAEA,OACEY,eAAA,CAAA,KAAA,EAAA;IACEP,SAAS,EAAEC,IAAI,CACb,wFAAwF,EACxFL,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAAAM,IAAAA,QAAA,EAAA,CAEDH,cAAA,CAACS,iBAAU,EAAA;AACTC,MAAAA,KAAK,EAAC,mBAAmB;AACzBvB,MAAAA,IAAI,EAAEA,IAAI;MACVE,MAAM,EAAE,YAAW;QACjB,IAAI;UACF,MAAMA,MAAM,EAAE;QAChB,CAAC,CAAC,OAAOsB,GAAG,EAAE;UACZhB,OAAO,GAAGgB,GAAG,CAAC;AACd,UAAA,MAAMA,GAAG;AACX,QAAA;MACF,CAAC;AACDC,MAAAA,eAAe,EAAE;AAAK,KAAA,CACtB,EACFZ,cAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,wEAAwE;AAAAE,MAAAA,QAAA,EACpFf,cAAc,KAAK,gCAAgC,GAChD,wDAAwD,GACxD;AAAuD,KAAA,CACvD,EACLK,WAAW,IACVO,cAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,wDAAwD;AAAAE,MAAAA,QAAA,EAAA;AAAA,KAAA,CAGxE;AAAA,GAAA,CACG;AAEV;;;;"}
|
|
@@ -10,6 +10,7 @@ function OnRampPage(_ref) {
|
|
|
10
10
|
onrampProvider = _ref.onrampProvider,
|
|
11
11
|
_action = _ref.action,
|
|
12
12
|
completed = _ref.completed,
|
|
13
|
+
result = _ref.result,
|
|
13
14
|
_ref$successPageDurat = _ref.successPageDuration,
|
|
14
15
|
successPageDuration = _ref$successPageDurat === void 0 ? 2000 : _ref$successPageDurat,
|
|
15
16
|
_ref$sandboxMode = _ref.sandboxMode,
|
|
@@ -20,13 +21,17 @@ function OnRampPage(_ref) {
|
|
|
20
21
|
closeModal = _useModal.closeModal,
|
|
21
22
|
isMobile = _useModal.isMobile;
|
|
22
23
|
if (completed) {
|
|
24
|
+
var _result$status;
|
|
25
|
+
var status = (_result$status = result === null || result === void 0 ? void 0 : result.status) !== null && _result$status !== void 0 ? _result$status : "unknown";
|
|
23
26
|
return jsx("div", {
|
|
24
27
|
className: clsx("flex flex-col items-center justify-center py-5 transition-all duration-300 text-center", isMobile ? "w-full" : "w-72"),
|
|
25
28
|
children: jsx(SuccessPage, {
|
|
26
|
-
text: "On Ramp Transaction Complete!",
|
|
29
|
+
text: "On Ramp Transaction ".concat(status === "completed" ? "Complete" : status, "!"),
|
|
27
30
|
duration: successPageDuration,
|
|
28
31
|
onComplete: function onComplete() {
|
|
29
|
-
|
|
32
|
+
if (result) {
|
|
33
|
+
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(result);
|
|
34
|
+
}
|
|
30
35
|
closeModal();
|
|
31
36
|
}
|
|
32
37
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnRamp.mjs","sources":["../../../src/components/onramp/OnRamp.tsx"],"sourcesContent":[null],"names":["OnRampPage","_ref","icon","onrampProvider","action","completed","_ref$successPageDurat","successPageDuration","_ref$sandboxMode","sandboxMode","onSuccess","onError","_useModal","useModal","closeModal","isMobile","_jsx","className","clsx","children","SuccessPage","text","duration","onComplete","_jsxs","ActionPage","title","_action2","_asyncToGenerator","_regenerator","m","_callee","_t","w","_context","p","n","v","a","apply","arguments","closeOnComplete"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"OnRamp.mjs","sources":["../../../src/components/onramp/OnRamp.tsx"],"sourcesContent":[null],"names":["OnRampPage","_ref","icon","onrampProvider","action","completed","result","_ref$successPageDurat","successPageDuration","_ref$sandboxMode","sandboxMode","onSuccess","onError","_useModal","useModal","closeModal","isMobile","_result$status","status","_jsx","className","clsx","children","SuccessPage","text","concat","duration","onComplete","_jsxs","ActionPage","title","_action2","_asyncToGenerator","_regenerator","m","_callee","_t","w","_context","p","n","v","a","apply","arguments","closeOnComplete"],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { HandleVerifyEnclaveParams } from "../../types/method-types";
|
|
2
|
+
type VerifyEnclavePageProps = HandleVerifyEnclaveParams & {
|
|
3
|
+
onSuccess?: (pivotHashHex: string) => void;
|
|
4
|
+
onError?: (error: unknown) => void;
|
|
5
|
+
successPageDuration?: number;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Verifies that the live enclave running `appName` matches a manifest
|
|
9
|
+
* approved by 0xkey's quorum multi-sig (via `verifyLatestBootProof`).
|
|
10
|
+
*
|
|
11
|
+
* Unlike {@link VerifyPage} (which verifies a specific *operation* via an
|
|
12
|
+
* App Proof), this verifies the *enclave's identity* directly — it doesn't
|
|
13
|
+
* depend on any App Proof having been generated, so it works today for any
|
|
14
|
+
* enclave app that already serves boot proofs.
|
|
15
|
+
*
|
|
16
|
+
* On failure, this shows a visible error state (via {@link DeveloperError})
|
|
17
|
+
* rather than silently closing — since this is meant to be a user-facing
|
|
18
|
+
* trust signal, a failed verification must not be indistinguishable from a
|
|
19
|
+
* cancelled/skipped one.
|
|
20
|
+
*/
|
|
21
|
+
export declare function VerifyEnclavePage(props: VerifyEnclavePageProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=VerifyEnclave.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VerifyEnclave.d.ts","sourceRoot":"","sources":["../../../src/components/verify/VerifyEnclave.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAI1E,KAAK,sBAAsB,GAAG,yBAAyB,GAAG;IACxD,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAkK9D"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var clsx = require('clsx');
|
|
5
|
+
var Hook = require('../../providers/modal/Hook.js');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
var react$1 = require('@headlessui/react');
|
|
8
|
+
var reactFontawesome = require('@fortawesome/react-fontawesome');
|
|
9
|
+
var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
|
|
10
|
+
var Hook$1 = require('../../providers/client/Hook.js');
|
|
11
|
+
var Spinners = require('../design/Spinners.js');
|
|
12
|
+
var Failure = require('../design/Failure.js');
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Verifies that the live enclave running `appName` matches a manifest
|
|
16
|
+
* approved by 0xkey's quorum multi-sig (via `verifyLatestBootProof`).
|
|
17
|
+
*
|
|
18
|
+
* Unlike {@link VerifyPage} (which verifies a specific *operation* via an
|
|
19
|
+
* App Proof), this verifies the *enclave's identity* directly — it doesn't
|
|
20
|
+
* depend on any App Proof having been generated, so it works today for any
|
|
21
|
+
* enclave app that already serves boot proofs.
|
|
22
|
+
*
|
|
23
|
+
* On failure, this shows a visible error state (via {@link DeveloperError})
|
|
24
|
+
* rather than silently closing — since this is meant to be a user-facing
|
|
25
|
+
* trust signal, a failed verification must not be indistinguishable from a
|
|
26
|
+
* cancelled/skipped one.
|
|
27
|
+
*/
|
|
28
|
+
function VerifyEnclavePage(props) {
|
|
29
|
+
const {
|
|
30
|
+
appName,
|
|
31
|
+
organizationId,
|
|
32
|
+
stampWith,
|
|
33
|
+
anchor,
|
|
34
|
+
onSuccess,
|
|
35
|
+
onError,
|
|
36
|
+
successPageDuration
|
|
37
|
+
} = props;
|
|
38
|
+
const {
|
|
39
|
+
isMobile,
|
|
40
|
+
closeModal
|
|
41
|
+
} = Hook.useModal();
|
|
42
|
+
const {
|
|
43
|
+
verifyLatestBootProof
|
|
44
|
+
} = Hook$1.useZeroXKey();
|
|
45
|
+
const hasRun = react.useRef(false);
|
|
46
|
+
const [status, setStatus] = react.useState("loading");
|
|
47
|
+
const [pivotHashHex, setPivotHashHex] = react.useState("");
|
|
48
|
+
const [error, setError] = react.useState(undefined);
|
|
49
|
+
const [isTextPinging, setIsTextPinging] = react.useState(false);
|
|
50
|
+
react.useEffect(() => {
|
|
51
|
+
if (hasRun.current) return;
|
|
52
|
+
hasRun.current = true;
|
|
53
|
+
const closeTimeoutRef = {
|
|
54
|
+
current: undefined
|
|
55
|
+
};
|
|
56
|
+
const runAction = async () => {
|
|
57
|
+
try {
|
|
58
|
+
// Slight delay to let the modal animation complete — verification
|
|
59
|
+
// can briefly freeze the UI thread while it runs.
|
|
60
|
+
await new Promise(resolve => setTimeout(resolve, 300));
|
|
61
|
+
const parsed = await verifyLatestBootProof({
|
|
62
|
+
appName,
|
|
63
|
+
...(organizationId !== undefined && {
|
|
64
|
+
organizationId
|
|
65
|
+
}),
|
|
66
|
+
...(stampWith && {
|
|
67
|
+
stampWith
|
|
68
|
+
}),
|
|
69
|
+
...(anchor && {
|
|
70
|
+
anchor
|
|
71
|
+
})
|
|
72
|
+
});
|
|
73
|
+
setPivotHashHex(parsed.manifest.pivotHashHex);
|
|
74
|
+
setStatus("success");
|
|
75
|
+
if (!successPageDuration || successPageDuration === 0) {
|
|
76
|
+
onSuccess?.(parsed.manifest.pivotHashHex);
|
|
77
|
+
closeModal();
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
setTimeout(() => setIsTextPinging(true), 500);
|
|
81
|
+
setTimeout(() => setIsTextPinging(false), 1500);
|
|
82
|
+
closeTimeoutRef.current = setTimeout(() => {
|
|
83
|
+
onSuccess?.(parsed.manifest.pivotHashHex);
|
|
84
|
+
closeModal();
|
|
85
|
+
}, successPageDuration);
|
|
86
|
+
} catch (err) {
|
|
87
|
+
setError(err);
|
|
88
|
+
setStatus("error");
|
|
89
|
+
onError?.(err);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
runAction();
|
|
93
|
+
return () => {
|
|
94
|
+
if (closeTimeoutRef.current) clearTimeout(closeTimeoutRef.current);
|
|
95
|
+
};
|
|
96
|
+
}, []);
|
|
97
|
+
if (status === "error") {
|
|
98
|
+
return jsxRuntime.jsx("div", {
|
|
99
|
+
className: clsx("flex flex-col items-center justify-center py-5 transition-all duration-300", isMobile ? "w-full" : "w-80"),
|
|
100
|
+
children: jsxRuntime.jsx(Failure.DeveloperError, {
|
|
101
|
+
developerTitle: "Enclave verification failed",
|
|
102
|
+
developerMessages: [error instanceof Error ? error.message : String(error)],
|
|
103
|
+
userTitle: "Verification failed",
|
|
104
|
+
userMessages: ["We couldn't verify this enclave's identity. Please try again later."]
|
|
105
|
+
})
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
return jsxRuntime.jsxs("div", {
|
|
109
|
+
className: clsx("flex flex-col items-center justify-center py-5 transition-all duration-300", isMobile ? "w-full" : "w-72"),
|
|
110
|
+
children: [status === "loading" && jsxRuntime.jsxs("div", {
|
|
111
|
+
className: "size-full absolute text-center text-lg font-semibold flex flex-row items-center justify-center gap-2",
|
|
112
|
+
children: [jsxRuntime.jsx(Spinners.Spinner, {
|
|
113
|
+
strokeWidth: 2,
|
|
114
|
+
className: "h-full"
|
|
115
|
+
}), jsxRuntime.jsx("span", {
|
|
116
|
+
className: "animate-pulse",
|
|
117
|
+
children: "Verifying enclave identity..."
|
|
118
|
+
})]
|
|
119
|
+
}), jsxRuntime.jsx("div", {
|
|
120
|
+
className: "relative flex flex-col items-center justify-center size-[88px] overflow-hidden",
|
|
121
|
+
children: jsxRuntime.jsx(react$1.Transition, {
|
|
122
|
+
as: "div",
|
|
123
|
+
show: status === "success",
|
|
124
|
+
enter: "transition-all duration-600 ease-in-out",
|
|
125
|
+
enterFrom: "opacity-0 scale-40",
|
|
126
|
+
enterTo: "opacity-100 scale-100",
|
|
127
|
+
className: " absolute size-full flex flex-col items-center justify-center",
|
|
128
|
+
children: jsxRuntime.jsx("div", {
|
|
129
|
+
className: "size-full border-2 border-primary-light dark:border-primary-dark text-primary-light dark:text-primary-dark rounded-full flex flex-col items-center justify-center box-border",
|
|
130
|
+
children: jsxRuntime.jsxs(react$1.TransitionChild, {
|
|
131
|
+
as: "div",
|
|
132
|
+
enter: "transition-all duration-200 delay-300 ease-out",
|
|
133
|
+
enterFrom: "opacity-0 scale-60",
|
|
134
|
+
enterTo: "opacity-100 scale-100",
|
|
135
|
+
className: "relative flex flex-col items-center justify-center",
|
|
136
|
+
children: [jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
|
|
137
|
+
icon: freeSolidSvgIcons.faCheck,
|
|
138
|
+
size: "2x"
|
|
139
|
+
}), jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
|
|
140
|
+
className: "absolute animate-ping",
|
|
141
|
+
icon: freeSolidSvgIcons.faCheck,
|
|
142
|
+
size: "2x"
|
|
143
|
+
})]
|
|
144
|
+
})
|
|
145
|
+
})
|
|
146
|
+
})
|
|
147
|
+
}), jsxRuntime.jsxs(react$1.Transition, {
|
|
148
|
+
as: "div",
|
|
149
|
+
show: status === "success",
|
|
150
|
+
className: "w-full text-center text-lg font-semibold flex flex-col items-center justify-center mt-2 relative",
|
|
151
|
+
enter: "transition-all ease-out duration-200 delay-200",
|
|
152
|
+
enterFrom: "opacity-0 -translate-y-2",
|
|
153
|
+
enterTo: "opacity-100 translate-y-0",
|
|
154
|
+
children: [jsxRuntime.jsx("span", {
|
|
155
|
+
children: "Verified!"
|
|
156
|
+
}), isTextPinging && jsxRuntime.jsx("span", {
|
|
157
|
+
className: "absolute animate-ping text-icon-text-light dark:text-icon-text-dark",
|
|
158
|
+
children: "Verified!"
|
|
159
|
+
})]
|
|
160
|
+
}), status === "success" && pivotHashHex && jsxRuntime.jsxs("div", {
|
|
161
|
+
className: "w-full text-center text-xs mt-3 font-mono text-icon-text-light dark:text-icon-text-dark break-all px-4",
|
|
162
|
+
children: ["pivot ", pivotHashHex.slice(0, 16), "..."]
|
|
163
|
+
})]
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
exports.VerifyEnclavePage = VerifyEnclavePage;
|
|
168
|
+
//# sourceMappingURL=VerifyEnclave.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VerifyEnclave.js","sources":["../../../src/components/verify/VerifyEnclave.tsx"],"sourcesContent":[null],"names":["VerifyEnclavePage","props","appName","organizationId","stampWith","anchor","onSuccess","onError","successPageDuration","isMobile","closeModal","useModal","verifyLatestBootProof","useZeroXKey","hasRun","useRef","status","setStatus","useState","pivotHashHex","setPivotHashHex","error","setError","undefined","isTextPinging","setIsTextPinging","useEffect","current","closeTimeoutRef","runAction","Promise","resolve","setTimeout","parsed","manifest","err","clearTimeout","_jsx","className","clsx","children","DeveloperError","developerTitle","developerMessages","Error","message","String","userTitle","userMessages","_jsxs","Spinner","strokeWidth","Transition","as","show","enter","enterFrom","enterTo","TransitionChild","FontAwesomeIcon","icon","faCheck","size","slice"],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regenerator as _regenerator, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import clsx from 'clsx';
|
|
4
|
+
import { useModal } from '../../providers/modal/Hook.mjs';
|
|
5
|
+
import { useRef, useState, useEffect } from 'react';
|
|
6
|
+
import { Transition, TransitionChild } from '@headlessui/react';
|
|
7
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
8
|
+
import { faCheck } from '@fortawesome/free-solid-svg-icons';
|
|
9
|
+
import { useZeroXKey } from '../../providers/client/Hook.mjs';
|
|
10
|
+
import { Spinner } from '../design/Spinners.mjs';
|
|
11
|
+
import { DeveloperError } from '../design/Failure.mjs';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Verifies that the live enclave running `appName` matches a manifest
|
|
15
|
+
* approved by 0xkey's quorum multi-sig (via `verifyLatestBootProof`).
|
|
16
|
+
*
|
|
17
|
+
* Unlike {@link VerifyPage} (which verifies a specific *operation* via an
|
|
18
|
+
* App Proof), this verifies the *enclave's identity* directly — it doesn't
|
|
19
|
+
* depend on any App Proof having been generated, so it works today for any
|
|
20
|
+
* enclave app that already serves boot proofs.
|
|
21
|
+
*
|
|
22
|
+
* On failure, this shows a visible error state (via {@link DeveloperError})
|
|
23
|
+
* rather than silently closing — since this is meant to be a user-facing
|
|
24
|
+
* trust signal, a failed verification must not be indistinguishable from a
|
|
25
|
+
* cancelled/skipped one.
|
|
26
|
+
*/
|
|
27
|
+
function VerifyEnclavePage(props) {
|
|
28
|
+
var appName = props.appName,
|
|
29
|
+
organizationId = props.organizationId,
|
|
30
|
+
stampWith = props.stampWith,
|
|
31
|
+
anchor = props.anchor,
|
|
32
|
+
onSuccess = props.onSuccess,
|
|
33
|
+
onError = props.onError,
|
|
34
|
+
successPageDuration = props.successPageDuration;
|
|
35
|
+
var _useModal = useModal(),
|
|
36
|
+
isMobile = _useModal.isMobile,
|
|
37
|
+
closeModal = _useModal.closeModal;
|
|
38
|
+
var _useZeroXKey = useZeroXKey(),
|
|
39
|
+
verifyLatestBootProof = _useZeroXKey.verifyLatestBootProof;
|
|
40
|
+
var hasRun = useRef(false);
|
|
41
|
+
var _useState = useState("loading"),
|
|
42
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
43
|
+
status = _useState2[0],
|
|
44
|
+
setStatus = _useState2[1];
|
|
45
|
+
var _useState3 = useState(""),
|
|
46
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
47
|
+
pivotHashHex = _useState4[0],
|
|
48
|
+
setPivotHashHex = _useState4[1];
|
|
49
|
+
var _useState5 = useState(undefined),
|
|
50
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
51
|
+
error = _useState6[0],
|
|
52
|
+
setError = _useState6[1];
|
|
53
|
+
var _useState7 = useState(false),
|
|
54
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
55
|
+
isTextPinging = _useState8[0],
|
|
56
|
+
setIsTextPinging = _useState8[1];
|
|
57
|
+
useEffect(function () {
|
|
58
|
+
if (hasRun.current) return;
|
|
59
|
+
hasRun.current = true;
|
|
60
|
+
var closeTimeoutRef = {
|
|
61
|
+
current: undefined
|
|
62
|
+
};
|
|
63
|
+
var runAction = /*#__PURE__*/function () {
|
|
64
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
65
|
+
var parsed, _t;
|
|
66
|
+
return _regenerator().w(function (_context) {
|
|
67
|
+
while (1) switch (_context.p = _context.n) {
|
|
68
|
+
case 0:
|
|
69
|
+
_context.p = 0;
|
|
70
|
+
_context.n = 1;
|
|
71
|
+
return new Promise(function (resolve) {
|
|
72
|
+
return setTimeout(resolve, 300);
|
|
73
|
+
});
|
|
74
|
+
case 1:
|
|
75
|
+
_context.n = 2;
|
|
76
|
+
return verifyLatestBootProof(_objectSpread2(_objectSpread2(_objectSpread2({
|
|
77
|
+
appName: appName
|
|
78
|
+
}, organizationId !== undefined && {
|
|
79
|
+
organizationId: organizationId
|
|
80
|
+
}), stampWith && {
|
|
81
|
+
stampWith: stampWith
|
|
82
|
+
}), anchor && {
|
|
83
|
+
anchor: anchor
|
|
84
|
+
}));
|
|
85
|
+
case 2:
|
|
86
|
+
parsed = _context.v;
|
|
87
|
+
setPivotHashHex(parsed.manifest.pivotHashHex);
|
|
88
|
+
setStatus("success");
|
|
89
|
+
if (!(!successPageDuration || successPageDuration === 0)) {
|
|
90
|
+
_context.n = 3;
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(parsed.manifest.pivotHashHex);
|
|
94
|
+
closeModal();
|
|
95
|
+
return _context.a(2);
|
|
96
|
+
case 3:
|
|
97
|
+
setTimeout(function () {
|
|
98
|
+
return setIsTextPinging(true);
|
|
99
|
+
}, 500);
|
|
100
|
+
setTimeout(function () {
|
|
101
|
+
return setIsTextPinging(false);
|
|
102
|
+
}, 1500);
|
|
103
|
+
closeTimeoutRef.current = setTimeout(function () {
|
|
104
|
+
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(parsed.manifest.pivotHashHex);
|
|
105
|
+
closeModal();
|
|
106
|
+
}, successPageDuration);
|
|
107
|
+
_context.n = 5;
|
|
108
|
+
break;
|
|
109
|
+
case 4:
|
|
110
|
+
_context.p = 4;
|
|
111
|
+
_t = _context.v;
|
|
112
|
+
setError(_t);
|
|
113
|
+
setStatus("error");
|
|
114
|
+
onError === null || onError === void 0 ? void 0 : onError(_t);
|
|
115
|
+
case 5:
|
|
116
|
+
return _context.a(2);
|
|
117
|
+
}
|
|
118
|
+
}, _callee, null, [[0, 4]]);
|
|
119
|
+
}));
|
|
120
|
+
return function runAction() {
|
|
121
|
+
return _ref.apply(this, arguments);
|
|
122
|
+
};
|
|
123
|
+
}();
|
|
124
|
+
runAction();
|
|
125
|
+
return function () {
|
|
126
|
+
if (closeTimeoutRef.current) clearTimeout(closeTimeoutRef.current);
|
|
127
|
+
};
|
|
128
|
+
}, []);
|
|
129
|
+
if (status === "error") {
|
|
130
|
+
return jsx("div", {
|
|
131
|
+
className: clsx("flex flex-col items-center justify-center py-5 transition-all duration-300", isMobile ? "w-full" : "w-80"),
|
|
132
|
+
children: jsx(DeveloperError, {
|
|
133
|
+
developerTitle: "Enclave verification failed",
|
|
134
|
+
developerMessages: [error instanceof Error ? error.message : String(error)],
|
|
135
|
+
userTitle: "Verification failed",
|
|
136
|
+
userMessages: ["We couldn't verify this enclave's identity. Please try again later."]
|
|
137
|
+
})
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return jsxs("div", {
|
|
141
|
+
className: clsx("flex flex-col items-center justify-center py-5 transition-all duration-300", isMobile ? "w-full" : "w-72"),
|
|
142
|
+
children: [status === "loading" && jsxs("div", {
|
|
143
|
+
className: "size-full absolute text-center text-lg font-semibold flex flex-row items-center justify-center gap-2",
|
|
144
|
+
children: [jsx(Spinner, {
|
|
145
|
+
strokeWidth: 2,
|
|
146
|
+
className: "h-full"
|
|
147
|
+
}), jsx("span", {
|
|
148
|
+
className: "animate-pulse",
|
|
149
|
+
children: "Verifying enclave identity..."
|
|
150
|
+
})]
|
|
151
|
+
}), jsx("div", {
|
|
152
|
+
className: "relative flex flex-col items-center justify-center size-[88px] overflow-hidden",
|
|
153
|
+
children: jsx(Transition, {
|
|
154
|
+
as: "div",
|
|
155
|
+
show: status === "success",
|
|
156
|
+
enter: "transition-all duration-600 ease-in-out",
|
|
157
|
+
enterFrom: "opacity-0 scale-40",
|
|
158
|
+
enterTo: "opacity-100 scale-100",
|
|
159
|
+
className: " absolute size-full flex flex-col items-center justify-center",
|
|
160
|
+
children: jsx("div", {
|
|
161
|
+
className: "size-full border-2 border-primary-light dark:border-primary-dark text-primary-light dark:text-primary-dark rounded-full flex flex-col items-center justify-center box-border",
|
|
162
|
+
children: jsxs(TransitionChild, {
|
|
163
|
+
as: "div",
|
|
164
|
+
enter: "transition-all duration-200 delay-300 ease-out",
|
|
165
|
+
enterFrom: "opacity-0 scale-60",
|
|
166
|
+
enterTo: "opacity-100 scale-100",
|
|
167
|
+
className: "relative flex flex-col items-center justify-center",
|
|
168
|
+
children: [jsx(FontAwesomeIcon, {
|
|
169
|
+
icon: faCheck,
|
|
170
|
+
size: "2x"
|
|
171
|
+
}), jsx(FontAwesomeIcon, {
|
|
172
|
+
className: "absolute animate-ping",
|
|
173
|
+
icon: faCheck,
|
|
174
|
+
size: "2x"
|
|
175
|
+
})]
|
|
176
|
+
})
|
|
177
|
+
})
|
|
178
|
+
})
|
|
179
|
+
}), jsxs(Transition, {
|
|
180
|
+
as: "div",
|
|
181
|
+
show: status === "success",
|
|
182
|
+
className: "w-full text-center text-lg font-semibold flex flex-col items-center justify-center mt-2 relative",
|
|
183
|
+
enter: "transition-all ease-out duration-200 delay-200",
|
|
184
|
+
enterFrom: "opacity-0 -translate-y-2",
|
|
185
|
+
enterTo: "opacity-100 translate-y-0",
|
|
186
|
+
children: [jsx("span", {
|
|
187
|
+
children: "Verified!"
|
|
188
|
+
}), isTextPinging && jsx("span", {
|
|
189
|
+
className: "absolute animate-ping text-icon-text-light dark:text-icon-text-dark",
|
|
190
|
+
children: "Verified!"
|
|
191
|
+
})]
|
|
192
|
+
}), status === "success" && pivotHashHex && jsxs("div", {
|
|
193
|
+
className: "w-full text-center text-xs mt-3 font-mono text-icon-text-light dark:text-icon-text-dark break-all px-4",
|
|
194
|
+
children: ["pivot ", pivotHashHex.slice(0, 16), "..."]
|
|
195
|
+
})]
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export { VerifyEnclavePage };
|
|
200
|
+
//# sourceMappingURL=VerifyEnclave.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VerifyEnclave.mjs","sources":["../../../src/components/verify/VerifyEnclave.tsx"],"sourcesContent":[null],"names":["VerifyEnclavePage","props","appName","organizationId","stampWith","anchor","onSuccess","onError","successPageDuration","_useModal","useModal","isMobile","closeModal","_useZeroXKey","useZeroXKey","verifyLatestBootProof","hasRun","useRef","_useState","useState","_useState2","_slicedToArray","status","setStatus","_useState3","_useState4","pivotHashHex","setPivotHashHex","_useState5","undefined","_useState6","error","setError","_useState7","_useState8","isTextPinging","setIsTextPinging","useEffect","current","closeTimeoutRef","runAction","_ref","_asyncToGenerator","_regenerator","m","_callee","parsed","_t","w","_context","p","n","Promise","resolve","setTimeout","_objectSpread","v","manifest","a","apply","arguments","clearTimeout","_jsx","className","clsx","children","DeveloperError","developerTitle","developerMessages","Error","message","String","userTitle","userMessages","_jsxs","Spinner","strokeWidth","Transition","as","show","enter","enterFrom","enterTo","TransitionChild","FontAwesomeIcon","icon","faCheck","size","slice"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/providers/client/Provider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/providers/client/Provider.tsx"],"names":[],"mappings":"AAkIA,OAAO,EAAE,SAAS,EAA4C,MAAM,OAAO,CAAC;AAuB5E,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAM5B,MAAM,kBAAkB,CAAC;AA0D1B;;GAEG;AACH,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA4uLxD,CAAC"}
|