@credenza3/passport-evm 0.2.17 → 0.2.19
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/README.md +4 -3
- package/dist/{App-DrYtIsxl.js → App-C9I9989L.js} +71 -70
- package/dist/App-C9I9989L.js.map +1 -0
- package/dist/{Button-B58tbHjg.js → Button-D5CGIu8s.js} +4 -4
- package/dist/{Button-B58tbHjg.js.map → Button-D5CGIu8s.js.map} +1 -1
- package/dist/{ButtonBack-yLJ1WhkW.js → ButtonBack-DiIG6luz.js} +4 -4
- package/dist/{ButtonBack-yLJ1WhkW.js.map → ButtonBack-DiIG6luz.js.map} +1 -1
- package/dist/{ButtonLink-CVzrI4Fv.js → ButtonLink-CujytEgB.js} +3 -3
- package/dist/{ButtonLink-CVzrI4Fv.js.map → ButtonLink-CujytEgB.js.map} +1 -1
- package/dist/{ConfirmAccount-ncjz-yQ1.js → ConfirmAccount-L4VSLm33.js} +9 -9
- package/dist/{ConfirmAccount-ncjz-yQ1.js.map → ConfirmAccount-L4VSLm33.js.map} +1 -1
- package/dist/{ContentHeader-D-0aj97w.js → ContentHeader-DtB3AfgZ.js} +3 -3
- package/dist/{ContentHeader-D-0aj97w.js.map → ContentHeader-DtB3AfgZ.js.map} +1 -1
- package/dist/{Error-CIuEwqJ-.js → Error-4PRrZwmC.js} +5 -5
- package/dist/{Error-CIuEwqJ-.js.map → Error-4PRrZwmC.js.map} +1 -1
- package/dist/{Input-DeQta7wH.js → Input-B40ySJRz.js} +4 -4
- package/dist/{Input-DeQta7wH.js.map → Input-B40ySJRz.js.map} +1 -1
- package/dist/{Label-CsM-krt9.js → Label-CVUbL1bW.js} +3 -3
- package/dist/{Label-CsM-krt9.js.map → Label-CVUbL1bW.js.map} +1 -1
- package/dist/{Loader-ByudRoiy.js → Loader-DWGzCX4y.js} +3 -3
- package/dist/{Loader-ByudRoiy.js.map → Loader-DWGzCX4y.js.map} +1 -1
- package/dist/{Login-th1QspZ6.js → Login-CAgCGqA-.js} +9 -9
- package/dist/{Login-th1QspZ6.js.map → Login-CAgCGqA-.js.map} +1 -1
- package/dist/{Logout-Bk28ziTL.js → Logout-Cn-fwBb4.js} +6 -6
- package/dist/{Logout-Bk28ziTL.js.map → Logout-Cn-fwBb4.js.map} +1 -1
- package/dist/{Nav-BlIeXcjd.js → Nav-CuA2pLgM.js} +318 -318
- package/dist/{Nav-BlIeXcjd.js.map → Nav-CuA2pLgM.js.map} +1 -1
- package/dist/{PassportId-bFnyj9d5.js → PassportId-CSTvlPYW.js} +6 -6
- package/dist/{PassportId-bFnyj9d5.js.map → PassportId-CSTvlPYW.js.map} +1 -1
- package/dist/{Payment-BfBk2Vj4.js → Payment-DVlaKx-E.js} +10 -10
- package/dist/{Payment-BfBk2Vj4.js.map → Payment-DVlaKx-E.js.map} +1 -1
- package/dist/{PaymentResult-B1O3xIUb.js → PaymentResult-C5iwUhAQ.js} +4 -4
- package/dist/{PaymentResult-B1O3xIUb.js.map → PaymentResult-C5iwUhAQ.js.map} +1 -1
- package/dist/{Profile-D96I4nz3.js → Profile-GkmykWQr.js} +7 -7
- package/dist/{Profile-D96I4nz3.js.map → Profile-GkmykWQr.js.map} +1 -1
- package/dist/{ProgressVideo-SNiU0jSS.js → ProgressVideo-4SQjAnPJ.js} +17 -17
- package/dist/{ProgressVideo-SNiU0jSS.js.map → ProgressVideo-4SQjAnPJ.js.map} +1 -1
- package/dist/RichAlert-DoQILIMV.js +119 -0
- package/dist/RichAlert-DoQILIMV.js.map +1 -0
- package/dist/{Scanner-Be30oFob.js → Scanner-BCw9U9L_.js} +10 -10
- package/dist/{Scanner-Be30oFob.js.map → Scanner-BCw9U9L_.js.map} +1 -1
- package/dist/{SendTokens-Cpbc8pNW.js → SendTokens-D3cXqMmt.js} +7 -7
- package/dist/{SendTokens-Cpbc8pNW.js.map → SendTokens-D3cXqMmt.js.map} +1 -1
- package/dist/{Sign-Cqt9pYfi.js → Sign-IQLTbDiV.js} +6 -6
- package/dist/{Sign-Cqt9pYfi.js.map → Sign-IQLTbDiV.js.map} +1 -1
- package/dist/{Stripe.service-DkU3OPk-.js → Stripe.service-GlcYQnp5.js} +5 -5
- package/dist/{Stripe.service-DkU3OPk-.js.map → Stripe.service-GlcYQnp5.js.map} +1 -1
- package/dist/{UpdateProfile-CsxQubeT.js → UpdateProfile-D4bg5GEF.js} +10 -10
- package/dist/{UpdateProfile-CsxQubeT.js.map → UpdateProfile-D4bg5GEF.js.map} +1 -1
- package/dist/{UserInfo-0xD5yBFz.js → UserInfo-DwjE6Ph4.js} +4 -4
- package/dist/{UserInfo-0xD5yBFz.js.map → UserInfo-DwjE6Ph4.js.map} +1 -1
- package/dist/{Wallet-DFIt3eLL.js → Wallet-BUV87MlV.js} +7 -7
- package/dist/{Wallet-DFIt3eLL.js.map → Wallet-BUV87MlV.js.map} +1 -1
- package/dist/{each-DlTYG9SE.js → each-tAR3XqEj.js} +23 -23
- package/dist/{each-DlTYG9SE.js.map → each-tAR3XqEj.js.map} +1 -1
- package/dist/{html-ClFJTrTO.js → html-a8zjkl0d.js} +3 -3
- package/dist/{html-ClFJTrTO.js.map → html-a8zjkl0d.js.map} +1 -1
- package/dist/{index-DacuCeWr.js → index-B0D9qQ_O.js} +3054 -3050
- package/dist/{index-DacuCeWr.js.map → index-B0D9qQ_O.js.map} +1 -1
- package/dist/{index-client-DaK3V4t-.js → index-client-z9rIkUyw.js} +2 -2
- package/dist/{index-client-DaK3V4t-.js.map → index-client-z9rIkUyw.js.map} +1 -1
- package/dist/{input-CV6w1OZd.js → input-b1D2_f8m.js} +3 -3
- package/dist/{input-CV6w1OZd.js.map → input-b1D2_f8m.js.map} +1 -1
- package/dist/{legacy-B3q739rj.js → legacy-C1UsO_tu.js} +4 -3
- package/dist/{legacy-B3q739rj.js.map → legacy-C1UsO_tu.js.map} +1 -1
- package/dist/passport.es.js +2 -2
- package/dist/passport.umd.js +84 -83
- package/dist/passport.umd.js.map +1 -1
- package/package.json +1 -1
- package/dist/App-DrYtIsxl.js.map +0 -1
- package/dist/RichAlert-Bl6k1lyQ.js +0 -139
- package/dist/RichAlert-Bl6k1lyQ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scanner-
|
|
1
|
+
{"version":3,"file":"Scanner-BCw9U9L_.js","sources":["../../ui/main/scanner/Scanner.svelte","../src/app/pages/scanner/Scanner.svelte"],"sourcesContent":["<script lang=\"ts\">\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import Loader from \"../shared/Loader.svelte\";\n\n export let options: {\n isScannerLoaded: boolean\n }\n\n $: isScannerLoaded = options.isScannerLoaded\n</script>\n\n<ContentHeader text=\"Scan PassScan Code\" />\n<div class=\"crtw-w-full\">\n {#if !isScannerLoaded}\n <div\n class=\"crtw-w-full crtw-h-64 crtw-rounded-[10px] crtw-flex crtw-items-center crtw-justify-center\"\n style=\"background-color: rgb(238, 238, 238)\"\n >\n <Loader />\n </div>\n {/if}\n <div\n id=\"cpuiScanner\"\n class=\"crtw-w-full crtw-h-64 crtw-rounded-lg crtw-flex crtw-items-center crtw-justify-center\"\n class:crtw-hidden={!isScannerLoaded}\n style=\"background-color: rgb(238, 238, 238)\"\n />\n</div>\n ","<script lang=\"ts\">\n import { onMount } from 'svelte'\n import { get } from 'svelte/store'\n import type { Scanner } from '@credenza3/scanner-lib'\n\n import { pageStore, fn } from '@packages/stores'\n import { ScanTypes } from '@packages/utils/enums'\n import { once, PassportEvents } from '@lib/events/events'\n import {\n goToPayment,\n goToSendTokens,\n processAirDrop,\n processRequestLoyaltyPoints,\n } from '@pages/scanner/Scanner.service'\n import { Scanner as ScannerComponent } from '@packages/ui'\n import { getUserAddressBySub } from '@src/Passport.service'\n\n const { close } = get(fn)\n let scanner: Scanner\n let isScannerLoaded = false\n\n const onCapture = async ({ message, sub, scanType }: { sub: string; message: string; scanType: string }) => {\n scanner.close()\n switch (scanType) {\n case ScanTypes.PASSPORT_ID_PASS:\n case ScanTypes.PASSPORT_ID: {\n const parsed = JSON.parse(message)\n const { address } = await getUserAddressBySub(sub)\n goToSendTokens({ userAddress: address, amount: parsed?.amount })\n break\n }\n case ScanTypes.TOKENS_PURCHASE: {\n goToPayment(JSON.parse(message))\n break\n }\n case ScanTypes.AIR_DROP_ASSET: {\n await processAirDrop(JSON.parse(message))\n break\n }\n case ScanTypes.REQUEST_LOYALTY_POINTS: {\n await processRequestLoyaltyPoints(JSON.parse(message))\n break\n }\n default: {\n close()\n pageStore.set(null)\n }\n }\n }\n\n onMount(async () => {\n const { Scanner } = await import('@credenza3/scanner-lib')\n scanner = new Scanner({ target: '#cpuiScanner' })\n once(PassportEvents.UI_CLOSED, () => {\n scanner.close()\n pageStore.set(null)\n })\n await scanner.scan({ isCloseButton: false })\n isScannerLoaded = true\n scanner.on(Scanner.events.CAPTURE, onCapture)\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 })\n })\n</script>\n\n<ScannerComponent options={{ isScannerLoaded }} />\n"],"names":["options","$.prop","$$props","isScannerLoaded","$$render","consequent","__awaiter","thisArg","_arguments","P","generator","close","get","fn","scanner","onCapture","_a","message","sub","scanType","ScanTypes","parsed","address","getUserAddressBySub","goToSendTokens","goToPayment","processAirDrop","processRequestLoyaltyPoints","pageStore","onMount","Scanner","once","PassportEvents","$.set","err","expression","$.derived_safe_equal"],"mappings":";;;;;;;;;;MAIaA,IAEVC,EAAAC,GAAA,WAAA,EAAA;;MAEEC,GAAkBH,EAAO,EAAC,eAAe;AAAA;;;;;;;;;;QAKtCG,CAAe,KAAAC,EAAAC,CAAA;AAAA;;;;;;;iCAWCF,CAAe,EAAA;AAAA;;;;;;;;;;;;;;;;ACxBtB,MAAAG,IAAA,QAAA,KAAA,aAAA,SAAAC,GAAAC,GAAAC,GAAAC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;UAiBP,OAAAC,EAAK,IAAKC,EAAIC,CAAE;MACpBC,GACAX,MAAkB,EAAK;QAErBY,IAAS,CAAGC,MAAyFV,EAAhF,QAAA,CAAAU,CAAA,GAAA,QAAA,WAAA,EAAA,SAAAC,GAAS,KAAAC,GAAK,UAAAC,EAAQ,GAAsD;YACrGL,EAAQ,MAAK,GACLK,GAAQ;AAAA,MACT,KAAAC,EAAU;AAAA,MACV,KAAAA,EAAU,aAAa;AACpB,cAAAC,IAAS,KAAK,MAAMJ,CAAO,KACzB,SAAAK,EAAO,IAAA,MAAWC,GAAoBL,CAAG;AACjD,QAAAM,GAAc;AAAA,UAAG,aAAaF;AAAA,UAAS,QAAQD,KAAM,OAAN,SAAAA,EAAQ;AAAA;;MAEzD;AAAA,MACK,KAAAD,EAAU,iBAAiB;AAC9B,QAAAK,GAAY,KAAK,MAAMR,CAAO,CAAA;;MAEhC;AAAA,MACK,KAAAG,EAAU,gBAAgB;AACvB,cAAAM,EAAe,KAAK,MAAMT,CAAO,CAAA;;MAEzC;AAAA,MACK,KAAAG,EAAU,wBAAwB;AAC/B,cAAAO,EAA4B,KAAK,MAAMV,CAAO,CAAA;;MAEtD;AAAA;AAEE,QAAAN,EAAK,GACLiB,EAAU,IAAI,IAAI;AAAA;GAGvB;AAED,EAAAC,EAAmB,MAAAvB,EAAA,QAAA,QAAA,QAAA,aAAA;AACT,UAAA,EAAA,SAAAwB,EAAO,iBAAkB,0BAAwB;AACzD,IAAAhB,IAAc,IAAAgB,EAAU,EAAA,QAAQ,eAAc,CAAA,GAC9CC,EAAKC,EAAe,WAAgB,MAAA;AAClC,MAAAlB,EAAQ,MAAK,GACbc,EAAU,IAAI,IAAI;AAAA,KACnB,GACK,MAAAd,EAAQ,KAAO,EAAA,eAAe,GAAK,CAAA,GACzCmB,EAAA9B,GAAkB,EAAI,GACtBW,EAAQ,GAAGgB,EAAQ,OAAO,SAASf,CAAS,GAC5CD,EAAQ,GAAGgB,EAAQ,OAAO,OAAQ,CAAAI,MAAO;AAEnC,QADYA,KAAA,gBAAAA,EAAK,YAAWA,GACpB,SAAS,YAAY,KAC/B,MAAM,qFAAqF;AAAA,KAC9F;AAAA,GACF,CAAA;AAG0B,QAAAC,IAAAC,EAAA,OAAA,EAAA,mBAAAjC,CAAe,EAAA,EAAA;;;;;;;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { c as $e, p as pe, h as Te, f as de, i as ie, k as ze, r as me, s as Ke, e as We, b as Z, d as Re, u as Ee, t as Xe, o as fe, n as qe } from "./legacy-
|
|
2
|
-
import { v as Ie, w as g, J as t, m as i, A as y, K as e, x as Le, y as Ge, I as U, E as p, B as _, C as b, D as ge, G as ce, z as De, u as we, L as oe, W as Ce, N as Je, a3 as X, a1 as he, O as Ye, a2 as Qe, R as xe, S as Ae, a5 as Ze, b8 as et, M as ke, P as _e, b9 as tt, ba as nt } from "./index-
|
|
1
|
+
import { c as $e, p as pe, h as Te, f as de, i as ie, k as ze, r as me, s as Ke, e as We, b as Z, d as Re, u as Ee, t as Xe, o as fe, n as qe } from "./legacy-C1UsO_tu.js";
|
|
2
|
+
import { v as Ie, w as g, J as t, m as i, A as y, K as e, x as Le, y as Ge, I as U, E as p, B as _, C as b, D as ge, G as ce, z as De, u as we, L as oe, W as Ce, N as Je, a3 as X, a1 as he, O as Ye, a2 as Qe, R as xe, S as Ae, a5 as Ze, b8 as et, M as ke, P as _e, b9 as tt, ba as nt } from "./index-B0D9qQ_O.js";
|
|
3
3
|
import "./scanner.es-cf-mCExK.js";
|
|
4
|
-
import { C as rt } from "./ContentHeader-
|
|
5
|
-
import { B as st } from "./ButtonBack-
|
|
6
|
-
import { B as be } from "./Button-
|
|
7
|
-
import { I as Be } from "./Input-
|
|
4
|
+
import { C as rt } from "./ContentHeader-DtB3AfgZ.js";
|
|
5
|
+
import { B as st } from "./ButtonBack-DiIG6luz.js";
|
|
6
|
+
import { B as be } from "./Button-D5CGIu8s.js";
|
|
7
|
+
import { I as Be } from "./Input-B40ySJRz.js";
|
|
8
8
|
import { S as at } from "./scanner-Bm3Pvpfs.js";
|
|
9
9
|
import { g as ye } from "./strings-B-rKL311.js";
|
|
10
10
|
var it = de('<div>ChainId: <span class="crtw-font-bold"> </span></div>'), ot = de('<label class="crtw-text-[10px] crtw-text-warningTextColor cpui-send-tokens-validation-message" for="recipientAddress">Provided address is not valid.</label>'), ct = de('<div class="crtw-ml-2.5 crtw-w-16 crtw-min-w-16"><!></div>'), dt = de('<!> <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);
|
|
@@ -360,4 +360,4 @@ function lt(q, E) {
|
|
|
360
360
|
export {
|
|
361
361
|
lt as default
|
|
362
362
|
};
|
|
363
|
-
//# sourceMappingURL=SendTokens-
|
|
363
|
+
//# sourceMappingURL=SendTokens-D3cXqMmt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SendTokens-Cpbc8pNW.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 { ethers } from '@credenza3/core-web-evm-ext'\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 { getTxScanAddress } from '@src/lib/tx/tx'\n import { SendTokens } from '@packages/ui'\n import { getAddress } from '@src/passport/blockchain'\n import { configStore } from '@src/stores/config'\n import type { TEvmContract } from '@packages/utils/types'\n import { providerStore } from '@src/stores'\n import { getUserAddressBySub } from '@src/Passport.service'\n\n const config = get(configStore)\n const { sendTokens, getCREDContract, toastAlert } = get(fn)\n\n let userAddress = ''\n let recipientAddress = ''\n let amount: number | undefined\n\n let activeCurrency = ''\n\n let decimals = 18\n let symbol = '-'\n let balance = ''\n\n let nativeDecimals = 18\n let nativeSymbol = '-'\n let nativeBalance = ''\n\n let isScannerHidden = true\n let isLoading = false\n\n let contract: ethers.Contract\n let signer: ethers.JsonRpcSigner\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 const isTCRED = activeCurrency === symbol\n isLoading = true\n try {\n const weiBn = ethers.parseUnits(String(amount), isTCRED ? decimals : nativeDecimals)\n const result = (await sendTokens({\n address: recipientAddress,\n amount: weiBn,\n instance: isTCRED ? contract : undefined,\n })) as { hash: string; wait: () => Promise<void> }\n toastAlert(\n `<a href=\"${getTxScanAddress(result.hash)}\" target=\"_blank\">Send TX</a> was created`,\n )\n recipientAddress = ''\n amount = undefined\n\n const [weiBalance, weiNativeBalance] = await Promise.all([\n contract.balanceOf(userAddress),\n signer.provider.getBalance(userAddress),\n ])\n\n balance = ethers.formatUnits(weiBalance, decimals)\n nativeBalance = parseFloat(ethers.formatUnits(weiNativeBalance, nativeDecimals)).toFixed(4)\n dispatch(PassportEvents.RECHECK_BALANCE, [result.hash])\n } catch (err) {\n toastAlert(err?.message || err || 'An error occurred while sending tokens', 'failure')\n dispatch(PassportEvents.ERROR, { error: err })\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 const { decimals: contractDecimals, contract: credContract } = (await getCREDContract()) as TEvmContract\n decimals = contractDecimals\n contract = credContract\n const provider = get(providerStore)\n signer = await provider.getSigner()\n userAddress = await getAddress()\n const results = await Promise.all([\n contract.symbol(),\n contract.balanceOf(userAddress),\n provider.getBalance(userAddress),\n fetch('https://chainid.network/chains.json')\n .then((result) => result.json())\n .then((networks) =>\n networks.find((network: { chainId: number }) => String(network.chainId) === config.chainId),\n ),\n ])\n symbol = results[0]\n balance = ethers.formatUnits(results[1], decimals)\n nativeDecimals = results[3]?.nativeCurrency?.decimals ?? 18\n nativeBalance = parseFloat(ethers.formatUnits(results[2], nativeDecimals)).toFixed(4)\n nativeSymbol = results[3]?.nativeCurrency?.symbol ?? 'ETH'\n activeCurrency = symbol\n }\n\n $: $configStore.chainId && $providerStore && init()\n $: isRecipientAddressValid = !!ethers.isAddress(recipientAddress)\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 isNativeCurrecyTransferAllowed: $configStore.transferTokens?.nativeCurrency !== false,\n isScannerHidden,\n balance,\n chainId: config.chainId,\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 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","config","get","configStore","sendTokens","getCREDContract","toastAlert","fn","userAddress","$.mutable_source","decimals","nativeDecimals","contract","signer","scanner","Scanner","once","PassportEvents","_a","sub","address","getUserAddressBySub","err","sendTokensToRecipient","isTCRED","weiBn","ethers","result","getTxScanAddress","weiBalance","weiNativeBalance","dispatch","init","pageOpts","pageOptsStore","contractDecimals","credContract","provider","providerStore","getAddress","results","networks","network","_c","_b","_f","_e","_d","$configStore","$providerStore","pageStore","Pages","$clientPublicStore"],"mappings":";;;;;;;;;;;;;;MASaA,IAAwBC,GAAAC,GAAA,oBAAA,EAAA,GACxBC,IAA0BF,GAAAC,GAAA,UAAA,EAAA,GAE1BE,IAmBVH,GAAAC,GAAA,WAAA,EAAA;IAGC,kBAAAG;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gCAAAC,IAAiC;AAAA,MAC/BT,EAAO;QAaLU,IAAK,CAAIC,MAAiB,KAAK,MAAMA,IAAM,GAAG,IAAI;;MAXrDC,GAAUZ,EAAO,EAAC,OAAO;AAAA;MACzBa,IAAYb,EAAO,EAAC,SAAS;AAAA;MAC7Bc,GAAmBd,EAAO,EAAC,gBAAgB;AAAA;MAC3Ce,GAA0Bf,EAAO,EAAC,uBAAuB;AAAA;MACzDgB,GAAkBhB,EAAO,EAAC,eAAe;AAAA;MACzCiB,GAAiBjB,EAAO,EAAC,cAAc;AAAA;MACvCkB,GAASlB,EAAO,EAAC,MAAM;AAAA;MACvBmB,GAAenB,EAAO,EAAC,YAAY;AAAA;MACnCoB,GAAgBpB,EAAO,EAAC,aAAa;AAAA;;;AAErCqB,MAAAA,EAAAC,GAAuBC,GAAwBC,EAAAP,CAAc,GAAET,CAAS,CAAA;AAAA;;;AAM9D,QAAAiB,KAAAC,EAAA,MAAAF,EAAAR,CAAA,IAAA,KAET,kBAAkB;;;aAHhBX;AAAA;;;;;;;;;;;kCAawCC,CAAO,CAAA;;;MADhDA,KAAOqB,EAAAC,EAAA;AAAA;;;;;;;qCAOmBT,CAAY,KAAA,EAAA,IAAA;AAAA;mBA1BxCC,CAAa,GA0BTS,GAAA,MAAAnB,KAAOU,CAAa,CAAA,CAAA;AAAA;;;;;MADlBX,KAA8BkB,EAAAG,CAAA;AAAA;;;;;;;;;;aAerBlC,EAAgB;AAAA;;AAAhB,MAAAA,EAAgBmC,CAAA;AAAA;;;;;;;;;;AAEzB,MAAAnC,UAAqBmB,CAAuB,KAAAY,EAAAK,CAAA;AAAA;;;;;;0BA4BjCV,CAAoB,CAAA,SAAA;;;;;;;;;aACxBvB,EAAM;AAAA;;AAAN,MAAAA,EAAMgC,CAAA;AAAA;;;;AAGuC,QAAAE,KAAAP,EAAA,MAAA,CAAAF,EAAAZ,CAAO,KAAI,CAAC;;;aAApDV;AAAA;;;;;;;;;;4BAQFe,CAAc,CAAA;;;iBAFhBhB;AAAA;;mBACHqB,CAAoB;AAAA;;;;;;;MAJ3Bb,KAA8BkB,EAAAO,EAAA;AAAA;;;;6BAYrBnC,EAAM,KAAI,EAAE,IAAAyB,EAAIF,CAAoB,CAAA,EAAA;;;aADzClB;AAAA;;;;;;;;eAGCU,CAAgB;AAAA;;;;;aAIPX;AAAA;;;qOAzCVgC,EAAQ;AAAA;;;yBAtCEnB,CAAe;AAAA,yBACfA,CAAe;AAAA;eAzBjCJ,CAAO,GAqCLiB,GAAA,MAAAnB,KAAOE,CAAO,CAAA,CAAA;AAAA,eA3EVW,EAAuB,KA4C7BL,CAAM,YA+BcK,GAAuBC,EAACN,CAAM,GAAEV,CAAS,CAAA;AAAA;;oBA0BhDD,CAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5GjB,MAAA6B,IAAA,QAAA,KAAA,aAAA,SAAAC,GAAAC,GAAAC,GAAAC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgBTC,IAASC,GAAIC,EAAW,GACtB,EAAA,YAAAC,GAAY,iBAAAC,GAAiB,YAAAC,EAAU,IAAKJ,GAAIK,EAAE;AAEtD,MAAAC,IAAc,IACdpD,MAAmB,EAAE,GACrBG,IAA0BkD,EAAA,GAE1BhC,MAAiB,EAAE,GAEnBiC,IAAW,IACXhC,MAAS,GAAG,GACZN,MAAU,EAAE,GAEZuC,IAAiB,IACjBhC,MAAe,GAAG,GAClBC,MAAgB,EAAE,GAElBJ,MAAkB,EAAI,GACtBH,MAAY,EAAK,GAEjBuC,GACAC,IACAC;AAEE,QAAA/C,KAA8B,MAAA6B,EAAA,QAAA,QAAA,QAAA,aAAA;AAC1B,UAAA,EAAA,SAAAmB,EAAO,iBAAkB,0BAAwB;AACzD,IAAAD,IAAc,IAAAC,EAAU,EAAA,QAAQ,mBAAkB,CAAA,GAClDC,GAAKC,GAAe,WAAWH,EAAQ,KAAK,GACtC,MAAAA,EAAQ,KAAI,GAClBA,EAAQ,GAAGC,EAAQ,OAAO,SAAS,CAAAG,MAAmCtB,EAA1B,QAAA,CAAAsB,CAAA,GAAA,QAAA,WAAA,EAAA,KAAAC,EAAG,GAAmB;cACxD,SAAAC,EAAO,IAAA,MAAWC,GAAoBF,CAAG;AACjDtC,MAAAA,EAAAzB,GAAmBgE,CAAO,GAC1BN,EAAQ,MAAK;AAAA,KACd,CAAA,GACDA,EAAQ,GAAGC,EAAQ,OAAO,QAAM,MAAAlC,EAASL,GAAkB,EAAI,CAAA,GAC/DsC,EAAQ,GAAGC,EAAQ,OAAO,OAAQ,CAAAO,MAAO;AAEnC,QADYA,KAAA,gBAAAA,EAAK,YAAWA,GACpB,SAAS,YAAY,KAC/B,MAAM,qFAAqF,GAC7FzC,EAAAL,GAAkB,EAAI;AAAA,KACvB,GACDK,EAAAL,GAAkB,EAAK;AAAA,GACxB,GAEK+C,KAAmC,MAAA3B,EAAA,QAAA,QAAA,QAAA,aAAA;UACjC4B,IAAOxC,EAAGP,CAAc,MAAAO,EAAKN,CAAM;AACzCG,IAAAA,EAAAR,GAAY,EAAI;AACZ,QAAA;AACI,YAAAoD,IAAQC,EAAO,WAAW,OAAO1C,EAAAzB,CAAM,CAAG,GAAAiE,IAAUd,IAAWC,CAAc,GAC7EgB,UAAgBvB,EAAU;AAAA,QAC9B,WAAShD,CAAgB;AAAA,QACzB,QAAQqE;AAAA,QACR,UAAUD,IAAUZ,IAAW;AAAA;AAEjC,MAAAN,EACc,YAAAsB,GAAiBD,EAAO,IAAI,CAAA,2CAAA,GAE1C9C,EAAAzB,GAAmB,EAAE,GACrByB,EAAAtB,GAAS,MAAS;AAEX,YAAA,CAAAsE,GAAYC,CAAgB,IAAU,MAAA,QAAQ,IAAG;AAAA,QACtDlB,EAAS,UAAUJ,CAAW;AAAA,QAC9BK,GAAO,SAAS,WAAWL,CAAW;AAAA;AAGxC3B,MAAAA,EAAAT,GAAUsD,EAAO,YAAYG,GAAYnB,CAAQ,CAAA,GACjD7B,EAAAD,GAAgB,WAAW8C,EAAO,YAAYI,GAAkBnB,CAAc,CAAG,EAAA,QAAQ,CAAC,CAAA,GAC1FoB,GAASd,GAAe,iBAAkB,CAAAU,EAAO,IAAI,CAAA;AAAA,IACvD,SAASL,GAAK;AACZ,MAAAhB,GAAWgB,KAAA,OAAA,SAAAA,EAAK,YAAWA,KAAO,0CAA0C,SAAS,GACrFS,GAASd,GAAe,OAAS,EAAA,OAAOK,EAAG,CAAA;AAAA,IAC7C;AACAzC,IAAAA,EAAAR,GAAY,EAAK;AAAA,GAClB,GAEK2D,KAAkB,MAAApC,EAAA,QAAA,QAAA,QAAA,aAAA;;UAChBqC,IAAW/B,GAAIgC,EAAa;MAClC9E,IAAmB6E,KAAA,gBAAAA,EAAU,OAAM,EAAE,KACrC1E,IAAS0E,KAAA,gBAAAA,EAAU,WAAU,MAAS;;MAC9B,UAAUE;AAAA,MAAkB,UAAUC;AAAA,cAAwB/B,EAAe;AACrF,IAAAK,IAAWyB,GACXvB,IAAWwB;UACLC,IAAWnC,GAAIoC,EAAa;AAClC,IAAAzB,KAAM,MAASwB,EAAS,UAAS,GACjC7B,UAAoB+B,GAAU;UACxBC,IAAO,MAAS,QAAQ,IAAG;AAAA,MAC/B5B,EAAS,OAAM;AAAA,MACfA,EAAS,UAAUJ,CAAW;AAAA,MAC9B6B,EAAS,WAAW7B,CAAW;AAAA,MAC/B,MAAM,qCAAqC,EACxC,KAAM,CAAAmB,MAAWA,EAAO,MACxB,EAAA,KAAM,CAAAc,MACLA,EAAS,KAAM,CAAAC,OAAiC,OAAOA,GAAQ,OAAO,MAAMzC,EAAO,OAAO,CAAA;AAAA;MAGhGvB,GAAS8D,EAAQ,CAAC,CAAA,KAClBpE,GAAUsD,EAAO,YAAYc,EAAQ,CAAC,GAAG9B,CAAQ,CAAA,GACjDC,KAAiBgC,KAAOC,KAAA1B,IAAAsB,EAAC,CAAC,OAAC,kCAAE,oBAAc,QAAAI,MAAA,SAAA,SAAAA,EAAE,cAAQ,QAAAD,MAAA,SAAAA,IAAI,IACzD9D,EAAAD,GAAgB,WAAW8C,EAAO,YAAYc,EAAQ,CAAC,GAAG7B,CAAc,CAAG,EAAA,QAAQ,CAAC,CAAA,KACpFhC,IAAekE,KAAOC,KAAAC,IAAAP,EAAC,CAAC,OAAC,kCAAE,oBAAc,QAAAM,MAAA,SAAA,SAAAA,EAAE,YAAM,QAAAD,MAAA,SAAAA,IAAI,KAAK,GAC1DhE,EAAAJ,KAAiBC,CAAM,CAAA;AAAA,GACxB;;AAEE,IAAAsE,IAAa,WAAWC,EAAc,KAAIjB,GAAI;AAAA;AAC9CnD,IAAAA,EAAAN,GAA4B,CAAA,CAAAmD,EAAO,YAAUtE,CAAgB,CAAA,CAAA;AAAA;;;QAC7DkB,GAAgBU,EACjBX,CAAS,KACR,CAAAW,EAAAzB,CAAM,QACNgB,CAAuB,KAAAS,EACvBP,CAAc,MAAKO,EAAAN,CAAM,OAAInB,CAAM,IAAA,CAAAyB,EAAIZ,CAAO,KAC9CY,EAAAP,CAAc,QAAKE,CAAY,KAAAK,EAAIzB,CAAM,IAAA,CAAAyB,EAAIJ,CAAa,CAAA;AAAA;;6BA7FzDJ,CAAe,KANfJ,CAAO,KA6FRG,CAAuB,KAnHqB2E,EAAS,KAE/CC,EAAK,KAgBV1E,CAAc,KAGdC,CAAM,KAINC,CAAY,KATZpB,CAA0B,KAU1BqB,CAAa,KAGbP,CAAS,KAuFVC,CAAgB;;;MAYjB,OAAK;AAAA,MACL,kCAAgC4C,IAAA8B,EAAY,EAAC,mBAAb,gBAAA9B,EAA6B,oBAAmB;AAAA,MAChF,mBAAA1C,CAAe;AAAA,MACf,WAAAJ,CAAO;AAAA,MACP,SAAS6B,EAAO;AAAA,MAChB,2BAAA1B,CAAuB;AAAA,MACvB,kBAAAR;AAAA,MACA,cAAcwD;AAAA,MACd,qBAAqB2B,GAAU,IAAIC,GAAM,MAAM;AAAA,MAC/C,kBAAgB,MAAAnE,EAASP,CAAc,MAAAO,EAAKN,CAAM,IAAAG,EAAIJ,GAAcO,EAAGL,CAAY,CAAA,IAAAE,EAAKJ,GAAcO,EAAGN,CAAM,CAAA;AAAA,MAC/G,gBAAc,MAAAM,EAASP,CAAc,MAAAO,EAAKN,CAAM,IAAAG,EAAItB,GAAM,CAAAyB,EAAIZ,CAAO,CAAA,IAAAS,EAAKtB,GAAM,CAAAyB,EAAIJ,CAAa,CAAA;AAAA,MACjG,aAAAP,CAAS;AAAA,MACT,oBAAAC,CAAgB;AAAA,MAChB,YAAWsE,IAAAQ,QAAA,gBAAAR,EAAoB,YAAY;AAAA,MAC3C,kBAAAnE,CAAc;AAAA,MACd,UAAAC,CAAM;AAAA,MACN,gBAAAC,CAAY;AAAA,MACZ,iBAAAC,CAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"SendTokens-D3cXqMmt.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 { ethers } from '@credenza3/core-web-evm-ext'\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 { getTxScanAddress } from '@src/lib/tx/tx'\n import { SendTokens } from '@packages/ui'\n import { getAddress } from '@src/passport/blockchain'\n import { configStore } from '@src/stores/config'\n import type { TEvmContract } from '@packages/utils/types'\n import { providerStore } from '@src/stores'\n import { getUserAddressBySub } from '@src/Passport.service'\n\n const config = get(configStore)\n const { sendTokens, getCREDContract, toastAlert } = get(fn)\n\n let userAddress = ''\n let recipientAddress = ''\n let amount: number | undefined\n\n let activeCurrency = ''\n\n let decimals = 18\n let symbol = '-'\n let balance = ''\n\n let nativeDecimals = 18\n let nativeSymbol = '-'\n let nativeBalance = ''\n\n let isScannerHidden = true\n let isLoading = false\n\n let contract: ethers.Contract\n let signer: ethers.JsonRpcSigner\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 const isTCRED = activeCurrency === symbol\n isLoading = true\n try {\n const weiBn = ethers.parseUnits(String(amount), isTCRED ? decimals : nativeDecimals)\n const result = (await sendTokens({\n address: recipientAddress,\n amount: weiBn,\n instance: isTCRED ? contract : undefined,\n })) as { hash: string; wait: () => Promise<void> }\n toastAlert(\n `<a href=\"${getTxScanAddress(result.hash)}\" target=\"_blank\">Send TX</a> was created`,\n )\n recipientAddress = ''\n amount = undefined\n\n const [weiBalance, weiNativeBalance] = await Promise.all([\n contract.balanceOf(userAddress),\n signer.provider.getBalance(userAddress),\n ])\n\n balance = ethers.formatUnits(weiBalance, decimals)\n nativeBalance = parseFloat(ethers.formatUnits(weiNativeBalance, nativeDecimals)).toFixed(4)\n dispatch(PassportEvents.RECHECK_BALANCE, [result.hash])\n } catch (err) {\n toastAlert(err?.message || err || 'An error occurred while sending tokens', 'failure')\n dispatch(PassportEvents.ERROR, { error: err })\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 const { decimals: contractDecimals, contract: credContract } = (await getCREDContract()) as TEvmContract\n decimals = contractDecimals\n contract = credContract\n const provider = get(providerStore)\n signer = await provider.getSigner()\n userAddress = await getAddress()\n const results = await Promise.all([\n contract.symbol(),\n contract.balanceOf(userAddress),\n provider.getBalance(userAddress),\n fetch('https://chainid.network/chains.json')\n .then((result) => result.json())\n .then((networks) =>\n networks.find((network: { chainId: number }) => String(network.chainId) === config.chainId),\n ),\n ])\n symbol = results[0]\n balance = ethers.formatUnits(results[1], decimals)\n nativeDecimals = results[3]?.nativeCurrency?.decimals ?? 18\n nativeBalance = parseFloat(ethers.formatUnits(results[2], nativeDecimals)).toFixed(4)\n nativeSymbol = results[3]?.nativeCurrency?.symbol ?? 'ETH'\n activeCurrency = symbol\n }\n\n $: $configStore.chainId && $providerStore && init()\n $: isRecipientAddressValid = !!ethers.isAddress(recipientAddress)\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 isNativeCurrecyTransferAllowed: $configStore.transferTokens?.nativeCurrency !== false,\n isScannerHidden,\n balance,\n chainId: config.chainId,\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 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","config","get","configStore","sendTokens","getCREDContract","toastAlert","fn","userAddress","$.mutable_source","decimals","nativeDecimals","contract","signer","scanner","Scanner","once","PassportEvents","_a","sub","address","getUserAddressBySub","err","sendTokensToRecipient","isTCRED","weiBn","ethers","result","getTxScanAddress","weiBalance","weiNativeBalance","dispatch","init","pageOpts","pageOptsStore","contractDecimals","credContract","provider","providerStore","getAddress","results","networks","network","_c","_b","_f","_e","_d","$configStore","$providerStore","pageStore","Pages","$clientPublicStore"],"mappings":";;;;;;;;;;;;;;MASaA,IAAwBC,GAAAC,GAAA,oBAAA,EAAA,GACxBC,IAA0BF,GAAAC,GAAA,UAAA,EAAA,GAE1BE,IAmBVH,GAAAC,GAAA,WAAA,EAAA;IAGC,kBAAAG;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gCAAAC,IAAiC;AAAA,MAC/BT,EAAO;QAaLU,IAAK,CAAIC,MAAiB,KAAK,MAAMA,IAAM,GAAG,IAAI;;MAXrDC,GAAUZ,EAAO,EAAC,OAAO;AAAA;MACzBa,IAAYb,EAAO,EAAC,SAAS;AAAA;MAC7Bc,GAAmBd,EAAO,EAAC,gBAAgB;AAAA;MAC3Ce,GAA0Bf,EAAO,EAAC,uBAAuB;AAAA;MACzDgB,GAAkBhB,EAAO,EAAC,eAAe;AAAA;MACzCiB,GAAiBjB,EAAO,EAAC,cAAc;AAAA;MACvCkB,GAASlB,EAAO,EAAC,MAAM;AAAA;MACvBmB,GAAenB,EAAO,EAAC,YAAY;AAAA;MACnCoB,GAAgBpB,EAAO,EAAC,aAAa;AAAA;;;AAErCqB,MAAAA,EAAAC,GAAuBC,GAAwBC,EAAAP,CAAc,GAAET,CAAS,CAAA;AAAA;;;AAM9D,QAAAiB,KAAAC,EAAA,MAAAF,EAAAR,CAAA,IAAA,KAET,kBAAkB;;;aAHhBX;AAAA;;;;;;;;;;;kCAawCC,CAAO,CAAA;;;MADhDA,KAAOqB,EAAAC,EAAA;AAAA;;;;;;;qCAOmBT,CAAY,KAAA,EAAA,IAAA;AAAA;mBA1BxCC,CAAa,GA0BTS,GAAA,MAAAnB,KAAOU,CAAa,CAAA,CAAA;AAAA;;;;;MADlBX,KAA8BkB,EAAAG,CAAA;AAAA;;;;;;;;;;aAerBlC,EAAgB;AAAA;;AAAhB,MAAAA,EAAgBmC,CAAA;AAAA;;;;;;;;;;AAEzB,MAAAnC,UAAqBmB,CAAuB,KAAAY,EAAAK,CAAA;AAAA;;;;;;0BA4BjCV,CAAoB,CAAA,SAAA;;;;;;;;;aACxBvB,EAAM;AAAA;;AAAN,MAAAA,EAAMgC,CAAA;AAAA;;;;AAGuC,QAAAE,KAAAP,EAAA,MAAA,CAAAF,EAAAZ,CAAO,KAAI,CAAC;;;aAApDV;AAAA;;;;;;;;;;4BAQFe,CAAc,CAAA;;;iBAFhBhB;AAAA;;mBACHqB,CAAoB;AAAA;;;;;;;MAJ3Bb,KAA8BkB,EAAAO,EAAA;AAAA;;;;6BAYrBnC,EAAM,KAAI,EAAE,IAAAyB,EAAIF,CAAoB,CAAA,EAAA;;;aADzClB;AAAA;;;;;;;;eAGCU,CAAgB;AAAA;;;;;aAIPX;AAAA;;;qOAzCVgC,EAAQ;AAAA;;;yBAtCEnB,CAAe;AAAA,yBACfA,CAAe;AAAA;eAzBjCJ,CAAO,GAqCLiB,GAAA,MAAAnB,KAAOE,CAAO,CAAA,CAAA;AAAA,eA3EVW,EAAuB,KA4C7BL,CAAM,YA+BcK,GAAuBC,EAACN,CAAM,GAAEV,CAAS,CAAA;AAAA;;oBA0BhDD,CAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5GjB,MAAA6B,IAAA,QAAA,KAAA,aAAA,SAAAC,GAAAC,GAAAC,GAAAC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgBTC,IAASC,GAAIC,EAAW,GACtB,EAAA,YAAAC,GAAY,iBAAAC,GAAiB,YAAAC,EAAU,IAAKJ,GAAIK,EAAE;AAEtD,MAAAC,IAAc,IACdpD,MAAmB,EAAE,GACrBG,IAA0BkD,EAAA,GAE1BhC,MAAiB,EAAE,GAEnBiC,IAAW,IACXhC,MAAS,GAAG,GACZN,MAAU,EAAE,GAEZuC,IAAiB,IACjBhC,MAAe,GAAG,GAClBC,MAAgB,EAAE,GAElBJ,MAAkB,EAAI,GACtBH,MAAY,EAAK,GAEjBuC,GACAC,IACAC;AAEE,QAAA/C,KAA8B,MAAA6B,EAAA,QAAA,QAAA,QAAA,aAAA;AAC1B,UAAA,EAAA,SAAAmB,EAAO,iBAAkB,0BAAwB;AACzD,IAAAD,IAAc,IAAAC,EAAU,EAAA,QAAQ,mBAAkB,CAAA,GAClDC,GAAKC,GAAe,WAAWH,EAAQ,KAAK,GACtC,MAAAA,EAAQ,KAAI,GAClBA,EAAQ,GAAGC,EAAQ,OAAO,SAAS,CAAAG,MAAmCtB,EAA1B,QAAA,CAAAsB,CAAA,GAAA,QAAA,WAAA,EAAA,KAAAC,EAAG,GAAmB;cACxD,SAAAC,EAAO,IAAA,MAAWC,GAAoBF,CAAG;AACjDtC,MAAAA,EAAAzB,GAAmBgE,CAAO,GAC1BN,EAAQ,MAAK;AAAA,KACd,CAAA,GACDA,EAAQ,GAAGC,EAAQ,OAAO,QAAM,MAAAlC,EAASL,GAAkB,EAAI,CAAA,GAC/DsC,EAAQ,GAAGC,EAAQ,OAAO,OAAQ,CAAAO,MAAO;AAEnC,QADYA,KAAA,gBAAAA,EAAK,YAAWA,GACpB,SAAS,YAAY,KAC/B,MAAM,qFAAqF,GAC7FzC,EAAAL,GAAkB,EAAI;AAAA,KACvB,GACDK,EAAAL,GAAkB,EAAK;AAAA,GACxB,GAEK+C,KAAmC,MAAA3B,EAAA,QAAA,QAAA,QAAA,aAAA;UACjC4B,IAAOxC,EAAGP,CAAc,MAAAO,EAAKN,CAAM;AACzCG,IAAAA,EAAAR,GAAY,EAAI;AACZ,QAAA;AACI,YAAAoD,IAAQC,EAAO,WAAW,OAAO1C,EAAAzB,CAAM,CAAG,GAAAiE,IAAUd,IAAWC,CAAc,GAC7EgB,UAAgBvB,EAAU;AAAA,QAC9B,WAAShD,CAAgB;AAAA,QACzB,QAAQqE;AAAA,QACR,UAAUD,IAAUZ,IAAW;AAAA;AAEjC,MAAAN,EACc,YAAAsB,GAAiBD,EAAO,IAAI,CAAA,2CAAA,GAE1C9C,EAAAzB,GAAmB,EAAE,GACrByB,EAAAtB,GAAS,MAAS;AAEX,YAAA,CAAAsE,GAAYC,CAAgB,IAAU,MAAA,QAAQ,IAAG;AAAA,QACtDlB,EAAS,UAAUJ,CAAW;AAAA,QAC9BK,GAAO,SAAS,WAAWL,CAAW;AAAA;AAGxC3B,MAAAA,EAAAT,GAAUsD,EAAO,YAAYG,GAAYnB,CAAQ,CAAA,GACjD7B,EAAAD,GAAgB,WAAW8C,EAAO,YAAYI,GAAkBnB,CAAc,CAAG,EAAA,QAAQ,CAAC,CAAA,GAC1FoB,GAASd,GAAe,iBAAkB,CAAAU,EAAO,IAAI,CAAA;AAAA,IACvD,SAASL,GAAK;AACZ,MAAAhB,GAAWgB,KAAA,OAAA,SAAAA,EAAK,YAAWA,KAAO,0CAA0C,SAAS,GACrFS,GAASd,GAAe,OAAS,EAAA,OAAOK,EAAG,CAAA;AAAA,IAC7C;AACAzC,IAAAA,EAAAR,GAAY,EAAK;AAAA,GAClB,GAEK2D,KAAkB,MAAApC,EAAA,QAAA,QAAA,QAAA,aAAA;;UAChBqC,IAAW/B,GAAIgC,EAAa;MAClC9E,IAAmB6E,KAAA,gBAAAA,EAAU,OAAM,EAAE,KACrC1E,IAAS0E,KAAA,gBAAAA,EAAU,WAAU,MAAS;;MAC9B,UAAUE;AAAA,MAAkB,UAAUC;AAAA,cAAwB/B,EAAe;AACrF,IAAAK,IAAWyB,GACXvB,IAAWwB;UACLC,IAAWnC,GAAIoC,EAAa;AAClC,IAAAzB,KAAM,MAASwB,EAAS,UAAS,GACjC7B,UAAoB+B,GAAU;UACxBC,IAAO,MAAS,QAAQ,IAAG;AAAA,MAC/B5B,EAAS,OAAM;AAAA,MACfA,EAAS,UAAUJ,CAAW;AAAA,MAC9B6B,EAAS,WAAW7B,CAAW;AAAA,MAC/B,MAAM,qCAAqC,EACxC,KAAM,CAAAmB,MAAWA,EAAO,MACxB,EAAA,KAAM,CAAAc,MACLA,EAAS,KAAM,CAAAC,OAAiC,OAAOA,GAAQ,OAAO,MAAMzC,EAAO,OAAO,CAAA;AAAA;MAGhGvB,GAAS8D,EAAQ,CAAC,CAAA,KAClBpE,GAAUsD,EAAO,YAAYc,EAAQ,CAAC,GAAG9B,CAAQ,CAAA,GACjDC,KAAiBgC,KAAOC,KAAA1B,IAAAsB,EAAC,CAAC,OAAC,kCAAE,oBAAc,QAAAI,MAAA,SAAA,SAAAA,EAAE,cAAQ,QAAAD,MAAA,SAAAA,IAAI,IACzD9D,EAAAD,GAAgB,WAAW8C,EAAO,YAAYc,EAAQ,CAAC,GAAG7B,CAAc,CAAG,EAAA,QAAQ,CAAC,CAAA,KACpFhC,IAAekE,KAAOC,KAAAC,IAAAP,EAAC,CAAC,OAAC,kCAAE,oBAAc,QAAAM,MAAA,SAAA,SAAAA,EAAE,YAAM,QAAAD,MAAA,SAAAA,IAAI,KAAK,GAC1DhE,EAAAJ,KAAiBC,CAAM,CAAA;AAAA,GACxB;;AAEE,IAAAsE,IAAa,WAAWC,EAAc,KAAIjB,GAAI;AAAA;AAC9CnD,IAAAA,EAAAN,GAA4B,CAAA,CAAAmD,EAAO,YAAUtE,CAAgB,CAAA,CAAA;AAAA;;;QAC7DkB,GAAgBU,EACjBX,CAAS,KACR,CAAAW,EAAAzB,CAAM,QACNgB,CAAuB,KAAAS,EACvBP,CAAc,MAAKO,EAAAN,CAAM,OAAInB,CAAM,IAAA,CAAAyB,EAAIZ,CAAO,KAC9CY,EAAAP,CAAc,QAAKE,CAAY,KAAAK,EAAIzB,CAAM,IAAA,CAAAyB,EAAIJ,CAAa,CAAA;AAAA;;6BA7FzDJ,CAAe,KANfJ,CAAO,KA6FRG,CAAuB,KAnHqB2E,EAAS,KAE/CC,EAAK,KAgBV1E,CAAc,KAGdC,CAAM,KAINC,CAAY,KATZpB,CAA0B,KAU1BqB,CAAa,KAGbP,CAAS,KAuFVC,CAAgB;;;MAYjB,OAAK;AAAA,MACL,kCAAgC4C,IAAA8B,EAAY,EAAC,mBAAb,gBAAA9B,EAA6B,oBAAmB;AAAA,MAChF,mBAAA1C,CAAe;AAAA,MACf,WAAAJ,CAAO;AAAA,MACP,SAAS6B,EAAO;AAAA,MAChB,2BAAA1B,CAAuB;AAAA,MACvB,kBAAAR;AAAA,MACA,cAAcwD;AAAA,MACd,qBAAqB2B,GAAU,IAAIC,GAAM,MAAM;AAAA,MAC/C,kBAAgB,MAAAnE,EAASP,CAAc,MAAAO,EAAKN,CAAM,IAAAG,EAAIJ,GAAcO,EAAGL,CAAY,CAAA,IAAAE,EAAKJ,GAAcO,EAAGN,CAAM,CAAA;AAAA,MAC/G,gBAAc,MAAAM,EAASP,CAAc,MAAAO,EAAKN,CAAM,IAAAG,EAAItB,GAAM,CAAAyB,EAAIZ,CAAO,CAAA,IAAAS,EAAKtB,GAAM,CAAAyB,EAAIJ,CAAa,CAAA;AAAA,MACjG,aAAAP,CAAS;AAAA,MACT,oBAAAC,CAAgB;AAAA,MAChB,YAAWsE,IAAAQ,QAAA,gBAAAR,EAAoB,YAAY;AAAA,MAC3C,kBAAAnE,CAAc;AAAA,MACd,UAAAC,CAAM;AAAA,MACN,gBAAAC,CAAY;AAAA,MACZ,iBAAAC,CAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { c as k, p as j, f as E, b as $, d as O, u as q, h as A, n as F, o as w } from "./legacy-
|
|
2
|
-
import { v as z, y, E as x, z as B, u as I, L as K, N as L, K as M, I as N, b4 as R, a1 as U, O as G, W as J } from "./index-
|
|
3
|
-
import { C as P } from "./App-
|
|
4
|
-
import { C as Q } from "./ContentHeader-
|
|
5
|
-
import { B as b } from "./Button-
|
|
1
|
+
import { c as k, p as j, f as E, b as $, d as O, u as q, h as A, n as F, o as w } from "./legacy-C1UsO_tu.js";
|
|
2
|
+
import { v as z, y, E as x, z as B, u as I, L as K, N as L, K as M, I as N, b4 as R, a1 as U, O as G, W as J } from "./index-B0D9qQ_O.js";
|
|
3
|
+
import { C as P } from "./App-C9I9989L.js";
|
|
4
|
+
import { C as Q } from "./ContentHeader-DtB3AfgZ.js";
|
|
5
|
+
import { B as b } from "./Button-D5CGIu8s.js";
|
|
6
6
|
var V = E("<!> <!>", 1), X = E("<!> <!>", 1);
|
|
7
7
|
function D(i, r) {
|
|
8
8
|
if (new.target) return k({ component: D, ...i });
|
|
@@ -104,4 +104,4 @@ function Y(i, r) {
|
|
|
104
104
|
export {
|
|
105
105
|
Y as default
|
|
106
106
|
};
|
|
107
|
-
//# sourceMappingURL=Sign-
|
|
107
|
+
//# sourceMappingURL=Sign-IQLTbDiV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sign-
|
|
1
|
+
{"version":3,"file":"Sign-IQLTbDiV.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 { providerStore, configStore } from '@src/stores'\n import socketFn from '@lib/ws/socket-io'\n\n const { close } = get(fn)\n\n const handleSignTransaction = async () => {\n const signer = await $providerStore.getSigner()\n const signature = await signer.signMessage($pageOptsStore.message)\n socketFn.signDataAndEmitEvent($configStore.credenza.generalWssUrl, signature, $pageOptsStore.socketEventDataHeaders)\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","$providerStore","$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;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQP,OAAAC,EAAK,IAAKC,EAAIC,CAAE,GAElBC,IAAmC,MAAAR,EAAA,QAAA,QAAA,QAAA,aAAA;AAEjC,UAAAS,WADM,MAASC,EAAc,EAAC,UAAS,GACd,YAAYC,EAAc,EAAC,OAAO;AACjE,IAAAC,EAAS,qBAAqBC,IAAa,SAAS,eAAeJ,GAAWE,IAAe,sBAAsB,GACnHN,EAAK;AAAA,GACN;;;IAKC,OAAO;AAAA,IACP,aAAa;AAAA,IACb,UAAUA;AAAA,IACV,WAAWG;AAAA;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as a, O as h, W as g, b5 as _, M as f, P as k,
|
|
2
|
-
import { g as
|
|
1
|
+
import { L as a, O as h, W as g, b5 as _, M as f, P as k, bB as P, b1 as O, a2 as w, bf as I } from "./index-B0D9qQ_O.js";
|
|
2
|
+
import { g as C, r as S } from "./Payment-DVlaKx-E.js";
|
|
3
3
|
const v = async (n) => {
|
|
4
4
|
var o, l;
|
|
5
5
|
const e = a(h), s = ((o = e.tokens) == null ? void 0 : o.map(
|
|
@@ -30,7 +30,7 @@ const v = async (n) => {
|
|
|
30
30
|
const { _id: m } = await c.json();
|
|
31
31
|
return m;
|
|
32
32
|
}, u = async (n) => {
|
|
33
|
-
const e = a(g), s = a(h), t = await
|
|
33
|
+
const e = a(g), s = a(h), t = await C(e.credenza.generalApiUrl, n);
|
|
34
34
|
return t.payment_provider_tx && (await S({
|
|
35
35
|
stripeChargeId: t.payment_provider_tx,
|
|
36
36
|
title: s.title,
|
|
@@ -45,7 +45,7 @@ const v = async (n) => {
|
|
|
45
45
|
chainId: e.chainId,
|
|
46
46
|
email: d,
|
|
47
47
|
phone: c
|
|
48
|
-
})})`, o =
|
|
48
|
+
})})`, o = I(e.clientId).name, r = {
|
|
49
49
|
card_token: (e.stripe.pk[o] ?? e.stripe.pk.DEFAULT).includes("pk_live") ? n : "tok_visa",
|
|
50
50
|
client: o,
|
|
51
51
|
description: m,
|
|
@@ -58,4 +58,4 @@ const v = async (n) => {
|
|
|
58
58
|
export {
|
|
59
59
|
T as processPayment
|
|
60
60
|
};
|
|
61
|
-
//# sourceMappingURL=Stripe.service-
|
|
61
|
+
//# sourceMappingURL=Stripe.service-GlcYQnp5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stripe.service-
|
|
1
|
+
{"version":3,"file":"Stripe.service-GlcYQnp5.js","sources":["../src/app/pages/payment/order.service.ts","../src/app/pages/payment/stripe/Stripe.service.ts"],"sourcesContent":["import { get } from 'svelte/store'\nimport { pageOptsStore, accessTokenStore } from '@packages/stores'\nimport { requestReceipt } from './Payment.service'\nimport { attachMetadataToItems } from '@src/passport/blockchain'\nimport { configStore } from '@src/stores/config'\nimport { PassportEvents, dispatch } from '@lib/events/events'\nimport { getCompmletedOrderDetails } from '@lib/orders'\nimport { type TPaymentReturn } from '@packages/utils/types'\nimport type { TMembershipPaymentData, TBasicPaymentData, TTokenPaymentData } from './oders.types'\n\n\nexport const createOrder = async (body: TBasicPaymentData): Promise<string> => {\n const paymentOpts = get(pageOptsStore)\n\n const tokensPaymentData: TTokenPaymentData[] =\n paymentOpts.tokens?.map(\n ({\n contractAddress,\n tokenId,\n amount,\n }: {\n contractAddress: string\n tokenId: number\n amount: string | number\n }) => ({\n contract_address: contractAddress,\n token_id: +tokenId,\n amount,\n }),\n ) || []\n\n const membershipsPaymentData: TMembershipPaymentData[] =\n paymentOpts.memberships?.map(({ contractAddress }: { contractAddress: string }) => ({\n contract_address: contractAddress,\n })) || []\n\n const payload = {\n ...body,\n tokens: tokensPaymentData,\n memberships: membershipsPaymentData\n }\n\n\n const config = get(configStore)\n const res = await fetch(config.credenza.evmApiUrl + '/contracts/buy-assets', {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${get(accessTokenStore)}`,\n },\n method: 'POST',\n body: JSON.stringify(payload),\n })\n if (!res.ok) throw new Error('Failed to create order')\n const { _id }: { _id: string } = await res.json()\n\n return _id\n}\n\nexport const processOrder = async (orderId: string): Promise<TPaymentReturn> => {\n const config = get(configStore)\n const paymentOpts = get(pageOptsStore)\n\n const data = (await getCompmletedOrderDetails(config.credenza.generalApiUrl, orderId)) as TPaymentReturn\n\n if (data.payment_provider_tx) {\n await requestReceipt({\n stripeChargeId: data.payment_provider_tx,\n title: paymentOpts.title,\n subtitle: paymentOpts.subtitle,\n })\n dispatch(PassportEvents.RECEIPT, { stripeChargeId: data.payment_provider_tx })\n }\n \n await attachMetadataToItems(data.items)\n return data\n}","import { get } from 'svelte/store'\nimport { userStore, pageOptsStore } from '@packages/stores'\nimport { getAddress } from '@src/passport/blockchain'\nimport { configStore } from '@src/stores/config'\nimport { getClientConfigByClientId } from '@lib/clients'\nimport { processOrder, createOrder } from '../order.service'\nimport type { TBasicPaymentData } from '../oders.types'\n\n\nexport const processPayment = async (stripeTokenId: string) => {\n const config = get(configStore)\n const paymentOpts = get(pageOptsStore)\n const user = get(userStore)\n const userAddress = await getAddress()\n\n const email = user?.email || user?.pending?.email\n const phone = user?.phone || user?.pending?.phone\n const description =\n 'Passport Payment: ' +\n `(${JSON.stringify({\n ...paymentOpts.tokens,\n ...paymentOpts.memberships,\n userAddress,\n chainId: config.chainId,\n email,\n phone,\n })})`\n\n const clientName = getClientConfigByClientId(config.clientId).name\n const stripePK = config.stripe.pk[clientName] ?? config.stripe.pk.DEFAULT\n const basicPaymentData: TBasicPaymentData = {\n card_token: stripePK.includes('pk_live') ? stripeTokenId : 'tok_visa',\n client: clientName,\n description,\n address: userAddress,\n chain_id: Number(config.chainId),\n currency: 'USD',\n }\n\n const order = await createOrder(basicPaymentData)\n return await processOrder(order)\n}\n"],"names":["createOrder","body","paymentOpts","get","pageOptsStore","tokensPaymentData","_a","contractAddress","tokenId","amount","membershipsPaymentData","_b","payload","config","configStore","res","accessTokenStore","_id","processOrder","orderId","data","getCompmletedOrderDetails","requestReceipt","dispatch","PassportEvents","attachMetadataToItems","processPayment","stripeTokenId","user","userStore","userAddress","getAddress","email","phone","description","clientName","getClientConfigByClientId","basicPaymentData","order"],"mappings":";;AAWa,MAAAA,IAAc,OAAOC,MAA6C;;AACvE,QAAAC,IAAcC,EAAIC,CAAa,GAE/BC,MACJC,IAAAJ,EAAY,WAAZ,gBAAAI,EAAoB;AAAA,IAClB,CAAC;AAAA,MACC,iBAAAC;AAAA,MACA,SAAAC;AAAA,MACA,QAAAC;AAAA,IAAA,OAKK;AAAA,MACL,kBAAkBF;AAAA,MAClB,UAAU,CAACC;AAAA,MACX,QAAAC;AAAA,IACF;AAAA,QACG,CAAC,GAEFC,MACJC,IAAAT,EAAY,gBAAZ,gBAAAS,EAAyB,IAAI,CAAC,EAAE,iBAAAJ,SAAoD;AAAA,IAClF,kBAAkBA;AAAA,EACpB,QAAO,CAAC,GAEJK,IAAU;AAAA,IACd,GAAGX;AAAA,IACH,QAAQI;AAAA,IACR,aAAaK;AAAA,EACf,GAGMG,IAASV,EAAIW,CAAW,GACxBC,IAAM,MAAM,MAAMF,EAAO,SAAS,YAAY,yBAAyB;AAAA,IAC3E,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,eAAe,UAAUV,EAAIa,CAAgB,CAAC;AAAA,IAChD;AAAA,IACA,QAAQ;AAAA,IACR,MAAM,KAAK,UAAUJ,CAAO;AAAA,EAAA,CAC7B;AACD,MAAI,CAACG,EAAI,GAAU,OAAA,IAAI,MAAM,wBAAwB;AACrD,QAAM,EAAE,KAAAE,EAAA,IAAyB,MAAMF,EAAI,KAAK;AAEzC,SAAAE;AACT,GAEaC,IAAe,OAAOC,MAA6C;AACxE,QAAAN,IAASV,EAAIW,CAAW,GACxBZ,IAAcC,EAAIC,CAAa,GAE/BgB,IAAQ,MAAMC,EAA0BR,EAAO,SAAS,eAAeM,CAAO;AAEpF,SAAIC,EAAK,wBACP,MAAME,EAAe;AAAA,IACnB,gBAAgBF,EAAK;AAAA,IACrB,OAAOlB,EAAY;AAAA,IACnB,UAAUA,EAAY;AAAA,EAAA,CACvB,GACDqB,EAASC,EAAe,SAAS,EAAE,gBAAgBJ,EAAK,qBAAqB,IAGzE,MAAAK,EAAsBL,EAAK,KAAK,GAC/BA;AACT,GClEaM,IAAiB,OAAOC,MAA0B;;AACvD,QAAAd,IAASV,EAAIW,CAAW,GACxBZ,IAAcC,EAAIC,CAAa,GAC/BwB,IAAOzB,EAAI0B,CAAS,GACpBC,IAAc,MAAMC,EAAW,GAE/BC,KAAQJ,KAAA,gBAAAA,EAAM,YAAStB,IAAAsB,KAAA,gBAAAA,EAAM,YAAN,gBAAAtB,EAAe,QACtC2B,KAAQL,KAAA,gBAAAA,EAAM,YAASjB,IAAAiB,KAAA,gBAAAA,EAAM,YAAN,gBAAAjB,EAAe,QACtCuB,IACJ,sBACI,KAAK,UAAU;AAAA,IACjB,GAAGhC,EAAY;AAAA,IACf,GAAGA,EAAY;AAAA,IACf,aAAA4B;AAAA,IACA,SAASjB,EAAO;AAAA,IAChB,OAAAmB;AAAA,IACA,OAAAC;AAAA,EACD,CAAA,CAAC,KAEEE,IAAaC,EAA0BvB,EAAO,QAAQ,EAAE,MAExDwB,IAAsC;AAAA,IAC1C,aAFexB,EAAO,OAAO,GAAGsB,CAAU,KAAKtB,EAAO,OAAO,GAAG,SAE3C,SAAS,SAAS,IAAIc,IAAgB;AAAA,IAC3D,QAAQQ;AAAA,IACR,aAAAD;AAAA,IACA,SAASJ;AAAA,IACT,UAAU,OAAOjB,EAAO,OAAO;AAAA,IAC/B,UAAU;AAAA,EACZ,GAEMyB,IAAQ,MAAMtC,EAAYqC,CAAgB;AACzC,SAAA,MAAMnB,EAAaoB,CAAK;AACjC;"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { c as ee, m as Ee, p as _, h as fe, f as R, i as H, w as me, r as Y, b as k, k as Pe, e as Se, d as te, u as ae, t as Ce, o as pe, n as De } from "./legacy-
|
|
2
|
-
import { o as Ie } from "./index-client-
|
|
3
|
-
import { v as re, B as U, E as I, C as B, D as M, G as Q, K as e, A as Z, z as ne, u as b, J as i, m as E, w as _e, x as be, y as se, F as ie, L as ge, N as ke, b1 as Ve, b0 as W, b2 as oe, I as Ue, W as Be, S as de, R as Re } from "./index-
|
|
1
|
+
import { c as ee, m as Ee, p as _, h as fe, f as R, i as H, w as me, r as Y, b as k, k as Pe, e as Se, d as te, u as ae, t as Ce, o as pe, n as De } from "./legacy-C1UsO_tu.js";
|
|
2
|
+
import { o as Ie } from "./index-client-z9rIkUyw.js";
|
|
3
|
+
import { v as re, B as U, E as I, C as B, D as M, G as Q, K as e, A as Z, z as ne, u as b, J as i, m as E, w as _e, x as be, y as se, F as ie, L as ge, N as ke, b1 as Ve, b0 as W, b2 as oe, I as Ue, W as Be, S as de, R as Re } from "./index-B0D9qQ_O.js";
|
|
4
4
|
import { v as he, P as Ae } from "./validation-DaZvZUPL.js";
|
|
5
|
-
import { C as Le } from "./App-
|
|
6
|
-
import { L as ue } from "./Label-
|
|
7
|
-
import { I as ve } from "./Input-
|
|
8
|
-
import { B as ze } from "./ButtonBack-
|
|
9
|
-
import { B as Ne } from "./Button-
|
|
10
|
-
import { e as Oe, i as Fe } from "./each-
|
|
5
|
+
import { C as Le } from "./App-C9I9989L.js";
|
|
6
|
+
import { L as ue } from "./Label-CVUbL1bW.js";
|
|
7
|
+
import { I as ve } from "./Input-B40ySJRz.js";
|
|
8
|
+
import { B as ze } from "./ButtonBack-DiIG6luz.js";
|
|
9
|
+
import { B as Ne } from "./Button-D5CGIu8s.js";
|
|
10
|
+
import { e as Oe, i as Fe } from "./each-tAR3XqEj.js";
|
|
11
11
|
var Te = R('<label class="crtw-font-medium" for="credenzaSelect"> </label>'), je = R("<option> </option>"), $e = R("<option> </option>"), qe = R('<div><!> <select name="credenzaSelect"><!><!></select></div>');
|
|
12
12
|
const Ge = {
|
|
13
13
|
hash: "svelte-1dzo0ix",
|
|
@@ -519,4 +519,4 @@ function Ze(V, l) {
|
|
|
519
519
|
export {
|
|
520
520
|
Ze as default
|
|
521
521
|
};
|
|
522
|
-
//# sourceMappingURL=UpdateProfile-
|
|
522
|
+
//# sourceMappingURL=UpdateProfile-D4bg5GEF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateProfile-CsxQubeT.js","sources":["../../ui/main/shared/inputs/select/Select.svelte","../../ui/main/shared/inputs/phone/PhoneInput.constants.ts","../../ui/main/shared/inputs/phone/PhoneInput.svelte","../../ui/main/update-profile/UpdateProfile.svelte","../src/app/pages/update-profile/UpdateProfile.svelte"],"sourcesContent":["<style>\n .simple {\n background-image: none;\n padding: 0 10px;\n text-align: center; \n }\n .simple:focus {\n background-image: none;\n }\n</style>\n\n<script lang=\"ts\">\n export let options: { value: string; name?: string }[]\n export let placeholder: string | undefined = undefined\n export let label: string | undefined = undefined\n export let selected: string | undefined = undefined\n export let onChange: undefined | ((...args: unknown[]) => unknown) = undefined\n export let simple: boolean = false\n export let disabled: boolean = false\n\n const handleChange = (e: Event) => {\n const target = e.target as HTMLSelectElement\n if (selected !== undefined) selected = target.value\n if (onChange) onChange(e)\n }\n</script>\n\n<div>\n {#if label}\n <label class=\"crtw-font-medium\" for=\"credenzaSelect\">{label}</label>\n {/if}\n <select\n class=\"crtw-w-full crtw-h-[53px] crtw-px-5 crtw-appearance-none crtw-text-base crtw-rounded crtw-border crtw-border-gray-300\n crtw-cursor-pointer crtw-text-gray-500 focus:crtw-outline-none focus:crtw-border-blue-900 focus:crtw-text-blue-900\n {simple ? 'simple' : ''}\"\n name=\"credenzaSelect\"\n on:change={handleChange}\n {disabled}\n >\n {#if placeholder}\n <option disabled={true} selected={!selected} hidden={true}>{placeholder}</option>\n {/if}\n {#each options as item}\n <option value={item.value} selected={selected === item.value}> {item.name ?? item.value} </option>\n {/each}\n </select>\n</div>\n","export const countryCodes = [\n { value: '+1', name: 'US/CA +1' },\n { value: '+49', name: 'DE +49' },\n { value: '+33', name: 'FR +33' },\n { value: '+44', name: 'UK +44' },\n { value: '+380', name: 'UA +380' },\n { value: '+48', name: 'PL +48' },\n { value: '+233', name: 'GH +233' },\n]\n","<script lang=\"ts\">\n import Select from '../select/Select.svelte'\n import Input from '../input/Input.svelte'\n import { PHONE_PATTERN, validate } from '../../../../../utils/lib/validation/validation'\n import { countryCodes } from './PhoneInput.constants'\n\n export let phone: string\n export let isValid: boolean = true\n export let disabled: boolean = false\n\n let selectedCountryCode: string = countryCodes[0].value\n let number: number | null\n\n if (phone) {\n for (const countryCode of countryCodes) {\n if (phone.indexOf(countryCode.value) === 0) {\n number = parseInt(phone.slice(countryCode.value.length))\n selectedCountryCode = countryCode.value\n break\n }\n }\n }\n\n $: {\n isValid = !number || validate(String(number), PHONE_PATTERN)\n isValid && selectedCountryCode && number ? (phone = selectedCountryCode + String(number).trim()) : ''\n }\n</script>\n\n<div class=\"crtw-flex crtw-justify-center crtw-flex-row\">\n <div class=\"crtw-w-40 crtw-mr-0.5\">\n <Select options={countryCodes} simple bind:selected={selectedCountryCode} {disabled} />\n </div>\n <Input\n type=\"number\"\n min=\"0\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n placeholder=\"Phone Number\"\n bind:value={number}\n name=\"phone\"\n {disabled}\n />\n</div>\n","<script lang=\"ts\">\n import Container from \"../shared/Container.svelte\";\n import Label from \"../shared/inputs/input/Label.svelte\";\n import Input from \"../shared/inputs/input/Input.svelte\";\n import ButtonBack from \"../shared/inputs/button-back/ButtonBack.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n import PhoneInput from \"../shared/inputs/phone/PhoneInput.svelte\";\n\n export let name: string;\n export let email: string;\n export let phone: string;\n export let isSubmitDisabled: boolean;\n export let error: string | null;\n export let isEmailInputValid: boolean;\n export let options: {\n isExtendedRegistration: boolean | undefined;\n onProfileUpdate: () => void;\n onBackClick: () => void;\n shouldShowBackButton: boolean;\n isEmailChangeDisabled: boolean;\n isPhoneChangeDisabled: boolean;\n };\n\n let {\n isExtendedRegistration,\n onProfileUpdate,\n onBackClick,\n shouldShowBackButton,\n isEmailChangeDisabled,\n isPhoneChangeDisabled,\n } = options;\n</script>\n\n<Container class=\"crtw-flex crtw-justify-center crtw-flex-col crtw-gap-2.5\">\n <div class=\"crtw-flex crtw-flex-col\">\n <Label for=\"NameInput\"\n >First and last name\n {#if isExtendedRegistration}\n <span class=\"crtw-text-red-500\">*</span>\n {/if}\n </Label>\n <Input\n id=\"NameInput\"\n type=\"text\"\n placeholder=\"First and last name\"\n bind:value={name}\n name=\"name\"\n required={isExtendedRegistration}\n />\n </div>\n\n <div class=\"crtw-flex crtw-flex-col\">\n <Label for=\"EmailInput\"\n >Email address\n {#if isExtendedRegistration}\n <span class=\"crtw-text-red-500\">*</span>\n {/if}\n </Label>\n <Input\n id=\"EmailInput\"\n type=\"email\"\n bind:isValid={isEmailInputValid}\n placeholder=\"Email address\"\n bind:value={email}\n name=\"email\"\n disabled={isEmailChangeDisabled}\n />\n </div>\n\n <div class=\"crtw-flex crtw-flex-col\">\n <Label for=\"PhoneInput\">Phone number</Label>\n <PhoneInput bind:phone disabled={isPhoneChangeDisabled} />\n </div>\n\n <Button\n text=\"Update profile\"\n onClick={onProfileUpdate}\n disabled={isSubmitDisabled}\n />\n\n {#if error}\n <div class=\"crtw-text-xs crtw-text-[#990008]\">\n - {error}\n </div>\n {/if}\n\n {#if shouldShowBackButton}\n <div class=\"crtw-text-left crtw-mt-2.5 crtw-w-full\">\n <ButtonBack onClick={onBackClick} />\n </div>\n {/if}\n</Container>\n","<script lang=\"ts\">\n import { onDestroy } from 'svelte'\n import { get } from 'svelte/store'\n import { validate } from '@lib/validation/validation'\n import { fn, userStore, pageStore, forcedPageStore } from '@packages/stores'\n import { Pages } from '@packages/utils/enums'\n import { UpdateProfile } from '@packages/ui'\n import { type TUser } from '@packages/utils/types'\n import { configStore } from '@src/stores/config'\n\n const { updateProfile, close, toastAlert } = get(fn)\n\n let email: string\n let name: string\n let phone: string\n\n let currentUser: TUser\n\n let isEmailChangeDisabled: boolean\n let isPhoneChangeDisabled: boolean\n let isSubmitDisabled: boolean\n\n const unsubscribeUserStore = userStore.subscribe((user) => {\n if (!user) {\n forcedPageStore.set(null)\n close()\n return\n }\n\n name = user.name || ''\n email = user.email || ''\n phone = user.phone || ''\n currentUser = user\n\n \n const isSocialLoginType =\n user.login_type !== 'credentials' && user.login_type !== 'passwordless'\n isEmailChangeDisabled = !!user.pending?.email || isSocialLoginType\n isPhoneChangeDisabled = !!user.pending?.phone || isSocialLoginType\n })\n\n let isLoading = false\n let isEmailValid: boolean = false\n let isEmailInputValid: boolean = true\n let isNameValid: boolean = true\n let error: string = ''\n\n const executeProfileUpdate = async () => {\n error = ''\n isLoading = true\n try {\n const newData = {\n ...(currentUser.email !== email ? { email } : {}),\n ...(currentUser.name !== name ? { name } : {}),\n ...(currentUser.phone !== phone ? { phone } : {}),\n }\n const updatedUser = await updateProfile(newData)\n forcedPageStore.set(null)\n\n toastAlert(\n 'Account has been updated successfully. Email or phone should be confirmed by entering one-time code.',\n 'success',\n )\n const page = get(pageStore)\n if (!updatedUser?.pending?.phone && !updatedUser?.pending?.email && (!page || page === Pages.UPDATE_PROFILE))\n close()\n } catch (err) {\n const errorText = err?.message || 'Error while updating your account details.'\n toastAlert(errorText, 'failure')\n error = errorText\n }\n isLoading = false\n }\n\n $: {\n isEmailValid = validate(email)\n isEmailInputValid = !email || isEmailValid\n\n $configStore.auth?.extendedRegistration && (isNameValid = !!name)\n\n isSubmitDisabled = isLoading || !isEmailInputValid || !isNameValid\n }\n\n onDestroy(unsubscribeUserStore)\n</script>\n\n<UpdateProfile\n bind:error\n bind:name\n bind:email\n bind:phone\n bind:isSubmitDisabled\n bind:isEmailInputValid\n options={{\n isExtendedRegistration: $configStore.auth?.extendedRegistration,\n onProfileUpdate: executeProfileUpdate,\n onBackClick: () => forcedPageStore.set(null),\n shouldShowBackButton: $forcedPageStore === Pages.UPDATE_PROFILE,\n isEmailChangeDisabled,\n isPhoneChangeDisabled,\n }}\n/>\n"],"names":["options","$.prop","$$props","placeholder","label","selected","onChange","simple","disabled","handleChange","e","target","$$render","consequent","consequent_1","$.each","node_2","item","$.untrack","$.get","countryCodes","phone","isValid","selectedCountryCode","$.mutable_source","number","countryCode","validate","PHONE_PATTERN","$$value","name","email","isSubmitDisabled","error","isEmailInputValid","isExtendedRegistration","onProfileUpdate","onBackClick","shouldShowBackButton","isEmailChangeDisabled","isPhoneChangeDisabled","consequent_2","consequent_3","__awaiter","thisArg","_arguments","P","generator","updateProfile","close","toastAlert","get","fn","currentUser","unsubscribeUserStore","userStore","user","forcedPageStore","$.set","isSocialLoginType","_a","_b","isLoading","isEmailValid","isNameValid","executeProfileUpdate","newData","updatedUser","page","pageStore","Pages","err","errorText","onDestroy","$configStore","$.safe_get","$forcedPageStore"],"mappings":";;;;;;;;;;;;;;;;;;MAYaA,IAA2CC,EAAAC,GAAA,WAAA,EAAA,GAC3CC,4BAAkC,MAAS,GAC3CC,sBAA4B,MAAS,GACrCC,yBAA+B,MAAS,GACxCC,yBAA0D,MAAS,GACnEC,uBAAkB,EAAK,GACvBC,yBAAoB,EAAK;QAE9BC,IAAY,CAAIC,MAAY;UAC1BC,IAASD,EAAE;AACb,IAAAL,EAAQ,MAAK,UAAWA,EAAWM,EAAO,KAAK,GAC/CL,EAAQ,KAAEA,EAAQ,EAACI,CAAC;AAAA,EACzB;;;;;;yBAKuDN,EAAK,CAAA,CAAA;;;MADxDA,EAAK,KAAAQ,EAAAC,CAAA;AAAA;;;;;;mBAYY,eAAmC;;;eAAlBR,GAAQ,cAAiBF,EAAW,8BAAXA,EAAW,MAAA,UAAXA,GAAW;AAAA;;;MADpEA,EAAW,KAAAS,EAAAE,CAAA;AAAA;;;AAGTC,SAAAA,GAAAC,GAAA,GAAAhB,WAAWiB,MAAI;;;oBAAJA,CAAI,GACLC,EAAA,MAAAC,EAAAF,CAAI,EAAC,KAAK,kCADTA,CAAI,GACLC,EAAA,MAAAC,EAAAF,CAAI,EAAC,KAAK,qBA5BlBZ,EAAQ,CAAA,KA2BCY,CAAI,WACiBZ,EAAQ,MAAAc,EAAKF,CAAI,EAAC,KAAK,aAD5CA,CAAI,GAC4CC,EAAA,MAAAC,EAAAF,CAAI,EAAC,QAAQE,EAAAF,CAAI,EAAC,KAAK;;;;;;;;MATxFV,EAAM,IAAG,WAAW,EAAE;AAAA;;sBAEZE,CAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpCpB,MAAMW,KAAe;AAAA,EAC1B,EAAE,OAAO,MAAM,MAAM,WAAW;AAAA,EAChC,EAAE,OAAO,OAAO,MAAM,SAAS;AAAA,EAC/B,EAAE,OAAO,OAAO,MAAM,SAAS;AAAA,EAC/B,EAAE,OAAO,OAAO,MAAM,SAAS;AAAA,EAC/B,EAAE,OAAO,QAAQ,MAAM,UAAU;AAAA,EACjC,EAAE,OAAO,OAAO,MAAM,SAAS;AAAA,EAC/B,EAAE,OAAO,QAAQ,MAAM,UAAU;AACnC;;;;;MCFaC,IAAapB,EAAAC,GAAA,SAAA,EAAA,GACboB,wBAAmB,EAAI,GACvBd,yBAAoB,EAAK,GAEhCe,IAA8BC,EAAAJ,GAAa,CAAC,EAAE,KAAK,GACnDK,IAAqBD,EAAA;AAErB,MAAAH,EAAK;eACIK,KAAeN;UACpBC,EAAK,EAAC,QAAQK,EAAY,KAAK,MAAM,GAAG;UAC1CD,GAAS,SAASJ,EAAK,EAAC,MAAMK,EAAY,MAAM,MAAM,CAAA,CAAA,KACtDH,GAAsBG,EAAY,KAAK;;MAEzC;AAAA;;;;AAKF,MAAAJ,EAAO,CAAAH,EAAIM,CAAM,KAAIE,GAAS,OAAMR,EAACM,CAAM,CAAA,GAAGG,EAAa,CAAA,GAC3DN,EAAO,KAAIH,EAAAI,CAAmB,KAAIJ,EAAAM,CAAM,KAAIJ,EAAKF,EAAGI,CAAmB,IAAG,OAAOJ,EAAAM,CAAM,CAAE,EAAA;;;;;;aAMxEL;AAAA;;;;;;eAAoCG,CAAmB;AAAA;;QAAnBA,GAAmBM,CAAA;AAAA;;;;;;;;;;;;;;;eAQ5DJ,CAAM;AAAA;;QAANA,GAAMI,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC/BTC,IAAY7B,EAAAC,GAAA,QAAA,EAAA,GACZ6B,IAAa9B,EAAAC,GAAA,SAAA,EAAA,GACbmB,IAAapB,EAAAC,GAAA,SAAA,EAAA,GACb8B,IAAyB/B,EAAAC,GAAA,oBAAA,EAAA,GACzB+B,IAAoBhC,EAAAC,GAAA,SAAA,EAAA,GACpBgC,IAA0BjC,EAAAC,GAAA,qBAAA,EAAA,GAC1BF,IAOVC,EAAAC,GAAA,WAAA,EAAA;IAGC,wBAAAiC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,uBAAAC;AAAA,MACExC,EAAO;;;;;;;;;;;;;;;;cAOFmC,KAAsBvB,EAAAC,CAAA;AAAA;;;;;;;;;;;;;iBAUjBsB;AAAA;;iBAFEL,EAAI;AAAA;;AAAJ,UAAAA,EAAID,CAAA;AAAA;;;;;;;;;;;;;;;cASXM,KAAsBvB,EAAAE,CAAA;AAAA;;;;;;;;;;;;;iBAWjByB;AAAA;;iBAJIL,EAAiB;AAAA;;AAAjB,UAAAA,EAAiBL,CAAA;AAAA;;iBAEnBE,EAAK;AAAA;;AAAL,UAAAA,EAAKF,CAAA;AAAA;;;;;;;;;;;;;;;;iBAQcW;AAAA;;;;;;;;;;;;;iBAKxBJ;AAAA;;iBACCJ,EAAgB;AAAA;;;;;;kCAKrBC,EAAK,KAAA,EAAA,EAAA,CAAA;;;UAFPA,EAAK,KAAArB,EAAA6B,CAAA;AAAA;;;;;;;;qBAQeJ;AAAA;;;;UAFpBC,KAAoB1B,EAAA8B,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtFV,MAAAC,IAAA,QAAA,KAAA,aAAA,SAAAC,GAAAC,GAAAC,GAAAC,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUP,QAAA,EAAA,eAAAC,GAAe,OAAAC,GAAO,YAAAC,EAAU,IAAKC,GAAIC,EAAE;MAE/CrB,IAAaP,EAAA,GACbM,IAAYN,EAAA,GACZH,IAAaG,EAAA,GAEb6B,GAEAd,IAA8Bf,EAAA,GAC9BgB,IAA8BhB,EAAA,GAC9BQ,IAAyBR,EAAA;AAEvB,QAAA8B,IAAuBC,GAAU,UAAS,CAAEC,MAAQ;;AACnD,QAAA,CAAAA,GAAM;AACT,MAAAC,EAAgB,IAAI,IAAI,GACxBR,EAAK;;IAEP;AAEAS,IAAAA,EAAA5B,GAAO0B,EAAK,QAAQ,EAAE,GACtBE,EAAA3B,GAAQyB,EAAK,SAAS,EAAE,GACxBE,EAAArC,GAAQmC,EAAK,SAAS,EAAE,GACxBH,IAAcG;UAGPG,IACLH,EAAK,eAAe,iBAAiBA,EAAK,eAAe;AAC3DE,IAAAA,EAAAnB,MAA0B,GAAAqB,IAAIJ,EAAC,aAAS,QAAAI,MAAA,WAAAA,EAAA,UAASD,CAAiB,GAClED,EAAAlB,MAA0B,GAAAqB,IAAIL,EAAC,aAAS,QAAAK,MAAA,WAAAA,EAAA,UAASF,CAAiB;AAAA,GACnE;AAEG,MAAAG,MAAY,EAAK,GACjBC,MAAwB,EAAK,GAC7B7B,MAA6B,EAAI,GACjC8B,MAAuB,EAAI,GAC3B/B,MAAgB,EAAE;AAEhB,QAAAgC,IAAkC,MAAAtB,EAAA,QAAA,QAAA,QAAA,aAAA;;AACtCe,IAAAA,EAAAzB,GAAQ,EAAE,GACVyB,EAAAI,GAAY,EAAI;AACZ,QAAA;AACI,YAAAI,IACA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,IAAAb,EAAY,UAAUlC,EAAAY,CAAK,IAAK,EAAA,OAAAZ,EAAAY,CAAK,MACrC,CAAA,CAAA,GAAAsB,EAAY,SAASlC,EAAAW,CAAI,IAAK,EAAA,MAAAX,EAAAW,CAAI,EAClC,IAAA,EAAA,GAAAuB,EAAY,UAAUlC,EAAAE,CAAK,IAAK,EAAA,SAAAA,CAAK,EAAA,IAAA,EAAA,GAErC8C,IAAW,MAASnB,EAAckB,CAAO;AAC/C,MAAAT,EAAgB,IAAI,IAAI,GAExBP,EACE,wGACA,SAAS;YAELkB,IAAOjB,GAAIkB,EAAS;QACrB,GAAAT,IAAWO,KAAA,OAAA,SAAXA,EAAa,aAAO,QAAAP,MAAA,WAAAA,EAAE,UAAK,EAAK,GAAAC,IAAWM,KAAA,OAAA,SAAXA,EAAa,aAAO,QAAAN,MAAA,WAAAA,EAAE,WAAK,CAAMO,KAAQA,MAASE,GAAM,mBAC3FrB,EAAK;AAAA,IACT,SAASsB,GAAK;YACNC,KAAYD,KAAA,gBAAAA,EAAK,YAAW;AAClC,MAAArB,EAAWsB,GAAW,SAAS,GAC/Bd,EAAAzB,GAAQuC,CAAS;AAAA,IACnB;AACAd,IAAAA,EAAAI,GAAY,EAAK;AAAA,GAClB;AAWD,EAAAW,GAAUnB,CAAoB;;;QAR5BS,GAAepC,GAAQR,EAACY,CAAK,CAAA,CAAA,KAC7BG,GAAiB,CAAAf,EAAIY,CAAK,KAAAZ,EAAI4C,CAAY,CAAA,GAE1CL,EAAAA,EAAAE,GAAAc,IAAa,IAAI,MAAA,QAAAC,GAAAf,CAAA,MAAA,WAAAe,GAAAf,CAAA,EAAE,wBAAyBF,EAAAM,OAAgBlC,CAAI,CAAA,GAEhE4B,EAAA1B,GAAmBb,EAAA2C,CAAS,KAAK,CAAA3C,EAAAe,CAAiB,QAAK8B,CAAW,CAAA;AAAA;;6BA5EjCP,CAAe,UACzCa,EAAK,KAaV/B,CAA8B,KAC9BC,CAA8B;;;MA2EhC,yBAAwBoB,IAAAc,IAAa,SAAb,gBAAAd,EAAmB;AAAA,MAC3C,iBAAiBK;AAAA,MACjB,aAAmB,MAAAR,EAAgB,IAAI,IAAI;AAAA,MAC3C,sBAAsBmB,QAAqBN,GAAM;AAAA,MACjD,yBAAA/B,CAAqB;AAAA,MACrB,yBAAAC,CAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"UpdateProfile-D4bg5GEF.js","sources":["../../ui/main/shared/inputs/select/Select.svelte","../../ui/main/shared/inputs/phone/PhoneInput.constants.ts","../../ui/main/shared/inputs/phone/PhoneInput.svelte","../../ui/main/update-profile/UpdateProfile.svelte","../src/app/pages/update-profile/UpdateProfile.svelte"],"sourcesContent":["<style>\n .simple {\n background-image: none;\n padding: 0 10px;\n text-align: center; \n }\n .simple:focus {\n background-image: none;\n }\n</style>\n\n<script lang=\"ts\">\n export let options: { value: string; name?: string }[]\n export let placeholder: string | undefined = undefined\n export let label: string | undefined = undefined\n export let selected: string | undefined = undefined\n export let onChange: undefined | ((...args: unknown[]) => unknown) = undefined\n export let simple: boolean = false\n export let disabled: boolean = false\n\n const handleChange = (e: Event) => {\n const target = e.target as HTMLSelectElement\n if (selected !== undefined) selected = target.value\n if (onChange) onChange(e)\n }\n</script>\n\n<div>\n {#if label}\n <label class=\"crtw-font-medium\" for=\"credenzaSelect\">{label}</label>\n {/if}\n <select\n class=\"crtw-w-full crtw-h-[53px] crtw-px-5 crtw-appearance-none crtw-text-base crtw-rounded crtw-border crtw-border-gray-300\n crtw-cursor-pointer crtw-text-gray-500 focus:crtw-outline-none focus:crtw-border-blue-900 focus:crtw-text-blue-900\n {simple ? 'simple' : ''}\"\n name=\"credenzaSelect\"\n on:change={handleChange}\n {disabled}\n >\n {#if placeholder}\n <option disabled={true} selected={!selected} hidden={true}>{placeholder}</option>\n {/if}\n {#each options as item}\n <option value={item.value} selected={selected === item.value}> {item.name ?? item.value} </option>\n {/each}\n </select>\n</div>\n","export const countryCodes = [\n { value: '+1', name: 'US/CA +1' },\n { value: '+49', name: 'DE +49' },\n { value: '+33', name: 'FR +33' },\n { value: '+44', name: 'UK +44' },\n { value: '+380', name: 'UA +380' },\n { value: '+48', name: 'PL +48' },\n { value: '+233', name: 'GH +233' },\n]\n","<script lang=\"ts\">\n import Select from '../select/Select.svelte'\n import Input from '../input/Input.svelte'\n import { PHONE_PATTERN, validate } from '../../../../../utils/lib/validation/validation'\n import { countryCodes } from './PhoneInput.constants'\n\n export let phone: string\n export let isValid: boolean = true\n export let disabled: boolean = false\n\n let selectedCountryCode: string = countryCodes[0].value\n let number: number | null\n\n if (phone) {\n for (const countryCode of countryCodes) {\n if (phone.indexOf(countryCode.value) === 0) {\n number = parseInt(phone.slice(countryCode.value.length))\n selectedCountryCode = countryCode.value\n break\n }\n }\n }\n\n $: {\n isValid = !number || validate(String(number), PHONE_PATTERN)\n isValid && selectedCountryCode && number ? (phone = selectedCountryCode + String(number).trim()) : ''\n }\n</script>\n\n<div class=\"crtw-flex crtw-justify-center crtw-flex-row\">\n <div class=\"crtw-w-40 crtw-mr-0.5\">\n <Select options={countryCodes} simple bind:selected={selectedCountryCode} {disabled} />\n </div>\n <Input\n type=\"number\"\n min=\"0\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n placeholder=\"Phone Number\"\n bind:value={number}\n name=\"phone\"\n {disabled}\n />\n</div>\n","<script lang=\"ts\">\n import Container from \"../shared/Container.svelte\";\n import Label from \"../shared/inputs/input/Label.svelte\";\n import Input from \"../shared/inputs/input/Input.svelte\";\n import ButtonBack from \"../shared/inputs/button-back/ButtonBack.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n import PhoneInput from \"../shared/inputs/phone/PhoneInput.svelte\";\n\n export let name: string;\n export let email: string;\n export let phone: string;\n export let isSubmitDisabled: boolean;\n export let error: string | null;\n export let isEmailInputValid: boolean;\n export let options: {\n isExtendedRegistration: boolean | undefined;\n onProfileUpdate: () => void;\n onBackClick: () => void;\n shouldShowBackButton: boolean;\n isEmailChangeDisabled: boolean;\n isPhoneChangeDisabled: boolean;\n };\n\n let {\n isExtendedRegistration,\n onProfileUpdate,\n onBackClick,\n shouldShowBackButton,\n isEmailChangeDisabled,\n isPhoneChangeDisabled,\n } = options;\n</script>\n\n<Container class=\"crtw-flex crtw-justify-center crtw-flex-col crtw-gap-2.5\">\n <div class=\"crtw-flex crtw-flex-col\">\n <Label for=\"NameInput\"\n >First and last name\n {#if isExtendedRegistration}\n <span class=\"crtw-text-red-500\">*</span>\n {/if}\n </Label>\n <Input\n id=\"NameInput\"\n type=\"text\"\n placeholder=\"First and last name\"\n bind:value={name}\n name=\"name\"\n required={isExtendedRegistration}\n />\n </div>\n\n <div class=\"crtw-flex crtw-flex-col\">\n <Label for=\"EmailInput\"\n >Email address\n {#if isExtendedRegistration}\n <span class=\"crtw-text-red-500\">*</span>\n {/if}\n </Label>\n <Input\n id=\"EmailInput\"\n type=\"email\"\n bind:isValid={isEmailInputValid}\n placeholder=\"Email address\"\n bind:value={email}\n name=\"email\"\n disabled={isEmailChangeDisabled}\n />\n </div>\n\n <div class=\"crtw-flex crtw-flex-col\">\n <Label for=\"PhoneInput\">Phone number</Label>\n <PhoneInput bind:phone disabled={isPhoneChangeDisabled} />\n </div>\n\n <Button\n text=\"Update profile\"\n onClick={onProfileUpdate}\n disabled={isSubmitDisabled}\n />\n\n {#if error}\n <div class=\"crtw-text-xs crtw-text-[#990008]\">\n - {error}\n </div>\n {/if}\n\n {#if shouldShowBackButton}\n <div class=\"crtw-text-left crtw-mt-2.5 crtw-w-full\">\n <ButtonBack onClick={onBackClick} />\n </div>\n {/if}\n</Container>\n","<script lang=\"ts\">\n import { onDestroy } from 'svelte'\n import { get } from 'svelte/store'\n import { validate } from '@lib/validation/validation'\n import { fn, userStore, pageStore, forcedPageStore } from '@packages/stores'\n import { Pages } from '@packages/utils/enums'\n import { UpdateProfile } from '@packages/ui'\n import { type TUser } from '@packages/utils/types'\n import { configStore } from '@src/stores/config'\n\n const { updateProfile, close, toastAlert } = get(fn)\n\n let email: string\n let name: string\n let phone: string\n\n let currentUser: TUser\n\n let isEmailChangeDisabled: boolean\n let isPhoneChangeDisabled: boolean\n let isSubmitDisabled: boolean\n\n const unsubscribeUserStore = userStore.subscribe((user) => {\n if (!user) {\n forcedPageStore.set(null)\n close()\n return\n }\n\n name = user.name || ''\n email = user.email || ''\n phone = user.phone || ''\n currentUser = user\n\n \n const isSocialLoginType =\n user.login_type !== 'credentials' && user.login_type !== 'passwordless'\n isEmailChangeDisabled = !!user.pending?.email || isSocialLoginType\n isPhoneChangeDisabled = !!user.pending?.phone || isSocialLoginType\n })\n\n let isLoading = false\n let isEmailValid: boolean = false\n let isEmailInputValid: boolean = true\n let isNameValid: boolean = true\n let error: string = ''\n\n const executeProfileUpdate = async () => {\n error = ''\n isLoading = true\n try {\n const newData = {\n ...(currentUser.email !== email ? { email } : {}),\n ...(currentUser.name !== name ? { name } : {}),\n ...(currentUser.phone !== phone ? { phone } : {}),\n }\n const updatedUser = await updateProfile(newData)\n forcedPageStore.set(null)\n\n toastAlert(\n 'Account has been updated successfully. Email or phone should be confirmed by entering one-time code.',\n 'success',\n )\n const page = get(pageStore)\n if (!updatedUser?.pending?.phone && !updatedUser?.pending?.email && (!page || page === Pages.UPDATE_PROFILE))\n close()\n } catch (err) {\n const errorText = err?.message || 'Error while updating your account details.'\n toastAlert(errorText, 'failure')\n error = errorText\n }\n isLoading = false\n }\n\n $: {\n isEmailValid = validate(email)\n isEmailInputValid = !email || isEmailValid\n\n $configStore.auth?.extendedRegistration && (isNameValid = !!name)\n\n isSubmitDisabled = isLoading || !isEmailInputValid || !isNameValid\n }\n\n onDestroy(unsubscribeUserStore)\n</script>\n\n<UpdateProfile\n bind:error\n bind:name\n bind:email\n bind:phone\n bind:isSubmitDisabled\n bind:isEmailInputValid\n options={{\n isExtendedRegistration: $configStore.auth?.extendedRegistration,\n onProfileUpdate: executeProfileUpdate,\n onBackClick: () => forcedPageStore.set(null),\n shouldShowBackButton: $forcedPageStore === Pages.UPDATE_PROFILE,\n isEmailChangeDisabled,\n isPhoneChangeDisabled,\n }}\n/>\n"],"names":["options","$.prop","$$props","placeholder","label","selected","onChange","simple","disabled","handleChange","e","target","$$render","consequent","consequent_1","$.each","node_2","item","$.untrack","$.get","countryCodes","phone","isValid","selectedCountryCode","$.mutable_source","number","countryCode","validate","PHONE_PATTERN","$$value","name","email","isSubmitDisabled","error","isEmailInputValid","isExtendedRegistration","onProfileUpdate","onBackClick","shouldShowBackButton","isEmailChangeDisabled","isPhoneChangeDisabled","consequent_2","consequent_3","__awaiter","thisArg","_arguments","P","generator","updateProfile","close","toastAlert","get","fn","currentUser","unsubscribeUserStore","userStore","user","forcedPageStore","$.set","isSocialLoginType","_a","_b","isLoading","isEmailValid","isNameValid","executeProfileUpdate","newData","updatedUser","page","pageStore","Pages","err","errorText","onDestroy","$configStore","$.safe_get","$forcedPageStore"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as N, p as O, h as Q, f as h, i as w, r as u, b as _, d as R, u as T, t as y } from "./legacy-
|
|
2
|
-
import { v as W, w as I, J, m as K, A as L, x as X, B as n, K as a, G as o, E as f, C as v, D as b, z as Y, u as Z } from "./index-
|
|
3
|
-
import { a as $ } from "./App-
|
|
1
|
+
import { c as N, p as O, h as Q, f as h, i as w, r as u, b as _, d as R, u as T, t as y } from "./legacy-C1UsO_tu.js";
|
|
2
|
+
import { v as W, w as I, J, m as K, A as L, x as X, B as n, K as a, G as o, E as f, C as v, D as b, z as Y, u as Z } from "./index-B0D9qQ_O.js";
|
|
3
|
+
import { a as $ } from "./App-C9I9989L.js";
|
|
4
4
|
var aa = h('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium">User name:</p> <p class="crtw-text-sm"> </p></div>'), ea = h('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium">Email address:</p> <p class="crtw-text-sm"><!></p></div>'), ta = h('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium">Phone number:</p> <p class="crtw-text-sm"><!></p></div>'), ra = h('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium">Logged in address:</p> <p class="crtw-text-sm"> </p></div>'), sa = h('<div class="crtw-w-full crtw-break-all"><p class="crtw-font-medium"> </p> <p class="crtw-text-sm"> </p></div>'), la = h('<div class="crtw-flex crtw-justify-center crtw-flex-col crtw-items-start crtw-gap-[22px] crtw-w-full crtw-px-2.5 crtw-py-0"><!> <!> <!> <!> <!></div>');
|
|
5
5
|
function ia(E, U) {
|
|
6
6
|
if (new.target) return N({ component: ia, ...E });
|
|
@@ -148,4 +148,4 @@ function ia(E, U) {
|
|
|
148
148
|
export {
|
|
149
149
|
ia as U
|
|
150
150
|
};
|
|
151
|
-
//# sourceMappingURL=UserInfo-
|
|
151
|
+
//# sourceMappingURL=UserInfo-DwjE6Ph4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserInfo-
|
|
1
|
+
{"version":3,"file":"UserInfo-DwjE6Ph4.js","sources":["../../ui/main/shared/UserInfo.svelte"],"sourcesContent":["<script lang=\"ts\">\n import { TUser } from \"../../../utils/types\";\n\n export let options: {\n storedValueAlias: string;\n balance?: string | null;\n userData: TUser | null;\n userAddress: Promise<string>;\n };\n\n let { storedValueAlias, userAddress } = options;\n $: balance = options.balance\n $: userData = options.userData\n</script>\n\n<div\n class=\"crtw-flex crtw-justify-center crtw-flex-col crtw-items-start crtw-gap-[22px] crtw-w-full crtw-px-2.5 crtw-py-0\"\n>\n {#if userData?.name}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">User name:</p>\n <p class=\"crtw-text-sm\">\n {userData.name}\n </p>\n </div>\n {/if}\n {#if userData?.email || userData?.pending?.email}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">Email address:</p>\n <p class=\"crtw-text-sm\">\n {#if userData?.email}\n {userData.email}\n {:else if userData?.pending?.email}\n {userData.pending?.email} (Unconfirmed)\n {/if}\n </p>\n </div>\n {/if}\n\n {#if userData?.phone || userData?.pending?.phone}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">Phone number:</p>\n <p class=\"crtw-text-sm\">\n {#if userData?.phone}\n {userData.phone}\n {:else if userData?.pending?.phone}\n {userData.pending?.phone} (Unconfirmed)\n {/if}\n </p>\n </div>\n {/if}\n\n {#await userAddress then address}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">Logged in address:</p>\n <p class=\"crtw-text-sm\">\n {address}\n </p>\n </div>\n {/await}\n \n\n {#if balance}\n <div class=\"crtw-w-full crtw-break-all\">\n <p class=\"crtw-font-medium\">{storedValueAlias} available:</p>\n <p class=\"crtw-text-sm\">{balance}</p>\n </div>\n {/if}\n</div>\n"],"names":["options","$.prop","$$props","storedValueAlias","userAddress","balance","userData","$.untrack","$.get","$.await","node_5","address","$$render","consequent_7"],"mappings":";;;;;;;;MAGaA,IAKVC,EAAAC,GAAA,WAAA,EAAA,KAEK,kBAAAC,GAAkB,aAAAC,EAAW,IAAKJ,EAAO;;MAC5CK,GAAUL,EAAO,EAAC,OAAO;AAAA;MACzBM,GAAWN,EAAO,EAAC,QAAQ;AAAA;;;;;kCAA3BM,CAAQ,GAUJC,EAAA,MAAAC,EAAAF,CAAQ,EAAC,IAAI;;;QAVjBA,CAAQ,GAMNC,EAAA,MAAAC;;AAAAA,gBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU;AAAA,OAAI;;;;;;;;;;0BANhBF,CAAQ,GAmBFC,EAAA,MAAAC,EAAAF,CAAQ,EAAC,KAAK;;;;;gCAnBpBA,CAAQ;;8BAqBFA,CAAQ,EAAC,8BAAS;AAAA,eAAK;;;;;kBArB7BA,CAAQ;;qCAoBKA,CAAQ,wBAAE,8BAAS;AAAA,iBAAK;;;;;;;YApBrCA,CAAQ,GAkBAC,EAAA,MAAAC;;AAAAA,oBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU;AAAA,WAAK;;;;;;QAlBvBF,CAAQ,GAcNC,EAAA,MAAA;;AAAAC,iBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU,YAAKA,KAAAA,IAAAA,EAAIF,CAAQ,MAAZE,gBAAAA,EAAc,YAAdA,gBAAAA,EAAuB;AAAA,OAAK;;;;;;;;;;0BAd7CF,CAAQ,GAgCFC,EAAA,MAAAC,EAAAF,CAAQ,EAAC,KAAK;;;;;gCAhCpBA,CAAQ;;8BAkCFA,CAAQ,EAAC,8BAAS;AAAA,eAAK;;;;;kBAlC7BA,CAAQ;;qCAiCKA,CAAQ,wBAAE,8BAAS;AAAA,iBAAK;;;;;;;YAjCrCA,CAAQ,GA+BAC,EAAA,MAAAC;;AAAAA,oBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU;AAAA,WAAK;;;;;;QA/BvBF,CAAQ,GA2BNC,EAAA,MAAA;;AAAAC,iBAAAA,IAAAA,EAAAF,CAAQ,MAARE,gBAAAA,EAAU,YAAKA,KAAAA,IAAAA,EAAIF,CAAQ,MAAZE,gBAAAA,EAAc,YAAdA,gBAAAA,EAAuB;AAAA,OAAK;;;;AAaxCC,EAAAA,EAAAC,GAAA,MAAAN,aAAiBO,MAAO;;+BAIzBA,CAAO,CAAA,CAAA;;;;;;;;;gBAQmBR,KAAgB,EAAA,aAAA,UACpBE,CAAO,CAAA;AAAA;;;QAH/BA,CAAO,KAAAO,EAAAC,CAAA;AAAA;;;;;;;;;;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { c as A, p as B, h as W, f as I, k as re, r as H, e as J, b as P, i as L, d as $, u as G, v as ae, o as z, n as se } from "./legacy-
|
|
2
|
-
import { v as K, m as E, B as k, E as T, C as y, D as R, I as U, K as n, G as ne, z as q, u as D, J as S, y as oe, w as Q, A as ce, x as X, L as ue, N as le, W as ie, a1 as de, R as Y, S as j, O as ve, b7 as fe } from "./index-
|
|
3
|
-
import { C as me } from "./ContentHeader-
|
|
4
|
-
import { B as F } from "./Button-
|
|
5
|
-
import { e as pe, i as ge } from "./each-
|
|
6
|
-
import { b as we } from "./input-
|
|
1
|
+
import { c as A, p as B, h as W, f as I, k as re, r as H, e as J, b as P, i as L, d as $, u as G, v as ae, o as z, n as se } from "./legacy-C1UsO_tu.js";
|
|
2
|
+
import { v as K, m as E, B as k, E as T, C as y, D as R, I as U, K as n, G as ne, z as q, u as D, J as S, y as oe, w as Q, A as ce, x as X, L as ue, N as le, W as ie, a1 as de, R as Y, S as j, O as ve, b7 as fe } from "./index-B0D9qQ_O.js";
|
|
3
|
+
import { C as me } from "./ContentHeader-DtB3AfgZ.js";
|
|
4
|
+
import { B as F } from "./Button-D5CGIu8s.js";
|
|
5
|
+
import { e as pe, i as ge } from "./each-tAR3XqEj.js";
|
|
6
|
+
import { b as we } from "./input-b1D2_f8m.js";
|
|
7
7
|
var _e = I("<button> </button>"), he = I('<div class="crtw-text-xs crtw-text-gray-400 crtw-mt-1"> </div>'), Se = I('<input class="crtw-appearance-none focus:crtw-outline-0 crtw-w-full crtw-h-9 crtw-mt-4 crtw-px-5 crtw-text-base crtw-border crtw-border-gray-300 crtw-rounded focus:crtw-border-blue-800 hover:crtw-bg-gray-100" type="number" min="1" max="100"/> <!>', 1), xe = I('<div><div class="crtw-flex crtw-flex-col">Select amount <div class="crtw-inline-flex crtw-w-full" role="group"></div> <!></div></div>');
|
|
8
8
|
function Z(v, o) {
|
|
9
9
|
if (new.target) return A({ component: Z, ...v });
|
|
@@ -257,4 +257,4 @@ function ye(v, o) {
|
|
|
257
257
|
export {
|
|
258
258
|
ye as default
|
|
259
259
|
};
|
|
260
|
-
//# sourceMappingURL=Wallet-
|
|
260
|
+
//# sourceMappingURL=Wallet-BUV87MlV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wallet-
|
|
1
|
+
{"version":3,"file":"Wallet-BUV87MlV.js","sources":["../../ui/main/wallet/ButtonGroup.svelte","../../ui/main/wallet/Wallet.svelte","../src/app/pages/wallet/Wallet.svelte"],"sourcesContent":["<script lang=\"ts\">\n export let selected: string | undefined = undefined\n export let minStoredValueToPurchase: number = 0\n export let maxStoredValueToPurchase: number = 100\n\n let isInputShown = false\n let active = selected\n\n const selectItems = [\n { value: '10', name: '10' },\n { value: '25', name: '25' },\n { value: '50', name: '50' },\n { value: 'CUSTOM', name: 'Custom' },\n ]\n const handleChangeButton = (value: string) => {\n active = value\n if (value === 'CUSTOM') {\n isInputShown = true\n selected = ''\n return\n }\n isInputShown = false\n selected = value\n }\n const handleChangeInput = (e: Event) => {\n const target = e.target as HTMLSelectElement | HTMLInputElement\n target.value = target.value.replace(/[,.-]/g, '')\n if (+target.value > maxStoredValueToPurchase) {\n selected = maxStoredValueToPurchase.toString()\n return\n }\n selected = target.value\n }\n</script>\n\n<div>\n <div class=\"crtw-flex crtw-flex-col\">\n Select amount\n <div class=\"crtw-inline-flex crtw-w-full\" role=\"group\">\n {#each selectItems as item}\n <button\n on:click={() => handleChangeButton(item.value)}\n class=\"crtw-w-full crtw-h-[30px] crtw-text-sm crtw-border hover:crtw-bg-gray-100 hover:crtw-text-blue-800 first:crtw-rounded-l last:crtw-rounded-r\"\n class:crtw-border-blue-800={item.value === active}\n class:crtw-z-10={item.value === active}\n >\n {item.name}\n </button>\n {/each}\n </div>\n {#if isInputShown}\n <input\n class=\"crtw-appearance-none focus:crtw-outline-0 crtw-w-full crtw-h-9 crtw-mt-4 crtw-px-5 crtw-text-base crtw-border crtw-border-gray-300 crtw-rounded focus:crtw-border-blue-800 hover:crtw-bg-gray-100\"\n type=\"number\"\n min=\"1\"\n max=\"100\"\n bind:value={selected}\n on:input={handleChangeInput}\n />\n {#if minStoredValueToPurchase}\n <div class=\"crtw-text-xs crtw-text-gray-400 crtw-mt-1\">\n Minimum purchase amount is {minStoredValueToPurchase}\n </div>\n {/if}\n {/if}\n </div>\n</div>\n","<script lang=\"ts\">\n import ContentHeader from \"../shared/ContentHeader.svelte\";\n import Button from \"../shared/inputs/button/Button.svelte\";\n import ButtonGroup from \"./ButtonGroup.svelte\";\n\n export let selected: string;\n export let options: {\n title: string;\n description: string;\n onSendClick: () => void;\n sendValueButtonText: string;\n isSendValueDisabled: boolean;\n onPaymentClick: () => void;\n minStoredValueToPurchase?: number;\n maxStoredValueToPurchase?: number;\n };\n\n let { title, description, onSendClick, sendValueButtonText, onPaymentClick, minStoredValueToPurchase = 0, maxStoredValueToPurchase = 100 } =\n options;\n\n $: isSendValueDisabled = options.isSendValueDisabled;\n</script>\n\n<div class=\"crtw-w-full crtw-px-2.5\">\n <ContentHeader text={title} {description} />\n <ButtonGroup bind:selected {minStoredValueToPurchase} {maxStoredValueToPurchase}/>\n <div class=\"crtw-h-4\" />\n <Button\n text=\"Confirm purchase\"\n disabled={!selected || (!!minStoredValueToPurchase && +selected < minStoredValueToPurchase)}\n onClick={onPaymentClick}\n />\n <div class=\"crtw-m-3.5\" />\n <Button\n onClick={onSendClick}\n text={sendValueButtonText}\n disabled={isSendValueDisabled}\n />\n</div>\n","<script lang=\"ts\">\n import { get } from 'svelte/store'\n\n import {\n pageStore,\n fn,\n pageOptsStore,\n } from '@packages/stores'\n import { Pages } from '@packages/utils/enums'\n import { Wallet } from '@packages/ui'\n import { configStore, providerStore, contractsStore } from '@src/stores'\n\n const { getBalance: getEvmBalance } = get(fn)\n let balance: string = ''\n\n const getBalance = async () => {\n try {\n balance = await getEvmBalance()\n } catch {\n balance = '0'\n }\n }\n\n $: $configStore.chainId && $providerStore && getBalance()\n\n let selected: string = '10'\n\n const goToPayment = () => {\n pageOptsStore.set({\n subtitle: `Purchase stored value`,\n payments: {\n credenzaStoredValue: {\n disabled: true,\n },\n },\n tokens: [\n {\n contractAddress: $contractsStore.erc20Cred.address,\n amount: +selected,\n },\n ],\n })\n pageStore.set(Pages.PAYMENT)\n }\n</script>\n\n<Wallet\n bind:selected\n options={{\n title: `buy stored value`,\n description: `Buy/Send stored value for purchases throughout this website.`,\n onSendClick: () => pageStore.set(Pages.SEND_TOKENS),\n sendValueButtonText: `Send stored value`,\n isSendValueDisabled: !balance,\n onPaymentClick: goToPayment,\n }}\n/>\n"],"names":["selected","minStoredValueToPurchase","maxStoredValueToPurchase","isInputShown","active","selectItems","handleChangeButton","value","$.set","handleChangeInput","target","$.each","div_2","item","$.untrack","$.get","$$render","consequent","consequent_1","$.prop","$$props","options","title","description","onSendClick","sendValueButtonText","onPaymentClick","isSendValueDisabled","expression","$.derived_safe_equal","__awaiter","thisArg","_arguments","P","generator","getEvmBalance","get","fn","balance","getBalance","goToPayment","pageOptsStore","$contractsStore","pageStore","Pages","$configStore","$providerStore"],"mappings":"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"}
|