@credenza3/passport-sui 0.1.5 → 0.1.6
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/App-CzJCZTZI.js +644 -0
- package/dist/App-CzJCZTZI.js.map +1 -0
- package/dist/Button-DdkN4ygx.js +69 -0
- package/dist/{Button-BsbTG8lO.js.map → Button-DdkN4ygx.js.map} +1 -1
- package/dist/{ButtonBack-DD2NyWwM.js → ButtonBack-DOt6efWB.js} +10 -8
- package/dist/{ButtonBack-DD2NyWwM.js.map → ButtonBack-DOt6efWB.js.map} +1 -1
- package/dist/ButtonLink-C3suV3YT.js +58 -0
- package/dist/{ButtonLink-Cs59sxMy.js.map → ButtonLink-C3suV3YT.js.map} +1 -1
- package/dist/ConfirmAccount-B0QimErt.js +210 -0
- package/dist/{ConfirmAccount-Lf9S0MhU.js.map → ConfirmAccount-B0QimErt.js.map} +1 -1
- package/dist/ContentHeader-DWeKFCbL.js +36 -0
- package/dist/{ContentHeader-CLn8GOLm.js.map → ContentHeader-DWeKFCbL.js.map} +1 -1
- package/dist/{Error-CxVJQIoH.js → Error-6xg8-wZJ.js} +101 -90
- package/dist/{Error-CxVJQIoH.js.map → Error-6xg8-wZJ.js.map} +1 -1
- package/dist/Input-CoBmMhni.js +62 -0
- package/dist/{Input-C-MLGjCj.js.map → Input-CoBmMhni.js.map} +1 -1
- package/dist/Label-B8iJ43l6.js +27 -0
- package/dist/{Label-Djj4wtpJ.js.map → Label-B8iJ43l6.js.map} +1 -1
- package/dist/Login-DsclMbeX.js +264 -0
- package/dist/Login-DsclMbeX.js.map +1 -0
- package/dist/Logout-ClD-Lgcx.js +96 -0
- package/dist/{Logout-S51UB3vm.js.map → Logout-ClD-Lgcx.js.map} +1 -1
- package/dist/Nav-DGxksgRd.js +669 -0
- package/dist/{Nav-DMRn61kA.js.map → Nav-DGxksgRd.js.map} +1 -1
- package/dist/{PassportId-B6Vps9D-.js → PassportId-5U1tRgrN.js} +298 -314
- package/dist/PassportId-5U1tRgrN.js.map +1 -0
- package/dist/Payment-DXvVU-Oe.js +989 -0
- package/dist/Payment-DXvVU-Oe.js.map +1 -0
- package/dist/PaymentResult-BDKwT5Sg.js +302 -0
- package/dist/{PaymentResult-GtndDFgP.js.map → PaymentResult-BDKwT5Sg.js.map} +1 -1
- package/dist/{Profile-DtWPPnzN.js → Profile-euztX9tl.js} +162 -151
- package/dist/{Profile-DtWPPnzN.js.map → Profile-euztX9tl.js.map} +1 -1
- package/dist/ProgressVideo-D4DPjIEy.js +126 -0
- package/dist/{ProgressVideo-CKJpaKXT.js.map → ProgressVideo-D4DPjIEy.js.map} +1 -1
- package/dist/{ProgressVideo.service-CuYcBU3B.js → ProgressVideo.service-BK7Nt-Vk.js} +2 -2
- package/dist/{ProgressVideo.service-CuYcBU3B.js.map → ProgressVideo.service-BK7Nt-Vk.js.map} +1 -1
- package/dist/RichAlert-D10QwVqC.js +139 -0
- package/dist/{RichAlert-5BL3Ix5z.js.map → RichAlert-D10QwVqC.js.map} +1 -1
- package/dist/{Scanner-BmtAhTU8.js → Scanner-8y4vkfL1.js} +46 -46
- package/dist/{Scanner-BmtAhTU8.js.map → Scanner-8y4vkfL1.js.map} +1 -1
- package/dist/SendTokens-DSJTklJ_.js +351 -0
- package/dist/SendTokens-DSJTklJ_.js.map +1 -0
- package/dist/Sign-CnrilrlB.js +108 -0
- package/dist/{Sign-BGfwNmPK.js.map → Sign-CnrilrlB.js.map} +1 -1
- package/dist/{Stripe.service-DVO5PxAg.js → Stripe.service-DZue_N62.js} +15 -16
- package/dist/{Stripe.service-DVO5PxAg.js.map → Stripe.service-DZue_N62.js.map} +1 -1
- package/dist/UpdateProfile-DVYtN4B3.js +522 -0
- package/dist/UpdateProfile-DVYtN4B3.js.map +1 -0
- package/dist/UserInfo-D8COK5lo.js +151 -0
- package/dist/{UserInfo-DWIc3eJd.js.map → UserInfo-D8COK5lo.js.map} +1 -1
- package/dist/Wallet-C--KgjFi.js +258 -0
- package/dist/{Wallet-D2UW1K77.js.map → Wallet-C--KgjFi.js.map} +1 -1
- package/dist/each-C50_uszW.js +202 -0
- package/dist/each-C50_uszW.js.map +1 -0
- package/dist/event-modifiers-DpFXHa6q.js.map +1 -1
- package/dist/html-DTfBoa9t.js +53 -0
- package/dist/html-DTfBoa9t.js.map +1 -0
- package/dist/index-DmO4Bf6j.js +43222 -0
- package/dist/index-DmO4Bf6j.js.map +1 -0
- package/dist/{index-client-C2b3pj6G.js → index-client-BARQdFBp.js} +5 -5
- package/dist/index-client-BARQdFBp.js.map +1 -0
- package/dist/{input-DSquQZrj.js → input-wkVwDWFH.js} +3 -3
- package/dist/{input-DSquQZrj.js.map → input-wkVwDWFH.js.map} +1 -1
- package/dist/legacy-BgObIK2n.js +1038 -0
- package/dist/legacy-BgObIK2n.js.map +1 -0
- package/dist/main-CJLmsNB-.js.map +1 -1
- package/dist/passport.es.js +3 -3
- package/dist/passport.umd.js +837 -231
- package/dist/passport.umd.js.map +1 -1
- package/dist/{socket-io-DC-dPxeO.js → socket-io-BNYia6TN.js} +2 -2
- package/dist/{socket-io-DC-dPxeO.js.map → socket-io-BNYia6TN.js.map} +1 -1
- package/dist/types/Passport.d.ts +1 -0
- package/dist/types/passport/auth.d.ts +2 -4
- package/package.json +23 -23
- package/dist/App-BAFJP3YE.js +0 -629
- package/dist/App-BAFJP3YE.js.map +0 -1
- package/dist/Button-BsbTG8lO.js +0 -69
- package/dist/ButtonLink-Cs59sxMy.js +0 -58
- package/dist/ConfirmAccount-Lf9S0MhU.js +0 -208
- package/dist/ContentHeader-CLn8GOLm.js +0 -36
- package/dist/Input-C-MLGjCj.js +0 -68
- package/dist/Label-Djj4wtpJ.js +0 -27
- package/dist/Login-C7pe83sW.js +0 -314
- package/dist/Login-C7pe83sW.js.map +0 -1
- package/dist/Logout-S51UB3vm.js +0 -84
- package/dist/Nav-DMRn61kA.js +0 -644
- package/dist/PassportId-B6Vps9D-.js.map +0 -1
- package/dist/Payment-BaiScVf4.js +0 -975
- package/dist/Payment-BaiScVf4.js.map +0 -1
- package/dist/PaymentResult-GtndDFgP.js +0 -285
- package/dist/ProgressVideo-CKJpaKXT.js +0 -121
- package/dist/RichAlert-5BL3Ix5z.js +0 -121
- package/dist/SendTokens-BUM-slmS.js +0 -333
- package/dist/SendTokens-BUM-slmS.js.map +0 -1
- package/dist/Sign-BGfwNmPK.js +0 -87
- package/dist/UpdateProfile-BlHz4MuU.js +0 -508
- package/dist/UpdateProfile-BlHz4MuU.js.map +0 -1
- package/dist/UserInfo-DWIc3eJd.js +0 -135
- package/dist/Wallet-D2UW1K77.js +0 -242
- package/dist/each-Dqze57Ms.js +0 -205
- package/dist/each-Dqze57Ms.js.map +0 -1
- package/dist/html-0_BSI5XK.js +0 -35
- package/dist/html-0_BSI5XK.js.map +0 -1
- package/dist/index-DfsKJkF5.js +0 -51
- package/dist/index-DfsKJkF5.js.map +0 -1
- package/dist/index-DjqVR0UB.js +0 -33828
- package/dist/index-DjqVR0UB.js.map +0 -1
- package/dist/index-client-C2b3pj6G.js.map +0 -1
- package/dist/legacy-CqcDNlD_.js +0 -956
- package/dist/legacy-CqcDNlD_.js.map +0 -1
- package/dist/types/app/pages/login/authMethods.helper.d.ts +0 -1
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { c as Ae, p as se, h as ke, f as X, i as Q, k as Fe, r as ae, s as je, e as Ke, b as U, d as he, u as Be, t as qe, o as we, n as Je } from "./legacy-BgObIK2n.js";
|
|
2
|
+
import { v as Te, w as u, K as t, m as i, x as m, L as e, y as $e, z as Qe, I as $, E as l, B as p, C as f, D as ie, F as W, A as Re, u as oe, N as ge, O as We, $ as Xe, R as Ye, b6 as _e, b7 as be, T as ye, P as Se, J as Ge, b8 as Ze, Q as Ce, V as ce, b9 as et, ba as tt } from "./index-DmO4Bf6j.js";
|
|
3
|
+
import "./scanner.es-cf-mCExK.js";
|
|
4
|
+
import { C as nt } from "./ContentHeader-DWeKFCbL.js";
|
|
5
|
+
import { B as rt } from "./ButtonBack-DOt6efWB.js";
|
|
6
|
+
import { B as de } from "./Button-DdkN4ygx.js";
|
|
7
|
+
import { I as xe } from "./Input-CoBmMhni.js";
|
|
8
|
+
import { S as st } from "./scanner-Bm3Pvpfs.js";
|
|
9
|
+
import { g as le } from "./strings-B-rKL311.js";
|
|
10
|
+
var at = X('<div>ChainId: <span class="crtw-font-bold"> </span></div>'), it = X('<label class="crtw-text-[10px] crtw-text-warningTextColor cpui-send-tokens-validation-message" for="recipientAddress">Provided address is not valid.</label>'), ot = X('<div class="crtw-ml-2.5 crtw-w-16 crtw-min-w-16"><!></div>'), ct = X('<!> <div class="crtw-w-full crtw-p-0 crtw-relative"><div id="cpuiCredScanner"></div> <!> <div>Your balance: <span class="crtw-font-bold"><!> </span></div> <div class="crtw-mb-2.5 crtw-flex crtw-items-start crtw-justify-between crtw-w-full"><div class="crtw-flex crtw-flex-col crtw-w-full"><!> <!></div> <div class="crtw-ml-2.5 crtw-cursor-pointer"><img width="53px" alt="" class="crtw-h-[53px]"/></div></div> <div class="crtw-mb-2.5 crtw-flex crtw-items-start crtw-justify-between crtw-w-full"><!> <div class="crtw-ml-2.5 crtw-w-16 crtw-min-w-16"><!></div> <!></div> <!></div> <div class="crtw-mt-0.5 crtw-mb-3 crtw-w-full"><!></div>', 1);
|
|
11
|
+
function Ee(D, A) {
|
|
12
|
+
if (new.target) return Ae({ component: Ee, ...D });
|
|
13
|
+
Te(A, !1);
|
|
14
|
+
const R = i(), z = i(), E = i(), H = i(), w = i(), k = i(), y = i(), O = i(), g = i(), o = i();
|
|
15
|
+
let c = se(A, "recipientAddress", 12), v = se(A, "amount", 12), r = se(A, "options", 12), {
|
|
16
|
+
onChangeCurrency: N,
|
|
17
|
+
onSetMaxAmount: S,
|
|
18
|
+
onBackClicked: L,
|
|
19
|
+
onSendTokens: h,
|
|
20
|
+
title: C,
|
|
21
|
+
chainId: F,
|
|
22
|
+
onScannerClicked: Y,
|
|
23
|
+
credAlias: j,
|
|
24
|
+
isNativeCurrecyTransferAllowed: K = !0
|
|
25
|
+
} = r();
|
|
26
|
+
const q = (n) => Math.floor(n * 100) / 100;
|
|
27
|
+
u(() => m(r()), () => {
|
|
28
|
+
t(R, r().balance);
|
|
29
|
+
}), u(() => m(r()), () => {
|
|
30
|
+
t(z, r().isLoading);
|
|
31
|
+
}), u(() => m(r()), () => {
|
|
32
|
+
t(E, r().isSubmitDisabled);
|
|
33
|
+
}), u(() => m(r()), () => {
|
|
34
|
+
t(H, r().isRecipientAddressValid);
|
|
35
|
+
}), u(() => m(r()), () => {
|
|
36
|
+
t(w, r().isScannerHidden);
|
|
37
|
+
}), u(() => m(r()), () => {
|
|
38
|
+
t(k, r().activeCurrency);
|
|
39
|
+
}), u(() => m(r()), () => {
|
|
40
|
+
t(y, r().symbol);
|
|
41
|
+
}), u(() => m(r()), () => {
|
|
42
|
+
t(O, r().nativeSymbol);
|
|
43
|
+
}), u(() => m(r()), () => {
|
|
44
|
+
t(g, r().nativeBalance);
|
|
45
|
+
}), u(
|
|
46
|
+
() => e(k),
|
|
47
|
+
() => {
|
|
48
|
+
t(o, le(e(k), j));
|
|
49
|
+
}
|
|
50
|
+
), $e(), ke();
|
|
51
|
+
var s = ct(), a = Qe(s);
|
|
52
|
+
const x = $(() => e(w) ? "" : "Scan Passport Id");
|
|
53
|
+
nt(a, {
|
|
54
|
+
get text() {
|
|
55
|
+
return C;
|
|
56
|
+
},
|
|
57
|
+
get description() {
|
|
58
|
+
return e(x);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
var _ = l(a, 2), J = p(_);
|
|
62
|
+
let B;
|
|
63
|
+
var I = l(J, 2);
|
|
64
|
+
{
|
|
65
|
+
var G = (n) => {
|
|
66
|
+
var d = at(), T = l(p(d)), re = p(T, !0);
|
|
67
|
+
f(T), f(d), ie(() => ae(re, F)), U(n, d);
|
|
68
|
+
};
|
|
69
|
+
Q(I, (n) => {
|
|
70
|
+
F && n(G);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
var V = l(I, 2), P = l(p(V)), b = p(P);
|
|
74
|
+
{
|
|
75
|
+
var M = (n) => {
|
|
76
|
+
var d = qe();
|
|
77
|
+
ie(
|
|
78
|
+
(T) => ae(d, `${T ?? ""} ${e(O) ?? ""} /`),
|
|
79
|
+
[
|
|
80
|
+
() => (e(g), W(() => q(+e(g))))
|
|
81
|
+
],
|
|
82
|
+
$
|
|
83
|
+
), U(n, d);
|
|
84
|
+
};
|
|
85
|
+
Q(b, (n) => {
|
|
86
|
+
K && n(M);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
var Le = l(b);
|
|
90
|
+
f(P), f(V);
|
|
91
|
+
var Z = l(V, 2), ee = p(Z), ue = p(ee);
|
|
92
|
+
xe(ue, {
|
|
93
|
+
name: "recipientAddress",
|
|
94
|
+
type: "text",
|
|
95
|
+
placeholder: "Address 0x...",
|
|
96
|
+
get value() {
|
|
97
|
+
return c();
|
|
98
|
+
},
|
|
99
|
+
set value(n) {
|
|
100
|
+
c(n);
|
|
101
|
+
},
|
|
102
|
+
$$legacy: !0
|
|
103
|
+
});
|
|
104
|
+
var Ie = l(ue, 2);
|
|
105
|
+
{
|
|
106
|
+
var Ne = (n) => {
|
|
107
|
+
var d = it();
|
|
108
|
+
U(n, d);
|
|
109
|
+
};
|
|
110
|
+
Q(Ie, (n) => {
|
|
111
|
+
c() && !e(H) && n(Ne);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
f(ee);
|
|
115
|
+
var ve = l(ee, 2), pe = p(ve);
|
|
116
|
+
f(ve), f(Z);
|
|
117
|
+
var te = l(Z, 2), fe = p(te);
|
|
118
|
+
const Pe = $(() => `${e(o)} amount`);
|
|
119
|
+
xe(fe, {
|
|
120
|
+
type: "number",
|
|
121
|
+
min: "0",
|
|
122
|
+
step: "0.001",
|
|
123
|
+
get placeholder() {
|
|
124
|
+
return e(Pe);
|
|
125
|
+
},
|
|
126
|
+
get value() {
|
|
127
|
+
return v();
|
|
128
|
+
},
|
|
129
|
+
set value(n) {
|
|
130
|
+
v(n);
|
|
131
|
+
},
|
|
132
|
+
$$legacy: !0
|
|
133
|
+
});
|
|
134
|
+
var ne = l(fe, 2), De = p(ne);
|
|
135
|
+
const He = $(() => +e(R) <= 0);
|
|
136
|
+
de(De, {
|
|
137
|
+
get onClick() {
|
|
138
|
+
return S;
|
|
139
|
+
},
|
|
140
|
+
text: "MAX",
|
|
141
|
+
get disabled() {
|
|
142
|
+
return e(He);
|
|
143
|
+
}
|
|
144
|
+
}), f(ne);
|
|
145
|
+
var Oe = l(ne, 2);
|
|
146
|
+
{
|
|
147
|
+
var Ve = (n) => {
|
|
148
|
+
var d = ot(), T = p(d);
|
|
149
|
+
const re = $(() => !e(k));
|
|
150
|
+
de(T, {
|
|
151
|
+
get onClick() {
|
|
152
|
+
return N;
|
|
153
|
+
},
|
|
154
|
+
get text() {
|
|
155
|
+
return e(o);
|
|
156
|
+
},
|
|
157
|
+
get disabled() {
|
|
158
|
+
return e(re);
|
|
159
|
+
}
|
|
160
|
+
}), f(d), U(n, d);
|
|
161
|
+
};
|
|
162
|
+
Q(Oe, (n) => {
|
|
163
|
+
K && n(Ve);
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
f(te);
|
|
167
|
+
var Me = l(te, 2);
|
|
168
|
+
const Ue = $(() => `Send ${v() || ""} ${e(o)}`);
|
|
169
|
+
de(Me, {
|
|
170
|
+
get onClick() {
|
|
171
|
+
return h;
|
|
172
|
+
},
|
|
173
|
+
get text() {
|
|
174
|
+
return e(Ue);
|
|
175
|
+
},
|
|
176
|
+
get isLoading() {
|
|
177
|
+
return e(z);
|
|
178
|
+
},
|
|
179
|
+
get disabled() {
|
|
180
|
+
return e(E);
|
|
181
|
+
}
|
|
182
|
+
}), f(_);
|
|
183
|
+
var me = l(_, 2), ze = p(me);
|
|
184
|
+
return rt(ze, {
|
|
185
|
+
get onClick() {
|
|
186
|
+
return L;
|
|
187
|
+
}
|
|
188
|
+
}), f(me), ie(
|
|
189
|
+
(n, d, T) => {
|
|
190
|
+
B = Fe(J, 1, "crtw-absolute crtw-top-0 crtw-bottom-0 crtw-left-0 crtw-right-0 crtw-z-10 crtw-border crtw-border-gray-300 crtw-rounded-lg crtw-backdrop-blur-lg", null, B, n), ae(Le, ` ${d ?? ""} ${T ?? ""}`), je(pe, "src", st);
|
|
191
|
+
},
|
|
192
|
+
[
|
|
193
|
+
() => ({
|
|
194
|
+
"crtw-hidden": e(w),
|
|
195
|
+
"crtw-z-[-1]": e(w)
|
|
196
|
+
}),
|
|
197
|
+
() => (e(R), W(() => q(+e(R)))),
|
|
198
|
+
() => (m(le), e(y), W(() => le(e(y), j)))
|
|
199
|
+
],
|
|
200
|
+
$
|
|
201
|
+
), Ke("click", pe, Y), U(D, s), Re({
|
|
202
|
+
get recipientAddress() {
|
|
203
|
+
return c();
|
|
204
|
+
},
|
|
205
|
+
set recipientAddress(n) {
|
|
206
|
+
c(n), oe();
|
|
207
|
+
},
|
|
208
|
+
get amount() {
|
|
209
|
+
return v();
|
|
210
|
+
},
|
|
211
|
+
set amount(n) {
|
|
212
|
+
v(n), oe();
|
|
213
|
+
},
|
|
214
|
+
get options() {
|
|
215
|
+
return r();
|
|
216
|
+
},
|
|
217
|
+
set options(n) {
|
|
218
|
+
r(n), oe();
|
|
219
|
+
},
|
|
220
|
+
$set: Be,
|
|
221
|
+
$on: (n, d) => he(A, n, d)
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
function dt(D, A) {
|
|
225
|
+
if (new.target) return Ae({ component: dt, ...D });
|
|
226
|
+
Te(A, !1);
|
|
227
|
+
const [R, z] = Je(), E = () => we(Xe, "$configStore", R), H = () => we(Ge, "$clientPublicStore", R), w = i(), k = i();
|
|
228
|
+
var y = this && this.__awaiter || function(s, a, x, _) {
|
|
229
|
+
function J(B) {
|
|
230
|
+
return B instanceof x ? B : new x(function(I) {
|
|
231
|
+
I(B);
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
return new (x || (x = Promise))(function(B, I) {
|
|
235
|
+
function G(b) {
|
|
236
|
+
try {
|
|
237
|
+
P(_.next(b));
|
|
238
|
+
} catch (M) {
|
|
239
|
+
I(M);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
function V(b) {
|
|
243
|
+
try {
|
|
244
|
+
P(_.throw(b));
|
|
245
|
+
} catch (M) {
|
|
246
|
+
I(M);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
function P(b) {
|
|
250
|
+
b.done ? B(b.value) : J(b.value).then(G, V);
|
|
251
|
+
}
|
|
252
|
+
P((_ = _.apply(s, a || [])).next());
|
|
253
|
+
});
|
|
254
|
+
};
|
|
255
|
+
const { toastAlert: O } = ge(We);
|
|
256
|
+
let g = i(""), o = i(), c = i("");
|
|
257
|
+
const v = "CRED";
|
|
258
|
+
let r = i("");
|
|
259
|
+
const N = "SUI";
|
|
260
|
+
let S = i(""), L = i(!0), h = i(!1), C;
|
|
261
|
+
const F = () => y(void 0, void 0, void 0, function* () {
|
|
262
|
+
const { Scanner: s } = yield import("./scanner.es-cf-mCExK.js");
|
|
263
|
+
C = new s({ target: "#cpuiCredScanner" }), et(ce.UI_CLOSED, C.close), yield C.scan(), C.on(s.events.CAPTURE, (a) => y(void 0, [a], void 0, function* ({ sub: x }) {
|
|
264
|
+
const { address: _ } = yield tt(x);
|
|
265
|
+
t(g, _), C.close();
|
|
266
|
+
})), C.on(s.events.CANCEL, () => t(L, !0)), C.on(s.events.ERROR, (a) => {
|
|
267
|
+
((a == null ? void 0 : a.message) || a).includes("Permission") && alert("In order to scan please allow the current page to access your camera and try again."), t(L, !0);
|
|
268
|
+
}), t(L, !1);
|
|
269
|
+
}), Y = () => y(void 0, void 0, void 0, function* () {
|
|
270
|
+
t(h, !0);
|
|
271
|
+
const s = e(c) === N;
|
|
272
|
+
try {
|
|
273
|
+
yield Ze({
|
|
274
|
+
address: e(g),
|
|
275
|
+
amount: e(o),
|
|
276
|
+
isSuiNativeCoinTransfer: s
|
|
277
|
+
}), O("Send operation was completed."), t(g, ""), t(o, 0), setTimeout(
|
|
278
|
+
() => y(void 0, void 0, void 0, function* () {
|
|
279
|
+
t(r, yield _e()), t(S, yield be()), Ce(ce.RECHECK_BALANCE);
|
|
280
|
+
}),
|
|
281
|
+
1e3
|
|
282
|
+
);
|
|
283
|
+
} catch (a) {
|
|
284
|
+
console.log(a), Ce(ce.ERROR, { error: a }), O((a == null ? void 0 : a.message) || a || "An error occurred while sending tokens", "failure");
|
|
285
|
+
}
|
|
286
|
+
t(h, !1);
|
|
287
|
+
}), j = () => y(void 0, void 0, void 0, function* () {
|
|
288
|
+
const s = ge(Ye);
|
|
289
|
+
t(g, (s == null ? void 0 : s.to) || ""), t(o, (s == null ? void 0 : s.amount) || void 0), t(r, yield _e()), t(S, parseFloat(yield be()).toFixed(4)), t(c, v);
|
|
290
|
+
});
|
|
291
|
+
u(() => E(), () => {
|
|
292
|
+
E().suiNetwork && j();
|
|
293
|
+
}), u(() => {
|
|
294
|
+
}, () => {
|
|
295
|
+
t(w, !0);
|
|
296
|
+
}), u(
|
|
297
|
+
() => (e(h), e(o), e(w), e(c), e(r), e(S)),
|
|
298
|
+
() => {
|
|
299
|
+
t(k, e(h) || !e(o) || !e(w) || e(c) === v && e(o) > +e(r) || e(c) === N && e(o) > +e(S));
|
|
300
|
+
}
|
|
301
|
+
), $e(), ke();
|
|
302
|
+
const K = $(() => (e(L), e(r), e(w), m(ye), m(Se), e(c), e(o), e(S), e(h), e(k), H(), E(), W(() => {
|
|
303
|
+
var s;
|
|
304
|
+
return {
|
|
305
|
+
title: "Send stored value",
|
|
306
|
+
isScannerHidden: e(L),
|
|
307
|
+
balance: e(r),
|
|
308
|
+
isRecipientAddressValid: e(w),
|
|
309
|
+
onScannerClicked: F,
|
|
310
|
+
onSendTokens: Y,
|
|
311
|
+
onBackClicked: () => ye.set(Se.WALLET),
|
|
312
|
+
onChangeCurrency: () => e(c) === v ? t(c, N) : t(c, v),
|
|
313
|
+
onSetMaxAmount: () => e(c) === v ? t(o, +e(r)) : t(o, +e(S)),
|
|
314
|
+
isLoading: e(h),
|
|
315
|
+
isSubmitDisabled: e(k),
|
|
316
|
+
credAlias: H().ui_settings.cred_alias,
|
|
317
|
+
activeCurrency: e(c),
|
|
318
|
+
symbol: v,
|
|
319
|
+
nativeSymbol: N,
|
|
320
|
+
isNativeCurrecyTransferAllowed: ((s = E().transferTokens) == null ? void 0 : s.nativeCurrency) !== !1,
|
|
321
|
+
nativeBalance: e(S)
|
|
322
|
+
};
|
|
323
|
+
})));
|
|
324
|
+
Ee(D, {
|
|
325
|
+
get options() {
|
|
326
|
+
return e(K);
|
|
327
|
+
},
|
|
328
|
+
get recipientAddress() {
|
|
329
|
+
return e(g);
|
|
330
|
+
},
|
|
331
|
+
set recipientAddress(s) {
|
|
332
|
+
t(g, s);
|
|
333
|
+
},
|
|
334
|
+
get amount() {
|
|
335
|
+
return e(o);
|
|
336
|
+
},
|
|
337
|
+
set amount(s) {
|
|
338
|
+
t(o, s);
|
|
339
|
+
},
|
|
340
|
+
$$legacy: !0
|
|
341
|
+
});
|
|
342
|
+
var q = Re({
|
|
343
|
+
$set: Be,
|
|
344
|
+
$on: (s, a) => he(A, s, a)
|
|
345
|
+
});
|
|
346
|
+
return z(), q;
|
|
347
|
+
}
|
|
348
|
+
export {
|
|
349
|
+
dt as default
|
|
350
|
+
};
|
|
351
|
+
//# sourceMappingURL=SendTokens-DSJTklJ_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SendTokens-DSJTklJ_.js","sources":["../../ui/main/send-tokens/SendTokens.svelte","../src/app/pages/send-tokens/SendTokens.svelte"],"sourcesContent":["<script lang=\"ts\">\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import ButtonBack from \"../shared/inputs/button-back/ButtonBack.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n import Input from \"../shared/inputs/input/Input.svelte\";\n import ScanIcon from \"../../images/scanner.svg\";\n\n import { getCryptoCurrencySymbol } from \"../../../utils/lib/strings/strings\";\n\n export let recipientAddress: string;\n export let amount: number | undefined;\n\n export let options: {\n title: string;\n isScannerHidden: boolean;\n balance: string;\n chainId?: string;\n isRecipientAddressValid: boolean;\n onScannerClicked: () => void;\n onSendTokens: () => void;\n onBackClicked: () => void;\n onChangeCurrency: () => void;\n onSetMaxAmount: () => void;\n isLoading: boolean;\n isSubmitDisabled: boolean;\n credAlias: string;\n activeCurrency: string;\n symbol: string;\n nativeSymbol: string;\n nativeBalance: string;\n isNativeCurrecyTransferAllowed?: boolean;\n };\n\n let {\n onChangeCurrency,\n onSetMaxAmount,\n onBackClicked,\n onSendTokens,\n title,\n chainId,\n onScannerClicked,\n credAlias,\n isNativeCurrecyTransferAllowed = true\n } = options;\n\n $: balance = options.balance;\n $: isLoading = options.isLoading;\n $: isSubmitDisabled = options.isSubmitDisabled;\n $: isRecipientAddressValid = options.isRecipientAddressValid;\n $: isScannerHidden = options.isScannerHidden;\n $: activeCurrency = options.activeCurrency;\n $: symbol = options.symbol;\n $: nativeSymbol = options.nativeSymbol;\n $: nativeBalance = options.nativeBalance;\n\n $: activeCurrencySymbol = getCryptoCurrencySymbol(activeCurrency, credAlias);\n const round = (num: number) => Math.floor(num * 100) / 100\n</script>\n\n<ContentHeader\n text={title}\n description={isScannerHidden\n ? ``\n : \"Scan Passport Id\"}\n/>\n<div class=\"crtw-w-full crtw-p-0 crtw-relative\">\n <div\n id=\"cpuiCredScanner\"\n class=\"crtw-absolute crtw-top-0 crtw-bottom-0 crtw-left-0 crtw-right-0 crtw-z-10 crtw-border crtw-border-gray-300 crtw-rounded-lg crtw-backdrop-blur-lg\"\n class:crtw-hidden={isScannerHidden}\n class:crtw-z-[-1]={isScannerHidden}\n ></div>\n {#if chainId}\n <div>ChainId: <span class=\"crtw-font-bold\">{chainId}</span></div>\n {/if}\n <div>\n Your balance: \n <span class=\"crtw-font-bold\">\n {#if isNativeCurrecyTransferAllowed}\n {round(+nativeBalance)} {nativeSymbol} / \n {/if}\n\n {round(+balance)} {getCryptoCurrencySymbol(symbol, credAlias)}\n </span>\n </div>\n <div\n class=\"crtw-mb-2.5 crtw-flex crtw-items-start crtw-justify-between crtw-w-full\"\n >\n <div class=\"crtw-flex crtw-flex-col crtw-w-full\">\n <Input\n name=\"recipientAddress\"\n type=\"text\"\n placeholder=\"Address 0x...\"\n bind:value={recipientAddress}\n />\n {#if recipientAddress && !isRecipientAddressValid}\n <label\n class=\"crtw-text-[10px] crtw-text-warningTextColor cpui-send-tokens-validation-message\"\n for=\"recipientAddress\">Provided address is not valid.</label\n >\n {/if}\n </div>\n\n <div class=\"crtw-ml-2.5 crtw-cursor-pointer\">\n <!-- svelte-ignore a11y-click-events-have-key-events -->\n <!-- svelte-ignore a11y-no-noninteractive-element-interactions -->\n <img\n src={ScanIcon}\n on:click={onScannerClicked}\n width=\"53px\"\n alt=\"\"\n class=\"crtw-h-[53px]\"\n />\n </div>\n </div>\n\n <div\n class=\"crtw-mb-2.5 crtw-flex crtw-items-start crtw-justify-between crtw-w-full\"\n >\n <Input\n type=\"number\"\n min=\"0\"\n step=\"0.001\"\n placeholder={`${activeCurrencySymbol} amount`}\n bind:value={amount}\n />\n <div class=\"crtw-ml-2.5 crtw-w-16 crtw-min-w-16\">\n <Button onClick={onSetMaxAmount} text={`MAX`} disabled={+balance <= 0} />\n </div>\n\n {#if isNativeCurrecyTransferAllowed}\n <div class=\"crtw-ml-2.5 crtw-w-16 crtw-min-w-16\">\n <Button\n onClick={onChangeCurrency}\n text={activeCurrencySymbol}\n disabled={!activeCurrency}\n />\n </div>\n {/if}\n </div>\n <Button\n onClick={onSendTokens}\n text={`Send ${amount || \"\"} ${activeCurrencySymbol}`}\n {isLoading}\n disabled={isSubmitDisabled}\n />\n</div>\n<div class=\"crtw-mt-0.5 crtw-mb-3 crtw-w-full\">\n <ButtonBack onClick={onBackClicked} />\n</div>\n","<script lang=\"ts\">\n import { get } from 'svelte/store'\n import { type Scanner } from '@credenza3/scanner-lib'\n\n import { clientPublicStore, fn, pageOptsStore, pageStore } from '@packages/stores'\n import { dispatch, once, PassportEvents } from '@lib/events/events'\n import { Pages } from '@packages/utils/enums'\n import { SendTokens } from '@packages/ui'\n import { configStore } from '@src/stores/config'\n import { getBalance, getNativeSuiBalance, sendTokens } from '@src/passport/blockchain'\n import { getUserAddressBySub } from '@src/Passport.service'\n\n const { toastAlert } = get(fn)\n\n let recipientAddress = ''\n let amount: number\n\n let activeCurrency = ''\n\n const symbol = 'CRED'\n let balance = ''\n\n const nativeSymbol = 'SUI'\n let nativeBalance = ''\n\n let isScannerHidden = true\n let isLoading = false\n\n let scanner: Scanner\n\n const onScannerClicked = async () => {\n const { Scanner } = await import('@credenza3/scanner-lib')\n scanner = new Scanner({ target: '#cpuiCredScanner' })\n once(PassportEvents.UI_CLOSED, scanner.close)\n await scanner.scan()\n scanner.on(Scanner.events.CAPTURE, async ({ sub }: { sub: string }) => {\n const { address } = await getUserAddressBySub(sub)\n recipientAddress = address\n scanner.close()\n })\n scanner.on(Scanner.events.CANCEL, () => (isScannerHidden = true))\n scanner.on(Scanner.events.ERROR, (err) => {\n const message = err?.message || err\n if (message.includes('Permission'))\n alert('In order to scan please allow the current page to access your camera and try again.')\n isScannerHidden = true\n })\n isScannerHidden = false\n }\n\n const sendTokensToRecipient = async () => {\n isLoading = true\n const isSuiNativeCoinTransfer = activeCurrency === nativeSymbol\n\n try {\n await sendTokens({ address: recipientAddress, amount, isSuiNativeCoinTransfer })\n\n toastAlert(`Send operation was completed.`)\n recipientAddress = ''\n amount = 0\n\n setTimeout(async () => {\n balance = await getBalance()\n nativeBalance = await getNativeSuiBalance()\n dispatch(PassportEvents.RECHECK_BALANCE)\n }, 1000)\n } catch (err) {\n console.log(err)\n dispatch(PassportEvents.ERROR, { error: err })\n toastAlert(err?.message || err || 'An error occurred while sending tokens', 'failure')\n }\n isLoading = false\n }\n\n const init = async () => {\n const pageOpts = get(pageOptsStore)\n recipientAddress = pageOpts?.to || ''\n amount = pageOpts?.amount || undefined\n balance = await getBalance()\n nativeBalance = parseFloat(await getNativeSuiBalance()).toFixed(4)\n activeCurrency = symbol\n }\n\n $: $configStore.suiNetwork && init()\n\n $: isRecipientAddressValid = true\n\n $: isSubmitDisabled =\n isLoading ||\n !amount ||\n !isRecipientAddressValid ||\n (activeCurrency === symbol && amount > +balance) ||\n (activeCurrency === nativeSymbol && amount > +nativeBalance)\n</script>\n\n<SendTokens\n bind:recipientAddress\n bind:amount\n options={{\n title: `Send stored value`,\n isScannerHidden,\n balance,\n isRecipientAddressValid,\n onScannerClicked,\n onSendTokens: sendTokensToRecipient,\n onBackClicked: () => pageStore.set(Pages.WALLET),\n onChangeCurrency: () => (activeCurrency === symbol ? (activeCurrency = nativeSymbol) : (activeCurrency = symbol)),\n onSetMaxAmount: () => (activeCurrency === symbol ? (amount = +balance) : (amount = +nativeBalance)),\n isLoading,\n isSubmitDisabled,\n credAlias: $clientPublicStore.ui_settings.cred_alias,\n activeCurrency,\n symbol,\n nativeSymbol,\n isNativeCurrecyTransferAllowed: $configStore.transferTokens?.nativeCurrency !== false,\n nativeBalance,\n }}\n/>\n"],"names":["recipientAddress","$.prop","$$props","amount","options","onChangeCurrency","onSetMaxAmount","onBackClicked","onSendTokens","title","chainId","onScannerClicked","credAlias","isNativeCurrecyTransferAllowed","round","num","balance","isLoading","isSubmitDisabled","isRecipientAddressValid","isScannerHidden","activeCurrency","symbol","nativeSymbol","nativeBalance","$.set","activeCurrencySymbol","getCryptoCurrencySymbol","$.get","expression","$.derived_safe_equal","$$render","consequent","$.untrack","consequent_1","$$value","consequent_2","expression_2","consequent_3","ScanIcon","__awaiter","thisArg","_arguments","P","generator","toastAlert","get","fn","$.mutable_source","scanner","Scanner","once","PassportEvents","_a","sub","address","getUserAddressBySub","err","sendTokensToRecipient","isSuiNativeCoinTransfer","sendTokens","getBalance","getNativeSuiBalance","dispatch","init","pageOpts","pageOptsStore","$configStore","pageStore","Pages","$clientPublicStore"],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { c as k, p as T, f as b, b as S, d as E, u as O, h as j, n as F, o as w } from "./legacy-BgObIK2n.js";
|
|
2
|
+
import { v as q, z as $, E as x, A as z, u as H, N as I, O as L, L as M, I as N, b2 as P, R as U, $ as W } from "./index-DmO4Bf6j.js";
|
|
3
|
+
import { C as G } from "./App-CzJCZTZI.js";
|
|
4
|
+
import { C as J } from "./ContentHeader-DWeKFCbL.js";
|
|
5
|
+
import { B as y } from "./Button-DdkN4ygx.js";
|
|
6
|
+
import { s as K } from "./socket-io-BNYia6TN.js";
|
|
7
|
+
var Q = b("<!> <!>", 1), V = b("<!> <!>", 1);
|
|
8
|
+
function A(c, s) {
|
|
9
|
+
if (new.target) return k({ component: A, ...c });
|
|
10
|
+
q(s, !1);
|
|
11
|
+
let a = T(s, "options", 12), { title: d, description: u, onConfirm: m, onCancel: _ } = a();
|
|
12
|
+
var f = V(), l = $(f);
|
|
13
|
+
J(l, {
|
|
14
|
+
get text() {
|
|
15
|
+
return d;
|
|
16
|
+
},
|
|
17
|
+
get description() {
|
|
18
|
+
return u;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
var v = x(l, 2);
|
|
22
|
+
return G(v, {
|
|
23
|
+
class: "crtw-flex crtw-justify-between crtw-gap-10",
|
|
24
|
+
children: (e, t) => {
|
|
25
|
+
var r = Q(), n = $(r);
|
|
26
|
+
y(n, {
|
|
27
|
+
text: "Cancel",
|
|
28
|
+
get onClick() {
|
|
29
|
+
return _;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
var i = x(n, 2);
|
|
33
|
+
y(i, {
|
|
34
|
+
text: "Sign the message",
|
|
35
|
+
get onClick() {
|
|
36
|
+
return m;
|
|
37
|
+
}
|
|
38
|
+
}), S(e, r);
|
|
39
|
+
},
|
|
40
|
+
$$slots: { default: !0 }
|
|
41
|
+
}), S(c, f), z({
|
|
42
|
+
get options() {
|
|
43
|
+
return a();
|
|
44
|
+
},
|
|
45
|
+
set options(e) {
|
|
46
|
+
a(e), H();
|
|
47
|
+
},
|
|
48
|
+
$set: O,
|
|
49
|
+
$on: (e, t) => E(s, e, t)
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function X(c, s) {
|
|
53
|
+
if (new.target) return k({ component: X, ...c });
|
|
54
|
+
q(s, !1);
|
|
55
|
+
const [a, d] = F(), u = () => w(U, "$pageOptsStore", a), m = () => w(W, "$configStore", a);
|
|
56
|
+
var _ = this && this.__awaiter || function(t, r, n, i) {
|
|
57
|
+
function B(p) {
|
|
58
|
+
return p instanceof n ? p : new n(function(g) {
|
|
59
|
+
g(p);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return new (n || (n = Promise))(function(p, g) {
|
|
63
|
+
function D(o) {
|
|
64
|
+
try {
|
|
65
|
+
h(i.next(o));
|
|
66
|
+
} catch (C) {
|
|
67
|
+
g(C);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function R(o) {
|
|
71
|
+
try {
|
|
72
|
+
h(i.throw(o));
|
|
73
|
+
} catch (C) {
|
|
74
|
+
g(C);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function h(o) {
|
|
78
|
+
o.done ? p(o.value) : B(o.value).then(D, R);
|
|
79
|
+
}
|
|
80
|
+
h((i = i.apply(t, r || [])).next());
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
const { close: f } = I(L), l = () => _(void 0, void 0, void 0, function* () {
|
|
84
|
+
const { signature: t } = yield P.sui.signPersonalMessage(u().message);
|
|
85
|
+
K.signDataAndEmitEvent(m().credenza.generalWssUrl, t, u().socketEventData), f();
|
|
86
|
+
});
|
|
87
|
+
j();
|
|
88
|
+
const v = N(() => ({
|
|
89
|
+
title: "Sign Transaction Request",
|
|
90
|
+
description: "Please sign the requested transaction.",
|
|
91
|
+
onCancel: f,
|
|
92
|
+
onConfirm: l
|
|
93
|
+
}));
|
|
94
|
+
A(c, {
|
|
95
|
+
get options() {
|
|
96
|
+
return M(v);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
var e = z({
|
|
100
|
+
$set: O,
|
|
101
|
+
$on: (t, r) => E(s, t, r)
|
|
102
|
+
});
|
|
103
|
+
return d(), e;
|
|
104
|
+
}
|
|
105
|
+
export {
|
|
106
|
+
X as default
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=Sign-CnrilrlB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sign-
|
|
1
|
+
{"version":3,"file":"Sign-CnrilrlB.js","sources":["../../ui/main/passport-id/Sign.svelte","../src/app/pages/sign/Sign.svelte"],"sourcesContent":["<script lang=\"ts\">\n import Container from \"../shared/Container.svelte\";\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n\n export let options: {\n title: string;\n description: string;\n onConfirm: () => Promise<void>;\n onCancel: () => void;\n };\n\n let { title, description, onConfirm, onCancel } = options;\n</script>\n\n<ContentHeader text={title} {description} />\n\n<Container class=\"crtw-flex crtw-justify-between crtw-gap-10\">\n <Button text=\"Cancel\" onClick={onCancel}></Button>\n <Button text=\"Sign the message\" onClick={onConfirm} />\n</Container>\n","<script lang=\"ts\">\n import { get } from 'svelte/store'\n import { fn } from '@packages/stores'\n import { Sign } from '@packages/ui'\n import { pageOptsStore } from '@packages/stores'\n import { configStore } from '../../../stores/config'\n import socketFn from '@lib/ws/socket-io'\n import { sdk } from '@packages/utils/lib/sdk/sdk'\n\n const { close } = get(fn)\n\n const handleSignTransaction = async () => {\n const { signature } = await sdk.sui.signPersonalMessage($pageOptsStore.message)\n socketFn.signDataAndEmitEvent($configStore.credenza.generalWssUrl, signature, $pageOptsStore.socketEventData)\n close()\n }\n</script>\n\n<Sign\n options={{\n title: 'Sign Transaction Request',\n description: 'Please sign the requested transaction.',\n onCancel: close,\n onConfirm: handleSignTransaction,\n }}\n/>\n"],"names":["options","$.prop","$$props","title","description","onConfirm","onCancel","__awaiter","thisArg","_arguments","P","generator","close","get","fn","handleSignTransaction","signature","sdk","$pageOptsStore","socketFn","$configStore"],"mappings":";;;;;;;;;;MAKaA,IAKVC,EAAAC,GAAA,WAAA,EAAA,GAEK,EAAA,OAAAC,GAAO,aAAAC,GAAa,WAAAC,GAAW,UAAAC,EAAQ,IAAKN,EAAO;;;;aAGtCG;AAAA;;;;;;;;;;;;;iBAGYG;AAAA;;;;;;iBACUD;AAAA;;;;;;;;;;;;;;;;;;;ACnB1B,MAAAE,IAAA,QAAA,KAAA,aAAA,SAAAC,GAAAC,GAAAC,GAAAC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;UASP,OAAAC,EAAK,IAAKC,EAAIC,CAAE,GAElBC,IAAmC,MAAAR,EAAA,QAAA,QAAA,QAAA,aAAA;YAC/B,WAAAS,EAAS,IAAA,MAAWC,EAAI,IAAI,oBAAoBC,EAAc,EAAC,OAAO;AAC9E,IAAAC,EAAS,qBAAqBC,IAAa,SAAS,eAAeJ,GAAWE,IAAe,eAAe,GAC5GN,EAAK;AAAA,GACN;;;IAKC,OAAO;AAAA,IACP,aAAa;AAAA,IACb,UAAUA;AAAA,IACV,WAAWG;AAAA;;;;;;;;;;;;"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const t = c(m);
|
|
1
|
+
import { N as c, $ as y, b4 as m, bk as i, bh as E, b3 as l, R as C, Q as u, V as g } from "./index-DmO4Bf6j.js";
|
|
2
|
+
import { r as h } from "./Payment-DXvVU-Oe.js";
|
|
3
|
+
const _ = (s) => {
|
|
4
|
+
const t = c(y);
|
|
6
5
|
let e;
|
|
7
6
|
switch (s) {
|
|
8
7
|
case i.MEMBERSHIP:
|
|
@@ -18,8 +17,8 @@ const f = (s) => {
|
|
|
18
17
|
e = "/tokens/create-order";
|
|
19
18
|
}
|
|
20
19
|
return t.credenza.suiApiUrl + e;
|
|
21
|
-
},
|
|
22
|
-
const e = c(
|
|
20
|
+
}, f = (s, t) => {
|
|
21
|
+
const e = c(y), o = m(e.clientId).name, n = e.stripe.pk[o] ?? e.stripe.pk.DEFAULT, r = t.type, p = t.packageId, d = {
|
|
23
22
|
card_token: n.includes("pk_live") ? s : "tok_visa",
|
|
24
23
|
source: o,
|
|
25
24
|
asset_type: `${p}::${r}::${r.toUpperCase()}`,
|
|
@@ -33,7 +32,7 @@ const f = (s) => {
|
|
|
33
32
|
token_type: `${p}::${r}::${r.toUpperCase()}`
|
|
34
33
|
},
|
|
35
34
|
[i.CRED]: {
|
|
36
|
-
coin_type:
|
|
35
|
+
coin_type: E()
|
|
37
36
|
},
|
|
38
37
|
[i.CREDENZA_ASSET_COLLECTION]: {
|
|
39
38
|
coin_type: `${p}::${r}::${r.toUpperCase()}`
|
|
@@ -46,7 +45,7 @@ const f = (s) => {
|
|
|
46
45
|
const n = await fetch(`${s}/orders/completed/${t}`, {
|
|
47
46
|
headers: {
|
|
48
47
|
"Content-Type": "application/json",
|
|
49
|
-
Authorization: `Bearer ${c(
|
|
48
|
+
Authorization: `Bearer ${c(l)}`
|
|
50
49
|
},
|
|
51
50
|
method: "GET"
|
|
52
51
|
});
|
|
@@ -58,21 +57,21 @@ const f = (s) => {
|
|
|
58
57
|
if (!n.ok) throw new Error("Failed to get order details");
|
|
59
58
|
return await n.json();
|
|
60
59
|
}
|
|
61
|
-
},
|
|
62
|
-
const { title: e, subtitle: o } = c(
|
|
60
|
+
}, w = async (s, t) => {
|
|
61
|
+
const { title: e, subtitle: o } = c(C), n = f(s, t), r = await fetch(_(t.type), {
|
|
63
62
|
headers: {
|
|
64
63
|
"Content-Type": "application/json",
|
|
65
|
-
Authorization: `Bearer ${c(
|
|
64
|
+
Authorization: `Bearer ${c(l)}`
|
|
66
65
|
},
|
|
67
66
|
method: "POST",
|
|
68
67
|
body: JSON.stringify(n)
|
|
69
68
|
});
|
|
70
69
|
if (!r.ok) throw new Error("Failed to create order");
|
|
71
|
-
const { _id: p } = await r.json(), d = c(
|
|
70
|
+
const { _id: p } = await r.json(), d = c(y), a = await k(d.credenza.generalApiUrl, p);
|
|
72
71
|
if (a.items[0].error) throw new Error(a.items[0].error);
|
|
73
|
-
return a.payment_provider_tx && (await
|
|
72
|
+
return a.payment_provider_tx && (await h({ stripeChargeId: a.payment_provider_tx, title: e, subtitle: o }), u(g.RECEIPT, { stripeChargeId: a.payment_provider_tx })), a;
|
|
74
73
|
};
|
|
75
74
|
export {
|
|
76
|
-
|
|
75
|
+
w as processPayment
|
|
77
76
|
};
|
|
78
|
-
//# sourceMappingURL=Stripe.service-
|
|
77
|
+
//# sourceMappingURL=Stripe.service-DZue_N62.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stripe.service-
|
|
1
|
+
{"version":3,"file":"Stripe.service-DZue_N62.js","sources":["../src/app/pages/payment/stripe/stripe.helper.ts","../../utils/lib/orders/index.ts","../src/app/pages/payment/stripe/Stripe.service.ts"],"sourcesContent":["import { configStore } from '@src/stores/config'\nimport { get } from 'svelte/store'\nimport { getClientConfigByClientId } from '@lib/clients'\nimport { AssetType, type TPaymentAsset } from '../payment.constants'\nimport { getSuiCredCoinType } from '@src/utils/blockchain'\n\nexport const getEdpointUrlByAssetType = (assetType: string) => {\n const config = get(configStore)\n\n let endpoint\n switch (assetType) {\n case AssetType.MEMBERSHIP:\n endpoint = '/memberships/buy-order'\n break\n case AssetType.DECOM:\n endpoint = '/tokens/decom/create-order'\n break\n case AssetType.CREDENZA_ASSET_COLLECTION:\n endpoint = '/tokens/collection/create-order'\n break\n default:\n endpoint = '/tokens/create-order'\n }\n\n return config.credenza.suiApiUrl + endpoint\n}\n\nexport const buildPaymentDataByAssetType = (stripeTokenId: string, asset: TPaymentAsset) => {\n const config = get(configStore)\n const clientName = getClientConfigByClientId(config.clientId).name\n const stripePK = config.stripe.pk[clientName] ?? config.stripe.pk.DEFAULT\n\n const assetType = asset.type\n const packageId = asset.packageId\n\n const paymentData: {\n source: string\n card_token: string\n membership_type?: string\n token_type?: string\n coin_type?: string\n asset_id?: string\n asset_type: string\n amount?: number\n } = {\n card_token: stripePK.includes('pk_live') ? stripeTokenId : 'tok_visa',\n source: clientName,\n asset_type: `${packageId}::${assetType}::${assetType.toUpperCase()}`,\n ...(asset.amount ? { amount: asset.amount } : {}),\n ...(asset.assetId ? { asset_id: asset.assetId } : {}),\n }\n\n // todo: remove when prod is updated\n const assetTypeMapping = {\n [AssetType.MEMBERSHIP]: {\n membership_type: `${packageId}::${assetType}::${assetType.toUpperCase()}`,\n },\n [AssetType.DECOM]: {\n token_type: `${packageId}::${assetType}::${assetType.toUpperCase()}`,\n },\n [AssetType.CRED]: {\n coin_type: getSuiCredCoinType(),\n },\n [AssetType.CREDENZA_ASSET_COLLECTION]: {\n coin_type: `${packageId}::${assetType}::${assetType.toUpperCase()}`,\n },\n }\n Object.assign(paymentData, assetTypeMapping[assetType])\n // end todo\n\n return paymentData\n}\n","import { get } from \"svelte/store\";\nimport { accessTokenStore } from \"../../../stores\";\nimport type { TPaymentReturn } from \"@packages/utils/types\";\n\nexport const getOrderDetails = async (\n apiUrl: string,\n orderId: string,\n maxRetries = 3\n) => {\n let attempts = 0;\n\n while (attempts < maxRetries) {\n const res = await fetch(`${apiUrl}/orders/completed/${orderId}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${get(accessTokenStore)}`,\n },\n method: \"GET\",\n });\n\n if (res.status === 204) {\n attempts++;\n if (attempts < maxRetries) {\n continue;\n } else {\n throw new Error(\"No content received after multiple attempts\");\n }\n }\n\n if (!res.ok) throw new Error(\"Failed to get order details\");\n return await res.json();\n }\n};\n\nexport const validateOrderItems = (\n txs: string[] | null[],\n orders: TPaymentReturn[\"items\"],\n failedMemberships?: { contract_address: string }[]\n): string => {\n const errorMessages = orders\n .filter((item) => item.error)\n .map(\n (item) =>\n `Name: ${item.metadata.name}, reason: ${item.error}`\n )\n .join(\"\\n\");\n if (txs.every((item) => item === null) && !failedMemberships?.length) {\n throw new Error(`All transactions failed. \\n${errorMessages}`);\n } else if (orders?.every(item => item.status === \"ERROR\") && failedMemberships?.length ) {\n throw new Error(`All transactions failed.}`);\n }\n return errorMessages;\n};\n","/* eslint-disable complexity */\nimport { get } from 'svelte/store'\nimport { accessTokenStore, pageOptsStore } from '@packages/stores'\nimport { requestSuiReceipt } from '../Payment.service'\nimport { buildPaymentDataByAssetType, getEdpointUrlByAssetType } from './stripe.helper'\nimport { PassportEvents, dispatch } from '@lib/events/events'\nimport { getOrderDetails } from '@lib/orders'\nimport { type TPaymentAsset } from '../payment.constants'\nimport { configStore } from '@src/stores/config'\nimport type { TPaymentReturn } from '@packages/utils/types'\n\nexport const processPayment = async (stripeTokenId: string, asset: TPaymentAsset) => {\n const { title, subtitle } = get(pageOptsStore)\n\n const paymentData = buildPaymentDataByAssetType(stripeTokenId, asset)\n const res = await fetch(getEdpointUrlByAssetType(asset.type), {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${get(accessTokenStore)}`,\n },\n method: 'POST',\n body: JSON.stringify(paymentData),\n })\n if (!res.ok) throw new Error('Failed to create order')\n const { _id }: { _id: string } = await res.json()\n\n const config = get(configStore)\n const data = (await getOrderDetails(config.credenza.generalApiUrl, _id)) as TPaymentReturn\n if (data.items[0].error) throw new Error(data.items[0].error)\n\n if (data.payment_provider_tx) {\n await requestSuiReceipt({ stripeChargeId: data.payment_provider_tx, title, subtitle })\n dispatch(PassportEvents.RECEIPT, { stripeChargeId: data.payment_provider_tx })\n }\n\n return data\n}\n"],"names":["getEdpointUrlByAssetType","assetType","config","get","configStore","endpoint","AssetType","buildPaymentDataByAssetType","stripeTokenId","asset","clientName","getClientConfigByClientId","stripePK","packageId","paymentData","assetTypeMapping","getSuiCredCoinType","getOrderDetails","apiUrl","orderId","maxRetries","attempts","res","accessTokenStore","processPayment","title","subtitle","pageOptsStore","_id","data","requestSuiReceipt","dispatch","PassportEvents"],"mappings":";;AAMa,MAAAA,IAA2B,CAACC,MAAsB;AACvD,QAAAC,IAASC,EAAIC,CAAW;AAE1B,MAAAC;AACJ,UAAQJ,GAAW;AAAA,IACjB,KAAKK,EAAU;AACF,MAAAD,IAAA;AACX;AAAA,IACF,KAAKC,EAAU;AACF,MAAAD,IAAA;AACX;AAAA,IACF,KAAKC,EAAU;AACF,MAAAD,IAAA;AACX;AAAA,IACF;AACa,MAAAA,IAAA;AAAA,EAAA;AAGR,SAAAH,EAAO,SAAS,YAAYG;AACrC,GAEaE,IAA8B,CAACC,GAAuBC,MAAyB;AACpF,QAAAP,IAASC,EAAIC,CAAW,GACxBM,IAAaC,EAA0BT,EAAO,QAAQ,EAAE,MACxDU,IAAWV,EAAO,OAAO,GAAGQ,CAAU,KAAKR,EAAO,OAAO,GAAG,SAE5DD,IAAYQ,EAAM,MAClBI,IAAYJ,EAAM,WAElBK,IASF;AAAA,IACF,YAAYF,EAAS,SAAS,SAAS,IAAIJ,IAAgB;AAAA,IAC3D,QAAQE;AAAA,IACR,YAAY,GAAGG,CAAS,KAAKZ,CAAS,KAAKA,EAAU,aAAa;AAAA,IAClE,GAAIQ,EAAM,SAAS,EAAE,QAAQA,EAAM,OAAA,IAAW,CAAC;AAAA,IAC/C,GAAIA,EAAM,UAAU,EAAE,UAAUA,EAAM,QAAA,IAAY,CAAA;AAAA,EACpD,GAGMM,IAAmB;AAAA,IACvB,CAACT,EAAU,UAAU,GAAG;AAAA,MACtB,iBAAiB,GAAGO,CAAS,KAAKZ,CAAS,KAAKA,EAAU,aAAa;AAAA,IACzE;AAAA,IACA,CAACK,EAAU,KAAK,GAAG;AAAA,MACjB,YAAY,GAAGO,CAAS,KAAKZ,CAAS,KAAKA,EAAU,aAAa;AAAA,IACpE;AAAA,IACA,CAACK,EAAU,IAAI,GAAG;AAAA,MAChB,WAAWU,EAAmB;AAAA,IAChC;AAAA,IACA,CAACV,EAAU,yBAAyB,GAAG;AAAA,MACrC,WAAW,GAAGO,CAAS,KAAKZ,CAAS,KAAKA,EAAU,aAAa;AAAA,IAAA;AAAA,EAErE;AACA,gBAAO,OAAOa,GAAaC,EAAiBd,CAAS,CAAC,GAG/Ca;AACT,GCnEaG,IAAkB,OAC7BC,GACAC,GACAC,IAAa,MACV;AACH,MAAIC,IAAW;AAEf,SAAOA,IAAWD,KAAY;AAC5B,UAAME,IAAM,MAAM,MAAM,GAAGJ,CAAM,qBAAqBC,CAAO,IAAI;AAAA,MAC/D,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,eAAe,UAAUhB,EAAIoB,CAAgB,CAAC;AAAA,MAChD;AAAA,MACA,QAAQ;AAAA,IAAA,CACT;AAEG,QAAAD,EAAI,WAAW,KAAK;AAEtB,UADAD,KACIA,IAAWD;AACb;AAEM,YAAA,IAAI,MAAM,6CAA6C;AAAA,IAC/D;AAGF,QAAI,CAACE,EAAI,GAAU,OAAA,IAAI,MAAM,6BAA6B;AACnD,WAAA,MAAMA,EAAI,KAAK;AAAA,EAAA;AAE1B,GCrBaE,IAAiB,OAAOhB,GAAuBC,MAAyB;AACnF,QAAM,EAAE,OAAAgB,GAAO,UAAAC,MAAavB,EAAIwB,CAAa,GAEvCb,IAAcP,EAA4BC,GAAeC,CAAK,GAC9Da,IAAM,MAAM,MAAMtB,EAAyBS,EAAM,IAAI,GAAG;AAAA,IAC5D,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,eAAe,UAAUN,EAAIoB,CAAgB,CAAC;AAAA,IAChD;AAAA,IACA,QAAQ;AAAA,IACR,MAAM,KAAK,UAAUT,CAAW;AAAA,EAAA,CACjC;AACD,MAAI,CAACQ,EAAI,GAAU,OAAA,IAAI,MAAM,wBAAwB;AACrD,QAAM,EAAE,KAAAM,EAAA,IAAyB,MAAMN,EAAI,KAAK,GAE1CpB,IAASC,EAAIC,CAAW,GACxByB,IAAQ,MAAMZ,EAAgBf,EAAO,SAAS,eAAe0B,CAAG;AACtE,MAAIC,EAAK,MAAM,CAAC,EAAE,MAAO,OAAM,IAAI,MAAMA,EAAK,MAAM,CAAC,EAAE,KAAK;AAE5D,SAAIA,EAAK,wBACP,MAAMC,EAAkB,EAAE,gBAAgBD,EAAK,qBAAqB,OAAAJ,GAAO,UAAAC,GAAU,GACrFK,EAASC,EAAe,SAAS,EAAE,gBAAgBH,EAAK,qBAAqB,IAGxEA;AACT;"}
|