@credenza3/passport-evm 0.2.18 → 0.2.20

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.
Files changed (106) hide show
  1. package/dist/{App-DATQBkjn.js → App-CVL5rG_7.js} +405 -402
  2. package/dist/App-CVL5rG_7.js.map +1 -0
  3. package/dist/Button-DqEdQlgP.js +64 -0
  4. package/dist/{Button-B9GZvoO0.js.map → Button-DqEdQlgP.js.map} +1 -1
  5. package/dist/{ButtonBack-BViNUUTu.js → ButtonBack-vxTGGwU6.js} +4 -4
  6. package/dist/{ButtonBack-BViNUUTu.js.map → ButtonBack-vxTGGwU6.js.map} +1 -1
  7. package/dist/{ButtonLink-6hbxCPwR.js → ButtonLink-Dbc5ZFe5.js} +16 -17
  8. package/dist/{ButtonLink-6hbxCPwR.js.map → ButtonLink-Dbc5ZFe5.js.map} +1 -1
  9. package/dist/ConfirmAccount-CzJ-4HcH.js +210 -0
  10. package/dist/{ConfirmAccount-CWmQxPVm.js.map → ConfirmAccount-CzJ-4HcH.js.map} +1 -1
  11. package/dist/{ContentHeader-xAVyooMp.js → ContentHeader-BL6VCaOC.js} +5 -5
  12. package/dist/{ContentHeader-xAVyooMp.js.map → ContentHeader-BL6VCaOC.js.map} +1 -1
  13. package/dist/{Error-D_XBVm-K.js → Error-cuDoKeUy.js} +113 -113
  14. package/dist/{Error-D_XBVm-K.js.map → Error-cuDoKeUy.js.map} +1 -1
  15. package/dist/{Input-whvt84ix.js → Input-CwK6i9kK.js} +6 -10
  16. package/dist/{Input-whvt84ix.js.map → Input-CwK6i9kK.js.map} +1 -1
  17. package/dist/{Label-xbMmZ6O_.js → Label-DZWmB1jC.js} +5 -10
  18. package/dist/{Label-xbMmZ6O_.js.map → Label-DZWmB1jC.js.map} +1 -1
  19. package/dist/{Loader-DYi7_SWo.js → Loader-CR_PsWeQ.js} +3 -3
  20. package/dist/{Loader-DYi7_SWo.js.map → Loader-CR_PsWeQ.js.map} +1 -1
  21. package/dist/Login-BLxKy2wr.js +281 -0
  22. package/dist/{Login-CDkBXp42.js.map → Login-BLxKy2wr.js.map} +1 -1
  23. package/dist/Logout-DMSGdeJk.js +96 -0
  24. package/dist/{Logout-DN3M2Zg3.js.map → Logout-DMSGdeJk.js.map} +1 -1
  25. package/dist/Nav-WMkbBHYm.js +666 -0
  26. package/dist/{Nav-b4HfOhXj.js.map → Nav-WMkbBHYm.js.map} +1 -1
  27. package/dist/{PassportId-Dt_RHesB.js → PassportId-Drg1oJ8k.js} +91 -93
  28. package/dist/{PassportId-Dt_RHesB.js.map → PassportId-Drg1oJ8k.js.map} +1 -1
  29. package/dist/Payment-BGGkR1cJ.js +1030 -0
  30. package/dist/{Payment-msAwxfJB.js.map → Payment-BGGkR1cJ.js.map} +1 -1
  31. package/dist/PaymentResult-Vxz68gmZ.js +256 -0
  32. package/dist/{PaymentResult-CfPJzlTi.js.map → PaymentResult-Vxz68gmZ.js.map} +1 -1
  33. package/dist/{Profile-cGwD-1Ck.js → Profile-D5OVDyh3.js} +157 -165
  34. package/dist/{Profile-cGwD-1Ck.js.map → Profile-D5OVDyh3.js.map} +1 -1
  35. package/dist/ProgressVideo-htlN2ByZ.js +125 -0
  36. package/dist/{ProgressVideo-DFQvsWxG.js.map → ProgressVideo-htlN2ByZ.js.map} +1 -1
  37. package/dist/RichAlert-DezBlHxy.js +111 -0
  38. package/dist/{RichAlert-j6PN_xAM.js.map → RichAlert-DezBlHxy.js.map} +1 -1
  39. package/dist/Scanner-Cl31otyX.js +123 -0
  40. package/dist/{Scanner-9EgR_iq8.js.map → Scanner-Cl31otyX.js.map} +1 -1
  41. package/dist/SendTokens-BGGPj_e_.js +364 -0
  42. package/dist/{SendTokens-BV-6TGS5.js.map → SendTokens-BGGPj_e_.js.map} +1 -1
  43. package/dist/Sign-n6MGx-1d.js +109 -0
  44. package/dist/{Sign-CkBsbZSK.js.map → Sign-n6MGx-1d.js.map} +1 -1
  45. package/dist/Stripe.service-K8Nm72sZ.js +59 -0
  46. package/dist/{Stripe.service-CtnPkf2V.js.map → Stripe.service-K8Nm72sZ.js.map} +1 -1
  47. package/dist/UpdateProfile-BbMPWUyU.js +525 -0
  48. package/dist/{UpdateProfile-BLmCs9GE.js.map → UpdateProfile-BbMPWUyU.js.map} +1 -1
  49. package/dist/UserInfo-htUCiyHe.js +128 -0
  50. package/dist/{UserInfo-iEll24ca.js.map → UserInfo-htUCiyHe.js.map} +1 -1
  51. package/dist/Wallet-BHxkNNa4.js +263 -0
  52. package/dist/{Wallet-DSWOQbcf.js.map → Wallet-BHxkNNa4.js.map} +1 -1
  53. package/dist/abi-DIVtyi6o.js.map +1 -1
  54. package/dist/account-BPB9Ucub.js.map +1 -1
  55. package/dist/each-CxApMty7.js +266 -0
  56. package/dist/each-CxApMty7.js.map +1 -0
  57. package/dist/event-modifiers-D4czZCB6.js +13 -0
  58. package/dist/{event-modifiers-DpFXHa6q.js.map → event-modifiers-D4czZCB6.js.map} +1 -1
  59. package/dist/{html-COIwWnYu.js → html-BynZ0QgP.js} +16 -16
  60. package/dist/html-BynZ0QgP.js.map +1 -0
  61. package/dist/{index-CiUtnyB6.js → index-QYUycBJ8.js} +11779 -11229
  62. package/dist/index-QYUycBJ8.js.map +1 -0
  63. package/dist/index-client-BZifBt-8.js +25 -0
  64. package/dist/index-client-BZifBt-8.js.map +1 -0
  65. package/dist/input-2LrEHvzA.js +37 -0
  66. package/dist/input-2LrEHvzA.js.map +1 -0
  67. package/dist/legacy-ShShb87f.js +1025 -0
  68. package/dist/legacy-ShShb87f.js.map +1 -0
  69. package/dist/passport.es.js +1 -1
  70. package/dist/passport.umd.js +139 -138
  71. package/dist/passport.umd.js.map +1 -1
  72. package/dist/scanner-Bm3Pvpfs.js.map +1 -1
  73. package/dist/{scanner.es-cf-mCExK.js → scanner.es-DK9KxX60.js} +2 -2
  74. package/dist/{scanner.es-cf-mCExK.js.map → scanner.es-DK9KxX60.js.map} +1 -1
  75. package/dist/strings-B-rKL311.js.map +1 -1
  76. package/dist/svg-BwNV4pWZ.js.map +1 -1
  77. package/dist/validation-DaZvZUPL.js.map +1 -1
  78. package/package.json +20 -20
  79. package/dist/App-DATQBkjn.js.map +0 -1
  80. package/dist/Button-B9GZvoO0.js +0 -69
  81. package/dist/ConfirmAccount-CWmQxPVm.js +0 -210
  82. package/dist/Login-CDkBXp42.js +0 -294
  83. package/dist/Logout-DN3M2Zg3.js +0 -96
  84. package/dist/Nav-b4HfOhXj.js +0 -688
  85. package/dist/Payment-msAwxfJB.js +0 -1039
  86. package/dist/PaymentResult-CfPJzlTi.js +0 -290
  87. package/dist/ProgressVideo-DFQvsWxG.js +0 -121
  88. package/dist/RichAlert-j6PN_xAM.js +0 -119
  89. package/dist/Scanner-9EgR_iq8.js +0 -126
  90. package/dist/SendTokens-BV-6TGS5.js +0 -363
  91. package/dist/Sign-CkBsbZSK.js +0 -107
  92. package/dist/Stripe.service-CtnPkf2V.js +0 -61
  93. package/dist/UpdateProfile-BLmCs9GE.js +0 -522
  94. package/dist/UserInfo-iEll24ca.js +0 -151
  95. package/dist/Wallet-DSWOQbcf.js +0 -260
  96. package/dist/each-BDYUCt0-.js +0 -202
  97. package/dist/each-BDYUCt0-.js.map +0 -1
  98. package/dist/event-modifiers-DpFXHa6q.js +0 -13
  99. package/dist/html-COIwWnYu.js.map +0 -1
  100. package/dist/index-CiUtnyB6.js.map +0 -1
  101. package/dist/index-client-DVPcUHpH.js +0 -28
  102. package/dist/index-client-DVPcUHpH.js.map +0 -1
  103. package/dist/input-CvG0YPm8.js +0 -30
  104. package/dist/input-CvG0YPm8.js.map +0 -1
  105. package/dist/legacy-DDahCmm4.js +0 -1039
  106. package/dist/legacy-DDahCmm4.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Payment-msAwxfJB.js","sources":["../../ui/images/lock.svg","../../ui/main/payment/PaymentSwitchButton.svelte","../../ui/main/payment/Payment.svelte","../../ui/main/payment/Stripe.svelte","../../ui/main/payment/CredenzaBalance.svelte","../src/app/pages/payment/stripe/wallet-pay/WalletPay.svelte","../src/app/pages/payment/stripe/Stripe.styles.ts","../../utils/lib/scripts/scripts.ts","../../utils/lib/orders/index.ts","../src/app/pages/payment/Payment.service.ts","../src/app/pages/payment/stripe/Stripe.svelte","../src/app/pages/payment/credenza-balance/CredenzaBalance.svelte","../src/app/pages/payment/Payment.svelte"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='22'%20height='22'%20viewBox='0%200%2024%2024'%3e%3cpath%20fill='%23bbb'%20d='M17%209.761v-4.761c0-2.761-2.238-5-5-5-2.763%200-5%202.239-5%205v4.761c-1.827%201.466-3%203.714-3%206.239%200%204.418%203.582%208%208%208s8-3.582%208-8c0-2.525-1.173-4.773-3-6.239zm-8-4.761c0-1.654%201.346-3%203-3s3%201.346%203%203v3.587c-.927-.376-1.938-.587-3-.587s-2.073.211-3%20.587v-3.587zm4%2011.723v2.277h-2v-2.277c-.596-.347-1-.984-1-1.723%200-1.104.896-2%202-2s2%20.896%202%202c0%20.738-.404%201.376-1%201.723z'/%3e%3c/svg%3e\"","<style>\n .active {\n background-color: #ffff;\n font-weight: 500;\n color: #000;\n }\n .btn-disabled {\n pointer-events: none;\n background-color: #d0d2d5;\n }\n</style>\n\n<script lang=\"ts\">\n import Loader from '../shared/Loader.svelte'\n \n export let onClick: (...args: unknown[]) => unknown\n export let text: string\n export let disabled: boolean = false\n export let isLoading: boolean = false\n export let isActive: boolean = false\n</script>\n\n<button\n type=\"submit\"\n class=\"crtw-flex crtw-justify-center crtw-items-center crtw-w-full crtw-h-[50px] crtw-cursor-pointer crtw-border crtw-border-gray-300\n crtw-rounded crtw-font-['poppins'] crtw-text-gray-600\"\n class:btn-disabled={disabled || isLoading}\n class:active={isActive}\n on:click|preventDefault={onClick}\n>\n {#if isLoading}\n <Loader />\n {:else}\n {text}\n {/if}\n</button>","<script lang=\"ts\">\n import { PaymentViews } from '../../../utils/enums';\n import ButtonBack from '../shared/inputs/button-back/ButtonBack.svelte';\n import LockIcon from '../../images/lock.svg'\n import type { TUser } from '../../../utils/types';\n import PaymentSwitchButton from './PaymentSwitchButton.svelte';\n\n export let isLoading: boolean\n export let options: {\n user: TUser| null\n title: string\n subtitle?: string\n onBackClick: () => void\n isStripeDisabled: boolean\n isCredezaValueDisabled: boolean,\n isPriceLoading: boolean\n totalSumCents: number,\n currencySymbol?: string\n }\n\n \n let { user, title, subtitle, onBackClick, isStripeDisabled, currencySymbol = '$' } = options\n let activeTab = isStripeDisabled ? PaymentViews.CREDENZA_BALANCE : PaymentViews.CREDIT_CARD\n\n $: isPriceLoading = options.isPriceLoading\n $: totalSumCents = options.totalSumCents\n $: isCredezaValueDisabled = options.isCredezaValueDisabled\n</script>\n\n<div class=\"cpui-payment crtw-text-left crtw-w-full\" class:crtw-hidden={isLoading}>\n <div class=\"crtw-text-right crtw-text-[13px] crtw-text-gray-400 crtw-mb-6\">\n <div class=\"crtw-break-words\">{user?.email || user?.pending?.email || ''}</div>\n <div>{user?.phone || user?.pending?.phone || ''}</div>\n </div>\n <div class=\"crtw-font-bold crtw-text-xl\">{title}</div>\n <div class=\"crtw-flex crtw-justify-between crtw-mb-3 crtw-text-gray-600 crtw-font-bold\">\n {#if subtitle}\n <div>{subtitle}</div>\n {/if}\n {#if isPriceLoading}\n <div>Getting price...</div>\n {:else if totalSumCents}\n <div>{currencySymbol}{(+totalSumCents / 100).toFixed(2)}</div>\n {/if}\n </div>\n <div class=\"crtw-flex crtw-bg-gray-200 crtw-rounded-md crtw-p-px\">\n <PaymentSwitchButton\n text=\"Credit Card\"\n onClick={() => (activeTab = PaymentViews.CREDIT_CARD)}\n isActive={activeTab === PaymentViews.CREDIT_CARD}\n disabled={isStripeDisabled}\n />\n <PaymentSwitchButton\n text=\"Credenza Balance\"\n onClick={() => (activeTab = PaymentViews.CREDENZA_BALANCE)}\n isActive={activeTab === PaymentViews.CREDENZA_BALANCE}\n disabled={isCredezaValueDisabled}\n />\n </div>\n <hr class=\"crtw-block crtw-border-t-2 crtw-border-gray-200 crtw-w-1/2 crtw-mx-auto crtw-mt-3.5 crtw-mb-[30px]\" />\n {#if activeTab === PaymentViews.CREDIT_CARD}\n <slot name=\"credit-card\" />\n {:else if activeTab === PaymentViews.CREDENZA_BALANCE}\n <slot name=\"cred-balance\" />\n {/if}\n <div class=\"crtw-flex crtw-w-full crtw-justify-center crtw-items-center\">\n <img src={LockIcon} alt=\"\" /><span class=\"crtw-text-sm crtw-text-gray-400 crtw-ml-1\"\n >Payments are secure and encrypted</span\n >\n </div>\n <div class=\"crtw-mt-1.5\">\n <ButtonBack onClick={onBackClick} />\n </div>\n</div>\n","<script lang=\"ts\">\n import Button from \"../shared/inputs/button/Button.svelte\";\n\n export let options: {\n isCardFocused: boolean\n onPay: () => void\n currencySymbol?: string\n }\n export let isPaymentDisabled: boolean\n export let isLoading: boolean\n export let totalToPay: string\n\n let { isCardFocused, onPay, currencySymbol = '$' } = options\n</script>\n\n<div class=\"crtw-text-base crtw-mb-1.5\">Credit card details</div>\n<div\n id=\"cpui-card-element\"\n class=\"crtw-border crtw-border-gray-300 crtw-rounded crtw-px-2.5 crtw-py-4 crtw-mb-2.5 crtw-w-full\"\n style={isCardFocused ? 'border-color: #121e2b' : ''}\n/>\n<!-- Used to display Element errors. -->\n<div id=\"card-errors\" role=\"alert\" />\n<Button\n text={`Pay ${currencySymbol}${totalToPay}`}\n onClick={onPay}\n disabled={isPaymentDisabled}\n bind:isLoading\n/>","<script lang=\"ts\">\n import Button from \"../shared/inputs/button/Button.svelte\";\n\n export let options: {\n formattedBalance: string\n balance: number\n credAlias: string\n onPay: () => void\n onGetCred: () => void\n totalToPay: string\n isLoading: boolean\n isPaymentDisabled: boolean\n }\n\n let { credAlias, onPay, onGetCred } = options\n\n $: isLoading = options.isLoading\n $: isPaymentDisabled = options.isPaymentDisabled\n $: formattedBalance = options.formattedBalance\n $: totalToPay = options.totalToPay\n $: balance = options.balance\n</script>\n\n<div class=\"crtw-w-full crtw-text-center crtw-my-5\">\n <div class=\"crtw-text-3xl crtw-text-black crtw-font-bold\">\n {#if Number(totalToPay) > balance}\n INSUFFICIENT FUNDS\n {:else}\n {formattedBalance}\n {/if}\n \n </div>\n <div class=\"crtw-mb-5 crtw-text-gray-600\">\n {#if Number(totalToPay) > balance}\n <!-- svelte-ignore a11y-click-events-have-key-events -->\n You do not have enough stored value to make this payment. \n <span\n class=\"crtw-text-black crtw-cursor-pointer\"\n role=\"button\"\n tabindex=\"0\"\n on:click={onGetCred}\n >\n Click to get some {credAlias}\n </span>\n {:else}\n Your balance after purchase\n {/if}\n </div>\n\n <Button\n text={`Pay ${totalToPay} ${credAlias}`}\n onClick={onPay}\n disabled={isPaymentDisabled}\n {isLoading}\n />\n</div>","<script lang=\"ts\">\n import { onMount } from 'svelte'\n import { dispatch, PassportEvents } from '@lib/events/events'\n\n export let doPayment: (stripeTokenId: string) => Promise<void>\n export let stripe: Window['Stripe']\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export let stripeElements: any\n export let priceCents: number\n export let isLoading: boolean\n\n onMount(async () => {\n const paymentRequest = stripe.paymentRequest({\n country: 'US',\n currency: 'usd',\n total: {\n label: 'Apple/Google payment',\n amount: priceCents,\n },\n requestPayerName: true,\n requestPayerEmail: true,\n })\n const canMakePayment = await paymentRequest.canMakePayment()\n if (!canMakePayment) return\n\n const walletPayElement = document.getElementById('ctui-wallet-pay')\n if (walletPayElement) walletPayElement.style.display = 'crtw-block'\n\n const prButton = stripeElements.create('paymentRequestButton', {\n paymentRequest: paymentRequest,\n style: {\n paymentRequestButton: {\n height: '48px',\n },\n },\n })\n prButton.mount('#ctui-payment-request-button')\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n paymentRequest.on('token', async (event: any) => {\n isLoading = true\n try {\n await doPayment(event.token.id)\n await event.complete('success')\n } catch (err) {\n await event.complete('error')\n dispatch(PassportEvents.ERROR, { error: err })\n }\n isLoading = false\n })\n })\n</script>\n\n<div id=\"ctui-wallet-pay\" class=\"crtw-w-full crtw-my-4\" style=\"dispay: none;\">\n <div id=\"ctui-payment-request-button\"></div>\n</div>\n","export const stripeStyles = {\n base: {\n color: '#121e2b',\n fontSize: '12px',\n '::placeholder': {\n color: '#d9d9d9',\n },\n },\n invalid: {\n color: '#fa755a',\n },\n}\n","export const loadScript = (src: string) => {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = src\n document.body.appendChild(script)\n script.addEventListener('load', () => resolve(script))\n script.addEventListener('error', () => reject(script))\n })\n}\n","import { get } from \"svelte/store\";\nimport { accessTokenStore } from \"../../../stores\";\nimport type { TPaymentReturn } from \"@packages/utils/types\";\n\nexport const getOrderDetails = async (apiUrl: string, orderId: string): Promise<TPaymentReturn> => {\n const res = await fetch(`${apiUrl}/orders/${orderId}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${get(accessTokenStore)}`,\n },\n method: \"GET\",\n });\n if (!res.ok) throw new Error(\"Failed to get order details\");\n return await res.json();\n}\nexport const getCompmletedOrderDetails = async (\n apiUrl: string,\n orderId: string,\n maxRetries = 5\n) => {\n let attempts = 0;\n\n while (attempts < maxRetries) {\n const res = await fetch(`${apiUrl}/orders/completed/${orderId}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${get(accessTokenStore)}`,\n },\n method: \"GET\",\n });\n\n if (res.status === 204) {\n attempts++;\n if (attempts < maxRetries) {\n continue;\n } else {\n throw new Error(\"No content received after multiple attempts\");\n }\n }\n\n if (!res.ok) throw new Error(\"Failed to get order details\");\n return await res.json();\n }\n};\n\nexport const validateOrderItems = (\n txs: string[] | null[],\n orders: TPaymentReturn[\"items\"],\n): string => {\n const errorMessages = orders\n .filter((item) => item.error)\n .map(\n (item) =>\n `Name: ${item.metadata?.name || item.directive.resource_id}, reason: ${item.error}`\n )\n .join(\"\\n\");\n if (txs.every((item) => item === null)) {\n throw new Error(`All transactions failed. \\n${errorMessages}`);\n } else if (orders?.every(item => item.status === \"ERROR\")) {\n throw new Error(`All transactions failed.}`);\n }\n return errorMessages;\n};\n","import { get } from 'svelte/store'\nimport { accessTokenStore, fn } from '@packages/stores'\nimport { RecieptTarget } from '@packages/utils/enums'\nimport { configStore } from '@src/stores/config'\nimport { getClientConfigByClientId } from '@lib/clients'\nimport type { TMembershipPaymentData, TTokenPaymentData } from './oders.types'\nimport { dispatch, PassportEvents } from '@lib/events/events'\nimport { TransactionTypes } from '@packages/utils/enums'\nimport { pageOptsStore, pageStore, userStore } from '@packages/stores'\nimport { Pages } from '@packages/utils/enums'\nimport { analytics } from '@lib/mixpanel/mixpanel'\nimport { waitVideoEnded } from '@components/progress/ProgressVideo.service'\nimport { getAddress } from '@src/passport/blockchain'\nimport { validateOrderItems } from '@lib/orders'\nimport type { TPaymentReturn } from '@packages/utils/types'\n\n\nexport const requestReceipt = async ({\n hash,\n stripeChargeId,\n title,\n subtitle,\n amount,\n currency,\n}: {\n hash?: string\n stripeChargeId?: string\n title?: string\n subtitle?: string\n amount?: number\n currency?: string\n}) => {\n const { credenza, recieptTarget, clientId } = get(configStore)\n\n const result = await fetch(`${credenza.evmApiUrl}/contracts/receipt`, {\n method: 'POST',\n body: JSON.stringify({\n ...(hash ? { tx: hash } : { charge_id: stripeChargeId }),\n ...(amount ? { amount } : {}),\n ...(currency ? { currency } : {}),\n target: recieptTarget || RecieptTarget.EMAIL,\n title,\n subtitle,\n source: getClientConfigByClientId(clientId).name,\n }),\n headers: {\n Authorization: `Bearer ${get(accessTokenStore)}`,\n 'Content-Type': 'application/json',\n },\n })\n\n return result.ok\n}\n\nexport const afterPaymentProcess = async (res: TPaymentReturn, priceCents: number, purchaseConfig: {\n title: string\n subtitle: string\n tokens: TTokenPaymentData[]\n memberships: TMembershipPaymentData[]\n}) => {\n const { toastAlert } = get(fn)\n const config = get(configStore)\n \n const { chain_txs, items } = res\n const failedOrdersMessage = validateOrderItems(chain_txs, items)\n dispatch(PassportEvents.PAYMENT, {\n type: TransactionTypes.STRIPE,\n results: { tokens: purchaseConfig.tokens, memberships: purchaseConfig.memberships },\n })\n toastAlert('Your payment was successful')\n dispatch(PassportEvents.RECHECK_BALANCE, chain_txs)\n\n const user = get(userStore)\n if (user) {\n analytics.track('cp_payment_fiat', {\n $email: user.email,\n $phone: user.phone,\n chain: config.chainId,\n clientId: config.clientId,\n address: await getAddress(),\n location: window.location.href,\n tokens: purchaseConfig?.tokens,\n memberships: purchaseConfig?.memberships,\n total: priceCents / 100,\n description: (purchaseConfig?.title ?? '') + `(${purchaseConfig?.subtitle ?? ''})`,\n })\n }\n\n await waitVideoEnded()\n\n if (priceCents === 0) pageOptsStore.set({ subtitle: 'Your claim was successful!', receipt: false })\n\n if (failedOrdersMessage) {\n pageOptsStore.set({\n title: 'Done!',\n subtitle: 'Your payment was partly successful',\n orders: items,\n })\n }\n pageStore.set(Pages.PAYMENT_RESULT)\n}","<script lang=\"ts\">\n import WalletPay from './wallet-pay/WalletPay.svelte'\n import { onMount } from 'svelte'\n import { get } from 'svelte/store'\n import { stripeStyles } from '@pages/payment/stripe/Stripe.styles'\n import { dispatch, PassportEvents } from '@lib/events/events'\n import { loadScript } from '@lib/scripts/scripts'\n import { pageOptsStore, pageStore, fn } from '@packages/stores'\n import { Pages } from '@packages/utils/enums'\n import { Stripe as StripeComponent } from '@packages/ui'\n import { configStore } from '@src/stores/config'\n import { getClientConfigByClientId } from '@lib/clients'\n import { afterPaymentProcess } from '../Payment.service'\n import type { TMembershipPaymentData, TTokenPaymentData } from '../oders.types'\n\n export let priceCents: number\n export let isLoading: boolean\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export let purchaseConfig: {\n title: string\n subtitle: string\n tokens: TTokenPaymentData[]\n memberships: TMembershipPaymentData[]\n }\n export let isPriceLoading: boolean\n\n const { toastAlert } = get(fn)\n const config = get(configStore)\n\n let Stripe: Window['Stripe']\n let stripe: Window['Stripe']\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let stripeElements: any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let cardElement: any\n let isButtonActive: boolean\n\n let isCardFocused = false\n onMount(async () => {\n try {\n if (!Stripe) {\n if (!window.Stripe) {\n await loadScript('https://js.stripe.com/v3/')\n if (!window.Stripe) throw {}\n }\n Stripe = window.Stripe\n }\n } catch (err) {\n return console.log('Please include stripe to use payments.')\n }\n if (stripe) return\n\n const clientName = getClientConfigByClientId(config.clientId).name\n stripe = Stripe(config.stripe.pk[clientName] ?? config.stripe.pk.DEFAULT)\n stripeElements = stripe.elements()\n cardElement = stripeElements.create('card', { style: stripeStyles })\n cardElement.mount('#cpui-card-element')\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n cardElement.on('change', (event: any) => {\n isButtonActive = event.complete && !event.error\n })\n cardElement.on('focus', () => (isCardFocused = true))\n cardElement.on('blur', () => (isCardFocused = false))\n })\n\n const handleSubmit = async () => {\n try {\n if (!isButtonActive) return\n isLoading = true\n const result = await stripe.createToken(cardElement)\n if (result.error) throw result.error\n await doPayment(result.token.id)\n } catch (err) {\n dispatch(PassportEvents.ERROR, { error: err })\n }\n isLoading = false\n }\n\n const doPayment = async (tokenId: string) => {\n try {\n const { processPayment } = await import('@pages/payment/stripe/Stripe.service')\n\n const res = await processPayment(tokenId)\n await afterPaymentProcess(res, priceCents, purchaseConfig)\n } catch (err) {\n toastAlert(`Payment error: ${err.message || err}`, 'failure')\n pageOptsStore.set({ errorMessage: err.message || err })\n pageStore.set(Pages.ERROR)\n dispatch(PassportEvents.ERROR, { error: err })\n }\n }\n\n $: isPaymentDisabled = !isButtonActive || isLoading || isPriceLoading\n $: totalToPay = (priceCents / 100).toFixed(2)\n</script>\n\n<StripeComponent\n bind:isPaymentDisabled\n bind:isLoading\n bind:totalToPay\n options={{\n isCardFocused,\n onPay: handleSubmit,\n currencySymbol: getClientConfigByClientId(config.clientId).currencySymbol,\n }}\n/>\n\n{#if stripe && stripeElements}\n <WalletPay {doPayment} {stripe} {stripeElements} {priceCents} bind:isLoading />\n{/if}\n","<script lang=\"ts\">\n import { ethers } from '@credenza3/core-web-evm-ext'\n import { get } from 'svelte/store'\n import { onMount } from 'svelte'\n import { Pages } from '@packages/utils/enums'\n import { clientPublicStore, fn, pageOptsStore, pageStore, userStore } from '@packages/stores'\n import { dispatch, PassportEvents } from '@lib/events/events'\n import { TransactionTypes } from '@packages/utils/enums'\n import { sendContractTx, getTxScanAddress } from '@src/lib/tx/tx'\n import { requestReceipt } from '@pages/payment/Payment.service'\n import { analytics } from '@lib/mixpanel/mixpanel'\n import { waitVideoEnded } from '@components/progress/ProgressVideo.service'\n import { type TEvmContract, type TPaymentItem } from '@packages/utils/types'\n import { getCryptoCurrencySymbol } from '@lib/strings/strings'\n import { CredenzaBalance } from '@packages/ui'\n import { getAddress } from '@src/passport/blockchain'\n import { configStore, providerStore } from '@src/stores'\n import Loader from '@packages/ui/main/shared/Loader.svelte'\n\n export let totalPriceToken: number\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export let purchaseConfig: any\n export let isLoading: boolean\n export let isPriceLoading: boolean\n export let pricesByToken: { [key: string]: number }\n\n const { getCREDContract, toastAlert } = get(fn)\n const { chainId, clientId } = get(configStore)\n\n let isBalanceLoading: boolean = false\n let balance: bigint = BigInt(0)\n let formattedBalance: string\n let symbol: string = ''\n let contract: ethers.Contract\n let decimals: number\n let userAddress: string\n let signer: ethers.Signer\n let credContract: {\n address: string\n decimals: number\n contract: ethers.Contract\n }\n\n const processPaymentItem = async (item: TPaymentItem, index: number) => {\n try {\n const { credenzaSellableMinAbi } = await import('@src/lib/abi')\n const credenzaSellableContract = new ethers.Contract(item.contractAddress, credenzaSellableMinAbi, signer)\n const tokenOrTypeId = item.tokenId ? item.tokenId : (item.typeId as string)\n const priceToken = pricesByToken[`${item.contractAddress}/${tokenOrTypeId}`]\n\n const approveTx = await contract.approve.populateTransaction(\n await credenzaSellableContract.getAddress(),\n priceToken,\n )\n\n await sendContractTx(approveTx, contract)\n const buyTx = await credenzaSellableContract.buyWithToken.populateTransaction(\n tokenOrTypeId,\n item.amount || 1,\n userAddress,\n )\n\n const result = await sendContractTx(buyTx, credenzaSellableContract)\n\n toastAlert(`<a href=\"${getTxScanAddress(result.hash)}\" target=\"_blank\">Purchase TX #${index}</a> was created`)\n dispatch(PassportEvents.PAYMENT, { type: TransactionTypes.ERC20, data: result })\n dispatch(PassportEvents.RECHECK_BALANCE)\n\n await requestReceipt({\n hash: result.hash,\n title: purchaseConfig.title,\n subtitle: purchaseConfig.subtitle,\n currency: 'CRED',\n amount: +ethers.formatUnits(priceToken, decimals),\n })\n dispatch(PassportEvents.RECEIPT, { hash: result.hash })\n } catch (err) {\n toastAlert(`Payment error: ${err.message || err}`, 'failure')\n pageOptsStore.set({ errorMessage: err.message })\n pageStore.set(Pages.ERROR)\n dispatch(PassportEvents.ERROR, { error: err })\n }\n }\n\n const payWithCredenza = async () => {\n try {\n if (BigInt(totalPriceToken) > balance) return\n\n isLoading = true\n const paymentPromises = [...(purchaseConfig.tokens || []), ...(purchaseConfig.memberships || [])].map(\n (item, index) => processPaymentItem(item, index + 1),\n )\n await Promise.all(paymentPromises)\n\n const user = get(userStore)\n if (user) {\n analytics.track('cp_payment_stored_value', {\n $email: user.email,\n $phone: user.phone,\n chain: chainId,\n clientId,\n address: userAddress,\n location: window.location.href,\n tokens: purchaseConfig.tokens,\n memberships: purchaseConfig.memberships,\n total: totalPriceToken,\n description: (purchaseConfig?.title ?? '') + `(${purchaseConfig?.subtitle ?? ''})`,\n })\n }\n\n await waitVideoEnded()\n\n if (totalPriceToken === 0) pageOptsStore.set({ subtitle: 'Your claim was successful!', receipt: false })\n pageStore.set(Pages.PAYMENT_RESULT)\n } catch (err) {\n toastAlert(`Payment error: ${err.message || err}`, 'failure')\n pageOptsStore.set({ errorMessage: err.message })\n pageStore.set(Pages.ERROR)\n dispatch(PassportEvents.ERROR, { error: err })\n } finally {\n isLoading = false\n }\n }\n\n onMount(async () => {\n try {\n isBalanceLoading = true\n credContract = (await getCREDContract()) as TEvmContract\n\n signer = await get(providerStore).getSigner()\n contract = credContract.contract\n decimals = credContract.decimals\n ;[userAddress, symbol] = await Promise.all([getAddress(), contract.symbol()])\n balance = await contract.balanceOf(userAddress)\n\n formattedBalance = `${ethers.formatUnits(BigInt(balance) - BigInt(totalPriceToken), decimals)} ${getCryptoCurrencySymbol(symbol, 'cred')}`\n } catch (err) {\n console.log(err)\n } finally {\n isBalanceLoading = false\n }\n })\n</script>\n\n{#if isBalanceLoading}\n <div class=\"crtw-w-full crtw-justify-items-center crtw-my-5\">\n <Loader />\n </div>\n{:else}\n <CredenzaBalance\n options={{\n formattedBalance,\n balance: Number((+ethers.formatUnits(BigInt(balance), decimals)).toFixed(2)),\n credAlias: $clientPublicStore?.ui_settings.cred_alias,\n onPay: payWithCredenza,\n onGetCred: () => pageStore.set(Pages.WALLET),\n totalToPay: (+ethers.formatUnits(totalPriceToken, decimals)).toFixed(2),\n isLoading,\n isPaymentDisabled: !Number(balance) || BigInt(totalPriceToken) > balance || isPriceLoading,\n }}\n />\n{/if}\n","<script lang=\"ts\">\n import { Pages } from '@packages/utils/enums'\n import { onDestroy } from 'svelte'\n import { get } from 'svelte/store'\n import { ethers } from '@credenza3/core-web-evm-ext'\n\n import { pageOptsStore, userStore, pageStore, fn } from '@packages/stores'\n import { DEFAULT_TOKEN_ID } from '@packages/utils/constants'\n import { dispatch, PassportEvents } from '@lib/events/events'\n import type { TPaymentItem } from '@packages/utils/types'\n import { Payment } from '@packages/ui'\n import Stripe from './stripe/Stripe.svelte'\n import CredenzaBalance from './credenza-balance/CredenzaBalance.svelte'\n import { configStore, providerStore, contractsStore } from '@src/stores'\n\n const { close } = get(fn)\n const chainId = get(configStore).chainId\n\n $: if ($configStore.chainId !== chainId) close()\n\n let totalSumCents: number = 0\n let totalSumToken: number = 0\n let isPriceLoading: boolean = false\n let isLoading: boolean = false\n\n let pricesByToken: { [key: string]: number } = {}\n\n const getTokenPrice = async (sellableContract: ethers.Contract, tokenId: number): Promise<[number, number]> => {\n let priceCents = await sellableContract.getPriceFiat(tokenId).then((result) => Number(result))\n let priceToken = 0\n\n if (priceCents === 0) {\n ;[priceCents, priceToken] = await Promise.all([\n sellableContract.getPriceFiat(DEFAULT_TOKEN_ID).then((result) => Number(result)),\n sellableContract.getPriceToken(DEFAULT_TOKEN_ID).then((result) => Number(result)),\n ])\n } else {\n priceToken = await sellableContract.getPriceToken(tokenId).then((result) => Number(result))\n }\n\n return [priceCents, priceToken]\n }\n\n const calculateTotalPrice = async (items: TPaymentItem[]): Promise<void> => {\n try {\n isPriceLoading = true\n for (const token of items) {\n if (token.contractAddress === $contractsStore.erc20Cred.address) {\n totalSumCents += token.amount * 100\n } else {\n const { credenzaSellableMinAbi } = await import('@src/lib/abi')\n const sellableContract = new ethers.Contract(token.contractAddress, credenzaSellableMinAbi, $providerStore)\n const tokenId = token.tokenId || (token.typeId as string) || DEFAULT_TOKEN_ID\n\n let [priceCents, priceToken] = await getTokenPrice(sellableContract, +tokenId)\n\n if (token?.amount && token?.amount !== 0) {\n priceCents *= token.amount\n priceToken *= token.amount\n }\n\n totalSumCents += priceCents\n totalSumToken += priceToken\n\n pricesByToken[`${token.contractAddress}/${tokenId}`] = priceToken\n }\n }\n } catch (err) {\n dispatch(PassportEvents.ERROR, err)\n } finally {\n isPriceLoading = false\n }\n }\n\n const unsub = pageOptsStore.subscribe(async (store) => {\n if (!store?.tokens?.length && !store?.memberships?.length) return\n\n await calculateTotalPrice([...(store?.tokens || []), ...(store?.memberships || [])])\n })\n\n onDestroy(unsub)\n</script>\n\n{#if isLoading}\n {#await import('@components/progress/ProgressVideo.svelte') then module}\n <svelte:component this={module.default} />\n {/await}\n{/if}\n\n<Payment\n bind:isLoading\n options={{\n user: $userStore,\n title: $pageOptsStore.title || `Order Summary`,\n subtitle: $pageOptsStore.subtitle,\n onBackClick: () => pageStore.set(Pages.WALLET),\n isStripeDisabled: $pageOptsStore.payments?.stripe?.disabled,\n isCredezaValueDisabled: !totalSumCents || $pageOptsStore.payments?.credenzaStoredValue?.disabled,\n isPriceLoading,\n totalSumCents,\n }}\n>\n <div slot=\"credit-card\">\n <Stripe priceCents={totalSumCents} {isPriceLoading} purchaseConfig={$pageOptsStore} bind:isLoading />\n </div>\n <div slot=\"cred-balance\">\n <CredenzaBalance\n {pricesByToken}\n totalPriceToken={totalSumToken}\n {isPriceLoading}\n purchaseConfig={$pageOptsStore}\n bind:isLoading\n />\n </div>\n</Payment>\n"],"names":["LockIcon","onClick","$.prop","$$props","text","disabled","isLoading","isActive","$$render","consequent","alternate","_a","$$args","options","user","title","subtitle","onBackClick","isStripeDisabled","currencySymbol","activeTab","$.mutable_source","PaymentViews","isPriceLoading","totalSumCents","isCredezaValueDisabled","$0","$.untrack","$.get","consequent_2","consequent_1","isPaymentDisabled","totalToPay","isCardFocused","onPay","expression","$.derived_safe_equal","credAlias","onGetCred","formattedBalance","balance","__awaiter","thisArg","_arguments","P","generator","doPayment","stripe","stripeElements","priceCents","onMount","paymentRequest","walletPayElement","event","err","dispatch","PassportEvents","stripeStyles","loadScript","src","resolve","reject","script","getCompmletedOrderDetails","apiUrl","orderId","maxRetries","attempts","res","get","accessTokenStore","validateOrderItems","txs","orders","errorMessages","item","requestReceipt","hash","stripeChargeId","amount","currency","credenza","recieptTarget","clientId","configStore","RecieptTarget","getClientConfigByClientId","afterPaymentProcess","purchaseConfig","toastAlert","fn","config","chain_txs","items","failedOrdersMessage","TransactionTypes","userStore","analytics","getAddress","waitVideoEnded","pageOptsStore","pageStore","Pages","Stripe","cardElement","isButtonActive","clientName","$.set","handleSubmit","result","tokenId","processPayment","totalPriceToken","pricesByToken","getCREDContract","chainId","isBalanceLoading","symbol","contract","decimals","userAddress","signer","credContract","processPaymentItem","index","credenzaSellableMinAbi","credenzaSellableContract","ethers","tokenOrTypeId","priceToken","approveTx","sendContractTx","buyTx","getTxScanAddress","payWithCredenza","paymentPromises","_b","providerStore","getCryptoCurrencySymbol","$clientPublicStore","close","totalSumToken","getTokenPrice","sellableContract","DEFAULT_TOKEN_ID","calculateTotalPrice","token","$contractsStore","$providerStore","unsub","store","onDestroy","$configStore","$.await","node_1","module","$.component","node_2","$$anchor","$$component","$userStore","$pageOptsStore","_d","_c"],"mappings":"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"}
1
+ {"version":3,"file":"Payment-BGGkR1cJ.js","sources":["../../ui/images/lock.svg","../../ui/main/payment/PaymentSwitchButton.svelte","../../ui/main/payment/Payment.svelte","../../ui/main/payment/Stripe.svelte","../../ui/main/payment/CredenzaBalance.svelte","../src/app/pages/payment/stripe/wallet-pay/WalletPay.svelte","../src/app/pages/payment/stripe/Stripe.styles.ts","../../utils/lib/scripts/scripts.ts","../../utils/lib/orders/index.ts","../src/app/pages/payment/Payment.service.ts","../src/app/pages/payment/stripe/Stripe.svelte","../src/app/pages/payment/credenza-balance/CredenzaBalance.svelte","../src/app/pages/payment/Payment.svelte"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='22'%20height='22'%20viewBox='0%200%2024%2024'%3e%3cpath%20fill='%23bbb'%20d='M17%209.761v-4.761c0-2.761-2.238-5-5-5-2.763%200-5%202.239-5%205v4.761c-1.827%201.466-3%203.714-3%206.239%200%204.418%203.582%208%208%208s8-3.582%208-8c0-2.525-1.173-4.773-3-6.239zm-8-4.761c0-1.654%201.346-3%203-3s3%201.346%203%203v3.587c-.927-.376-1.938-.587-3-.587s-2.073.211-3%20.587v-3.587zm4%2011.723v2.277h-2v-2.277c-.596-.347-1-.984-1-1.723%200-1.104.896-2%202-2s2%20.896%202%202c0%20.738-.404%201.376-1%201.723z'/%3e%3c/svg%3e\"","<style>\n .active {\n background-color: #ffff;\n font-weight: 500;\n color: #000;\n }\n .btn-disabled {\n pointer-events: none;\n background-color: #d0d2d5;\n }\n</style>\n\n<script lang=\"ts\">\n import Loader from '../shared/Loader.svelte'\n \n export let onClick: (...args: unknown[]) => unknown\n export let text: string\n export let disabled: boolean = false\n export let isLoading: boolean = false\n export let isActive: boolean = false\n</script>\n\n<button\n type=\"submit\"\n class=\"crtw-flex crtw-justify-center crtw-items-center crtw-w-full crtw-h-[50px] crtw-cursor-pointer crtw-border crtw-border-gray-300\n crtw-rounded crtw-font-['poppins'] crtw-text-gray-600\"\n class:btn-disabled={disabled || isLoading}\n class:active={isActive}\n on:click|preventDefault={onClick}\n>\n {#if isLoading}\n <Loader />\n {:else}\n {text}\n {/if}\n</button>","<script lang=\"ts\">\n import { PaymentViews } from '../../../utils/enums';\n import ButtonBack from '../shared/inputs/button-back/ButtonBack.svelte';\n import LockIcon from '../../images/lock.svg'\n import type { TUser } from '../../../utils/types';\n import PaymentSwitchButton from './PaymentSwitchButton.svelte';\n\n export let isLoading: boolean\n export let options: {\n user: TUser| null\n title: string\n subtitle?: string\n onBackClick: () => void\n isStripeDisabled: boolean\n isCredezaValueDisabled: boolean,\n isPriceLoading: boolean\n totalSumCents: number,\n currencySymbol?: string\n }\n\n \n let { user, title, subtitle, onBackClick, isStripeDisabled, currencySymbol = '$' } = options\n let activeTab = isStripeDisabled ? PaymentViews.CREDENZA_BALANCE : PaymentViews.CREDIT_CARD\n\n $: isPriceLoading = options.isPriceLoading\n $: totalSumCents = options.totalSumCents\n $: isCredezaValueDisabled = options.isCredezaValueDisabled\n</script>\n\n<div class=\"cpui-payment crtw-text-left crtw-w-full\" class:crtw-hidden={isLoading}>\n <div class=\"crtw-text-right crtw-text-[13px] crtw-text-gray-400 crtw-mb-6\">\n <div class=\"crtw-break-words\">{user?.email || user?.pending?.email || ''}</div>\n <div>{user?.phone || user?.pending?.phone || ''}</div>\n </div>\n <div class=\"crtw-font-bold crtw-text-xl\">{title}</div>\n <div class=\"crtw-flex crtw-justify-between crtw-mb-3 crtw-text-gray-600 crtw-font-bold\">\n {#if subtitle}\n <div>{subtitle}</div>\n {/if}\n {#if isPriceLoading}\n <div>Getting price...</div>\n {:else if totalSumCents}\n <div>{currencySymbol}{(+totalSumCents / 100).toFixed(2)}</div>\n {/if}\n </div>\n <div class=\"crtw-flex crtw-bg-gray-200 crtw-rounded-md crtw-p-px\">\n <PaymentSwitchButton\n text=\"Credit Card\"\n onClick={() => (activeTab = PaymentViews.CREDIT_CARD)}\n isActive={activeTab === PaymentViews.CREDIT_CARD}\n disabled={isStripeDisabled}\n />\n <PaymentSwitchButton\n text=\"Credenza Balance\"\n onClick={() => (activeTab = PaymentViews.CREDENZA_BALANCE)}\n isActive={activeTab === PaymentViews.CREDENZA_BALANCE}\n disabled={isCredezaValueDisabled}\n />\n </div>\n <hr class=\"crtw-block crtw-border-t-2 crtw-border-gray-200 crtw-w-1/2 crtw-mx-auto crtw-mt-3.5 crtw-mb-[30px]\" />\n {#if activeTab === PaymentViews.CREDIT_CARD}\n <slot name=\"credit-card\" />\n {:else if activeTab === PaymentViews.CREDENZA_BALANCE}\n <slot name=\"cred-balance\" />\n {/if}\n <div class=\"crtw-flex crtw-w-full crtw-justify-center crtw-items-center\">\n <img src={LockIcon} alt=\"\" /><span class=\"crtw-text-sm crtw-text-gray-400 crtw-ml-1\"\n >Payments are secure and encrypted</span\n >\n </div>\n <div class=\"crtw-mt-1.5\">\n <ButtonBack onClick={onBackClick} />\n </div>\n</div>\n","<script lang=\"ts\">\n import Button from \"../shared/inputs/button/Button.svelte\";\n\n export let options: {\n isCardFocused: boolean\n onPay: () => void\n currencySymbol?: string\n }\n export let isPaymentDisabled: boolean\n export let isLoading: boolean\n export let totalToPay: string\n\n let { isCardFocused, onPay, currencySymbol = '$' } = options\n</script>\n\n<div class=\"crtw-text-base crtw-mb-1.5\">Credit card details</div>\n<div\n id=\"cpui-card-element\"\n class=\"crtw-border crtw-border-gray-300 crtw-rounded crtw-px-2.5 crtw-py-4 crtw-mb-2.5 crtw-w-full\"\n style={isCardFocused ? 'border-color: #121e2b' : ''}\n/>\n<!-- Used to display Element errors. -->\n<div id=\"card-errors\" role=\"alert\" />\n<Button\n text={`Pay ${currencySymbol}${totalToPay}`}\n onClick={onPay}\n disabled={isPaymentDisabled}\n bind:isLoading\n/>","<script lang=\"ts\">\n import Button from \"../shared/inputs/button/Button.svelte\";\n\n export let options: {\n formattedBalance: string\n balance: number\n credAlias: string\n onPay: () => void\n onGetCred: () => void\n totalToPay: string\n isLoading: boolean\n isPaymentDisabled: boolean\n }\n\n let { credAlias, onPay, onGetCred } = options\n\n $: isLoading = options.isLoading\n $: isPaymentDisabled = options.isPaymentDisabled\n $: formattedBalance = options.formattedBalance\n $: totalToPay = options.totalToPay\n $: balance = options.balance\n</script>\n\n<div class=\"crtw-w-full crtw-text-center crtw-my-5\">\n <div class=\"crtw-text-3xl crtw-text-black crtw-font-bold\">\n {#if Number(totalToPay) > balance}\n INSUFFICIENT FUNDS\n {:else}\n {formattedBalance}\n {/if}\n \n </div>\n <div class=\"crtw-mb-5 crtw-text-gray-600\">\n {#if Number(totalToPay) > balance}\n <!-- svelte-ignore a11y-click-events-have-key-events -->\n You do not have enough stored value to make this payment. \n <span\n class=\"crtw-text-black crtw-cursor-pointer\"\n role=\"button\"\n tabindex=\"0\"\n on:click={onGetCred}\n >\n Click to get some {credAlias}\n </span>\n {:else}\n Your balance after purchase\n {/if}\n </div>\n\n <Button\n text={`Pay ${totalToPay} ${credAlias}`}\n onClick={onPay}\n disabled={isPaymentDisabled}\n {isLoading}\n />\n</div>","<script lang=\"ts\">\n import { onMount } from 'svelte'\n import { dispatch, PassportEvents } from '@lib/events/events'\n\n export let doPayment: (stripeTokenId: string) => Promise<void>\n export let stripe: Window['Stripe']\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export let stripeElements: any\n export let priceCents: number\n export let isLoading: boolean\n\n onMount(async () => {\n const paymentRequest = stripe.paymentRequest({\n country: 'US',\n currency: 'usd',\n total: {\n label: 'Apple/Google payment',\n amount: priceCents,\n },\n requestPayerName: true,\n requestPayerEmail: true,\n })\n const canMakePayment = await paymentRequest.canMakePayment()\n if (!canMakePayment) return\n\n const walletPayElement = document.getElementById('ctui-wallet-pay')\n if (walletPayElement) walletPayElement.style.display = 'crtw-block'\n\n const prButton = stripeElements.create('paymentRequestButton', {\n paymentRequest: paymentRequest,\n style: {\n paymentRequestButton: {\n height: '48px',\n },\n },\n })\n prButton.mount('#ctui-payment-request-button')\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n paymentRequest.on('token', async (event: any) => {\n isLoading = true\n try {\n await doPayment(event.token.id)\n await event.complete('success')\n } catch (err) {\n await event.complete('error')\n dispatch(PassportEvents.ERROR, { error: err })\n }\n isLoading = false\n })\n })\n</script>\n\n<div id=\"ctui-wallet-pay\" class=\"crtw-w-full crtw-my-4\" style=\"dispay: none;\">\n <div id=\"ctui-payment-request-button\"></div>\n</div>\n","export const stripeStyles = {\n base: {\n color: '#121e2b',\n fontSize: '12px',\n '::placeholder': {\n color: '#d9d9d9',\n },\n },\n invalid: {\n color: '#fa755a',\n },\n}\n","export const loadScript = (src: string) => {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = src\n document.body.appendChild(script)\n script.addEventListener('load', () => resolve(script))\n script.addEventListener('error', () => reject(script))\n })\n}\n","import { get } from \"svelte/store\";\nimport { accessTokenStore } from \"../../../stores\";\nimport type { TPaymentReturn } from \"@packages/utils/types\";\n\nexport const getOrderDetails = async (apiUrl: string, orderId: string): Promise<TPaymentReturn> => {\n const res = await fetch(`${apiUrl}/orders/${orderId}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${get(accessTokenStore)}`,\n },\n method: \"GET\",\n });\n if (!res.ok) throw new Error(\"Failed to get order details\");\n return await res.json();\n}\nexport const getCompmletedOrderDetails = async (\n apiUrl: string,\n orderId: string,\n maxRetries = 5\n) => {\n let attempts = 0;\n\n while (attempts < maxRetries) {\n const res = await fetch(`${apiUrl}/orders/completed/${orderId}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${get(accessTokenStore)}`,\n },\n method: \"GET\",\n });\n\n if (res.status === 204) {\n attempts++;\n if (attempts < maxRetries) {\n continue;\n } else {\n throw new Error(\"No content received after multiple attempts\");\n }\n }\n\n if (!res.ok) throw new Error(\"Failed to get order details\");\n return await res.json();\n }\n};\n\nexport const validateOrderItems = (\n txs: string[] | null[],\n orders: TPaymentReturn[\"items\"],\n): string => {\n const errorMessages = orders\n .filter((item) => item.error)\n .map(\n (item) =>\n `Name: ${item.metadata?.name || item.directive.resource_id}, reason: ${item.error}`\n )\n .join(\"\\n\");\n if (txs.every((item) => item === null)) {\n throw new Error(`All transactions failed. \\n${errorMessages}`);\n } else if (orders?.every(item => item.status === \"ERROR\")) {\n throw new Error(`All transactions failed.}`);\n }\n return errorMessages;\n};\n","import { get } from 'svelte/store'\nimport { accessTokenStore, fn } from '@packages/stores'\nimport { RecieptTarget } from '@packages/utils/enums'\nimport { configStore } from '@src/stores/config'\nimport { getClientConfigByClientId } from '@lib/clients'\nimport type { TMembershipPaymentData, TTokenPaymentData } from './oders.types'\nimport { dispatch, PassportEvents } from '@lib/events/events'\nimport { TransactionTypes } from '@packages/utils/enums'\nimport { pageOptsStore, pageStore, userStore } from '@packages/stores'\nimport { Pages } from '@packages/utils/enums'\nimport { analytics } from '@lib/mixpanel/mixpanel'\nimport { waitVideoEnded } from '@components/progress/ProgressVideo.service'\nimport { getAddress } from '@src/passport/blockchain'\nimport { validateOrderItems } from '@lib/orders'\nimport type { TPaymentReturn } from '@packages/utils/types'\n\n\nexport const requestReceipt = async ({\n hash,\n stripeChargeId,\n title,\n subtitle,\n amount,\n currency,\n}: {\n hash?: string\n stripeChargeId?: string\n title?: string\n subtitle?: string\n amount?: number\n currency?: string\n}) => {\n const { credenza, recieptTarget, clientId } = get(configStore)\n\n const result = await fetch(`${credenza.evmApiUrl}/contracts/receipt`, {\n method: 'POST',\n body: JSON.stringify({\n ...(hash ? { tx: hash } : { charge_id: stripeChargeId }),\n ...(amount ? { amount } : {}),\n ...(currency ? { currency } : {}),\n target: recieptTarget || RecieptTarget.EMAIL,\n title,\n subtitle,\n source: getClientConfigByClientId(clientId).name,\n }),\n headers: {\n Authorization: `Bearer ${get(accessTokenStore)}`,\n 'Content-Type': 'application/json',\n },\n })\n\n return result.ok\n}\n\nexport const afterPaymentProcess = async (res: TPaymentReturn, priceCents: number, purchaseConfig: {\n title: string\n subtitle: string\n tokens: TTokenPaymentData[]\n memberships: TMembershipPaymentData[]\n}) => {\n const { toastAlert } = get(fn)\n const config = get(configStore)\n \n const { chain_txs, items } = res\n const failedOrdersMessage = validateOrderItems(chain_txs, items)\n dispatch(PassportEvents.PAYMENT, {\n type: TransactionTypes.STRIPE,\n results: { tokens: purchaseConfig.tokens, memberships: purchaseConfig.memberships },\n })\n toastAlert('Your payment was successful')\n dispatch(PassportEvents.RECHECK_BALANCE, chain_txs)\n\n const user = get(userStore)\n if (user) {\n analytics.track('cp_payment_fiat', {\n $email: user.email,\n $phone: user.phone,\n chain: config.chainId,\n clientId: config.clientId,\n address: await getAddress(),\n location: window.location.href,\n tokens: purchaseConfig?.tokens,\n memberships: purchaseConfig?.memberships,\n total: priceCents / 100,\n description: (purchaseConfig?.title ?? '') + `(${purchaseConfig?.subtitle ?? ''})`,\n })\n }\n\n await waitVideoEnded()\n\n if (priceCents === 0) pageOptsStore.set({ subtitle: 'Your claim was successful!', receipt: false })\n\n if (failedOrdersMessage) {\n pageOptsStore.set({\n title: 'Done!',\n subtitle: 'Your payment was partly successful',\n orders: items,\n })\n }\n pageStore.set(Pages.PAYMENT_RESULT)\n}","<script lang=\"ts\">\n import WalletPay from './wallet-pay/WalletPay.svelte'\n import { onMount } from 'svelte'\n import { get } from 'svelte/store'\n import { stripeStyles } from '@pages/payment/stripe/Stripe.styles'\n import { dispatch, PassportEvents } from '@lib/events/events'\n import { loadScript } from '@lib/scripts/scripts'\n import { pageOptsStore, pageStore, fn } from '@packages/stores'\n import { Pages } from '@packages/utils/enums'\n import { Stripe as StripeComponent } from '@packages/ui'\n import { configStore } from '@src/stores/config'\n import { getClientConfigByClientId } from '@lib/clients'\n import { afterPaymentProcess } from '../Payment.service'\n import type { TMembershipPaymentData, TTokenPaymentData } from '../oders.types'\n\n export let priceCents: number\n export let isLoading: boolean\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export let purchaseConfig: {\n title: string\n subtitle: string\n tokens: TTokenPaymentData[]\n memberships: TMembershipPaymentData[]\n }\n export let isPriceLoading: boolean\n\n const { toastAlert } = get(fn)\n const config = get(configStore)\n\n let Stripe: Window['Stripe']\n let stripe: Window['Stripe']\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let stripeElements: any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let cardElement: any\n let isButtonActive: boolean\n\n let isCardFocused = false\n onMount(async () => {\n try {\n if (!Stripe) {\n if (!window.Stripe) {\n await loadScript('https://js.stripe.com/v3/')\n if (!window.Stripe) throw {}\n }\n Stripe = window.Stripe\n }\n } catch (err) {\n return console.log('Please include stripe to use payments.')\n }\n if (stripe) return\n\n const clientName = getClientConfigByClientId(config.clientId).name\n stripe = Stripe(config.stripe.pk[clientName] ?? config.stripe.pk.DEFAULT)\n stripeElements = stripe.elements()\n cardElement = stripeElements.create('card', { style: stripeStyles })\n cardElement.mount('#cpui-card-element')\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n cardElement.on('change', (event: any) => {\n isButtonActive = event.complete && !event.error\n })\n cardElement.on('focus', () => (isCardFocused = true))\n cardElement.on('blur', () => (isCardFocused = false))\n })\n\n const handleSubmit = async () => {\n try {\n if (!isButtonActive) return\n isLoading = true\n const result = await stripe.createToken(cardElement)\n if (result.error) throw result.error\n await doPayment(result.token.id)\n } catch (err) {\n dispatch(PassportEvents.ERROR, { error: err })\n }\n isLoading = false\n }\n\n const doPayment = async (tokenId: string) => {\n try {\n const { processPayment } = await import('@pages/payment/stripe/Stripe.service')\n\n const res = await processPayment(tokenId)\n await afterPaymentProcess(res, priceCents, purchaseConfig)\n } catch (err) {\n toastAlert(`Payment error: ${err.message || err}`, 'failure')\n pageOptsStore.set({ errorMessage: err.message || err })\n pageStore.set(Pages.ERROR)\n dispatch(PassportEvents.ERROR, { error: err })\n }\n }\n\n $: isPaymentDisabled = !isButtonActive || isLoading || isPriceLoading\n $: totalToPay = (priceCents / 100).toFixed(2)\n</script>\n\n<StripeComponent\n bind:isPaymentDisabled\n bind:isLoading\n bind:totalToPay\n options={{\n isCardFocused,\n onPay: handleSubmit,\n currencySymbol: getClientConfigByClientId(config.clientId).currencySymbol,\n }}\n/>\n\n{#if stripe && stripeElements}\n <WalletPay {doPayment} {stripe} {stripeElements} {priceCents} bind:isLoading />\n{/if}\n","<script lang=\"ts\">\n import { ethers } from '@credenza3/core-web-evm-ext'\n import { get } from 'svelte/store'\n import { onMount } from 'svelte'\n import { Pages } from '@packages/utils/enums'\n import { clientPublicStore, fn, pageOptsStore, pageStore, userStore } from '@packages/stores'\n import { dispatch, PassportEvents } from '@lib/events/events'\n import { TransactionTypes } from '@packages/utils/enums'\n import { sendContractTx, getTxScanAddress } from '@src/lib/tx/tx'\n import { requestReceipt } from '@pages/payment/Payment.service'\n import { analytics } from '@lib/mixpanel/mixpanel'\n import { waitVideoEnded } from '@components/progress/ProgressVideo.service'\n import { type TEvmContract, type TPaymentItem } from '@packages/utils/types'\n import { getCryptoCurrencySymbol } from '@lib/strings/strings'\n import { CredenzaBalance } from '@packages/ui'\n import { getAddress } from '@src/passport/blockchain'\n import { configStore, providerStore } from '@src/stores'\n import Loader from '@packages/ui/main/shared/Loader.svelte'\n\n export let totalPriceToken: number\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export let purchaseConfig: any\n export let isLoading: boolean\n export let isPriceLoading: boolean\n export let pricesByToken: { [key: string]: number }\n\n const { getCREDContract, toastAlert } = get(fn)\n const { chainId, clientId } = get(configStore)\n\n let isBalanceLoading: boolean = false\n let balance: bigint = BigInt(0)\n let formattedBalance: string\n let symbol: string = ''\n let contract: ethers.Contract\n let decimals: number\n let userAddress: string\n let signer: ethers.Signer\n let credContract: {\n address: string\n decimals: number\n contract: ethers.Contract\n }\n\n const processPaymentItem = async (item: TPaymentItem, index: number) => {\n try {\n const { credenzaSellableMinAbi } = await import('@src/lib/abi')\n const credenzaSellableContract = new ethers.Contract(item.contractAddress, credenzaSellableMinAbi, signer)\n const tokenOrTypeId = item.tokenId ? item.tokenId : (item.typeId as string)\n const priceToken = pricesByToken[`${item.contractAddress}/${tokenOrTypeId}`]\n\n const approveTx = await contract.approve.populateTransaction(\n await credenzaSellableContract.getAddress(),\n priceToken,\n )\n\n await sendContractTx(approveTx, contract)\n const buyTx = await credenzaSellableContract.buyWithToken.populateTransaction(\n tokenOrTypeId,\n item.amount || 1,\n userAddress,\n )\n\n const result = await sendContractTx(buyTx, credenzaSellableContract)\n\n toastAlert(`<a href=\"${getTxScanAddress(result.hash)}\" target=\"_blank\">Purchase TX #${index}</a> was created`)\n dispatch(PassportEvents.PAYMENT, { type: TransactionTypes.ERC20, data: result })\n dispatch(PassportEvents.RECHECK_BALANCE)\n\n await requestReceipt({\n hash: result.hash,\n title: purchaseConfig.title,\n subtitle: purchaseConfig.subtitle,\n currency: 'CRED',\n amount: +ethers.formatUnits(priceToken, decimals),\n })\n dispatch(PassportEvents.RECEIPT, { hash: result.hash })\n } catch (err) {\n toastAlert(`Payment error: ${err.message || err}`, 'failure')\n pageOptsStore.set({ errorMessage: err.message })\n pageStore.set(Pages.ERROR)\n dispatch(PassportEvents.ERROR, { error: err })\n }\n }\n\n const payWithCredenza = async () => {\n try {\n if (BigInt(totalPriceToken) > balance) return\n\n isLoading = true\n const paymentPromises = [...(purchaseConfig.tokens || []), ...(purchaseConfig.memberships || [])].map(\n (item, index) => processPaymentItem(item, index + 1),\n )\n await Promise.all(paymentPromises)\n\n const user = get(userStore)\n if (user) {\n analytics.track('cp_payment_stored_value', {\n $email: user.email,\n $phone: user.phone,\n chain: chainId,\n clientId,\n address: userAddress,\n location: window.location.href,\n tokens: purchaseConfig.tokens,\n memberships: purchaseConfig.memberships,\n total: totalPriceToken,\n description: (purchaseConfig?.title ?? '') + `(${purchaseConfig?.subtitle ?? ''})`,\n })\n }\n\n await waitVideoEnded()\n\n if (totalPriceToken === 0) pageOptsStore.set({ subtitle: 'Your claim was successful!', receipt: false })\n pageStore.set(Pages.PAYMENT_RESULT)\n } catch (err) {\n toastAlert(`Payment error: ${err.message || err}`, 'failure')\n pageOptsStore.set({ errorMessage: err.message })\n pageStore.set(Pages.ERROR)\n dispatch(PassportEvents.ERROR, { error: err })\n } finally {\n isLoading = false\n }\n }\n\n onMount(async () => {\n try {\n isBalanceLoading = true\n credContract = (await getCREDContract()) as TEvmContract\n\n signer = await get(providerStore).getSigner()\n contract = credContract.contract\n decimals = credContract.decimals\n ;[userAddress, symbol] = await Promise.all([getAddress(), contract.symbol()])\n balance = await contract.balanceOf(userAddress)\n\n formattedBalance = `${ethers.formatUnits(BigInt(balance) - BigInt(totalPriceToken), decimals)} ${getCryptoCurrencySymbol(symbol, 'cred')}`\n } catch (err) {\n console.log(err)\n } finally {\n isBalanceLoading = false\n }\n })\n</script>\n\n{#if isBalanceLoading}\n <div class=\"crtw-w-full crtw-justify-items-center crtw-my-5\">\n <Loader />\n </div>\n{:else}\n <CredenzaBalance\n options={{\n formattedBalance,\n balance: Number((+ethers.formatUnits(BigInt(balance), decimals)).toFixed(2)),\n credAlias: $clientPublicStore?.ui_settings.cred_alias,\n onPay: payWithCredenza,\n onGetCred: () => pageStore.set(Pages.WALLET),\n totalToPay: (+ethers.formatUnits(totalPriceToken, decimals)).toFixed(2),\n isLoading,\n isPaymentDisabled: !Number(balance) || BigInt(totalPriceToken) > balance || isPriceLoading,\n }}\n />\n{/if}\n","<script lang=\"ts\">\n import { Pages } from '@packages/utils/enums'\n import { onDestroy } from 'svelte'\n import { get } from 'svelte/store'\n import { ethers } from '@credenza3/core-web-evm-ext'\n\n import { pageOptsStore, userStore, pageStore, fn } from '@packages/stores'\n import { DEFAULT_TOKEN_ID } from '@packages/utils/constants'\n import { dispatch, PassportEvents } from '@lib/events/events'\n import type { TPaymentItem } from '@packages/utils/types'\n import { Payment } from '@packages/ui'\n import Stripe from './stripe/Stripe.svelte'\n import CredenzaBalance from './credenza-balance/CredenzaBalance.svelte'\n import { configStore, providerStore, contractsStore } from '@src/stores'\n\n const { close } = get(fn)\n const chainId = get(configStore).chainId\n\n $: if ($configStore.chainId !== chainId) close()\n\n let totalSumCents: number = 0\n let totalSumToken: number = 0\n let isPriceLoading: boolean = false\n let isLoading: boolean = false\n\n let pricesByToken: { [key: string]: number } = {}\n\n const getTokenPrice = async (sellableContract: ethers.Contract, tokenId: number): Promise<[number, number]> => {\n let priceCents = await sellableContract.getPriceFiat(tokenId).then((result) => Number(result))\n let priceToken = 0\n\n if (priceCents === 0) {\n ;[priceCents, priceToken] = await Promise.all([\n sellableContract.getPriceFiat(DEFAULT_TOKEN_ID).then((result) => Number(result)),\n sellableContract.getPriceToken(DEFAULT_TOKEN_ID).then((result) => Number(result)),\n ])\n } else {\n priceToken = await sellableContract.getPriceToken(tokenId).then((result) => Number(result))\n }\n\n return [priceCents, priceToken]\n }\n\n const calculateTotalPrice = async (items: TPaymentItem[]): Promise<void> => {\n try {\n isPriceLoading = true\n for (const token of items) {\n if (token.contractAddress === $contractsStore.erc20Cred.address) {\n totalSumCents += token.amount * 100\n } else {\n const { credenzaSellableMinAbi } = await import('@src/lib/abi')\n const sellableContract = new ethers.Contract(token.contractAddress, credenzaSellableMinAbi, $providerStore)\n const tokenId = token.tokenId || (token.typeId as string) || DEFAULT_TOKEN_ID\n\n let [priceCents, priceToken] = await getTokenPrice(sellableContract, +tokenId)\n\n if (token?.amount && token?.amount !== 0) {\n priceCents *= token.amount\n priceToken *= token.amount\n }\n\n totalSumCents += priceCents\n totalSumToken += priceToken\n\n pricesByToken[`${token.contractAddress}/${tokenId}`] = priceToken\n }\n }\n } catch (err) {\n dispatch(PassportEvents.ERROR, err)\n } finally {\n isPriceLoading = false\n }\n }\n\n const unsub = pageOptsStore.subscribe(async (store) => {\n if (!store?.tokens?.length && !store?.memberships?.length) return\n\n await calculateTotalPrice([...(store?.tokens || []), ...(store?.memberships || [])])\n })\n\n onDestroy(unsub)\n</script>\n\n{#if isLoading}\n {#await import('@components/progress/ProgressVideo.svelte') then module}\n <svelte:component this={module.default} />\n {/await}\n{/if}\n\n<Payment\n bind:isLoading\n options={{\n user: $userStore,\n title: $pageOptsStore.title || `Order Summary`,\n subtitle: $pageOptsStore.subtitle,\n onBackClick: () => pageStore.set(Pages.WALLET),\n isStripeDisabled: $pageOptsStore.payments?.stripe?.disabled,\n isCredezaValueDisabled: !totalSumCents || $pageOptsStore.payments?.credenzaStoredValue?.disabled,\n isPriceLoading,\n totalSumCents,\n }}\n>\n <div slot=\"credit-card\">\n <Stripe priceCents={totalSumCents} {isPriceLoading} purchaseConfig={$pageOptsStore} bind:isLoading />\n </div>\n <div slot=\"cred-balance\">\n <CredenzaBalance\n {pricesByToken}\n totalPriceToken={totalSumToken}\n {isPriceLoading}\n purchaseConfig={$pageOptsStore}\n bind:isLoading\n />\n </div>\n</Payment>\n"],"names":["LockIcon","onClick","$.prop","$$props","text","disabled","isLoading","$$render","consequent","alternate","isActive","$$args","options","subtitle","onBackClick","isStripeDisabled","currencySymbol","activeTab","PaymentViews","isPriceLoading","totalSumCents","isCredezaValueDisabled","$0","$.untrack","$.get","consequent_2","consequent_1","user","title","isPaymentDisabled","totalToPay","isCardFocused","onPay","credAlias","onGetCred","formattedBalance","balance","__awaiter","thisArg","_arguments","P","generator","onMount","stripe","priceCents","paymentRequest","walletPayElement","stripeElements","event","doPayment","err","dispatch","PassportEvents","stripeStyles","loadScript","src","resolve","reject","script","getCompmletedOrderDetails","apiUrl","orderId","maxRetries","attempts","res","get","accessTokenStore","validateOrderItems","txs","orders","errorMessages","item","requestReceipt","hash","stripeChargeId","amount","currency","credenza","recieptTarget","clientId","configStore","RecieptTarget","getClientConfigByClientId","afterPaymentProcess","purchaseConfig","toastAlert","fn","config","chain_txs","items","failedOrdersMessage","TransactionTypes","userStore","analytics","getAddress","waitVideoEnded","pageOptsStore","pageStore","Pages","Stripe","$.mutable_source","isButtonActive","clientName","$.set","_a","cardElement","handleSubmit","result","processPayment","tokenId","totalPriceToken","pricesByToken","isBalanceLoading","symbol","contract","decimals","userAddress","signer","credContract","processPaymentItem","index","credenzaSellableMinAbi","credenzaSellableContract","ethers","tokenOrTypeId","priceToken","approveTx","sendContractTx","buyTx","getTxScanAddress","payWithCredenza","paymentPromises","chainId","_b","getCREDContract","providerStore","getCryptoCurrencySymbol","close","totalSumToken","getTokenPrice","sellableContract","DEFAULT_TOKEN_ID","calculateTotalPrice","token","$contractsStore","$providerStore","store","onDestroy","unsub","$configStore","$.await","node_1","module","$.component","node_2","$$anchor","$$component","$userStore","$pageOptsStore"],"mappings":"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"}
@@ -0,0 +1,256 @@
1
+ import { c as ut, p as Pt, h as dt, f as g, i as x, r as p, b as n, d as pt, u as mt, s as nt, a as B, k as jt, e as Ot, t as et, n as Ct, o as Et } from "./legacy-ShShb87f.js";
2
+ import { z as ft, N as _t, Q as Mt, B as c, C as i, E as _, G as r, D as w, y as wt, u as Nt, x as S, J as t, A as Vt, V as ct, F as it, M as Yt, Z as Ft, R as Ut } from "./index-QYUycBJ8.js";
3
+ import { e as lt, i as ot } from "./each-CxApMty7.js";
4
+ function vt(A, o, z, C) {
5
+ if (z === "sui")
6
+ return `https://suiscan.xyz/${C}/tx/${o}`;
7
+ switch (String(A.chainId)) {
8
+ case "137":
9
+ return `https://polygonscan.com/tx/${o}`;
10
+ case "88888":
11
+ return `https://chiliscan.com/tx/${o}`;
12
+ case "43114":
13
+ return `https://subnets.avax.network/c-chain/tx/${o}`;
14
+ case "80002":
15
+ return `https://amoy.polygonscan.com/tx/${o}`;
16
+ case "88882":
17
+ return `https://testnet.chiliscan.com/tx/${o}`;
18
+ case "43113":
19
+ return `https://subnets-test.avax.network/c-chain/block/${o}`;
20
+ default:
21
+ return null;
22
+ }
23
+ }
24
+ var qt = g('<div class="crtw-my-4 flex justify-center"><div class="crtw-w-64 crtw-h-64 crtw-rounded-xl crtw-shadow-md crtw-bg-white flex items-center justify-center overflow-hidden"><img alt="Token" class="max-w-full max-h-full object-contain"/></div></div>'), Bt = g('<span> </span> <span class="crtw-break-all crtw-whitespace-normal crtw-break-words"> </span>', 1), Dt = g('<div class="crtw-mb-2"><a target="_blank" rel="noopener noreferrer" class="crtw-text-blue-600 crtw-underline"><div class="crtw-break-words"><!></div></a></div>'), Gt = g('<span> </span> <span class="text-gray-500 break-all whitespace-normal"> </span>', 1), Jt = g('<span> </span> <span class="crtw-break-all crtw-whitespace-normal crtw-break-words"> </span>', 1), Qt = g('<div class="crtw-mb-3"><p class="crtw-text-red-600 break-words"><!></p></div>'), Zt = g('<div class="crtw-mt-6"><div class="crtw-text-lg crtw-font-semibold crtw-mb-2">Successful</div> <!> <div>Failed</div> <!> <button class="crtw-bg-black hover:crtw-bg-gray-800 crtw-text-white crtw-px-4 crtw-py-2 crtw-rounded-md crtw-mt-4">Try Again</button></div>'), Ht = g('If you are not seeing your new token, please contact <a href="mailto:support@credenza3.com" class="text-blue-600 underline">support@credenza3.com</a>.', 1), Kt = g(
25
+ `Typically, your purchase will be processed within a few seconds. In the
26
+ event of unusually high traffic, you may have to wait as much as a minute
27
+ or so. If several minutes pass and you are not seeing your purchase,
28
+ please contact <a class="crtw-underline" href="mailto:support@credenza3.com">support@credenza3.com</a>.`,
29
+ 1
30
+ ), Lt = g('<div><div class="crtw-text-black-900 crtw-text-xl md:crtw-text-2xl crtw-font-semibold crtw-pt-5 crtw-mb-3.5 crtw-text-center"> </div> <div class="crtw-mb-3.5 crtw-text-sm crtw-text-justify"> </div> <!> <div class="crtw-mb-3.5 crtw-text-sm crtw-text-justify"><!></div></div>');
31
+ function gt(A, o) {
32
+ if (new.target) return ut({ component: gt, ...A });
33
+ ft(o, !1);
34
+ let z = Pt(o, "options", 12);
35
+ const { openUI: C } = _t(Mt);
36
+ let { title: R, subtitle: N, orders: h, networkType: V, tokenImage: D, isSui: ht } = z();
37
+ const xt = (h ?? []).filter((a) => a.tx), E = (h ?? []).filter((a) => !a.tx);
38
+ function bt() {
39
+ var a;
40
+ if (E.some((d) => d.asset)) {
41
+ const d = E.filter((s) => s.asset).map((s) => ({
42
+ packageId: s.asset.packageId,
43
+ type: s.asset.type,
44
+ assetId: s.asset.assetId,
45
+ amount: s.asset.amount
46
+ }));
47
+ if (!d.length) return;
48
+ C(ct.PAYMENT, {
49
+ subtitle: "Retrying failed orders",
50
+ payments: { credenzaStoredValue: { disabled: !1 } },
51
+ assets: d
52
+ });
53
+ return;
54
+ }
55
+ const u = [], m = [];
56
+ for (const d of E) {
57
+ const s = d.directive;
58
+ s.type !== "membership" ? u.push({
59
+ contractAddress: s.resource_id,
60
+ tokenId: (a = s.value) === null || a === void 0 ? void 0 : a.token_id,
61
+ amount: s.value.amount
62
+ }) : m.push({ contractAddress: s.resource_id });
63
+ }
64
+ !u.length && !m.length || C(ct.PAYMENT, {
65
+ subtitle: "Retrying failed orders",
66
+ payments: { credenzaStoredValue: { disabled: !1 } },
67
+ tokens: u,
68
+ memberships: m
69
+ });
70
+ }
71
+ dt();
72
+ var Z = Lt(), H = c(Z), yt = c(H, !0);
73
+ i(H);
74
+ var K = _(H, 2), kt = c(K, !0);
75
+ i(K);
76
+ var at = _(K, 2);
77
+ {
78
+ var It = (a) => {
79
+ var v = qt(), u = c(v), m = c(u);
80
+ i(u), i(v), w(() => nt(m, "src", D)), n(a, v);
81
+ };
82
+ x(at, (a) => {
83
+ D && a(It);
84
+ });
85
+ }
86
+ var st = _(at, 2), St = c(st);
87
+ {
88
+ var At = (a) => {
89
+ var v = Zt(), u = _(c(v), 2);
90
+ lt(u, 1, () => xt, ot, (T, l) => {
91
+ var G = B(), L = S(G);
92
+ {
93
+ var e = ($) => {
94
+ var M = Dt(), F = c(M), J = c(F), W = c(J);
95
+ {
96
+ var b = (f) => {
97
+ var j = et();
98
+ w(() => p(j, (t(l), r(() => t(l).metadata.name)))), n(f, j);
99
+ }, P = (f) => {
100
+ var j = Bt(), U = S(j), y = c(U, !0);
101
+ i(U);
102
+ var k = _(U, 2), O = c(k);
103
+ i(k), w(() => {
104
+ p(y, (t(l), r(() => t(l).directive.type))), p(O, `(${t(l), r(() => t(l).directive.resource_id) ?? ""})`);
105
+ }), n(f, j);
106
+ };
107
+ x(W, (f) => {
108
+ t(l), r(() => t(l).metadata?.name) ? f(b) : f(P, !1);
109
+ });
110
+ }
111
+ i(J), i(F), i(M), w((f) => nt(F, "href", f), [
112
+ () => (Vt(vt), t(l), r(() => vt({ chainId: t(l).directive?.chain_id || "" }, t(l).tx, t(l).directive.chain_type, V || "")))
113
+ ]), n($, M);
114
+ };
115
+ x(L, ($) => {
116
+ t(l), r(() => t(l).tx) && $(e);
117
+ });
118
+ }
119
+ n(T, G);
120
+ });
121
+ var m = _(u, 2);
122
+ let d;
123
+ var s = _(m, 2);
124
+ {
125
+ var Y = (T) => {
126
+ var l = B(), G = S(l);
127
+ lt(G, 1, () => E, ot, (L, e) => {
128
+ var $ = Qt(), M = c($), F = c(M);
129
+ {
130
+ var J = (b) => {
131
+ var P = et();
132
+ w(() => p(P, (t(e), r(() => t(e).metadata.name)))), n(b, P);
133
+ }, W = (b) => {
134
+ var P = B(), f = S(P);
135
+ {
136
+ var j = (y) => {
137
+ var k = Gt(), O = S(k), X = c(O, !0);
138
+ i(O);
139
+ var Q = _(O, 2), I = c(Q);
140
+ i(Q), w(() => {
141
+ p(X, (t(e), r(() => t(e).directive.type))), p(I, `(${t(e), r(() => t(e).directive.resource_id) ?? ""})`);
142
+ }), n(y, k);
143
+ }, U = (y) => {
144
+ var k = B(), O = S(k);
145
+ {
146
+ var X = (I) => {
147
+ var q = et();
148
+ w(() => p(q, `AssetId ${t(e), r(() => t(e).asset.assetId) ?? ""} : ${t(e), r(() => t(e).error) ?? ""}`)), n(I, q);
149
+ }, Q = (I) => {
150
+ var q = Jt(), tt = S(q), Tt = c(tt, !0);
151
+ i(tt);
152
+ var rt = _(tt, 2), $t = c(rt);
153
+ i(rt), w(() => {
154
+ p(Tt, (t(e), r(() => t(e).asset?.type))), p($t, `(${t(e), r(() => t(e).asset?.packageId) ?? ""}) : ${t(e), r(() => t(e).error) ?? ""}`);
155
+ }), n(I, q);
156
+ };
157
+ x(
158
+ O,
159
+ (I) => {
160
+ t(e), r(() => t(e).asset?.assetId) ? I(X) : I(Q, !1);
161
+ },
162
+ !0
163
+ );
164
+ }
165
+ n(y, k);
166
+ };
167
+ x(
168
+ f,
169
+ (y) => {
170
+ t(e), r(() => t(e).directive?.type) ? y(j) : y(U, !1);
171
+ },
172
+ !0
173
+ );
174
+ }
175
+ n(b, P);
176
+ };
177
+ x(F, (b) => {
178
+ t(e), r(() => t(e).metadata?.name) ? b(J) : b(W, !1);
179
+ });
180
+ }
181
+ i(M), i($), n(L, $);
182
+ }), n(T, l);
183
+ };
184
+ x(s, (T) => {
185
+ r(() => E.length) && T(Y);
186
+ });
187
+ }
188
+ var Rt = _(s, 2);
189
+ i(v), w((T) => d = jt(m, 1, "crtw-text-lg crtw-font-semibold crtw-mt-6 crtw-mb-2", null, d, T), [() => ({ hidden: !E.length })]), Ot("click", Rt, bt), n(a, v);
190
+ }, zt = (a) => {
191
+ var v = B(), u = S(v);
192
+ {
193
+ var m = (s) => {
194
+ var Y = Ht();
195
+ it(2), n(s, Y);
196
+ }, d = (s) => {
197
+ var Y = Kt();
198
+ it(2), n(s, Y);
199
+ };
200
+ x(
201
+ u,
202
+ (s) => {
203
+ ht ? s(m) : s(d, !1);
204
+ },
205
+ !0
206
+ );
207
+ }
208
+ n(a, v);
209
+ };
210
+ x(St, (a) => {
211
+ r(() => h.length) ? a(At) : a(zt, !1);
212
+ });
213
+ }
214
+ return i(st), i(Z), w(() => {
215
+ p(yt, R), p(kt, N);
216
+ }), n(A, Z), wt({
217
+ get options() {
218
+ return z();
219
+ },
220
+ set options(a) {
221
+ z(a), Nt();
222
+ },
223
+ $set: mt,
224
+ $on: (a, v) => pt(o, a, v)
225
+ });
226
+ }
227
+ function Wt(A, o) {
228
+ if (new.target) return ut({ component: Wt, ...A });
229
+ ft(o, !1);
230
+ const [z, C] = Ct(), R = () => Et(Ut, "$pageOptsStore", z);
231
+ let N = _t(Yt);
232
+ dt();
233
+ {
234
+ let V = Ft(() => ({
235
+ title: R()?.title || N.content?.paymentResult?.title || "Success!",
236
+ subtitle: R()?.subtitle || N.content?.paymentResult?.subtitle || "Your payment was successful!",
237
+ description: R()?.description || N.content?.paymentResult?.description,
238
+ orders: R()?.orders || [],
239
+ tokenImage: R()?.tokenImage || ""
240
+ }));
241
+ gt(A, {
242
+ get options() {
243
+ return t(V);
244
+ }
245
+ });
246
+ }
247
+ var h = wt({
248
+ $set: mt,
249
+ $on: (V, D) => pt(o, V, D)
250
+ });
251
+ return C(), h;
252
+ }
253
+ export {
254
+ Wt as default
255
+ };
256
+ //# sourceMappingURL=PaymentResult-Vxz68gmZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentResult-CfPJzlTi.js","sources":["../../ui/main/payment-result/service.ts","../../ui/main/payment-result/PaymentResult.svelte","../src/app/pages/payment-result/PaymentResult.svelte"],"sourcesContent":["export function getTxUrl(\n item: { chainId: string },\n tx: string,\n chainType: string,\n networkType: string\n ) { \n if (chainType === \"sui\") {\n return `https://suiscan.xyz/${networkType}/tx/${tx}`;\n }\n\n switch (String(item.chainId)) {\n case \"137\":\n return `https://polygonscan.com/tx/${tx}`;\n case \"88888\":\n return `https://chiliscan.com/tx/${tx}`;\n case \"43114\":\n return `https://subnets.avax.network/c-chain/tx/${tx}`;\n case \"80002\":\n return `https://amoy.polygonscan.com/tx/${tx}`;\n case \"88882\":\n return `https://testnet.chiliscan.com/tx/${tx}`;\n case \"43113\":\n return `https://subnets-test.avax.network/c-chain/block/${tx}`;\n default:\n return null;\n }\n }","<script lang=\"ts\">\n import { fn } from \"../../../stores\";\n import { Pages } from \"../../../utils/enums\";\n import type { TPaymentReturn } from \"../../../utils/types\";\n import { get } from \"svelte/store\";\n import { getTxUrl } from \"./service\";\n export let options: {\n title: string;\n isSui?: boolean;\n description: string | undefined;\n subtitle: string;\n orders: TPaymentReturn[\"items\"];\n networkType?: string;\n tokenImage?: string;\n };\n const { openUI } = get(fn);\n let {\n title,\n subtitle,\n orders,\n networkType,\n tokenImage,\n isSui,\n } = options;\n\n const successfulOrders = (orders ?? []).filter((o) => o.tx);\n const failedOrders = (orders ?? []).filter((o) => !o.tx);\n\n function retryPurchase() {\n const hasAssets = failedOrders.some((order) => order.asset);\n if (hasAssets) {\n const assets = failedOrders\n .filter((order) => order.asset)\n .map((order) => ({\n packageId: order.asset!.packageId,\n type: order.asset!.type,\n assetId: order.asset!.assetId,\n amount: order.asset!.amount,\n }));\n if (!assets.length) return;\n\n openUI(Pages.PAYMENT, {\n subtitle: \"Retrying failed orders\",\n payments: {\n credenzaStoredValue: {\n disabled: false,\n },\n },\n assets,\n });\n\n return;\n }\n const tokens: {\n contractAddress: string;\n tokenId: number;\n amount: number;\n }[] = [];\n\n const memberships: {\n contractAddress: string;\n }[] = [];\n\n for (const order of failedOrders) {\n const directive = order.directive;\n if (directive.type !== \"membership\") {\n tokens.push({\n contractAddress: directive.resource_id,\n tokenId: directive.value?.token_id,\n amount: directive.value.amount,\n });\n } else {\n memberships.push({\n contractAddress: directive.resource_id,\n });\n }\n }\n \n if (!tokens.length && !memberships.length) return;\n openUI(Pages.PAYMENT, {\n subtitle: \"Retrying failed orders\",\n payments: {\n credenzaStoredValue: {\n disabled: false,\n },\n },\n tokens,\n memberships,\n });\n }\n</script>\n\n<div>\n <div\n class=\"crtw-text-black-900 crtw-text-xl md:crtw-text-2xl crtw-font-semibold crtw-pt-5 crtw-mb-3.5 crtw-text-center\"\n >\n {title}\n </div>\n <div class=\"crtw-mb-3.5 crtw-text-sm crtw-text-justify\">\n {subtitle}\n </div>\n {#if tokenImage}\n <div class=\"crtw-my-4 flex justify-center\">\n <div\n class=\"crtw-w-64 crtw-h-64 crtw-rounded-xl crtw-shadow-md crtw-bg-white flex items-center justify-center overflow-hidden\"\n >\n <img\n src={tokenImage}\n alt=\"Token\"\n class=\"max-w-full max-h-full object-contain\"\n />\n </div>\n </div>\n {/if}\n\n <div class=\"crtw-mb-3.5 crtw-text-sm crtw-text-justify\">\n {#if orders.length}\n <div class=\"crtw-mt-6\">\n <div class=\"crtw-text-lg crtw-font-semibold crtw-mb-2\">Successful</div>\n {#each successfulOrders as order}\n {#if order.tx}\n <div class=\"crtw-mb-2\">\n <a\n href={getTxUrl(\n { chainId: order.directive?.chain_id || \"\" },\n order.tx,\n order.directive.chain_type,\n networkType || \"\"\n )}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"crtw-text-blue-600 crtw-underline\"\n >\n <div class=\"crtw-break-words\">\n {#if order.metadata?.name}\n {order.metadata.name}\n {:else}\n <span>{order.directive.type}</span>\n <span\n class=\"crtw-break-all crtw-whitespace-normal crtw-break-words\"\n >\n ({order.directive.resource_id})\n </span>\n {/if}\n </div>\n </a>\n </div>\n {/if}\n {/each}\n\n <div\n class=\"crtw-text-lg crtw-font-semibold crtw-mt-6 crtw-mb-2\"\n class:hidden={!failedOrders.length}\n >\n Failed\n </div>\n {#if failedOrders.length}\n {#each failedOrders as order}\n <div class=\"crtw-mb-3\">\n <p class=\"crtw-text-red-600 break-words\">\n {#if order.metadata?.name}\n {order.metadata.name}\n {:else if order.directive?.type}\n <span>{order.directive.type} </span>\n <span class=\"text-gray-500 break-all whitespace-normal\">\n ({order.directive.resource_id})\n </span>\n {:else if order.asset?.assetId}\n AssetId {order.asset.assetId} : {order.error}\n {:else}\n <span>{order.asset?.type}</span>\n <span\n class=\"crtw-break-all crtw-whitespace-normal crtw-break-words\"\n >\n ({order.asset?.packageId}) : {order.error}\n </span>\n {/if}\n </p>\n </div>\n {/each}\n {/if}\n <button\n class=\"crtw-bg-black hover:crtw-bg-gray-800 crtw-text-white crtw-px-4 crtw-py-2 crtw-rounded-md crtw-mt-4\"\n on:click={retryPurchase}\n >\n Try Again\n </button>\n </div>\n {:else if isSui}\n If you are not seeing your new token, please contact\n <a href=\"mailto:support@credenza3.com\" class=\"text-blue-600 underline\">\n support@credenza3.com\n </a>.\n {:else}\n Typically, your purchase will be processed within a few seconds. In the\n event of unusually high traffic, you may have to wait as much as a minute\n or so. If several minutes pass and you are not seeing your purchase,\n please contact\n <a class=\"crtw-underline\" href=\"mailto:support@credenza3.com\"\n >support@credenza3.com</a\n >.\n {/if}\n </div>\n</div>\n","<script lang=\"ts\">\n import { get } from 'svelte/store'\n import { pageOptsStore } from '@packages/stores'\n import { PaymentResult } from '@packages/ui'\n import { configStore } from '@src/stores/config'\n\n let config = get(configStore)\n</script>\n\n<PaymentResult\n options={{\n title: $pageOptsStore?.title || config.content?.paymentResult?.title || 'Success!',\n subtitle: $pageOptsStore?.subtitle || config.content?.paymentResult?.subtitle || 'Your payment was successful!',\n description: $pageOptsStore?.description || config.content?.paymentResult?.description,\n orders: $pageOptsStore?.orders || [],\n tokenImage: $pageOptsStore?.tokenImage || '',\n }}\n/>\n"],"names":["getTxUrl","item","tx","chainType","networkType","options","$.prop","$$props","openUI","get","fn","title","subtitle","orders","tokenImage","isSui","successfulOrders","o","failedOrders","retryPurchase","order","assets","Pages","tokens","memberships","directive","_a","$$render","consequent","$.each","node_2","$.get","$.untrack","node_6","consequent_6","$.template_effect","$0","classes","$.set_class","div_9","$.derived_safe_equal","consequent_8","alternate_5","consequent_7","alternate_4","config","configStore","$pageOptsStore","_c","_b","_d","_f","_e","_g","_i","_h","_j","_k"],"mappings":"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"}
1
+ {"version":3,"file":"PaymentResult-Vxz68gmZ.js","sources":["../../ui/main/payment-result/service.ts","../../ui/main/payment-result/PaymentResult.svelte","../src/app/pages/payment-result/PaymentResult.svelte"],"sourcesContent":["export function getTxUrl(\n item: { chainId: string },\n tx: string,\n chainType: string,\n networkType: string\n ) { \n if (chainType === \"sui\") {\n return `https://suiscan.xyz/${networkType}/tx/${tx}`;\n }\n\n switch (String(item.chainId)) {\n case \"137\":\n return `https://polygonscan.com/tx/${tx}`;\n case \"88888\":\n return `https://chiliscan.com/tx/${tx}`;\n case \"43114\":\n return `https://subnets.avax.network/c-chain/tx/${tx}`;\n case \"80002\":\n return `https://amoy.polygonscan.com/tx/${tx}`;\n case \"88882\":\n return `https://testnet.chiliscan.com/tx/${tx}`;\n case \"43113\":\n return `https://subnets-test.avax.network/c-chain/block/${tx}`;\n default:\n return null;\n }\n }","<script lang=\"ts\">\n import { fn } from \"../../../stores\";\n import { Pages } from \"../../../utils/enums\";\n import type { TPaymentReturn } from \"../../../utils/types\";\n import { get } from \"svelte/store\";\n import { getTxUrl } from \"./service\";\n export let options: {\n title: string;\n isSui?: boolean;\n description: string | undefined;\n subtitle: string;\n orders: TPaymentReturn[\"items\"];\n networkType?: string;\n tokenImage?: string;\n };\n const { openUI } = get(fn);\n let {\n title,\n subtitle,\n orders,\n networkType,\n tokenImage,\n isSui,\n } = options;\n\n const successfulOrders = (orders ?? []).filter((o) => o.tx);\n const failedOrders = (orders ?? []).filter((o) => !o.tx);\n\n function retryPurchase() {\n const hasAssets = failedOrders.some((order) => order.asset);\n if (hasAssets) {\n const assets = failedOrders\n .filter((order) => order.asset)\n .map((order) => ({\n packageId: order.asset!.packageId,\n type: order.asset!.type,\n assetId: order.asset!.assetId,\n amount: order.asset!.amount,\n }));\n if (!assets.length) return;\n\n openUI(Pages.PAYMENT, {\n subtitle: \"Retrying failed orders\",\n payments: {\n credenzaStoredValue: {\n disabled: false,\n },\n },\n assets,\n });\n\n return;\n }\n const tokens: {\n contractAddress: string;\n tokenId: number;\n amount: number;\n }[] = [];\n\n const memberships: {\n contractAddress: string;\n }[] = [];\n\n for (const order of failedOrders) {\n const directive = order.directive;\n if (directive.type !== \"membership\") {\n tokens.push({\n contractAddress: directive.resource_id,\n tokenId: directive.value?.token_id,\n amount: directive.value.amount,\n });\n } else {\n memberships.push({\n contractAddress: directive.resource_id,\n });\n }\n }\n \n if (!tokens.length && !memberships.length) return;\n openUI(Pages.PAYMENT, {\n subtitle: \"Retrying failed orders\",\n payments: {\n credenzaStoredValue: {\n disabled: false,\n },\n },\n tokens,\n memberships,\n });\n }\n</script>\n\n<div>\n <div\n class=\"crtw-text-black-900 crtw-text-xl md:crtw-text-2xl crtw-font-semibold crtw-pt-5 crtw-mb-3.5 crtw-text-center\"\n >\n {title}\n </div>\n <div class=\"crtw-mb-3.5 crtw-text-sm crtw-text-justify\">\n {subtitle}\n </div>\n {#if tokenImage}\n <div class=\"crtw-my-4 flex justify-center\">\n <div\n class=\"crtw-w-64 crtw-h-64 crtw-rounded-xl crtw-shadow-md crtw-bg-white flex items-center justify-center overflow-hidden\"\n >\n <img\n src={tokenImage}\n alt=\"Token\"\n class=\"max-w-full max-h-full object-contain\"\n />\n </div>\n </div>\n {/if}\n\n <div class=\"crtw-mb-3.5 crtw-text-sm crtw-text-justify\">\n {#if orders.length}\n <div class=\"crtw-mt-6\">\n <div class=\"crtw-text-lg crtw-font-semibold crtw-mb-2\">Successful</div>\n {#each successfulOrders as order}\n {#if order.tx}\n <div class=\"crtw-mb-2\">\n <a\n href={getTxUrl(\n { chainId: order.directive?.chain_id || \"\" },\n order.tx,\n order.directive.chain_type,\n networkType || \"\"\n )}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"crtw-text-blue-600 crtw-underline\"\n >\n <div class=\"crtw-break-words\">\n {#if order.metadata?.name}\n {order.metadata.name}\n {:else}\n <span>{order.directive.type}</span>\n <span\n class=\"crtw-break-all crtw-whitespace-normal crtw-break-words\"\n >\n ({order.directive.resource_id})\n </span>\n {/if}\n </div>\n </a>\n </div>\n {/if}\n {/each}\n\n <div\n class=\"crtw-text-lg crtw-font-semibold crtw-mt-6 crtw-mb-2\"\n class:hidden={!failedOrders.length}\n >\n Failed\n </div>\n {#if failedOrders.length}\n {#each failedOrders as order}\n <div class=\"crtw-mb-3\">\n <p class=\"crtw-text-red-600 break-words\">\n {#if order.metadata?.name}\n {order.metadata.name}\n {:else if order.directive?.type}\n <span>{order.directive.type} </span>\n <span class=\"text-gray-500 break-all whitespace-normal\">\n ({order.directive.resource_id})\n </span>\n {:else if order.asset?.assetId}\n AssetId {order.asset.assetId} : {order.error}\n {:else}\n <span>{order.asset?.type}</span>\n <span\n class=\"crtw-break-all crtw-whitespace-normal crtw-break-words\"\n >\n ({order.asset?.packageId}) : {order.error}\n </span>\n {/if}\n </p>\n </div>\n {/each}\n {/if}\n <button\n class=\"crtw-bg-black hover:crtw-bg-gray-800 crtw-text-white crtw-px-4 crtw-py-2 crtw-rounded-md crtw-mt-4\"\n on:click={retryPurchase}\n >\n Try Again\n </button>\n </div>\n {:else if isSui}\n If you are not seeing your new token, please contact\n <a href=\"mailto:support@credenza3.com\" class=\"text-blue-600 underline\">\n support@credenza3.com\n </a>.\n {:else}\n Typically, your purchase will be processed within a few seconds. In the\n event of unusually high traffic, you may have to wait as much as a minute\n or so. If several minutes pass and you are not seeing your purchase,\n please contact\n <a class=\"crtw-underline\" href=\"mailto:support@credenza3.com\"\n >support@credenza3.com</a\n >.\n {/if}\n </div>\n</div>\n","<script lang=\"ts\">\n import { get } from 'svelte/store'\n import { pageOptsStore } from '@packages/stores'\n import { PaymentResult } from '@packages/ui'\n import { configStore } from '@src/stores/config'\n\n let config = get(configStore)\n</script>\n\n<PaymentResult\n options={{\n title: $pageOptsStore?.title || config.content?.paymentResult?.title || 'Success!',\n subtitle: $pageOptsStore?.subtitle || config.content?.paymentResult?.subtitle || 'Your payment was successful!',\n description: $pageOptsStore?.description || config.content?.paymentResult?.description,\n orders: $pageOptsStore?.orders || [],\n tokenImage: $pageOptsStore?.tokenImage || '',\n }}\n/>\n"],"names":["getTxUrl","item","tx","chainType","networkType","options","openUI","get","fn","title","subtitle","orders","isSui","successfulOrders","o","failedOrders","retryPurchase","order","assets","Pages","tokens","memberships","directive","_a","tokenImage","$$render","consequent","$.each","node_2","$.template_effect","$.set_text","text_2","$.get","$.untrack","text_3","consequent_1","alternate","consequent_2","node_6","text_5","text_6","text_9","consequent_5","alternate_1","consequent_4","alternate_2","consequent_3","alternate_3","consequent_6","$0","classes","$.set_class","div_9","consequent_7","alternate_5","$pageOptsStore","config"],"mappings":"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"}