From a1722dc3047bab8926e12582a9d8c8443710de18 Mon Sep 17 00:00:00 2001 From: Gamaliel Padillo Date: Tue, 7 May 2024 12:12:23 -0700 Subject: [PATCH] devop: new build --- 404.html | 2 +- css/{app.dde902eb.css => app.574f9220.css} | 2 +- index.html | 2 +- js/app.830821ea.js | 2 ++ js/app.830821ea.js.map | 1 + js/app.c48c9920.js | 2 -- js/app.c48c9920.js.map | 1 - service-worker.js | 2 +- service-worker.js.map | 2 +- 9 files changed, 8 insertions(+), 8 deletions(-) rename css/{app.dde902eb.css => app.574f9220.css} (99%) create mode 100644 js/app.830821ea.js create mode 100644 js/app.830821ea.js.map delete mode 100644 js/app.c48c9920.js delete mode 100644 js/app.c48c9920.js.map diff --git a/404.html b/404.html index dd4996ef..5f47d768 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ -Buy Crypto using credit cards | MEW
\ No newline at end of file +Buy Crypto using credit cards | MEW
\ No newline at end of file diff --git a/css/app.dde902eb.css b/css/app.574f9220.css similarity index 99% rename from css/app.dde902eb.css rename to css/app.574f9220.css index f68ee96c..c7cc7593 100644 --- a/css/app.dde902eb.css +++ b/css/app.574f9220.css @@ -1 +1 @@ -.subtitle[data-v-5f3caf0a]{font-size:1.6rem;line-height:2.4rem;font-weight:300}.secondaryText[data-v-5f3caf0a]{width:79px;height:24px;font-style:normal;font-weight:400;font-size:14px;line-height:24px;color:#1b1b1b}.text-color[data-v-5f3caf0a]{color:rgb(var(--v-theme-promo-header-text))}.component--footer[data-v-4fb33120]{background-color:#000;position:relative;z-index:1}.mew-tabs-underline .v-slide-group__content{border-bottom:1px solid var(--v-inputBorder-base)}.mew-tabs-block{border-radius:12px!important}.mew-tabs-block .mew-tab-block{background-color:var(--v-white-base);color:var(--v-basic-base)!important}.mew-tabs-block .v-tab--active{background:var(--v-basic-base);color:var(--v-white-base)!important}.mew-tabs-block .mew-tab-block:first-of-type{border-radius:12px 0 0 12px}.mew-tabs-block .mew-tab-block:last-of-type{border-radius:0 12px 12px 0}.mew-tabs.v-tabs--vertical>.v-tabs-bar .v-tab{display:flex;justify-content:flex-start;padding-left:0}.mew-tabs.v-tabs--vertical>.v-tabs-bar .v-tab:hover{text-decoration:underline}.mew-tabs.v-tabs--vertical>.v-tabs-bar .v-tab:before{background-color:transparent}.v-chip--active[data-v-5311767f]{border:2px solid var(--v-greenPrimary-base)!important}.v-chip--active[data-v-5311767f]:before{background-color:#fff}.inset-shadow[data-v-0413b8b6]{position:absolute;top:0;left:0;border-radius:50%;box-shadow:inset 0 0 4px #939393;height:100%;width:100%}.firstPart[data-v-7c3e7d09],.lastPart[data-v-7c3e7d09]{display:inline-block;white-space:nowrap;overflow:hidden}.firstPart[data-v-7c3e7d09]{max-width:calc(100% - 2.5em);min-width:3.5em;text-overflow:ellipsis}.lastPart[data-v-7c3e7d09]{max-width:calc(100% - 3.5em);direction:rtl}.hash-container[data-v-7c3e7d09]{max-width:100%;white-space:nowrap;overflow:hidden}.mew-address[data-v-830abb46]{display:inline-block;max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v-application .address-select .v-field__append-inner{cursor:pointer}.v-application .address-select .v-input__append-inner{height:100%;margin-top:0}.v-application .address-select .icon-container .v-icon:hover{color:var(--v-primary-base)!important}.v-application .address-select.v-select.v-input--is-focused .mdi-chevron-down{color:var(--v-titlePrimary-base)}.v-application .address-select .dropdown-icon-container{border-left:1px solid var(--v-disabled-base);margin-left:15px;margin-right:-15px}.buy-button[data-v-37fcf657]{background:linear-gradient(90deg,rgba(var(--v-theme-btn-linear-1)) 0,rgba(var(--v-theme-btn-linear-2)) 100%)}.buy-input .v-input__control{height:56px!important}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.v-messages__message{font-weight:300;font-size:.9rem;color:red}.v-combobox__selection-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.components--buy-form .v-field__outline__end,.components--buy-form .v-field__outline__start{border-color:#c2c2c2}.components--buy-form .no-left-border .v-field__outline__start,.components--buy-form .no-right-border .v-field__outline__end{border-radius:0!important}.section-block[data-v-6d7572c2]{border-radius:12px;left:0;top:0;box-sizing:border-box;border:1px solid #d7dae3;flex:none;order:0;align-self:stretch;flex-grow:0;margin:8px 0;position:relative}.provider-logo[data-v-6d7572c2]{position:absolute;top:18px;right:20px}.grey-light[data-v-6d7572c2]{background-color:#f2f3f6!important;border-color:#f2f3f6!important}.greyPrimary--text[data-v-6d7572c2]{color:#5a678a!important;caret-color:#5a678a!important}.v-tooltip .v-overlay__content{background:transparent!important}.network-selected[data-v-3b4df45c]{font-weight:500;line-height:20px;flex:none;order:1;flex-grow:0}.network-selected[data-v-3b4df45c],.text--bold[data-v-3b4df45c]{font-family:Roboto;font-style:normal;font-size:16px;color:#1f242f}.text--bold[data-v-3b4df45c]{font-weight:700}.no-border[data-v-3b4df45c]{border:none}.sell-button[data-v-16eba3c0]{background:linear-gradient(90deg,rgba(var(--v-theme-btn-linear-1)) 0,rgba(var(--v-theme-btn-linear-2)) 100%)}.components--sell-form .v-field__outline__end,.components--sell-form .v-field__outline__start{border-color:#c2c2c2}.components--sell-form .no-left-border .v-field__outline__start,.components--sell-form .no-right-border .v-field__outline__end{border-radius:0!important}.custom-btn{max-width:120px!important;height:56px!important;border:1px solid hsla(0,0%,83%,.5);border-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px;font-size:14px;font-weight:400}.custom-btn:hover{border:1px solid #d3d3d3}.component--buy-form[data-v-5c7fe0a9]{position:relative;overflow:hidden}.top-container[data-v-5c7fe0a9]{min-height:540px}.token-select-slider[data-v-5c7fe0a9]{position:absolute;bottom:0;left:0;overflow:hidden;height:0;width:100%;transition:height .2s ease;background-color:#fff}.token-select-slider.open[data-v-5c7fe0a9]{height:100%}.buynow--banner[data-v-3c3c19dd]{background-color:rgb(var(--v-theme-buynow--banner));width:100vw}.buy--btn[data-v-3c3c19dd]{width:300px;height:64px}.buy--btn h2[data-v-3c3c19dd]{color:rgb(var(--v-theme-buynow--banner-btn-text))}h1[data-v-610a7521]{color:rgba(var(--v-theme-promo-header-text));max-width:600px}.description-text[data-v-610a7521]{color:rgba(var(--v-theme-promo-border))}.description-title[data-v-610a7521]{color:rgba(var(--v-theme-grey-1))}.elevated-box-small[data-v-610a7521]{border-radius:5px 5px 10px 10px;background-color:#fff;border-top:10px solid rgb(var(--v-theme-promo-border))}.promo--bottom[data-v-05ed6bbe]{background-color:rgb(var(--v-theme-promo--bottom))}@media(min-width:768px){.promo--bottom[data-v-05ed6bbe]{background-image:radial-gradient(circle at top right,rgb(var(--v-theme-background-gradient)),transparent 300px)}}h1[data-v-05ed6bbe]{max-width:600px}@media(min-width:1920px){.v-container{max-width:1040px}}html{font-size:14px!important;min-width:365px}div,h1,h2,h3,h4,h5,h6,p,span{color:#202030}div{font-size:1rem;line-height:1.6rem;font-weight:400}p{margin-bottom:1rem}.h1,h1{font-size:2.4rem;line-height:2.8rem;font-weight:700}.h2,h2{font-size:1.4rem;line-height:1.8rem;font-weight:400}.h2 span,h2 span{font-size:1rem;line-height:1.2rem;font-weight:400}.h3,h3{font-size:.93rem;line-height:1.4rem}.h3,.h4,h3,h4{font-weight:400}.h4,h4{font-size:.84rem;line-height:1.1rem}.h5,h5{font-size:.64rem;line-height:1rem;font-weight:400}a.small{font-size:1rem;text-decoration:none}.heading-1{font-size:4.2rem;line-height:5rem;font-weight:700}.heading-2{font-size:2.2rem;line-height:3rem;font-weight:700}.heading-3{font-size:1.7rem;line-height:3rem;font-weight:500}.heading-4{font-size:1.2rem;line-height:2rem;font-weight:700}.heading-5{font-size:1.23rem;line-height:1.8rem;font-weight:400}.text-transform--none{text-transform:none}.elevated-box{border-radius:20px;background-color:#fff}.blockie-placeholder{height:25px;width:25px;border-radius:50%;background-color:#d3d3d3}.currency-icon{height:24px;width:24px;border-radius:50%;border:2px solid silver}.padding--2{padding:2px!important}.network-icon{height:28px;width:28px;border-radius:50%;border:2px solid silver}.mew-title{font-size:3.428rem;line-height:4.571rem}.mew-subtitle,.mew-title{font-weight:700;letter-spacing:.0178rem}.mew-subtitle{font-size:2.285rem;line-height:3.142rem}.mew-heading-1{font-size:1.714rem;font-weight:700}.mew-heading-2{font-size:1.429rem!important;font-weight:700!important}.mew-heading-3{font-size:1.143rem;font-weight:700}.mew-body{font-size:1rem!important;font-weight:400}.mew-caption{font-size:.8571rem;font-weight:700;text-transform:uppercase}.capitalize{text-transform:capitalize!important}.no-decoration{text-decoration:none!important}.mew-header-block{color:var(--v-titlePrimary-base);font-weight:700;margin-bottom:15px;padding-left:10px}.mew-label{font-size:.8571rem;font-weight:400}.mew-heading-4{font-size:1.143rem;font-weight:500}.cursor-pointer{cursor:pointer}.full-max-width{max-width:100%}.full-width{width:100%}.text--bold{font-weight:600}.component--landing-page-old-design[data-v-72a78744]{min-height:100vh}.background-lg[data-v-72a78744]{background-size:100vw;background-position:left 0 top 0}.background-sm[data-v-72a78744]{background-size:cover;background-position:100% 0}.background-space-man[data-v-72a78744]{background-size:0}.background-space-man-lg[data-v-72a78744],.background-space-man-xl[data-v-72a78744]{background-size:603px;background-position:calc(50% + 854px) 54px}.background-space-man-xl[data-v-72a78744]{margin:0 auto;max-width:2565px}.background-image[data-v-72a78744]{background-color:rgb(var(--v-theme-background-fill))}@media(min-width:768px){.background-image[data-v-72a78744]{background-image:radial-gradient(at top 0 right 200px,rgb(var(--v-theme-background-gradient)),transparent 900px),radial-gradient(at bottom 200px left 200px,rgba(var(--v-theme-background-gradient)),transparent 500px),radial-gradient(circle at bottom right,rgba(var(--v-theme-background-gradient)),transparent 300px)}} \ No newline at end of file +.subtitle[data-v-5f3caf0a]{font-size:1.6rem;line-height:2.4rem;font-weight:300}.secondaryText[data-v-5f3caf0a]{width:79px;height:24px;font-style:normal;font-weight:400;font-size:14px;line-height:24px;color:#1b1b1b}.text-color[data-v-5f3caf0a]{color:rgb(var(--v-theme-promo-header-text))}.component--footer[data-v-4fb33120]{background-color:#000;position:relative;z-index:1}.mew-tabs-underline .v-slide-group__content{border-bottom:1px solid var(--v-inputBorder-base)}.mew-tabs-block{border-radius:12px!important}.mew-tabs-block .mew-tab-block{background-color:var(--v-white-base);color:var(--v-basic-base)!important}.mew-tabs-block .v-tab--active{background:var(--v-basic-base);color:var(--v-white-base)!important}.mew-tabs-block .mew-tab-block:first-of-type{border-radius:12px 0 0 12px}.mew-tabs-block .mew-tab-block:last-of-type{border-radius:0 12px 12px 0}.mew-tabs.v-tabs--vertical>.v-tabs-bar .v-tab{display:flex;justify-content:flex-start;padding-left:0}.mew-tabs.v-tabs--vertical>.v-tabs-bar .v-tab:hover{text-decoration:underline}.mew-tabs.v-tabs--vertical>.v-tabs-bar .v-tab:before{background-color:transparent}.v-chip--active[data-v-5311767f]{border:2px solid var(--v-greenPrimary-base)!important}.v-chip--active[data-v-5311767f]:before{background-color:#fff}.inset-shadow[data-v-0413b8b6]{position:absolute;top:0;left:0;border-radius:50%;box-shadow:inset 0 0 4px #939393;height:100%;width:100%}.firstPart[data-v-7c3e7d09],.lastPart[data-v-7c3e7d09]{display:inline-block;white-space:nowrap;overflow:hidden}.firstPart[data-v-7c3e7d09]{max-width:calc(100% - 2.5em);min-width:3.5em;text-overflow:ellipsis}.lastPart[data-v-7c3e7d09]{max-width:calc(100% - 3.5em);direction:rtl}.hash-container[data-v-7c3e7d09]{max-width:100%;white-space:nowrap;overflow:hidden}.mew-address[data-v-830abb46]{display:inline-block;max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v-application .address-select .v-field__append-inner{cursor:pointer}.v-application .address-select .v-input__append-inner{height:100%;margin-top:0}.v-application .address-select .icon-container .v-icon:hover{color:var(--v-primary-base)!important}.v-application .address-select.v-select.v-input--is-focused .mdi-chevron-down{color:var(--v-titlePrimary-base)}.v-application .address-select .dropdown-icon-container{border-left:1px solid var(--v-disabled-base);margin-left:15px;margin-right:-15px}.buy-button[data-v-ed869630]{background:linear-gradient(90deg,rgba(var(--v-theme-btn-linear-1)) 0,rgba(var(--v-theme-btn-linear-2)) 100%)}.buy-input .v-input__control{height:56px!important}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.v-messages__message{font-weight:300;font-size:.9rem;color:red}.v-combobox__selection-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.components--buy-form .v-field__outline__end,.components--buy-form .v-field__outline__start{border-color:#c2c2c2}.components--buy-form .no-left-border .v-field__outline__start,.components--buy-form .no-right-border .v-field__outline__end{border-radius:0!important}.section-block[data-v-6d7572c2]{border-radius:12px;left:0;top:0;box-sizing:border-box;border:1px solid #d7dae3;flex:none;order:0;align-self:stretch;flex-grow:0;margin:8px 0;position:relative}.provider-logo[data-v-6d7572c2]{position:absolute;top:18px;right:20px}.grey-light[data-v-6d7572c2]{background-color:#f2f3f6!important;border-color:#f2f3f6!important}.greyPrimary--text[data-v-6d7572c2]{color:#5a678a!important;caret-color:#5a678a!important}.v-tooltip .v-overlay__content{background:transparent!important}.network-selected[data-v-3b4df45c]{font-weight:500;line-height:20px;flex:none;order:1;flex-grow:0}.network-selected[data-v-3b4df45c],.text--bold[data-v-3b4df45c]{font-family:Roboto;font-style:normal;font-size:16px;color:#1f242f}.text--bold[data-v-3b4df45c]{font-weight:700}.no-border[data-v-3b4df45c]{border:none}.sell-button[data-v-16eba3c0]{background:linear-gradient(90deg,rgba(var(--v-theme-btn-linear-1)) 0,rgba(var(--v-theme-btn-linear-2)) 100%)}.components--sell-form .v-field__outline__end,.components--sell-form .v-field__outline__start{border-color:#c2c2c2}.components--sell-form .no-left-border .v-field__outline__start,.components--sell-form .no-right-border .v-field__outline__end{border-radius:0!important}.custom-btn{max-width:120px!important;height:56px!important;border:1px solid hsla(0,0%,83%,.5);border-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px;font-size:14px;font-weight:400}.custom-btn:hover{border:1px solid #d3d3d3}.component--buy-form[data-v-5c7fe0a9]{position:relative;overflow:hidden}.top-container[data-v-5c7fe0a9]{min-height:540px}.token-select-slider[data-v-5c7fe0a9]{position:absolute;bottom:0;left:0;overflow:hidden;height:0;width:100%;transition:height .2s ease;background-color:#fff}.token-select-slider.open[data-v-5c7fe0a9]{height:100%}.buynow--banner[data-v-3c3c19dd]{background-color:rgb(var(--v-theme-buynow--banner));width:100vw}.buy--btn[data-v-3c3c19dd]{width:300px;height:64px}.buy--btn h2[data-v-3c3c19dd]{color:rgb(var(--v-theme-buynow--banner-btn-text))}h1[data-v-610a7521]{color:rgba(var(--v-theme-promo-header-text));max-width:600px}.description-text[data-v-610a7521]{color:rgba(var(--v-theme-promo-border))}.description-title[data-v-610a7521]{color:rgba(var(--v-theme-grey-1))}.elevated-box-small[data-v-610a7521]{border-radius:5px 5px 10px 10px;background-color:#fff;border-top:10px solid rgb(var(--v-theme-promo-border))}.promo--bottom[data-v-05ed6bbe]{background-color:rgb(var(--v-theme-promo--bottom))}@media(min-width:768px){.promo--bottom[data-v-05ed6bbe]{background-image:radial-gradient(circle at top right,rgb(var(--v-theme-background-gradient)),transparent 300px)}}h1[data-v-05ed6bbe]{max-width:600px}@media(min-width:1920px){.v-container{max-width:1040px}}html{font-size:14px!important;min-width:365px}div,h1,h2,h3,h4,h5,h6,p,span{color:#202030}div{font-size:1rem;line-height:1.6rem;font-weight:400}p{margin-bottom:1rem}.h1,h1{font-size:2.4rem;line-height:2.8rem;font-weight:700}.h2,h2{font-size:1.4rem;line-height:1.8rem;font-weight:400}.h2 span,h2 span{font-size:1rem;line-height:1.2rem;font-weight:400}.h3,h3{font-size:.93rem;line-height:1.4rem}.h3,.h4,h3,h4{font-weight:400}.h4,h4{font-size:.84rem;line-height:1.1rem}.h5,h5{font-size:.64rem;line-height:1rem;font-weight:400}a.small{font-size:1rem;text-decoration:none}.heading-1{font-size:4.2rem;line-height:5rem;font-weight:700}.heading-2{font-size:2.2rem;line-height:3rem;font-weight:700}.heading-3{font-size:1.7rem;line-height:3rem;font-weight:500}.heading-4{font-size:1.2rem;line-height:2rem;font-weight:700}.heading-5{font-size:1.23rem;line-height:1.8rem;font-weight:400}.text-transform--none{text-transform:none}.elevated-box{border-radius:20px;background-color:#fff}.blockie-placeholder{height:25px;width:25px;border-radius:50%;background-color:#d3d3d3}.currency-icon{height:24px;width:24px;border-radius:50%;border:2px solid silver}.padding--2{padding:2px!important}.network-icon{height:28px;width:28px;border-radius:50%;border:2px solid silver}.mew-title{font-size:3.428rem;line-height:4.571rem}.mew-subtitle,.mew-title{font-weight:700;letter-spacing:.0178rem}.mew-subtitle{font-size:2.285rem;line-height:3.142rem}.mew-heading-1{font-size:1.714rem;font-weight:700}.mew-heading-2{font-size:1.429rem!important;font-weight:700!important}.mew-heading-3{font-size:1.143rem;font-weight:700}.mew-body{font-size:1rem!important;font-weight:400}.mew-caption{font-size:.8571rem;font-weight:700;text-transform:uppercase}.capitalize{text-transform:capitalize!important}.no-decoration{text-decoration:none!important}.mew-header-block{color:var(--v-titlePrimary-base);font-weight:700;margin-bottom:15px;padding-left:10px}.mew-label{font-size:.8571rem;font-weight:400}.mew-heading-4{font-size:1.143rem;font-weight:500}.cursor-pointer{cursor:pointer}.full-max-width{max-width:100%}.full-width{width:100%}.text--bold{font-weight:600}.component--landing-page-old-design[data-v-72a78744]{min-height:100vh}.background-lg[data-v-72a78744]{background-size:100vw;background-position:left 0 top 0}.background-sm[data-v-72a78744]{background-size:cover;background-position:100% 0}.background-space-man[data-v-72a78744]{background-size:0}.background-space-man-lg[data-v-72a78744],.background-space-man-xl[data-v-72a78744]{background-size:603px;background-position:calc(50% + 854px) 54px}.background-space-man-xl[data-v-72a78744]{margin:0 auto;max-width:2565px}.background-image[data-v-72a78744]{background-color:rgb(var(--v-theme-background-fill))}@media(min-width:768px){.background-image[data-v-72a78744]{background-image:radial-gradient(at top 0 right 200px,rgb(var(--v-theme-background-gradient)),transparent 900px),radial-gradient(at bottom 200px left 200px,rgba(var(--v-theme-background-gradient)),transparent 500px),radial-gradient(circle at bottom right,rgba(var(--v-theme-background-gradient)),transparent 300px)}} \ No newline at end of file diff --git a/index.html b/index.html index dd4996ef..5f47d768 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Buy Crypto using credit cards | MEW
\ No newline at end of file +Buy Crypto using credit cards | MEW
\ No newline at end of file diff --git a/js/app.830821ea.js b/js/app.830821ea.js new file mode 100644 index 00000000..c56efe6e --- /dev/null +++ b/js/app.830821ea.js @@ -0,0 +1,2 @@ +(function(){var e={74562:function(e,t,r){"use strict";var a=r(49242),s=r(73396),n=r(97718),o=r(73140);function i(e,t,r,a,i,l){const c=(0,s.up)("router-view");return(0,s.wg)(),(0,s.j4)(n.q,null,{default:(0,s.w5)((()=>[(0,s.Wm)(o.O,null,{default:(0,s.w5)((()=>[(0,s.Wm)(c)])),_:1})])),_:1})}var l=(0,s.aZ)({name:"App"}),c=r(40089);const d=(0,c.Z)(l,[["render",i]]);var u=d,m=r(22483),p=r(87139),A=r(44870),g=r(14393),h=r(83845),w=r(90407),f=r(60074),y=r.p+"img/icon-simplex-light.de776b97.svg",v=r(1902),b=r.p+"img/icon-moonpay-white.0dac1d0d.svg",S=r.p+"img/icon-enkrypt-logo-dark.fbd22524.svg",C=r.p+"img/icon-ethvm-logo.e575d2d1.svg",x=r.p+"img/icon-mew-logo-dark.49ceaae5.svg";const k=e=>((0,s.dD)("data-v-5f3caf0a"),e=e(),(0,s.Cn)(),e),B={class:"dropShadow"},T=["src"],U={class:"d-flex align-center",style:{"margin-top":"60px"}},D=k((()=>(0,s._)("div",{class:"text-color mr-4"},"Powered by",-1))),E=["src"],F=["src"],M={class:"d-flex flex-wrap align-center mt-4"},O=k((()=>(0,s._)("div",{class:"text-color mr-2"},"We accept",-1))),W={class:"d-flex align-center"},I=["src"],N=["src"],Q=["src"];var Z=(0,s.aZ)({__name:"HeaderComponent",setup(e){const t=window.location.search.includes("platform=ethvm"),r=window.location.search.includes("platform=enkrypt");return(e,a)=>((0,s.wg)(),(0,s.iD)("div",B,[(0,s._)("img",{src:(0,A.SU)(t)?(0,A.SU)(C):(0,A.SU)(r)?(0,A.SU)(S):(0,A.SU)(x),alt:"MEW",height:"36"},null,8,T),(0,s._)("div",{class:"heading-1 text-color",style:(0,p.j5)(e.$vuetify.display.smAndUp?"margin-top: 100px; max-width: 520px":"margin-top: 50px; max-width: 520px")}," Buy and Sell Crypto Fast and Secure ",4),(0,s._)("div",U,[D,(0,s._)("img",{class:"mr-2",src:(0,A.SU)(t)?(0,A.SU)(y):(0,A.SU)(f),alt:"Simplex",height:"25"},null,8,E),(0,s._)("img",{src:(0,A.SU)(t)?(0,A.SU)(b):(0,A.SU)(v),alt:"Moonpay",height:"25"},null,8,F)]),(0,s._)("div",M,[O,(0,s._)("div",W,[(0,s._)("img",{class:"mr-2",src:(0,A.SU)(g),alt:"Visa",height:"22"},null,8,I),(0,s._)("img",{class:"mr-2",src:(0,A.SU)(w),alt:"Visa",height:"22"},null,8,N),(0,s._)("img",{src:(0,A.SU)(h),alt:"Master",height:"22"},null,8,Q)])])]))}});const j=(0,c.Z)(Z,[["__scopeId","data-v-5f3caf0a"]]);var H=j,V=r.p+"img/icon-mew-logo-light.b7102cfa.svg",L=r(75101),P=r(23369);const R=e=>((0,s.dD)("data-v-4fb33120"),e=e(),(0,s.Cn)(),e),G={class:"component--footer py-2"},Y=["src"],z={class:"my-5"},K={"footer--text":"",style:{color:"white"}},q=R((()=>(0,s._)("div",{class:"font-weight-regular",style:{color:"white"}},[(0,s.Uk)(" Need Ethereum wallet? Get one from "),(0,s._)("a",{class:"text-white",href:"https://www.myetherwallet.com/wallet/create",target:"_blank",style:{"text-decoration":"none"}}," myetherwallet.com ")],-1))),X=R((()=>(0,s._)("div",{class:"text-white font-weight-bold"},"Get a wallet",-1)));var J=(0,s.aZ)({__name:"FooterComponent",setup(e){const t=(new Date).getFullYear();return(e,r)=>((0,s.wg)(),(0,s.iD)("div",G,[(0,s.Wm)(P.K,{class:"text-center"},{default:(0,s.w5)((()=>[(0,s._)("img",{src:(0,A.SU)(V),alt:"MEW",height:"25"},null,8,Y),(0,s._)("div",z,[(0,s._)("div",K," ©"+(0,p.zw)((0,A.SU)(t))+" MyEtherWallet Inc. All rights reserved ",1),q]),(0,s.Wm)(L.T,{size:"x-large",class:"rounded-pill text-white mt-3 text-none",color:"btn-get-wallet",href:"https://www.myetherwallet.com/wallet/create",target:"_blank"},{default:(0,s.w5)((()=>[X])),_:1})])),_:1})]))}});const _=(0,c.Z)(J,[["__scopeId","data-v-4fb33120"]]);var $=_;const ee={class:"top-container component--buy-form elevated-box elevation-4 pa-3 pa-sm-6 pa-md-8"},te={key:0};function re(e,t,r,a,n,o){const i=(0,s.up)("buy-form"),l=(0,s.up)("sell-form"),c=(0,s.up)("MewTabs"),d=(0,s.up)("TokenSelect"),u=(0,s.up)("BuyProviders");return(0,s.wg)(),(0,s.iD)("div",ee,[0===e.step?((0,s.wg)(),(0,s.iD)("div",te,[(0,s.Wm)(c,{items:e.tabItems,"active-tab":e.activeTab,"base-color":"greenPrimary","has-underline":"",onOnTab:e.onTab},{tabContent1:(0,s.w5)((()=>[(0,s.Wm)(i,{"crypto-selected":e.selectedCurrency,"fiat-selected":e.selectedFiat,"network-selected":e.selectedNetwork,"fiat-amount":e.fiatAmount,onSetQuotes:e.setQuotes,onSelectedCurrency:e.openTokenSelect,onSuccess:e.buySuccess,onSelectedNetwork:e.setNetwork,onSelectCurrency:e.setSelectedCurrency},null,8,["crypto-selected","fiat-selected","network-selected","fiat-amount","onSetQuotes","onSelectedCurrency","onSuccess","onSelectedNetwork","onSelectCurrency"])])),tabContent2:(0,s.w5)((()=>[(0,s.Wm)(l,{"crypto-selected":e.selectedCurrency,"fiat-selected":e.selectedFiat,"network-selected":e.selectedNetwork,"fiat-amount":e.fiatAmount,onSetQuotes:e.setQuotes,onSelectedCurrency:e.openTokenSelect,onSuccess:e.sellSuccess},null,8,["crypto-selected","fiat-selected","network-selected","fiat-amount","onSetQuotes","onSelectedCurrency","onSuccess"])])),_:1},8,["items","active-tab","onOnTab"])])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,p.C_)(["token-select-slider",1===e.step?"open":""])},[1===e.step?((0,s.wg)(),(0,s.j4)(d,{key:0,class:"pa-3 pa-sm-6 pa-md-8","selected-network":e.selectedNetwork,"selected-currency":e.selectedCurrency,"fiat-selected":e.selectedFiat,"moonpay-data":e.moonpayData,"simplex-data":e.simplexData,"is-sell":e.isSell,onClose:e.close,onSelectCurrency:e.setSelectedCurrency,onSelectedNetwork:e.setNetwork},null,8,["selected-network","selected-currency","fiat-selected","moonpay-data","simplex-data","is-sell","onClose","onSelectCurrency","onSelectedNetwork"])):(0,s.kq)("",!0)],2),2===e.step?((0,s.wg)(),(0,s.j4)(u,{key:1,"selected-fiat":e.selectedFiat,"selected-currency":e.selectedCurrency,"only-simplex":e.onlySimplex,"buy-obj":e.buyObj,"simplex-quote":e.simplexQuote,"to-address":e.toAddress,onClose:e.close},null,8,["selected-fiat","selected-currency","only-simplex","buy-obj","simplex-quote","to-address","onClose"])):(0,s.kq)("",!0)])}var ae=r(74806),se=r(51037),ne=r(2356),oe=r(11165),ie=r(79870),le=r(76161),ce=r(84722),de=r(68952);const ue={key:0};function me(e,t,r,a,n,o){return(0,s.wg)(),(0,s.iD)("div",null,[e.compact?((0,s.wg)(),(0,s.iD)("div",ue,[(0,s.Wm)(ne.N,{modelValue:e.onTab,"onUpdate:modelValue":t[0]||(t[0]=t=>e.onTab=t),mandatory:"",column:""},{default:(0,s.w5)((()=>[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.items,((e,t)=>((0,s.wg)(),(0,s.j4)(se.v,{key:t,class:"ma-1","active-class":"greenPrimary text--primary",outlined:""},{default:(0,s.w5)((()=>[(0,s.Uk)((0,p.zw)(e),1)])),_:2},1024)))),128))])),_:1},8,["modelValue"]),(0,s._)("template",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.items,((t,r)=>((0,s.wg)(),(0,s.iD)("div",{key:r},[e.onTab==r?(0,s.WI)(e.$slots,"tabItemContent"+(r+1),{key:0},void 0,!0):(0,s.kq)("",!0)])))),128))])])):(0,s.kq)("",!0),e.compact?(0,s.kq)("",!0):((0,s.wg)(),(0,s.j4)(oe.d,{key:1,modelValue:e.onTab,"onUpdate:modelValue":t[2]||(t[2]=t=>e.onTab=t),class:(0,p.C_)(e.tabClasses),"background-color":e.background,color:e.activeColor,centered:e.isCentered,"slider-size":"3","hide-slider":e.isBlock||e.isVertical,grow:e.isBlock||e.hasFullWidth,vertical:e.isVertical,"show-arrows":e.showArrows,"align-with-title":!e.isBlock&&!e.isCentered&&!e.isVertical},{default:(0,s.w5)((()=>[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.items,((t,r)=>((0,s.wg)(),(0,s.j4)(ie.L,{key:`${t}`+r,class:(0,p.C_)([e.isBlock?"mew-tab-block":e.isVertical||e.isSmall?"mew-body font-weight-medium":"mew-heading-2","capitalize"]),ripple:!e.isVertical},{default:(0,s.w5)((()=>[(0,s.Uk)((0,p.zw)(t),1)])),_:2},1032,["class","ripple"])))),128)),(0,s.Wm)(le.Oo,{modelValue:e.onTab,"onUpdate:modelValue":t[1]||(t[1]=t=>e.onTab=t)},{default:(0,s.w5)((()=>[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.items,((t,r)=>((0,s.wg)(),(0,s.j4)(ce.H,{key:`${t}`+r,value:t,"reverse-transition":e.isVertical?"slide-y-transition":"slide-x-transition"},{default:(0,s.w5)((()=>[(0,s.WI)(e.$slots,"tabItemContent"+(r+1),{},void 0,!0)])),_:2},1032,["value","reverse-transition"])))),128))])),_:3},8,["modelValue"])])),_:3},8,["modelValue","class","background-color","color","centered","hide-slider","grow","vertical","show-arrows","align-with-title"])),((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.items,((t,r)=>((0,s.wg)(),(0,s.iD)("div",{key:`${t}`+r},[(0,s.Wm)(de.Zy,{"hide-on-leave":!0,mode:"out-in"},{default:(0,s.w5)((()=>[e.onTab===r?(0,s.WI)(e.$slots,"tabContent"+(r+1),{key:0},void 0,!0):(0,s.kq)("",!0)])),_:2},1024)])))),128))])}r(57658);var pe=(0,s.aZ)({name:"MewTabs",props:{activeColor:{type:String,default:"titlePrimary"},background:{type:String,default:"transparent"},showArrows:{type:Boolean,default:!1},activeTab:{type:Number,default:0},hasUnderline:{type:Boolean,default:!1},isVertical:{type:Boolean,default:!1},isCentered:{type:Boolean,default:!1},items:{type:Array,default:()=>[]},isBlock:{type:Boolean,default:!1},hasFullWidth:{type:Boolean,default:!1},isSmall:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},data(){return{onTab:this.activeTab}},computed:{tabClasses(){const e=["mew-tabs"];return this.hasUnderline&&e.push("mew-tabs-underline"),this.isBlock&&e.push("mew-tabs-block elevation-3"),e}},watch:{activeTab(e){this.onTab=e},onTab(e){this.$emit("onTab",e)}},mounted(){this.onTab=this.activeTab}});const Ae=(0,c.Z)(pe,[["render",me],["__scopeId","data-v-5311767f"]]);var ge=Ae,he=r(91097),we=r(56265),fe=r.n(we),ye=r(77802);const ve="https://mainnet.mewwallet.dev",be=["ETH","BTC","BCH","MATIC","USDT","USDC","DAI","DOT","KSM","KDA"],Se=["USD","EUR","JPY","AUD","CAD","GBP"],Ce={USD:"$",RUB:"₽",EUR:"€",JPY:"¥",AUD:"AU$",CAD:"CA$",GBP:"£"};async function xe(e,t,r,a,s="0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D"){const n=`${ve}/purchase/simplex/quote`;return await fe().get(n,{params:{id:`WEB|${(0,ye.sha3)(s)?.substring(0,42)}`,fiatCurrency:e,cryptoCurrency:t,requestedCurrency:r,requestedAmount:(0,ae.toNumber)(a)}}).then((e=>e.data)).catch((e=>{throw e}))}const ke=e=>{const{data:t}=e;if(Array.isArray(t))return t.filter((e=>"SIMPLEX"===e.name||"MOONPAY"===e.name))};async function Be(e){const t=`${ve}/v4/purchase/providers/web`;return e?await fe().get(t,{params:{iso:"us",cryptoCurrency:e}}).then((e=>ke(e))).catch((e=>{throw e})):Promise.all(be.map((e=>fe().get(t,{params:{iso:"us",cryptoCurrency:e}}).then((e=>ke(e))).catch((e=>{throw e}))))).catch((e=>{throw e}))}async function Te(e){return fe().get(`${ve}/v3/sell/providers/web?iso=us&cryptoCurrency=${e}`,{headers:{"Accept-Language":"en-US"}}).then((e=>e.data))}async function Ue(e){if(e)return await Te(e).then((e=>ke(e))).catch((e=>{throw e}));const t=["ETH","BNB","MATIC","USDT","USDC","DAI"];return Promise.all(t.map((e=>Te(e).catch((e=>{throw e}))))).catch((e=>{throw e}))}var De=r(40513),Ee=r.n(De),Fe=r(58714),Me=r(68560);const Oe={key:0,class:"blockie-placeholder mr-1 selectHover"},We=["onClick"],Ie={class:"d-flex align-center justify-space-between"},Ne={key:1,class:"d-flex align-center"},Qe={class:"mew-address"},Ze={class:"overline primary--text font-weight-medium ml-3 mr-3"};function je(e,t,r,a,n,o){const i=(0,s.up)("mew-blockie"),l=(0,s.up)("mew-transform-hash");return(0,s.wg)(),(0,s.j4)(Me.E,{ref:"mewAddressSelect",modelValue:e.addressValue,"onUpdate:modelValue":[t[0]||(t[0]=t=>e.addressValue=t),e.onInputChange],class:"address-select pa-0 rounded-lg",color:"primary",label:e.label,"item-value":"address","item-text":"address",placeholder:e.placeholder,disabled:e.disabled,"error-messages":e.errorMessages,hint:e.hint||e.resolvedAddr||"","persistent-hint":e.resolvedAddr.length>0||e.hint.length>0,rules:e.rules,"no-data-text":e.noDataText,"menu-props":{closeOnContentClick:!0},variant:"outlined","onUpdate:searchInput":e.onChange},{"prepend-inner":(0,s.w5)((()=>[e.isValidAddress&&e.blockieHash?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",Oe)),e.isValidAddress?((0,s.wg)(),(0,s.j4)(i,{key:1,class:"mr-1",address:e.blockieHash,width:"25px",height:"25px"},null,8,["address"])):(0,s.kq)("",!0)])),item:(0,s.w5)((({item:t})=>[(0,s._)("div",{class:"py-4 px-0 full-width d-flex align-center justify-space-between cursor-pointer",onClick:r=>e.selectAddress(t)},[(0,s._)("div",Ie,[(0,s.Wm)(i,{class:"mr-2 ml-2",address:t.raw.resolvedAddr?t.raw.resolvedAddr:t.raw.address,width:"25px",height:"25px"},null,8,["address"]),t.raw.resolvedAddr&&""!==t.raw.resolvedAddr?((0,s.wg)(),(0,s.iD)("div",Ne,[(0,s._)("span",Qe,(0,p.zw)(t.raw.address),1),(0,s._)("span",null,(0,p.zw)(t.raw.address.slice(-4)),1)])):((0,s.wg)(),(0,s.j4)(l,{key:0,hash:t.raw.address},null,8,["hash"]))]),(0,s._)("div",Ze,(0,p.zw)(t.raw.nickname),1)],8,We)])),_:1},8,["modelValue","label","placeholder","disabled","error-messages","hint","persistent-hint","rules","no-data-text","onUpdate:searchInput","onUpdate:modelValue"])}const He=["src"],Ve={key:0,class:"inset-shadow"},Le=["src"];function Pe(e,t,r,n,o,i){return(0,s.wg)(),(0,s.iD)("div",null,[(0,s.wy)((0,s._)("div",{style:(0,p.j5)([{position:"relative"},`width: ${e.width}; height: ${e.height}`])},[(0,s._)("img",{ref:"blockie",src:e.blockieImg,alt:"Blockie Image",style:{display:"block","border-radius":"50%"}},null,8,He),e.flat?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",Ve))],4),[[a.F8,e.address]]),e.currency?((0,s.wg)(),(0,s.iD)("img",{key:0,alt:"icon",class:"currency-icon",src:e.currency},null,8,Le)):(0,s.kq)("",!0)])}const Re=new Array(4);function Ge(e){for(let t=0;t>19^e^e>>8,(Re[3]>>>0)/(1<<31>>>0)}function ze(){const e=Math.floor(360*Ye()),t=60*Ye()+40+"%",r=25*(Ye()+Ye()+Ye()+Ye())+"%",a="hsl("+e+","+t+","+r+")";return a}function Ke(e){const t=e,r=e,a=Math.ceil(t/2),s=t-a,n=[];for(let o=0;o[]},noDataText:{type:String,default:""},resolvedAddr:{type:String,default:""},disabled:{type:Boolean,default:!1},isValidAddress:{type:Boolean,default:!1},label:{type:String,default:"To Address"},placeholder:{type:String,default:"Please enter an address"},errorMessages:{type:[String,Array],default:""},clearAddress:{type:Boolean,default:!1}},data(){return{addressValue:this.modelValue,isTyped:it.typed}},computed:{blockieHash(){return this.resolvedAddr.length>0?this.resolvedAddr:this.addressValue}},watch:{clearAddress(){this.clear()},modelValue(e){this.addressValue=e}},methods:{clear(){this.addressValue=""},selectAddress(e){this.isTyped=it.selected;const t=Object.assign({},this.$refs.mewAddressSelect);this.addressValue=e.value.address,t.modelValue=this.addressValue,this.onChange(this.addressValue)},onChange(e){this.$emit("changed",e,this.isTyped)},onInputChange(e){this.isTyped=it.typed,this.addressValue=e?e.address?e.address:e.toString():"",this.onChange(this.addressValue)}}});const ct=(0,c.Z)(lt,[["render",je],["__scopeId","data-v-830abb46"]]);var dt=ct;const ut=(0,ye.toBN)(0),mt=(0,ye.toBN)(-1),pt=e=>(0,ye.toBN)(10).pow((0,ye.toBN)(e)),At=e=>{if("string"===typeof e){if(!e.match(/^-?[0-9.]+$/))throw new Error(`while converting number to string, invalid number value '${e}', should be a number matching (^-?[0-9.]+).`);return e}if("number"===typeof e)return String(e);if("object"===typeof e&&e.toString&&(e.toTwos||e.dividedToIntegerBy))return e.toPrecision?String(e.toPrecision()):e.toString(10);throw new Error(`while converting number to string, invalid number value '${e}' type ${typeof e}.`)},gt=(e,t,r)=>{let a=(0,ye.toBN)(e);const s=a.lt(ut),n=pt(t),o=n.toString().length-1||1,i=r||{};s&&(a=a.mul(mt));let l=a.mod(n).toString(10);while(l.length{let r=At(e);const a=pt(t),s=a.toString().length-1||1,n="-"===r.substring(0,1);if(n&&(r=r.substring(1)),"."===r)throw new Error(`[ethjs-unit] while converting number ${e} to wei, invalid value`);const o=r.split(".");if(o.length>2)throw new Error(`[ethjs-unit] while converting number ${e} to wei, too many decimal points`);let i=o[0],l=o[1];if(i||(i="0"),l||(l="0"),l.length>s)throw new Error(`[ethjs-unit] while converting number ${e} to wei, too many decimal places`);while(l.length{if((0,ae.isNull)(t))return vt({currency:e,options:{},convertedPrice:0});const n=t.tooltipText?{notation:"compact",minimumFractionDigits:3,maximumFractionDigits:4}:a?{notation:"compact",minimumFractionDigits:5,maximumFractionDigits:6}:{};if(r="string"===typeof r?yt(r):r,t="string"===typeof t?yt(t):t.tooltipText?yt(t.tooltipText):(0,ye.isBN)(t)?yt(t.toString()):t,isNaN(t))return vt({currency:e,options:{},convertedPrice:0});const o=t.toString().split(".")[1]?.length||0,i=a?ft(t,o,r).toFixed(6):s?ft(t,o,r).toFixed(7):ft(t,o,r);return vt({currency:e,options:n,convertedPrice:Number.parseFloat(i.toString())})},ft=(e,t,r)=>parseFloat(gt((0,ye.toBN)(ht(e,t)).muln(r).toString(),t)),yt=e=>"string"===typeof e?parseFloat(e.replace(/[,$₽<\s]/g,"")):e,vt=e=>{try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e.currency,currencyDisplay:"narrowSymbol",...e.options}).format(e.convertedPrice)}catch(t){if(t instanceof Error)throw new Error(t.message)}},bt=1e-6,St=.01,Ct=1e4,xt=1e6,kt=1e9,Bt=1e12,Tt=1e15,Ut={ETH:"ETH",GWEI:"Gwei",WEI:"wei",PERCENT:"%",USD:"$",B:"B",T:"T",Q:"Q",M:"M",FIAT:"fiat"},Dt={decimalSeparator:".",groupSeparator:",",groupSize:3};he.Z.config({FORMAT:Dt}),he.Z.config({ROUNDING_MODE:1});const Et=e=>{const t=new he.Z(e);return t.isGreaterThanOrEqualTo(Tt)?Nt(t):t.isGreaterThanOrEqualTo(Bt)?It(t):t.isGreaterThanOrEqualTo(kt)?Wt(t):t.isGreaterThanOrEqualTo(xt)?Ot(t):{value:t.toFormat(),tooltipText:t.toFormat()}};function Ft(e){const t=new he.Z(e);return t.isZero()||t.isNaN()?{value:"0",tooltipText:"0"}:t.isGreaterThanOrEqualTo(xt)?Et(t):t.isGreaterThanOrEqualTo(Ct)?Qt(t,2):t.isGreaterThanOrEqualTo(1)?Qt(t,4):t.isGreaterThanOrEqualTo(bt)?Qt(t,6):{value:`< ${bt}`,tooltipText:t.toFormat()}}const Mt=(e,t={locale:"en-US",currency:"USD",rate:1})=>{const r=new he.Z(e);return void 0===r||r.isZero()||r.isNaN()?{value:wt({number:e,...t})}:r.isGreaterThanOrEqualTo(xt)?{value:wt({number:Et(r),...t})}:r.isGreaterThanOrEqualTo(St)?{value:wt({number:Qt(r,2,!0).value,...t})}:r.isGreaterThanOrEqualTo(bt)?{value:wt({number:Qt(r,6).value,small:!0,...t})}:{value:`< ${wt({number:bt,verySmall:!0,...t})}`,tooltipText:r.toFormat()}},Ot=e=>{const t=e.dividedBy(xt);return{value:`${Qt(t,4).value}${Ut.M}`,tooltipText:e.toFormat()}},Wt=e=>{const t=e.dividedBy(kt);return{value:`${Qt(t,4).value}${Ut.B}`,tooltipText:e.toFormat()}},It=e=>{const t=e.dividedBy(Bt);return{value:`${Qt(t,4).value}${Ut.T}`,tooltipText:e.toFormat()}},Nt=e=>({value:"> 1Q",unit:Ut.Q,tooltipText:e.toFormat()}),Qt=(e,t,r=!1)=>{let a=e.decimalPlaces();return null===a&&(a=0),{value:r?e.decimalPlaces(t).toFormat(t):e.decimalPlaces(t).toFormat(),tooltipText:a>t?e.toFormat():void 0}},Zt=[{name:"ETH",name_long:"Ethereum",chainID:1,tokens:[],icon:jt("ETH"),currencyName:"ETH",gasPriceMultiplier:1,coingeckoID:"ethereum",service:"myetherwallet.com-ws",url:"wss://nodes.mewapi.io/ws/eth",port:443,auth:!1,username:"",password:""},{name:"BTC",name_long:"Bitcoin",chainID:1,tokens:[],icon:jt("BTC"),currencyName:"BTC",gasPriceMultiplier:1,coingeckoID:"bitcoin",service:"",url:"",port:443,auth:!1,username:"",password:""},{name:"BCH",name_long:"Bitcoin Cash",chainID:1,tokens:[],icon:jt("BCH"),currencyName:"BCH",gasPriceMultiplier:1,coingeckoID:"bitcoin-cash",service:"",url:"",port:443,auth:!1,username:"",password:""},{name:"MATIC",name_long:"Polygon (Matic)",chainID:137,tokens:[],icon:jt("MATIC"),currencyName:"MATIC",gasPriceMultiplier:1.7,coingeckoID:"matic-network",service:"myetherwallet.com-ws",url:"wss://nodes.mewapi.io/ws/matic",port:443,auth:!1,username:"",password:""},{name:"DOT",name_long:"Polkadot",chainID:1,tokens:[],icon:jt("DOT"),currencyName:"DOT",gasPriceMultiplier:1,coingeckoID:"polkadot",service:"",url:"",port:443,auth:!1,username:"",password:""},{name:"KSM",name_long:"Kusama",chainID:1,tokens:[],icon:jt("KSM"),currencyName:"KSM",gasPriceMultiplier:1,coingeckoID:"kusama",service:"",url:"",port:443,auth:!1,username:"",password:""},{name:"KDA",name_long:"Kadena",chainID:1,tokens:[],icon:jt("KDA"),currencyName:"KDA",gasPriceMultiplier:1,coingeckoID:"kadena",service:"",url:"",port:443,auth:!1,username:"",password:""}];function jt(e){return r(67604)(`./${e}.svg`)}var Ht=r(82482);class Vt{constructor(e,t,r,a,s){(0,Ht.Z)(this,"decimals",void 0),(0,Ht.Z)(this,"img",void 0),(0,Ht.Z)(this,"name",void 0),(0,Ht.Z)(this,"subtext",void 0),(0,Ht.Z)(this,"value",void 0),(0,Ht.Z)(this,"symbol",void 0),(0,Ht.Z)(this,"network",void 0),this.decimals=a,this.img=s,this.name=e,this.subtext=t,this.value=e,this.symbol=e,this.network=r}}var Lt=r(35085),Pt=r.n(Lt);const Rt=10,Gt=.0175,Yt=.0525;let zt;function Kt(e){return Rt*e.rate/e.baseRate}function qt(e){zt=e??2.65}function Xt(e,t,r){if(t.price<=0)return 0;const a=t.fiatCurrency.decimals,s=$t(e,a,he.O.ROUND_FLOOR),n=$t(Jt(s,r),a,he.O.ROUND_HALF_EVEN),o=$t(_t(s,n),a,he.O.ROUND_FLOOR);return o<=0?0:s-o}function Jt(e,t){const r=Kt(t),a=(e-r)*Gt+r,s=e*Yt;return Math.max(a,s)}function _t(e,t){return Math.max(e-t,0)}function $t(e,t,r){return new he.O(e).decimalPlaces(t,r).toNumber()}var er=r(53289),tr=r(13173),rr=r(10240),ar=r(165);const sr=e=>((0,s.dD)("data-v-ed869630"),e=e(),(0,s.Cn)(),e),nr={class:"pa-3 pa-sm-2 pa-md-2 components--buy-form",ref:"formDiv"},or={class:"mb-6 mt-6"},ir={class:"d-flex align-center justify-space-between mb-3"},lr=sr((()=>(0,s._)("div",{class:"mew-heading-4 textDark--text"}," How much do you want to spend? ",-1))),cr={key:0,class:"ml-2 d-flex align-center"},dr=sr((()=>(0,s._)("span",{class:"h3 font-weight-regular mr-1"},"Loading",-1))),ur={class:"d-flex mt-2"},mr=["src","alt"],pr=["onClick"],Ar={class:"d-flex align-center"},gr=["src","alt"],hr={class:"text-capitalize ml-2 my-2 d-flex flex-column"},wr={class:"mb-6"},fr=sr((()=>(0,s._)("div",{class:"mew-heading-4 textDark--text mb-3"},"You will get",-1))),yr={class:"d-flex mt-2"},vr=["src","alt"],br=sr((()=>(0,s._)("div",{class:"mew-heading-4 textDark--text mb-3"}," Where should we send your crypto? ",-1))),Sr={key:0,class:"pt-2 text-center"},Cr=sr((()=>(0,s._)("div",{class:"text-white font-weight-bold"},"BUY NOW",-1))),xr={key:1,class:"text-center py-5"},kr=sr((()=>(0,s._)("div",{class:"text-center font-weight-bold mt-3",style:{"line-height":"1.4rem"}}," Processing purchase.... ",-1)));var Br=(0,s.aZ)({__name:"BuyForm",props:{cryptoSelected:{type:Object,default:()=>({})},networkSelected:{type:Object,default:()=>({})},fiatSelected:{type:Object,default:()=>({})},fiatAmount:{type:String,default:"0"}},emits:["success","selectedCurrency","selectedFiat","toAddress","setQuotes","selectedNetwork","selectCurrency"],setup(e,{emit:t}){const a=e,n="0";let o="0";const i=["DOT","KSM"],l=["BTC","BCH","DOGE","LTC"],c=["KDA"];let d,u="";(0,s.bv)((async()=>{y.address="",await ce(),(0,ae.isEmpty)(a.fiatSelected)?(we(),"0"===y.fiatAmount&&ge()):(y.cryptoSelected=a.cryptoSelected.name,y.fiatSelected=a.fiatSelected.name,y.fiatAmount=a.fiatAmount,Ae()),await De(),d=setInterval(ce,12e4)})),(0,s.Ah)((async()=>{clearInterval(d)}));const m=Se,g=(0,A.iH)(m),h=e=>{u=e,g.value=m.filter((e=>e.toLowerCase().includes(u.toLowerCase())))};let w={ETH:{conversion_rates:{},limits:{},prices:{}},MATIC:{conversion_rates:{},limits:{},prices:{}},BNB:{conversion_rates:{},limits:{},prices:{}},DOT:{conversion_rates:{},limits:{},prices:{}},KSM:{conversion_rates:{},limits:{},prices:{}}},f={ETH:{conversion_rates:{},limits:{},prices:{}},MATIC:{conversion_rates:{},limits:{},prices:{}},BNB:{conversion_rates:{},limits:{},prices:{}},DOT:{conversion_rates:{},limits:{},prices:{}},KSM:{conversion_rates:{},limits:{},prices:{}}};const y=(0,A.qj)({fiatAmount:n,fiatSelected:"USD",cryptoAmount:"1",cryptoSelected:"ETH",address:"",validAddress:!1,addressErrorMsg:"",reCaptchaToken:"",addressError:!1}),v=(0,A.qj)({data:!1,showAlert:!1,processingBuyForm:!1,alertMessage:""}),b=(0,A.qj)({fiat:!1,crypto:!1});(0,s.YP)((()=>y.cryptoSelected),(()=>{Te(),Ae(),le()})),(0,s.YP)((()=>y.fiatSelected),(()=>{Te(),ge(),le()})),(0,s.YP)((()=>y.fiatAmount),(()=>{v.data||le()})),(0,s.YP)((()=>y.cryptoAmount),(()=>{v.data||le()}));const S=(0,s.Fl)((()=>{const e={ETH:"ETH",BSC:"BSC",MATIC:"MATIC"},t=e[a.cryptoSelected.network],r=Zt.find((e=>e.name===t));return new(Pt())(r?r.url:"")})),C=(0,s.Fl)((()=>`Includes ${Q.value} fee (${Mt(gt(W.value.toString(),2),T.value).value} min)`)),x=(0,s.Fl)((()=>`${y.cryptoSelected} network fee (for transfers to your wallet) ~${Mt(O.value.toString(),T.value).value}`)),k=(e=!1)=>{const t=re(w)?w[y.cryptoSelected].limits[y.fiatSelected].max:0,r=re(f)?f[y.cryptoSelected].limits[y.fiatSelected].max:0,a=e?r:t;return`Daily limit: ${Mt(a.toString(),T.value).value}`},B=()=>{const e=(0,he.Z)(U.value).times(5e4);return`Monthly limit: ${Mt(e.toString(),T.value).value}`},T=(0,s.Fl)((()=>{const e=y.fiatSelected,t=f[y.cryptoSelected]?.conversion_rates[e]||w[y.cryptoSelected]?.conversion_rates[e],r=e;return{locale:"en-US",rate:t,currency:r}})),U=(0,s.Fl)((()=>{if(se()){const e=f[y.cryptoSelected]?.conversion_rates[y.fiatSelected];return e?(0,he.Z)(e).toString():(0,ye.toBN)(1).toString()}return(0,ye.toBN)(1).toString()})),D=(0,s.Fl)((()=>(0,ye.fromWei)(E.value))),E=(0,s.Fl)((()=>(0,ye.toBN)(o).muln(21e3).toString())),F=(0,s.Fl)((()=>re(f)?f[y.cryptoSelected].prices[y.fiatSelected]:w[y.cryptoSelected].prices[y.fiatSelected])),M=(0,s.Fl)((()=>re(f)?f[a.networkSelected.currencyName].prices[y.fiatSelected]:w[a.networkSelected.currencyName].prices[y.fiatSelected])),O=(0,s.Fl)((()=>(0,ye.fromWei)((0,ye.toBN)(E.value).muln(parseFloat(M.value))))),W=(0,s.Fl)((()=>(0,ye.toBN)(399))),I=(0,s.Fl)((()=>{const e=(0,ye.toBN)(ht(parseFloat(y.fiatAmount),2)),t=Z.value?e.muln(.007):e.muln(.0325),r=t.gt(W.value)?e.sub(t):e.sub(t).sub(W.value);return gt(r.subn(parseFloat(O.value)).toString(),2)})),N=(0,s.Fl)((()=>{const e=re(f);if(!e)return`${y.cryptoSelected} is not available for this provider`;const t=f[y.cryptoSelected]?.limits[y.fiatSelected];return t.max>Number.parseFloat(y.fiatAmount)?Mt(I.value,T.value).value:`Value exceeds max: ${Mt(t.max.toString(),T.value).value}`})),Q=(0,s.Fl)((()=>Z.value?"0.7%":"3.25%")),Z=(0,s.Fl)((()=>"EUR"===y.fiatSelected||"GBP"===y.fiatSelected)),j=(0,s.Fl)((()=>{const e=re(f);return e?Ft((0,he.Z)(I.value).div(F.value).toString()).value:0})),H=(0,s.Fl)((()=>re(w))),V=(0,s.Fl)((()=>({decimals:"JPY"===y.fiatSelected?0:2}))),P=(0,s.Fl)((()=>new he.Z(H.value?w[y.cryptoSelected].prices[y.fiatSelected]:0))),R=(0,s.Fl)((()=>H.value?y.fiatAmount:"0.00")),G=(0,s.Fl)((()=>{const{fiatSelected:e,cryptoSelected:t}=y;return H.value?Xt(Number.parseFloat(R.value),{price:P.value.toNumber(),fiatCurrency:V.value},{rate:w[t].conversion_rates[e],baseRate:w[t].conversion_rates["USD"],fiatCurrency:V.value}):0})),Y=(0,s.Fl)((()=>(0,he.Z)(R.value).minus(G.value).toFixed(V.value.decimals))),z=(0,s.Fl)((()=>H.value?Mt(Y.value,T.value).value:`${y.cryptoSelected} is not available for this provider`)),K=(0,s.Fl)((()=>`Includes 5.25% fee (${Mt((0,he.Z)(10).toString(),T.value).value} min)`)),q=(0,s.Fl)((()=>{const e=(0,he.Z)(Y.value||"0");return H.value?Ft(e.dividedBy(P.value).toString()).value:0})),X=(0,s.Fl)((()=>r(33222)(`./${y.fiatSelected}.svg`))),J=(0,s.Fl)((()=>r(67604)(`./${y.cryptoSelected}.svg`))),_=(e,t=!0)=>r(8295)(`./${t?"fiat":"crypto"}/${e}.svg`),$=e=>{y.fiatSelected=e,b.fiat=!1,t("selectedFiat",y.fiatSelected)},ee=(0,s.Fl)((()=>ie.value&&y.fiatSelected&&y.cryptoSelected&&y.address&&!y.addressError&&""===y.addressErrorMsg&&""===v.alertMessage&&y.validAddress)),te=[e=>!!((0,ae.isString)(e)&&e?.length>=1)||(!!(0,ae.isNumber)(e)||"Must be a valid number")],re=e=>{const{cryptoSelected:t,fiatSelected:r}=y;return!(0,ae.isEmpty)(e[t]?.limits[r])},se=()=>re(w)||re(f),ne=(0,s.Fl)((()=>{const{cryptoSelected:e,fiatSelected:t}=y;if(!se())return 0;const r=w[e]?.limits[t],a=f[e]?.limits[t];return re(f)?re(w)?a.min{const{cryptoSelected:e,fiatSelected:t}=y;if(!se())return 0;const r=w[e]?.limits[t],a=f[e]?.limits[t];return re(f)?re(w)?a.max>r.max?a.max:r.max:a.max:r.max})),ie=(0,s.Fl)((()=>{const{fiatAmount:e}=y;if(!se())return!1;const t={min:ne.value,max:oe.value},r=new he.Z(e||0),a=r.gte(new he.Z(t.min))&&r.lte(new he.Z(t.max));return a})),le=()=>{const e={min:ne.value,max:oe.value};if(!ie.value)return v.showAlert=!0,void(v.alertMessage=`Fiat price must be between ${Ce[y.fiatSelected]}${e.min} and ${Ce[y.fiatSelected]}${e.max}`);v.showAlert=!1,v.alertMessage=""},ce=async()=>{try{v.data=!0;const e=await Be()||[];e.forEach((e=>{e.forEach((e=>{const t={conversion_rates:{},limits:{},prices:{}};e.conversion_rates.forEach((e=>t.conversion_rates[e.fiat_currency]=e.exchange_rate)),e.limits.forEach((e=>{"WEB"===e.type&&(t.limits[e.fiat_currency]=e.limit)})),e.prices.forEach((e=>t.prices[e.fiat_currency]=e.price));const r=e.crypto_currencies[0],a=Zt.find((e=>e.currencyName===r)),s={USDT:{name:"Tether",decimals:6},USDC:{name:"USD Coin",decimals:6},DAI:{name:"Dai Stablecoin",decimals:18}};if(!a){const e=Zt[0].tokens.find((e=>e.name===r));if(!e){const e=s[r];Zt[0].tokens.push(new Vt(r,e.name,"ETH",e.decimals,_(r,!1)))}}"SIMPLEX"===e.name?w[r]=t:"MOONPAY"===e.name&&(f[r]=t)}))})),v.data=!1,t("setQuotes",w,f)}catch(e){fe(e)}},de=()=>{t("selectedCurrency",{name:y.fiatSelected,value:y.fiatSelected,img:r(33222)(`./${y.fiatSelected}.svg`)},y.fiatAmount)},ue=e=>{const t="k:"===e.substr(0,2),r=(0,ye.isHex)(e.substring(2));return t&&r},me=(0,s.Fl)((()=>c.includes(y.cryptoSelected)?"KDA"===y.cryptoSelected?ue(y.address):Ee().validate(y.address,y.cryptoSelected):i.includes(y.cryptoSelected)?xe(y.address,"DOT"===y.cryptoSelected?0:2):l.includes(y.cryptoSelected)?Ee().validate(y.address,y.cryptoSelected):Ee().validate(y.address,y.cryptoSelected)&&ve(y.address))),pe=(0,s.Fl)((()=>{const{fiatSelected:e,cryptoSelected:t}=y,r=new he.Z(w[t]?.prices[e]),a=new he.Z(f[t]?.prices[e]);return a.isNaN()?r:r.isNaN()?a:r.lte(a)?r:a})),Ae=()=>{const e=pe.value,t=new he.Z(y.fiatAmount||"0");y.cryptoAmount=(0,he.Z)(t).div(e).toString()},ge=()=>{const e=pe.value,t=new he.Z(y.cryptoAmount||"0");y.fiatAmount=t.times(e).toFixed(2).toString()},we=()=>{const e=window.location.search;if(e){const r=new URLSearchParams(e),s=r.get("crypto_amount"),n=r.get("fiat"),o=r.get("crypto"),i=r.get("to"),l=be.find((e=>{if(e.toLowerCase()===o?.toLowerCase())return o})),c=be.find((e=>{if(e.toLowerCase()===o?.toLowerCase())return o})),d=n&&c?n.toUpperCase():"USD",u=o&&l?o.toUpperCase():"ETH";let m;if(y.fiatSelected=d,u!==a.networkSelected.name){const e=Zt.find((e=>e.name===u));if(!e)return;let r=18;"DOT"===e.name?r=10:"KSM"===e.name&&(r=12);const a=new Vt(e.currencyName,e.name_long,e.name,r,e.icon);if(m=[a],"CAD"===y.fiatSelected)return m;e.tokens&&(m=m.concat(e.tokens)),t("selectedNetwork",e)}const p=m?m.find((e=>e.symbol===u)):void 0;p&&t("selectCurrency",p),y.cryptoSelected=p?p.symbol:u,y.address=i||"",i&&Te();const A=(0,he.Z)(s||"1"),g=(0,he.Z)(F.value),h=(0,he.Z)(ne.value),w=(0,he.Z)(A.times(g)).lt(h)?h.div(g).times(2).toString():A;y.cryptoAmount=(0,he.Z)(w).toNumber()}},fe=e=>{const t=(0,ye.toBN)(y.fiatAmount).gt((0,ye.toBN)(0));if(t){const t=(0,ae.isObject)(e.response.data.error);if(t){const t=e.response.data.error.hasOwnProperty("errors");t&&(v.alertMessage=e.response.data.error.errors[0].message)}else v.alertMessage=e.response.data.error}},ve=e=>e&&(0,ye.isHexStrict)(e)&&(0,ye.isAddress)(e),xe=(e,t)=>{try{const r=(0,Fe.m)(e,t);return e===r}catch(r){return!1}},ke=e=>{y.address=e,Te()},Te=()=>{const e=me.value;e?(y.addressErrorMsg="",y.addressError=!1,y.validAddress=!0):y.address?(y.addressErrorMsg=`Please provide a valid ${y.cryptoSelected} address`,y.validAddress=!1):(y.addressErrorMsg="",y.validAddress=!1)},Ue=()=>{const{fiatSelected:e,cryptoSelected:s,address:n,fiatAmount:o}=y,i=re(f),l=!i||f[s].limits[e].max{if(i.includes(y.cryptoSelected)||l.includes(y.cryptoSelected)||c.includes(y.cryptoSelected))return void(o="0");o=await S.value.eth.getGasPrice();const e=re(w)?w[y.cryptoSelected].prices[y.fiatSelected]:f[y.cryptoSelected].prices[y.fiatSelected];qt(parseFloat(D.value)*parseFloat(e))};return(e,t)=>((0,s.wg)(),(0,s.iD)("div",nr,[(0,s._)("div",or,[(0,s._)("div",ir,[lr,v.data?((0,s.wg)(),(0,s.iD)("div",cr,[dr,(0,s.Wm)(tr.L,{size:11,width:2,indeterminate:""})])):(0,s.kq)("",!0)]),(0,s._)("div",ur,[(0,s.Wm)(ar.h,{class:"no-right-border",onInput:Ae,type:"number",modelValue:y.fiatAmount,"onUpdate:modelValue":t[0]||(t[0]=e=>y.fiatAmount=e),modelModifiers:{number:!0},required:"",variant:"outlined","error-messages":v.alertMessage,disabled:v.data,rules:te},null,8,["modelValue","error-messages","disabled"]),(0,s.Wm)(rr.r,{style:{"max-width":"120px"},class:"rounded-right no-left-border buy-input",modelValue:y.fiatSelected,"onUpdate:modelValue":t[2]||(t[2]=e=>y.fiatSelected=e),items:g.value,disabled:v.data,"menu-props":{closeOnContentClick:!0},"base-color":"primary","return-object":"",variant:"outlined"},{"prepend-inner":(0,s.w5)((()=>[(0,s._)("img",{class:"currency-icon mr-1",src:(0,A.SU)(X),alt:y.fiatSelected,width:"25px",height:"25px"},null,8,mr)])),"prepend-item":(0,s.w5)((()=>[(0,s.Wm)(ar.h,{modelValue:(0,A.SU)(u),"onUpdate:modelValue":[t[1]||(t[1]=e=>(0,A.dq)(u)?u.value=e:u=e),h],variant:"outlined",class:"px-2","prepend-inner-icon":"mdi-magnify",autofocus:!0,density:"compact",placeholder:"Search"},null,8,["modelValue"])])),item:(0,s.w5)((e=>[(0,s._)("div",{class:"d-flex align-center justify-space-between full-width cursor-pointer",onClick:t=>$(e.item.value)},[(0,s._)("div",Ar,[(0,s._)("img",{class:"currency-icon mr-1 ml-3",src:_(e.item.value),alt:e.item.value,width:"25px",height:"25px"},null,8,gr),(0,s._)("span",hr,(0,p.zw)(e.item.value),1)])],8,pr)])),_:1},8,["modelValue","items","disabled"])])]),(0,s._)("div",wr,[fr,(0,s._)("div",yr,[(0,s.Wm)(ar.h,{class:"no-right-border",onInput:ge,type:"number",modelValue:y.cryptoAmount,"onUpdate:modelValue":t[3]||(t[3]=e=>y.cryptoAmount=e),modelModifiers:{number:!0},required:"",variant:"outlined",rounded:"left",rules:te,disabled:v.data},null,8,["modelValue","disabled"]),(0,s.Wm)(L.T,{modelValue:y.cryptoSelected,"onUpdate:modelValue":t[4]||(t[4]=e=>y.cryptoSelected=e),rounded:"right",variant:"outlined",class:"no-left-border custom-btn","append-icon":"mdi-menu-down",disabled:v.data,onClick:de},{prepend:(0,s.w5)((()=>[(0,s._)("img",{class:"currency-icon mr-1 padding--2",src:(0,A.SU)(J),alt:y.cryptoSelected,width:"25px",height:"25px"},null,8,vr)])),append:(0,s.w5)((()=>[(0,s.Wm)(er.t,{color:"grey-2",size:"large"})])),default:(0,s.w5)((()=>[(0,s._)("span",null,(0,p.zw)(y.cryptoSelected),1)])),_:1},8,["modelValue","disabled"])])]),(0,s._)("div",null,[br,(0,s.Wm)(dt,{ref:"addressSelect",modelValue:y.address,"error-messages":y.addressErrorMsg,autofocus:!1,label:"","is-valid-address":y.validAddress,placeholder:"Enter Crypto Address",onKeyup:Te,onChanged:ke},null,8,["modelValue","error-messages","is-valid-address"])]),v.processingBuyForm?((0,s.wg)(),(0,s.iD)("div",xr,[(0,s.Wm)(tr.L,{size:70,width:7,indeterminate:"",color:"#05c0a5"}),kr])):((0,s.wg)(),(0,s.iD)("div",Sr,[(0,s._)("div",null,[(0,s.Wm)(L.T,{flat:"",rounded:"pill",disabled:!(0,A.SU)(ee),"min-height":"60px",width:"360px",onClick:Ue,class:"buy-button"},{default:(0,s.w5)((()=>[Cr])),_:1},8,["disabled"])])]))],512))}});const Tr=(0,c.Z)(Br,[["__scopeId","data-v-ed869630"]]);var Ur=Tr,Dr=r(80678);const Er=e=>((0,s.dD)("data-v-6d7572c2"),e=e(),(0,s.Cn)(),e),Fr={class:"d-flex align-center textDark--text mb-10"},Mr=Er((()=>(0,s._)("div",{class:"mew-heading-2"},"Select provider",-1))),Or={key:0},Wr={class:"section-block pa-5 mb-6"},Ir=["src"],Nr={key:0,class:"mb-3"},Qr={class:"d-flex mb-1 align-center justify-space-between"},Zr={class:"d-flex align-center"},jr={key:0,class:"mr-1 textDark--text"},Hr={key:1,class:"mr-1 text-red"},Vr={class:"elevated-box pa-3"},Lr=Er((()=>(0,s._)("br",null,null,-1))),Pr=Er((()=>(0,s._)("br",null,null,-1))),Rr=Er((()=>(0,s._)("br",null,null,-1))),Gr=Er((()=>(0,s._)("br",null,null,-1))),Yr=Er((()=>(0,s._)("br",null,null,-1))),zr={class:"d-flex align-center mb-1"},Kr=["src"],qr=["src"],Xr=["src"],Jr=["src"],_r={class:"mew-label mb-5"},$r={class:"section-block pa-5"},ea={key:0,class:"mb-3"},ta={class:"d-flex mb-1 align-center justify-space-between"},ra={class:"d-flex mew-heading-3"},aa={class:"mew-heading-3 pl-1"},sa={class:"d-flex align-center"},na={class:"mr-1"},oa={class:"elevated-box pa-3"},ia=Er((()=>(0,s._)("br",null,null,-1))),la=Er((()=>(0,s._)("br",null,null,-1))),ca=Er((()=>(0,s._)("br",null,null,-1))),da=Er((()=>(0,s._)("br",null,null,-1))),ua=Er((()=>(0,s._)("br",null,null,-1))),ma={key:1,class:"mb-3"},pa={class:"d-flex align-center justify-space-between"},Aa={class:"d-flex align-start mb-1"},ga=["src"],ha=["src"],wa=["src"],fa=Er((()=>(0,s._)("div",{class:"mew-label mb-5"},"Visa, Mastercard",-1))),ya={key:1,class:"text-center py-5"},va=Er((()=>(0,s._)("div",{class:"text-center font-weight-bold mt-3",style:{"line-height":"1.4rem"}}," Processing purchase.... ",-1)));function ba(e,t,r,a,n,o){return(0,s.wg)(),(0,s.iD)("div",null,[(0,s._)("div",Fr,[(0,s.Wm)(er.t,{color:"textDark",class:"cursor-pointer",onClick:t[0]||(t[0]=t=>e.$emit("close"))},{default:(0,s.w5)((()=>[(0,s.Uk)(" mdi-arrow-left mr-4 ")])),_:1}),Mr]),e.processingBuy?((0,s.wg)(),(0,s.iD)("div",ya,[(0,s.Wm)(tr.L,{size:70,width:7,indeterminate:"",color:"#05c0a5"}),va])):((0,s.wg)(),(0,s.iD)("div",Or,[(0,s._)("div",Wr,[(0,s._)("img",{class:"provider-logo",src:e.moonpayLogo,alt:"Moonpay",height:"28"},null,8,Ir),e.loading?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",Nr,[(0,s._)("div",Qr,[(0,s._)("div",{class:(0,p.C_)(["d-flex mew-heading-3",e.hideMoonpay?"text-red":""])},[(0,s.Uk)((0,p.zw)(e.buyObj.cryptoToFiat)+" ",1),(0,s._)("span",{class:(0,p.C_)(["mew-heading-3 pl-1",e.hideMoonpay?"text-red":""])},(0,p.zw)(e.selectedCryptoName),3)],2)]),(0,s._)("div",Zr,[e.hideMoonpay?((0,s.wg)(),(0,s.iD)("div",Hr,(0,p.zw)(e.buyObj.plusFeeF),1)):((0,s.wg)(),(0,s.iD)("div",jr," ≈ "+(0,p.zw)(e.buyObj.plusFeeF),1)),e.hideMoonpay?(0,s.kq)("",!0):((0,s.wg)(),(0,s.j4)(Dr.N,{key:2,location:"bottom"},{activator:(0,s.w5)((({props:e})=>[(0,s.Wm)(er.t,(0,s.dG)(e,{color:"grey-lighten-1",size:"x-small",class:"cursor-pointer"}),{default:(0,s.w5)((()=>[(0,s.Uk)(" mdi-information ")])),_:2},1040)])),default:(0,s.w5)((()=>[(0,s._)("div",Vr,[(0,s.Uk)((0,p.zw)(e.buyObj.includesFeeText)+" ",1),Lr,Pr,(0,s.Uk)(" "+(0,p.zw)(e.buyObj.networkFeeText)+" ",1),Rr,Gr,(0,s.Uk)(" "+(0,p.zw)(e.buyObj.dailyLimit)+" ",1),Yr,(0,s.Uk)(" "+(0,p.zw)(e.buyObj.monthlyLimit),1)])])),_:1}))])])),(0,s._)("div",zr,[(0,s._)("img",{src:e.visaIcon,alt:"Visa",height:"24",class:"mr-2"},null,8,Kr),(0,s._)("img",{src:e.masterIcon,alt:"Master",height:"24",class:"mr-2"},null,8,qr),(0,s._)("img",{src:e.applePayIcon,alt:"ApplePay",height:"24",class:"mr-2"},null,8,Xr),e.isEUR?((0,s.wg)(),(0,s.iD)("img",{key:0,src:e.bankIcon,alt:"Bank",height:"24"},null,8,Jr)):(0,s.kq)("",!0)]),(0,s._)("div",_r,(0,p.zw)(e.paymentOptionString),1),(0,s._)("div",null,[(0,s.Wm)(L.T,{size:"large",class:"grey-light greyPrimary--text",width:"100%",variant:"flat",disabled:e.hideMoonpay||e.loading,onClick:e.buy},{default:(0,s.w5)((()=>[(0,s.Uk)((0,p.zw)(e.moonpayBtnTitle),1)])),_:1},8,["disabled","onClick"])])]),(0,s._)("div",$r,[e.loading?((0,s.wg)(),(0,s.iD)("div",ma)):((0,s.wg)(),(0,s.iD)("div",ea,[(0,s._)("div",ta,[(0,s._)("div",ra,[(0,s.Uk)((0,p.zw)(e.simplexQuote.cryptoToFiat)+" ",1),(0,s._)("span",aa,(0,p.zw)(e.selectedCryptoName),1)])]),(0,s._)("div",sa,[(0,s._)("div",na,"≈ "+(0,p.zw)(e.simplexQuote.plusFeeF),1),(0,s.Wm)(Dr.N,{location:"bottom"},{activator:(0,s.w5)((({props:e})=>[(0,s.Wm)(er.t,(0,s.dG)(e,{color:"grey-lighten-1",size:"x-small",class:"cursor-pointer"}),{default:(0,s.w5)((()=>[(0,s.Uk)(" mdi-information ")])),_:2},1040)])),default:(0,s.w5)((()=>[(0,s._)("div",oa,[(0,s.Uk)((0,p.zw)(e.simplexQuote.includesFeeText)+" ",1),ia,la,(0,s.Uk)(" "+(0,p.zw)(e.simplexQuote.networkFeeText)+" ",1),ca,da,(0,s.Uk)(" "+(0,p.zw)(e.simplexQuote.dailyLimit)+" ",1),ua,(0,s.Uk)(" "+(0,p.zw)(e.simplexQuote.monthlyLimit),1)])])),_:1})])])),(0,s._)("div",pa,[(0,s._)("div",Aa,[(0,s._)("img",{src:e.visaIcon,alt:"Visa",height:"24",class:"mr-2"},null,8,ga),(0,s._)("img",{src:e.masterIcon,alt:"Master",height:"24",class:"mr-2"},null,8,ha)]),(0,s._)("img",{class:"provider-logo",src:e.simplexLogo,alt:"Simplex",height:"28"},null,8,wa)]),fa,(0,s._)("div",null,[(0,s.Wm)(L.T,{disabled:e.loading,size:"large",class:"grey-light greyPrimary--text",width:"100%",variant:"flat",onClick:e.openSimplex},{default:(0,s.w5)((()=>[(0,s.Uk)((0,p.zw)(e.simplexBtnTitle),1)])),_:1},8,["disabled","onClick"])])])]))])}const Sa="https://mainnet.mewwallet.dev",Ca="https://mainnet.mewwallet.dev/purchase/simplex/order";async function xa(e,t){return await fe().get(Ca,{params:{paymentId:e,address:t}}).then((e=>e.data)).catch((e=>e))}async function ka(e){const t=`WEB|${(0,ye.sha3)(e["destination_wallet[address]"])?.substring(0,42)}`,r=`${Sa}/v2/purchase/simplex/order?id=${t}&fiatCurrency=${e["fiat_total_amount[currency]"]}&requestedCurrency=${e["fiat_total_amount[currency]"]}&requestedAmount=${e["fiat_total_amount[amount]"]}&address=${e["destination_wallet[address]"]}&cryptoCurrency=${e["destination_wallet[currency]"]}`;window.location.href=encodeURI(r)}async function Ba(e,t,r,a,s){let n=null;try{n=await xe(e,t,r,a,s)}catch(i){throw new Error(i)}const o=await xa(n.payment_id,s);return await ka(o.form),o.form}async function Ta(e,t,r,a){const s=(0,ye.sha3)(a),n=`WEB|${s?.substring(0,42)}`,o=window.location.search,i=o.includes("platform=enkrypt")?"enkrypt":"web";return new Promise((s=>{let o=`${Sa}/v3/purchase/moonpay/order?address=${a}&id=${n}&cryptoCurrency=${e}&fiatCurrency=${t}&platform=${i}`;r&&(o+=`&requestedAmount=${r}`);const l=encodeURI(o);window.location.href=l,s()}))}async function Ua(e,t,r){const a=(0,ye.sha3)(r),s=`WEB|${a?.substring(0,42)}`,n=window.location.search,o=n.includes("platform=enkrypt")?"enkrypt":"web";return new Promise((a=>{const n=encodeURI(`${Sa}/v3/sell/moonpay/order?address=${r}&id=${s}&cryptoCurrency=${e}&requestedAmount=${t}&platform=${o}`);window.location.href=n,a()}))}var Da=(0,s.aZ)({name:"BuyProviders",props:{orderHandler:{type:Object,default:()=>({})},close:{type:Function,default:()=>({})},onlySimplex:{type:Boolean,default:!1},selectedFiat:{type:Object,default:()=>({})},selectedCurrency:{type:Object,default:()=>({})},buyObj:{type:Object,default:()=>({})},simplexQuote:{type:Object,default:()=>({})},toAddress:{type:String,default:""}},setup(){const e=(0,s.f3)("$amplitude");return{amplitude:e}},data(){return{loading:!1,processingBuy:!1}},computed:{selectedFiatName(){return this.selectedFiat.name},actualAddress(){return this.toAddress},selectedCryptoName(){return this.selectedCurrency.symbol},isEUR(){return"EUR"===this.selectedFiatName||"GBP"===this.selectedFiatName},hideMoonpay(){return this.onlySimplex},simplexBtnTitle(){return"BUY WITH SIMPLEX"},moonpayBtnTitle(){return"BUY WITH MOONPAY"},paymentOptionString(){return"Visa, Mastercard, Apple Pay"+(this.isEUR?", Bank account":"")},visaIcon(){return r(14393)},masterIcon(){return r(83845)},bankIcon(){return r(13822)},applePayIcon(){return r(90407)},simplexLogo(){return r(60074)},moonpayLogo(){return r(1902)}},methods:{isValidToAddress(e){return Ee().validate(e,this.selectedCurrency.symbol)},openSimplex(){this.processingBuy=!0,this.amplitude.track("CCBuySellBuyWithSimplex"),Ba(this.selectedFiatName,this.selectedCryptoName,this.selectedFiatName,this.simplexQuote.fiatAmount,this.actualAddress).then((()=>{this.reset(!0),this.close(),this.$emit("reset"),this.amplitude.track("CCBuySellBuyWithSimplexSuccess")})).catch((()=>{this.reset(),this.close(),this.$emit("reset"),this.amplitude.track("CCBuySellBuyWithSimplexFailed")}))},currencyFormatter(e){const t="en-US";return new Intl.NumberFormat(t,{style:"currency",currency:this.selectedFiatName}).format(e)},reset(e=!1){this.loading=!0,this.processingBuy=e},buy(){this.processingBuy=!0,this.amplitude.track("CCBuySellBuyWithMoonpay"),Ta(this.selectedCryptoName,this.selectedFiatName,this.buyObj.fiatAmount,this.actualAddress).then((()=>{this.reset(!0),this.close(),this.$emit("reset"),this.amplitude.track("CCBuySellBuyWithMoonpaySuccess")})).catch((()=>{this.reset(),this.close(),this.$emit("reset"),this.amplitude.track("CCBuySellBuyWithMoonpayFailed")}))}}});const Ea=(0,c.Z)(Da,[["render",ba],["__scopeId","data-v-6d7572c2"]]);var Fa=Ea,Ma=r(68275),Oa=r(23150),Wa=r(52127);const Ia=e=>((0,s.dD)("data-v-3b4df45c"),e=e(),(0,s.Cn)(),e),Na={class:"d-flex align-center textDark--text mb-10"},Qa=Ia((()=>(0,s._)("div",{class:"mew-heading-2"},"Select Token",-1))),Za={class:"d-flex mt-2"},ja=["src","alt"],Ha={class:"network-selected"},Va={class:"px-8 pt-6"},La=Ia((()=>(0,s._)("div",{class:"mew-heading-4 mb-4"},"Select Network",-1))),Pa=["onClick"],Ra={class:"d-flex align-center"},Ga=["src","alt"],Ya={class:"ml-2 my-2 d-flex flex-column"},za={class:"d-flex"},Ka={class:"d-flex"},qa=["src","alt"],Xa={class:"text-capitalize text--bold"};function Ja(e,t,r,a,n,o){return(0,s.wg)(),(0,s.iD)("div",null,[(0,s._)("div",Na,[(0,s.Wm)(er.t,{color:"textDark",class:"cursor-pointer",onClick:t[0]||(t[0]=t=>e.$emit("close"))},{default:(0,s.w5)((()=>[(0,s.Uk)(" mdi-arrow-left mr-4 ")])),_:1}),Qa]),(0,s._)("div",null,[(0,s._)("div",Za,[(0,s.Wm)(rr.r,{class:"full-width",modelValue:e.networkSelected,"onUpdate:modelValue":t[2]||(t[2]=t=>e.networkSelected=t),label:"Network",items:e.filteredNetworkList,"menu-props":{closeOnContentClick:!0},"return-object":"",variant:"outlined"},{selection:(0,s.w5)((()=>[(0,s._)("img",{class:"network-icon mr-5 pa-1",src:e.networkSelected.icon,alt:e.networkSelected.name,width:"28px",height:"28px"},null,8,ja),(0,s._)("span",Ha,(0,p.zw)(e.networkSelected.name_long),1)])),"prepend-item":(0,s.w5)((()=>[(0,s._)("div",Va,[La,(0,s.Wm)(ar.h,{modelValue:e.networkSearchInput,"onUpdate:modelValue":t[1]||(t[1]=t=>e.networkSearchInput=t),variant:"outlined",class:"mr-1","prepend-inner-icon":"mdi-magnify",placeholder:"Search",autofocus:!0},null,8,["modelValue"])])])),item:(0,s.w5)((t=>[(0,s._)("div",{class:"d-flex align-center justify-space-between full-width cursor-pointer px-8 pb-6",onClick:r=>e.selectNetwork(t.item.value)},[(0,s._)("div",Ra,[(0,s._)("img",{class:"currency-icon padding--2 mr-1 ml-3",src:t.item.value.icon,alt:t.item.value.name,width:"25px",height:"25px"},null,8,Ga),(0,s._)("span",Ya,(0,p.zw)(t.item.value.name_long),1)])],8,Pa)])),_:1},8,["modelValue","items"])]),(0,s._)("div",za,[(0,s.Wm)(ar.h,{modelValue:e.searchInput,"onUpdate:modelValue":t[3]||(t[3]=t=>e.searchInput=t),variant:"outlined",class:"mr-1","prepend-inner-icon":"mdi-magnify",placeholder:"Search",autofocus:!0},null,8,["modelValue"])]),(0,s._)("div",Ka,[(0,s.Wm)(Ma.i,{lines:"one",class:"full-width"},{default:(0,s.w5)((()=>[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.filteredTokenList,((t,r)=>((0,s.wg)(),(0,s.j4)(Oa.l,{key:r,value:t,"base-color":"primary",onClick:r=>e.selectCurrency(t,!0)},{prepend:(0,s.w5)((()=>[(0,s._)("img",{class:"currency-icon no-border mr-3",src:t.img,alt:t.name,width:"25px",height:"25px"},null,8,qa)])),append:(0,s.w5)((()=>[(0,s._)("span",null,(0,p.zw)(e.tokenPrice(t.name)),1)])),default:(0,s.w5)((()=>[(0,s.Wm)(Wa.V,null,{default:(0,s.w5)((()=>[(0,s._)("div",null,[(0,s._)("span",Xa,(0,p.zw)(t.name),1),(0,s._)("span",null,(0,p.zw)(` - ${t.subtext}`),1)])])),_:2},1024)])),_:2},1032,["value","onClick"])))),128))])),_:1})])])])}class _a{constructor(e,t,r,a,s){(0,Ht.Z)(this,"decimals",void 0),(0,Ht.Z)(this,"img",void 0),(0,Ht.Z)(this,"name",void 0),(0,Ht.Z)(this,"subtext",void 0),(0,Ht.Z)(this,"value",void 0),(0,Ht.Z)(this,"symbol",void 0),(0,Ht.Z)(this,"network",void 0),this.decimals=a,this.img=s,this.name=e,this.subtext=t,this.value=e,this.symbol=e,this.network=r}}var $a=(0,s.aZ)({name:"TokenSelect",props:{close:{type:Function,default:()=>({})},selectedNetwork:{type:Object,default:()=>({})},selectedCurrency:{type:Object,default:()=>({})},moonpayData:{type:Object,default:()=>({})},simplexData:{type:Object,default:()=>({})},fiatSelected:{type:Object,default:()=>({})},isSell:{type:Boolean,default:!1}},data(){return{networks:Zt,networkSelected:{},cryptoSelected:{},networkDropdown:!1,cryptoDropdown:!1,searchInput:"",networkSearchInput:""}},computed:{cryptoIcon(){return r(67604)(`./${this.cryptoSelected.name}.svg`)},tokensList(){let e=18;"DOT"===this.networkSelected.name?e=10:"KSM"===this.networkSelected.name&&(e=12);const t=new _a(this.networkSelected.currencyName,this.networkSelected.name_long,this.networkSelected.name,e,this.networkSelected.icon);let r=[t];return"CAD"===this.fiatName||this.networkSelected.tokens&&(r=r.concat(this.networkSelected.tokens)),r},filteredTokenList(){const e=this.searchInput.toLowerCase();return this.tokensList.filter((t=>{const r=t.name.toLowerCase(),a=t.subtext.toLowerCase();if(this.hasValidPrices(t.name)&&(r.includes(e)||a.includes(e)))return t}))},fiatName(){return this.fiatSelected.name},networkList(){return this.isSell?this.networks.filter((e=>"DOT"!==e.name&&"KSM"!==e.name)):this.networks},filteredNetworkList(){const e=this.networkSearchInput.toLowerCase();return this.networkList.filter((t=>t.name.toLowerCase().includes(e)||t.name_long.toLowerCase().includes(e)||t.currencyName.toLowerCase().includes(e)))}},beforeMount(){this.networks=Zt,this.networkSelected=this.selectedNetwork,this.cryptoSelected=this.selectedCurrency},watch:{networkSelected(){this.selectCurrency(this.tokensList[0]),this.$emit("selectedNetwork",this.networkSelected)}},methods:{selectCurrency(e,t=!1){this.cryptoSelected=e,this.cryptoDropdown=!1,t&&this.$emit("selectCurrency",this.cryptoSelected)},selectNetwork(e){this.networkSelected=e,this.networkDropdown=!1},tokenPrice(e){const t=parseFloat(this.simplexData[e]?.prices[this.fiatName]),r=parseFloat(this.moonpayData[e]?.prices[this.fiatName]),a={locale:"en-US",rate:1,currency:this.fiatName};if(isNaN(r))return Mt(t.toFixed(2),a).value;if(isNaN(t))return Mt(r.toFixed(2),a).value;const s=t<=r?t:r;return Mt(s.toFixed(2),a).value},hasValidPrices(e){let t=this.tokenPrice(e);return t=t?.substring(1,t.length),"0.00"!==t}}});const es=(0,c.Z)($a,[["render",Ja],["__scopeId","data-v-3b4df45c"]]);var ts=es;const rs=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"}];var as=r(15941);const ss=e=>((0,s.dD)("data-v-16eba3c0"),e=e(),(0,s.Cn)(),e),ns={class:"pa-3 pa-sm-2 pa-md-2 components--sell-form",ref:"formDiv"},os={class:"mb-6 mt-6"},is={class:"d-flex justify-space-between mb-3"},ls=ss((()=>(0,s._)("div",{class:"mew-heading-4 textDark--text"}," How much do you want to sell? ",-1))),cs={key:0,class:"text-mew"},ds={class:"d-flex mt-2"},us=["src","alt"],ms={class:"mb-6"},ps=ss((()=>(0,s._)("div",{class:"mew-heading-4 textDark--text mb-3"},"You will get",-1))),As={class:"d-flex mt-2"},gs=["src","alt"],hs=["onClick"],ws={class:"d-flex align-center"},fs=["src","alt"],ys={class:"text-capitalize ml-2 my-2 d-flex flex-column"},vs=ss((()=>(0,s._)("div",{class:"d-sm-flex align-center justify-space-between mb-2"},[(0,s._)("div",{class:"mew-heading-4 mr-2"}," What wallet are you sending your crypto from? ")],-1))),bs={class:"text-gray mt-3 mb-6"},Ss=ss((()=>(0,s._)("br",null,null,-1))),Cs=ss((()=>(0,s._)("br",null,null,-1))),xs={class:"text-bolder"},ks=ss((()=>(0,s._)("span",{class:"text-gray"},"Network Fee:",-1))),Bs={class:"text-gray",style:{float:"right"}},Ts={key:0,class:"pt-2 text-center"},Us=ss((()=>(0,s._)("div",{class:"text-white font-weight-bold"},"Sell With Moonpay",-1))),Ds={key:1,class:"text-center py-5"},Es=ss((()=>(0,s._)("div",{class:"text-center font-weight-bold mt-3",style:{"line-height":"1.4rem"}}," Processing purchase.... ",-1)));var Fs=(0,s.aZ)({__name:"SellForm",props:{cryptoSelected:{type:Object,default:()=>({})},networkSelected:{type:Object,default:()=>({})},fiatSelected:{type:Object,default:()=>({})},fiatAmount:{type:String,default:"0"}},emits:["success","selectedCurrency","selectedFiat","toAddress","setQuotes"],setup(e,{emit:t}){const a=e,n=(0,s.f3)("$amplitude"),o="0",i=["DOT","KSM"];let l,c,d=(0,A.iH)("0"),u="";const m={USDT:{name:"Tether",decimals:6,contract:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},USDC:{name:"USD Coin",decimals:6,contract:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},DAI:{name:"Dai Stablecoin",decimals:18,contract:""}};let g={ETH:{conversion_rates:{},limits:{},prices:{}},MATIC:{conversion_rates:{},limits:{},prices:{}},BNB:{conversion_rates:{},limits:{},prices:{}},DOT:{conversion_rates:{},limits:{},prices:{}},KSM:{conversion_rates:{},limits:{},prices:{}}};const h=[{address:"0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D",currency:"ETH",nickname:"MEW Donations",resolvedAddr:"0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D"}];(0,s.bv)((async()=>{v.address="",Y(),J(),await W(),await ee(),(0,ae.isEmpty)(a.fiatSelected)?G():(v.cryptoSelected=a.cryptoSelected.name,v.fiatSelected=a.fiatSelected.name,v.fiatAmount=a.fiatAmount,R()),I(),l=setInterval(W,12e4),c=setInterval(ee,12e4),f.value=Object.getOwnPropertyNames(g["ETH"]?.prices)})),(0,s.Ah)((async()=>{clearInterval(l),clearInterval(c)}));const w=Se,f=(0,A.iH)(w),y=e=>{u=e;const t=Object.getOwnPropertyNames(g["ETH"]?.prices);f.value=t.filter((e=>e.toLowerCase().includes(u.toLowerCase())))},v=(0,A.qj)({fiatAmount:o,fiatSelected:"USD",cryptoAmount:"1",cryptoSelected:"ETH",address:"",validAddress:!1,addressErrorMsg:"",reCaptchaToken:"",addressError:!1,balance:"",balanceWei:"",balanceETH:"",balanceError:!1,balanceErrorMsg:""}),b=(0,A.qj)({data:!1,showAlert:!1,processingBuyForm:!1,alertMessage:""}),S=(0,A.qj)({fiat:!1,crypto:!1}),C=(0,s.Fl)((()=>{const e={ETH:"ETH",BSC:"BSC",MATIC:"MATIC"},t=e[a.cryptoSelected.network],r=Zt.find((e=>e.name===t));return new(Pt())(r?r.url:"")}));(0,s.YP)((()=>v.cryptoSelected),(()=>{J(),R(),ee(),P()})),(0,s.YP)((()=>v.fiatSelected),(()=>{J(),G()})),(0,s.YP)((()=>v.fiatAmount),(()=>{ee(),b.data||P()})),(0,s.YP)((()=>v.cryptoAmount),(()=>{ee(),b.data||P()})),(0,s.YP)((()=>v.address),(()=>{J(),ee(),b.data||I()}));const x=(0,s.Fl)((()=>r(33222)(`./${v.fiatSelected}.svg`))),k=(0,s.Fl)((()=>r(67604)(`./${v.cryptoSelected}.svg`))),B=(0,s.Fl)((()=>(0,ye.toBN)(d.value).muln(21e3))),T=(0,s.Fl)((()=>Ft((0,ye.fromWei)(B.value.toString())).value)),U=(e,t=!0)=>r(8295)(`./${t?"fiat":"crypto"}/${e}.svg`),D=(e,t=!0)=>{t?(v.fiatSelected=e,S.fiat=!1):(v.cryptoSelected=e,S.crypto=!1)},E=()=>{const{cryptoSelected:e}=v;return!(0,ae.isEmpty)(g[e]?.limits[e])},F=(0,s.Fl)((()=>O.value&&v.fiatSelected&&v.cryptoSelected&&v.address&&!v.addressError&&""===v.addressErrorMsg&&""===b.alertMessage&&v.validAddress&&""===v.balanceErrorMsg)),M=[e=>!!((0,ae.isString)(e)&&e?.length>=1)||(!!(0,ae.isNumber)(e)||"Must be a valid number")],O=(0,s.Fl)((()=>{const{cryptoSelected:e,cryptoAmount:t,address:r}=v,s=E();if(!s)return!1;const n=g[e].limits[e],o=a.cryptoSelected.decimals,i=(0,ye.toBN)(ht(parseFloat(t||"0"),o)),l=i.gte((0,ye.toBN)(ht(n.min,o)))&&i.lte((0,ye.toBN)(ht(n.max,o)));return l})),W=async()=>{try{b.data=!0;const e=await Ue()||[];e.forEach((e=>{e.forEach((e=>{if((0,ae.isObject)(e)){const t={conversion_rates:{},limits:{},prices:{}};e.conversion_rates.forEach((e=>t.conversion_rates[e.fiat_currency]=e.exchange_rate)),e.limits.forEach((e=>{"WEB"===e.type&&(t.limits[e.crypto_currency]=e.limit)})),e.prices.forEach((e=>t.prices[e.fiat_currency]=e.price));const r=e.crypto_currencies[0],a=Zt.find((e=>e.currencyName===r));if(!a){const e=Zt[0].tokens.find((e=>e.name===r));if(!e){const e=m[r];Zt[0].tokens.push(new Vt(r,e.name,"ETH",e.decimals,U(r,!1)))}}g[r]=t}}))})),b.data=!1,t("setQuotes",g)}catch(e){z(e)}},I=async()=>{if(!v.validAddress)return"0";const e=a.networkSelected.currencyName===a.cryptoSelected.symbol,t=v.address?await N():"0";return e?(v.balanceWei=t,v.balance=(0,ye.fromWei)(t)):await te(a.cryptoSelected.symbol),P(),t},N=async()=>{if(!v.validAddress)return"0";const e=v.address?await C.value.eth.getBalance(v.address,"latest"):"0";return v.balanceETH=e,e},Q=()=>v.balance?Ft(v.balance).value:"0",Z=()=>v.balanceWei?(0,ye.toBN)(v.balanceWei):(0,ye.toBN)(0),j=()=>{if(!v.balanceWei||"0"===v.balanceWei)return!1;const e=a.networkSelected.currencyName===a.cryptoSelected.symbol;return e?H.value.lte((0,ye.toBN)(v.balanceETH)):B.value.lte((0,ye.toBN)(v.balanceETH))},H=(0,s.Fl)((()=>V.value===(0,ye.toBN)(0)?B.value:V.value.add(B.value))),V=(0,s.Fl)((()=>{if(!v.balance||"0"===v.balance)return(0,ye.toBN)(0);const e=ht(parseFloat(v.cryptoAmount),a.cryptoSelected.decimals);return(0,ye.toBN)(e)})),P=()=>{const e=E();if(e){const e=g[v.cryptoSelected].limits[v.cryptoSelected];if(!O.value){const t=a.cryptoSelected.decimals,r=(0,ye.toBN)(ht(parseFloat(v.cryptoAmount||"0"),t)),s=(0,ye.toBN)(ht(e.min,t)),n=(0,ye.toBN)(ht(e.max,t));return r.lt(s)?v.balanceErrorMsg=`Minimum is ${e.min} ${v.cryptoSelected}`:r.gt(n)&&(v.balanceErrorMsg=`Maximum is ${e.max} ${v.cryptoSelected}`),void(v.balanceError=!0)}}if(v.validAddress){const e=Z();if(V.value.gt(e))return void(v.balanceErrorMsg=`You do not have enough ${a.cryptoSelected.name} to sell`);if(!j())return void(v.balanceErrorMsg=`You do not have enough ${a.networkSelected.currencyName} to pay for network fees`)}v.balanceErrorMsg="",v.balanceError=!1},R=()=>{const{fiatSelected:e,fiatAmount:t,cryptoSelected:r}=v,s=a.cryptoSelected.decimals,n=parseFloat(g[r].prices[e]),o=parseFloat(t||"0"),i=o/n,l=i.toString().split(".")[1]?.length||0;v.cryptoAmount=l>s?i.toFixed(s):i.toString()},G=()=>{const e=parseFloat(g[v.cryptoSelected].prices[v.fiatSelected]),t=parseFloat(v.cryptoAmount||"0"),r=t*e;v.fiatAmount=r.toFixed(2)},Y=()=>{const e=window.location.search;if(e){const t=new URLSearchParams(e),r=t.get("crypto_amount"),a=t.get("fiat"),s=t.get("crypto"),n=t.get("to");v.fiatSelected=a||"USD",v.fiatAmount=r||"100",v.cryptoSelected=s||"ETH",v.cryptoAmount=r||"1",v.address=n||""}},z=e=>{const t=parseFloat(v.fiatAmount)>0;if(t){const t=(0,ae.isObject)(e.response.data.error);if(t){const t=e.response.data.error.hasOwnProperty("errors");t&&(b.alertMessage=e.response.data.error.errors[0].message)}else b.alertMessage=e.response.data.error}},K=e=>e&&(0,ye.isHexStrict)(e)&&(0,ye.isAddress)(e),q=(e,t)=>{try{const r=(0,Fe.m)(e,t);return e===r}catch(r){return!1}},X=e=>{v.address=e,J()},J=()=>{const e=["DOT","KSM"],t=e.includes(v.cryptoSelected)?q(v.address,"DOT"===v.cryptoSelected?0:2):Ee().validate(v.address,v.cryptoSelected)&&K(v.address);t?(v.addressErrorMsg="",v.addressError=!1,v.validAddress=!0):v.address?(v.addressErrorMsg=`Please provide a valid ${v.cryptoSelected} address`,v.validAddress=!1):(v.addressErrorMsg="",v.validAddress=!1)},_=()=>{b.processingBuyForm=!0,n.track("CCBuySellSellWithMoonpay"),Ua(v.cryptoSelected,v.cryptoAmount,v.address)},$=()=>{t("selectedCurrency",{name:v.fiatSelected,value:v.fiatSelected,img:r(33222)(`./${v.fiatSelected}.svg`)},v.fiatAmount)},ee=async()=>{i.includes(v.cryptoSelected)?d.value="0":d.value=await C.value.eth.getGasPrice()},te=async e=>{const t=new C.value.eth.Contract(rs,m[e].contract),r=await t.methods.balanceOf(v.address).call().catch((e=>as.error(e)));v.balanceWei=r.toString(),v.balance=gt(v.balanceWei,m[e].decimals)};return(e,t)=>((0,s.wg)(),(0,s.iD)("div",ns,[(0,s._)("div",os,[(0,s._)("div",is,[ls,b.data?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",cs," Balance: "+(0,p.zw)(Q()),1))]),(0,s._)("div",ds,[(0,s.Wm)(ar.h,{onInput:G,type:"number",modelValue:v.cryptoAmount,"onUpdate:modelValue":t[0]||(t[0]=e=>v.cryptoAmount=e),modelModifiers:{number:!0},required:"",variant:"outlined",rounded:"left",rules:M,disabled:b.data,"error-messages":v.balanceErrorMsg,error:v.balanceError,class:"no-right-border"},null,8,["modelValue","disabled","error-messages","error"]),(0,s.Wm)(L.T,{modelValue:v.cryptoSelected,"onUpdate:modelValue":t[1]||(t[1]=e=>v.cryptoSelected=e),rounded:"right",variant:"outlined",class:"no-left-border custom-btn",onClick:$,"append-icon":"mdi-menu-down",disabled:b.data},{prepend:(0,s.w5)((()=>[(0,s._)("img",{class:"currency-icon mr-1 padding--2",src:(0,A.SU)(k),alt:v.cryptoSelected,width:"25px",height:"25px"},null,8,us)])),append:(0,s.w5)((()=>[(0,s.Wm)(er.t,{color:"grey-2",size:"large"})])),default:(0,s.w5)((()=>[(0,s._)("span",null,(0,p.zw)(v.cryptoSelected),1)])),_:1},8,["modelValue","disabled"])])]),(0,s._)("div",ms,[ps,(0,s._)("div",As,[(0,s.Wm)(ar.h,{onInput:R,type:"number",modelValue:v.fiatAmount,"onUpdate:modelValue":t[2]||(t[2]=e=>v.fiatAmount=e),modelModifiers:{number:!0},required:"",variant:"outlined",rounded:"left",rules:M,"error-messages":b.alertMessage,disabled:b.data,class:"no-right-border"},null,8,["modelValue","error-messages","disabled"]),(0,s.Wm)(rr.r,{style:{"max-width":"120px"},class:"rounded-right no-left-border",modelValue:v.fiatSelected,"onUpdate:modelValue":t[4]||(t[4]=e=>v.fiatSelected=e),items:f.value,disabled:b.data,"menu-props":{closeOnContentClick:!0},"base-color":"primary","return-object":"",variant:"outlined"},{"prepend-inner":(0,s.w5)((()=>[(0,s._)("img",{class:"currency-icon mr-1",src:(0,A.SU)(x),alt:v.fiatSelected,width:"25px",height:"25px"},null,8,gs)])),"prepend-item":(0,s.w5)((()=>[(0,s.Wm)(ar.h,{modelValue:(0,A.SU)(u),"onUpdate:modelValue":[t[3]||(t[3]=e=>(0,A.dq)(u)?u.value=e:u=e),y],variant:"outlined",class:"px-2","prepend-inner-icon":"mdi-magnify",density:"compact",placeholder:"Search",autofocus:!0},null,8,["modelValue"])])),item:(0,s.w5)((e=>[(0,s._)("div",{class:"d-flex align-center justify-space-between full-width cursor-pointer",onClick:t=>D(e.item.value)},[(0,s._)("div",ws,[(0,s._)("img",{class:"currency-icon padding--2 mr-1 ml-3",src:U(e.item.value),alt:e.item.value,width:"25px",height:"25px"},null,8,fs),(0,s._)("span",ys,(0,p.zw)(e.item.value),1)])],8,hs)])),_:1},8,["modelValue","items","disabled"])])]),(0,s._)("div",null,[vs,(0,s.Wm)(dt,{ref:"addressSelect","model-value":v.address,"error-messages":v.addressErrorMsg,autofocus:!1,label:"",items:h,"is-valid-address":v.validAddress,placeholder:"Enter Crypto Address",onKeyup:J,onChanged:X},null,8,["model-value","error-messages","is-valid-address"])]),(0,s._)("div",bs,[(0,s.Uk)(" After submitting your sell order, you will have to send your crypto to MoonPay. Make sure to have enough currency in your wallet to cover network transaction fees. "),Ss,Cs,(0,s._)("div",xs,[ks,(0,s._)("span",Bs,"~"+(0,p.zw)((0,A.SU)(T))+" "+(0,p.zw)(a.networkSelected.currencyName),1)])]),b.processingBuyForm?((0,s.wg)(),(0,s.iD)("div",Ds,[(0,s.Wm)(tr.L,{size:70,width:7,indeterminate:"",color:"#05c0a5"}),Es])):((0,s.wg)(),(0,s.iD)("div",Ts,[(0,s._)("div",null,[(0,s.Wm)(L.T,{flat:"",rounded:"pill",disabled:!(0,A.SU)(F),"min-height":"60px",width:"360px",onClick:_,class:"sell-button"},{default:(0,s.w5)((()=>[Us])),_:1},8,["disabled"])])]))],512))}});const Ms=(0,c.Z)(Fs,[["__scopeId","data-v-16eba3c0"]]);var Os=Ms,Ws=(0,s.aZ)({name:"OrderForm",components:{MewTabs:ge,BuyForm:Ur,SellForm:Os,BuyProviders:Fa,TokenSelect:ts},props:{open:Boolean},setup(){const e=(0,s.f3)("$amplitude");return{amplitude:e}},data(){return{activeTab:0,orderHandler:{},selectedNetwork:{},selectedCurrency:{},selectedFiat:{},fiatAmount:"0",onlySimplex:!1,buyObj:{},step:0,simplexQuote:{},toAddress:"",moonpayData:{},simplexData:{}}},computed:{defaultCurrency(){return(0,ae.isEmpty)(this.selectedCurrency)||1===this.activeTab&&!this.supportedSell?{decimals:18,img:r(55694),name:"ETH",subtext:"Ethereum",value:"ETH",symbol:"ETH",network:"ETH"}:this.selectedCurrency},defaultNetwork(){return(0,ae.isEmpty)(this.selectedNetwork)||1===this.activeTab&&!this.supportedSell?Zt[0]:this.selectedNetwork},supportedSell(){return"DOT"!==this.selectedCurrency.symbol&&"KSM"!==this.selectedCurrency.symbol},leftBtn(){return{method:this.close}},tabItems(){return["Buy","Sell"]},isSell(){return 1===this.activeTab}},beforeMount(){this.selectedNetwork=this.defaultNetwork,this.selectedCurrency=this.defaultCurrency},methods:{onTab(e){this.selectedCurrency={},this.selectedCurrency=this.defaultCurrency,this.selectedNetwork={},this.selectedNetwork=this.defaultNetwork,this.activeTab=e,this.amplitude.track("CCBuySell"+(0===e?"BuyTab":"SellTab"))},close(){this.step=0,this.onlySimplex=!1},setNetwork(e){this.selectedNetwork=e},setSelectedCurrency(e){this.selectedCurrency=e,this.step=0},setSelectedFiat(e){this.selectedFiat=e},openProviders(e){this.step=e},openTokenSelect(e,t){this.step=1,this.selectedFiat=e,this.fiatAmount=t,this.amplitude.track("CCBuySell"+(0===this.activeTab?"BuyInput":"SellInput"))},setBuyObj(e){this.buyObj=e},setSimplexQuote(e){this.simplexQuote=e},setToAddress(e){this.toAddress=e},setQuotes(e,t){this.simplexData=e,this.moonpayData=t},reset(){this.selectedCurrency=this.defaultCurrency,this.selectedFiat={name:"USD",value:"USD",img:r(96576)},this.onlySimplex=!1},disableMoonpay(e){this.onlySimplex=e},buySuccess(e){this.setSimplexQuote(e.simplex_quote),this.setToAddress(e.address),this.setBuyObj(e.buy_obj),this.setSelectedCurrency(e.selected_currency),this.openProviders(e.open_providers),this.setSelectedFiat(e.selected_fiat),this.fiatAmount=e.fiat_amount,this.disableMoonpay(e.disable_moonpay)},sellSuccess(e){this.setToAddress(e.address),this.setSelectedCurrency(e.selected_currency),this.setSelectedFiat(e.selected_fiat),this.fiatAmount=e.fiat_amount}}});const Is=(0,c.Z)(Ws,[["render",re],["__scopeId","data-v-5c7fe0a9"]]);var Ns=Is;const Qs=e=>((0,s.dD)("data-v-3c3c19dd"),e=e(),(0,s.Cn)(),e),Zs={class:"buynow--banner py-9"},js=Qs((()=>(0,s._)("h2",{class:"font-weight-bold"},"Buy Now",-1)));var Hs={__name:"BuyBanner",setup(e){const t=()=>{window.scrollTo(0,0)};return(e,r)=>((0,s.wg)(),(0,s.iD)("div",Zs,[(0,s.Wm)(P.K,{class:"d-flex justify-space-around align-center",style:{"max-width":"1000px"}},{default:(0,s.w5)((()=>[(0,s.Wm)(L.T,{class:"buy--btn rounded-pill text-white text-none",color:"buynow--banner-btn",onClick:t},{default:(0,s.w5)((()=>[js])),_:1})])),_:1})]))}};const Vs=(0,c.Z)(Hs,[["__scopeId","data-v-3c3c19dd"]]);var Ls=Vs,Ps=r(16824),Rs=r(68521);const Gs=e=>((0,s.dD)("data-v-610a7521"),e=e(),(0,s.Cn)(),e),Ys=Gs((()=>(0,s._)("h1",{class:"mb-9"},[(0,s.Uk)(" Increased buy limits "),(0,s._)("br"),(0,s.Uk)(" so you can do more with crypto ")],-1))),zs={class:"elevated-box-small elevation-5 pa-10"},Ks={class:"heading-2 description-text mb-2"},qs={class:"font-weight-medium description-title"};var Xs=(0,s.aZ)({__name:"PromoComponent",setup(e){const t=[{title:"For your first transaction",description:"If you are buying coins very first time, you can buy up to $20,000 worth of coins.",amount:"$50 to $20,000",rate:"for first buy"},{title:"Daily limit",description:"You can buy up to $20,000 worth of coins daily.",amount:"Up to $20,000",rate:"/day"},{title:"Monthly limit",description:"You can buy up to $50,000 worth of coins monthly.",amount:"Up to $50,000",rate:"/month"}];return(e,r)=>((0,s.wg)(),(0,s.iD)("div",{class:"component--promo dropShadow",style:(0,p.j5)(e.$vuetify.display.lgAndUp?"padding: 150px 0":"padding: 100px 0")},[(0,s._)("div",null,[(0,s.Wm)(P.K,null,{default:(0,s.w5)((()=>[Ys,(0,s.Wm)(Ps.o,null,{default:(0,s.w5)((()=>[((0,s.wg)(),(0,s.iD)(s.HY,null,(0,s.Ko)(t,((e,t)=>(0,s.Wm)(Rs.D,{cols:"12",md:"4",key:t},{default:(0,s.w5)((()=>[(0,s._)("div",zs,[(0,s._)("div",Ks,(0,p.zw)(e.amount),1),(0,s._)("h2",qs,(0,p.zw)(e.title),1)])])),_:2},1024))),64))])),_:1})])),_:1})])],4))}});const Js=(0,c.Z)(Xs,[["__scopeId","data-v-610a7521"]]);var _s=Js,$s="data:image/png;base64,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",en="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIjSURBVHgB7Zm7TsMwFIb/hMIAS6fOhSeAjbGoT0GnItEVZibUiRUxIYEELOUpEBk78gTQuRNLJ0TNcZyqJL2odh03l/NJURIncfzpOM6JAzAMwzAMwzDp4M2UtEUVO7iEQJv26sgWA1oC/KCLZ28AA+LCbVHHNt6RPdEkA5I+MZH2Y3v5kJXIwDzBgKnwuWggH7ITGlGbtfBjFeSPQ2hSWXpUoEdP+SuygMAptaWVKK1CEx8lo4K08LGHXxzTVi0q+aIIfdJ6iDRRz3UjURrg0Qvkhn1hJdrBGM05b3nZNd+ovIf0xBtU/3XinpJANc8uNRK9oxs2F56hjt1gGnmn2BSWAquKqHNlb3CMPWERjqA6UauFXd8xtoRrS7vxIuQ1jqNsR1jgAKaokdwZtiK8D3OcDl6lSzxsCZu/U7fCZMQZtoT7MGVMGZhD7Ah7GIUZlC7qmnRTzQQ2n+EH6DV+GKWYTrEnLKMMXGE16aHGuVaxPUorkWXdWx7zcYENyErS+DyUXfWW1r0oIVHvaD8s79MgNaJlY6T3PazEZRTVCC4w+UzbKKWe8fieOarmkFrIAh6s8D/CH8gfATSZCqs5nwB5waO/D9E8lQ7xZ3gLZ2FFWUe20adfLQbEhe89VZHAS0bFB9S2LnZxFLbVgNnXkqqojYLC38NFh4WLzuq5dEdkIBNen7JEOJhsFF84kZEVW3hORlZU4bUzMoZhGIZhGEaXP7IJdgv7SbWIAAAAAElFTkSuQmCC",tn="data:image/png;base64,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",rn="data:image/png;base64,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",an="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUYSURBVHgB7Vk9jBtFFP5mnUNIR+HKlDj0J4WKdPgENSElNFwU3wkJieRKfiTOBVDm0kU5Tuc0ocxdalBcHlUsQX0yJa6usYTIxZP3Zuy1d353vWtX/qS5W8/Pm/n2/czMW2CNNdZYPfbkZ9iVL7Ej66gaO7KpZN+lORZAgqJoyx8h8YyebmBD/a8WGzhRshOSvUdzFUQxQnvyAQQO5mpaqq4qtBWBVvpb0lwF5YtcvdgMNiZasSX08T+20RWXKAM237fwkkg0Ha19vMJtmmMQExMnpMm8oKem1SbxBO/gPg4dZHiBb6OOKxo3piJwmZYj0ffMxaROSK7LfwZEajtGKkyInX9MEwjUHSM7eCwOMnVt2SIjvkULasGlzSz6JKNH8s/wq+gZcg6ozeU/l9T/Do7FqU+onxDbc9ZfZkKBfXrL3bRmV+7Q33uIk/BhQKWTkdmW92l+t//wuh6LjrvJBXZESaZk9x5Q/e3UZFgjQkWlJqrBgDSwn2pgV94g+c+cfiVwSKT27WoTHP8TRzhm50+IzKOJDftIV4H5xX4l2QdfeILFnYxW4dOQacPzzs+Oq4OE27wkRjT2gp7O6flv1PAvLWik2hJs0vP71N6gtptUcxN+zCKbK1i4fBhhH+pS65eZgeGIx0Se06LPUgJxNGjMFo39Qj3byEa22Yt+SJpxWoefkH4rLSJzmv72a4aJPC1AxERDkRL42NHWn5DSWwMHoE2cOrcK5N1YGf5AcUj1f6AKSAr5Am3nHI4A4EI+QjosnxiTsza+m/iLb4GbPDr9XcNRVIuSfAz4meRuZurH5E+B/WeKvGc51yb3W5AMgxfFZjQtY2OR7jEXtKoj2Ct9kOd0HyfEG5wdBJjMGZYFbcLPjdom+XR0m4gTEuoEMI8hladYNqSaY2jU3YtpKUxI+04zUydWQEbPM3LMVce18PEqpqFbxu9hZREtD3guaQQR3hsDiBFqGRP8hVVD4HejJng19xPigyGMa4NYoXZm+NP4XcfX8j1fZz+hseN4k0TC9DIgHXP+hw983f2EhEVoVOJoszg4ONh+1PR1D/mQGR5XT2YKYc3tDd3F01hlIOgSsmSECJXL4rgg8T2Vz7FEhIKCSaihLmhFIJX9n2dkCHX3OabyYX5Bxl1Jou/r6CdUcw5qoAj0bv+TOv5njzEs54fJdSQsc0wXQFuu13r8hF6pTExceB7oHf8b8KE2uzC+0B0HzTDBdavOTHtluvugb4g9ozaUAwhDRyo+m901zBCpGUqHfIlPjJoeAghHOWldEbYmpQyGXjNMrEvdFvUzNfQEAYQJXaHrqK0mStlmeG4dfBN8ao2rldEQm5203siW0zQWwbwZwrilSuVf5jzdNC/oQXxjveZIB4sc0akYhjDNT/tVFjV0EEGcEL8RaQliW/8F1ZKaouGUzfnBR1V8TmH4v93wW/0W5lV5cfjIDCiNdT2PgHxnOfalhJJ9cJweeAHSmSAsBr3HubQ+nTsX8icaGfrSx9lT+7TLEUo4EhtxMAHO3bkCDb/Abe8HMgeKEWKESGmcq42zRsV3f+L95jUR0CcF375WmAyjOCFG+BPHvPSLyeVsNEnmszbeRSyYsM+wmeUIAvbQRcGBokYhPbHydmXxkPR34EvGx7A4oSlYW1fqO2wLZSDVCaATOnjmQXlCU2hirLGPoqY4w4DKGfU/LUtkiuoIzYMDh/6Uz99IsykniX+obUD7Wm8RH1ljjTWWize4jbCLysvBgQAAAABJRU5ErkJggg==",sn="data:image/png;base64,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",nn="data:image/png;base64,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",on="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPOSURBVHgB7ZoxTBRBFIb/2VOasyAxwRapvQQ7GhMMvWAJjWC8Wi21MTbSYkci0aM5StFawpWWJPTkaiosqIQb39u58/Zmd3ZnZmc5iv2Thd29md359r2deTNvgVq1apWRQNXalLOYwWsM8AdXOERH9FGhqgFiiAhraOAFHS1rv/Zo28cX0UEFCgv0Si4TyCpZY5OuPJtbVuKCyhzS/33siR4CqTzQyKUkQQDz8FOf6n8O4ZJ+QPkuVVY9lHBJNyAXl2JJXFK5I9r7PTxeoeMW7c1Z1PVyyWIgV5dSEGe0d0DwZwR/mVFmif4uUbkV2MnaJYuBXspNcq1vKNYp2BIRWSQLIksRmjGcjMFaheWvsYWv+a54B+WUhhg41FZ1jobbXOyOtnAG+QId0PaLtvNhw0LonGDGcIjdsg1HRfBTFyOYasTX/gkP+QLdWtVAt13TBxK4D5uB1lLTBWKYAXZobxuBoKYHNIJRIRTDBIGaDtAkzEgM4zzu6Lp5oGwYxPFfFLtfKYUDklin7U1umTwYgffWMWCOysZySgwjsDHc5wamn/QNwLAiixL9jHPN//tJGNXAlZSlfGBk4h55bUkVKZKgiZauQeJmImMKkoTyt8wDeKjY5f7SU7mrnYvwkBoyCk67w//rE2XU5G2GyrW83IwtpD+qK5ygQMUW6gi20KSVBqmnx1AHGbWfeL8zAo+0MxfDtuTKtpfTn8xSRhkT1FguHYBITfIKrcOyA5L4oZ1ZmOgYxjJDucCoDqFV0IZM+VqoSQ0zLXCkody75rQHiHh5q1B2QGoZycbtRhpD+YwzyWFAHfdpnc7K5ewHVja5wGLiTGu4nRpqdOMlrYjWHlxguFeMtCBV4qNtdfvQ5yoe/fVeZj23jqCH4BoBRBnhU8PO3VR1W3GXyYt9k2ILPUM48bX0KUQHu/br3W7BabaVNhBmcjZHDyz97jTs3Y3lBqSspN+Au9htQzdu2wp1DaFdY0AeseuWjfDLPrTlMfSsg2/UrJaDP9G2MHFe0nuzJ57CUX7zoQatMeuuxw3ihrlYygTDrnYnvoez/BNenFoROM74hYPWdyheWc1bR3hsO+7oKpfBa1NmAobMhKRxSGSEQWyV67g3W029M0pbZfKv5VOSeVBqAb5LLqoSXipcWoW5V9wqm0wOkzRuy0W60ndq/LyxjEqENQ2t4ITWc183SyrMIgk3JAL3SD1jGRMM92ZcNwCMuk1osQsKfMi1lhL3km9Df69Q3ZckZrCTONC9R1HHTvEM1FXVfxqjuve1eF9S0jfgRxa1atUKr3+gizyHfxZ6wwAAAABJRU5ErkJggg==",ln="data:image/png;base64,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",cn="data:image/png;base64,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",dn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAVnSURBVHgB7Vo9cFw1EF49xxQ4hatLe0lBxU2cCirGGVcUxC6Bypn4GCq4FDROwaWh9aVjfJ7haOwSSJ/BdO4w495c66tchIq5p+xKd7knafXzfuxkMvlmZN/Tk/bp065Wq30P4D3ebghoEttyFTLYghtwF6/aIGFV/Qe4VEVgyeEfrD+FKRzDSFxCw6hPiEh8AN/jINfxah3K4RjLrzAUI2gI1QnNieTQQymrUA9jlDGCffEUaqIaoa4kjfQbIGJjjHIfwoE4hoooR4i0sgx79CvScoLlXP2X8HL2pJv49zaWW1haEB5Vv6q20gltyzaS+Q1/rXlanGE5QafwAs3wv6AsCXfwyR/jr03wkxvB//C4rONII6TJ/AnaY9kSznGAB6AJLZDBCnoy0gZphQhOVFu3/wb2/xp4YsfoMO5DCaQR6sq/gdfMcyxDq44GtomD3EDpK9Y9MsEzrD8EbZaLPkSKyLkYIamHkIg4oW/kHj6sZ9RJNeMD7H1itX4wG9hKRCoRGzL9SVNfgTvKx7imBpCAMKGu3Ma/vxh1msyuYz4SByLUgNIhcFIkrjmzbsOZQI17qKlTiCCL3P+RqRswZD4tTUb364K9djTBI6b1HiTAT2hH0iy1rdojxkxoVruMBHISu1i+wKd8qbRhrhsCmSanjUOwnQxFITtyHSLwExIYBZiYzB5kIocO2LMs1Czvvh4UuXGaeQnfYbE9XUd5RBeDmXkX5XIWY4AnpNdO2xJ26JHwiVVDg+fbCrwnlIs3MUWTdUET+IdVF9WST0ObjnB78S5wx7o+A9e0wveF2qs4PHdqsnAAfMNTv2Vc6b3Dh6OZic1xge1juICimUoMizj5QpkcTUCn0JYmuw8euIQ4lQqvdkA9ME7AhA59ivLPA63JCXUK12sqpvSERJzJcRHBGTQFvV/ZTuAk0MO9t8yEYDNkzAPNxuHZKwdu89VrM7Tm3HtTb4DMmJx9xpGRyDkFOlDtMrHaBJYwBMqjEohUqyCv7WvocwoLSBUl1wEFnk9QhukNSfMC96q8gQkrIE6oLgSSkQ6ZF1iGTZMhxAmJyOkyBKlMzCUjVRRQRs6KZSXeQx/n5cbW9S2oCjdgnSjNlJdjekXpjPE1OC9nh+gtT6wVhlR97BjvsLSZSScSAZXf88AltAzumYOPtaoMpMoW4IZFgayQu4Z+FmMMTsdQDE61uw1FCy4ytRk/Mury4H7jgz2Zp+HHcpCYzTThHhHSMLFKFXSs679CjXlCAn536mSFE2ldcIkWyYytAP+W2ZWUtlq3aheHtvhgaA09MOqWSu89P0FRQwK92764HeqQBQbEZS57yR5P7x0bRslLeEt9ErbN7Vmsm58QeZLcEdDCuidwHciYdHMWNjfdJISpSsiPrdqOJ83UHHSE8ZFVO1IeOIIwITpE5eBmLbUJkfb8nm9x2lyULGn9tJgI4xLXX1LyPi2OppSWYPNiE5UQESX3qDDIpM29RyCZfdFP6Zx+MNiR/UAaqRli3AEwwbOZzcvAr6k5dDJeH5vp8HaR7KYlfIayf3DqlzD0SVg7c5Q/un2Lr1ZyfLUi/afGCCgcMqMGvYH2mNElm9ocsdy2C5otMgGZtkij8JGhPackGUJ5QnMc4MPIHCjuE/7zSQSfezRzim8aKm0NzX2n8EhuoTRKUN7F/2uhlsp980kTTeZDuA+Dat8wNPvhxRw9TAS+RFIZZpCkei+7gFSvY/hXkDXJaBFXCXIgU/g3qS2Z7k00v0G9r0uuPuuTAvJmw/IOgMObJUTOhEKrYfUPLWxU93L18QzXy706X41wuH4NSfXB0tOmicxxfYSumMgcV0/omoi8s3gFNx2KnDYYUhoAAAAASUVORK5CYII=",un="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA0vSURBVHgB7VpNbF1HFT4zc99ziCv6AtRWV9hGQiAlSqKCmiKqOnUXsGnCrs6GhAYEQmBHFUJyETgVRSyQ6go2kIq6UhUvaOskFeoGpw5CIhWLOjiiLJBtsUF+LJpFbJJ378zwnXNm3nu0TfrsxBJCjHPznu+dO/d85+c7Z8410f/Hf/cwdBdHY36+4YiOGnL7KZghY0zD8GegaybYa8bgqGiJyC5ttq5funbiK9foLo87BsQgqLATJppRE+KoiTaaSAa/E8CQxQ95fpD+LufTNQq0aIKb/fvXDr9Ed2lsGxADCQVNWDKTEO7eJKgRoQMvDCiRhebzJCBstAxCPvl3igLf4NwarDq78uTDp+kOx7YAffS387AITUP4hgqahAsQjn9PlqCYwKU5EDqSj4atlq2UgWGeAdA1XD3+t2984RJtc2wJUGP+xUaoN56zgY53C9QWSr5D2BCb+H3VWrMOd9sw3hpr4m6414gNdhD3DchsKECtZwUQK8CxFaOZ/uu3H9qWtXoG1Hhjfih6mseDD7C+KcdI0HjBUssU6a1Yjwveh+sOceNMASHZKkQFL1LhHAseasPOF3thycex3mA7rkitrN9ptlb2nVo6dXBLxFH0MqkxP8dg3sTDhzqxQlmIleDCCziWRWDvILQxLrrdtnKDhS+GETgbMZgmlL8iAAOtGONXoqMLJtTGsM44gAyKfplS1PLHK6qG8PjDtIXRk4Uar8+/jQccoI6L8Q8//YKvlWd4jgs1aN5GV9nBonKPm8qMWXK7xaWSO0HoJlsS/jWHu9dZAfVQmCrSfbVQHIPFx9puTOqG+D575akHTlCP40MBNS6cf45inEwPIAn8YDaiCzPBhrfIwv2SZWqlO2K9HUdw9/8HTYs1bRdlU5McnYG1LrNryihh1WDGMW88A8okQyGcWvr+AzPUw7gtoMb581/FirNtbamAG6WtpkxhV3iOq+R/qt+oHbMsUDD0XsLosiqZHCOchwzN4PtFBoXEG0WgWIwhLifbJKPsR9aHg396+uASfciwt7toYpwWzXrk+GBFy7DKjIBhq1SoC9gyN9wh60W7mlkSGKusF5U8JEepcEGvOW+/DkYc0KchnH3BJLOAe+fSfM1dkqqL56iHcUtAH5ufn4QwQyY9XOKH4hy7GVvF8SRmMjy4CMVJAezZiuz3IvZyiDQVqTzijX8C6mFrNLFObFswmH7jiwkT6sKEddzLrgsymYPFltugeK43o59/5p1HaLuAoL8Jm5JkIoNmacNZx67h1TJCx6XbCyCDHPxZ+7DsxYrCFO68Cs4jMN0mhbiA47tYZzVrnoFDIfuwTr8V4nDidqwsXJ/BvI0EnN0Uc+M0bQfQx1+9cFyLyo7r4N9Zp4SA4A0GYlIdecYG96Bh68ghLraBJeaKiuMiwt0cixIZWI3cJh74QqckUmBFpIeM0DnWbrFVcLaiJqx+PrutWss+8sUfvDO6ZUDQ0ZF2cSmxY5qVqxaE0WI6YB1fQqfI/p2g5xgyf4YTrnNMWFCy44PUNT0LVplluE9TmE/jEqDtsLhxpVWDxhIAeHpdKw9N3vgGTdjbut0HJlbo6ig/jBJDwQ+W66BVskXUuPEcK1GdI85Fsr+DKHgosAJ8Zj7M4CRqCNM9lMHaJ+t4xXU450Cq9Tjm+lW3ufKQtSO2Gtch4TLm7BPgxKRCRzHxdM8W+sTc66M5cG1iLfwH69SjlC0Va6FPSxjPKSIsO4oXrQkLFHFwCcTVgtfcRGWMBcCICwJMouhhEgupF0ABqwWfh9sV5Cg/px7ZwvYyW4mrco1nu3908u1Gz4Ccq+1v11Mp90DQZdnTRFJQiA2OIScWclKjUaVuwkwlC0kth5iwhQjH12wprnMMR7+4csox+LycWY4/CXEHLzFeYqm4nImJKxFJtrX+IerV5WDyYSPcT8pwFFcLnlY5vcHiCtzPsNZ9rhzyYgzOxTous32j17gI0DvPgRONo6Ybt2S69kW0YEvXhPUo1Xk8D2DqYlWMJldVAibq3sqG2n6cX+oJEMDc2y48mUS5zOnSuFB1IgUBoxmJ2ixlspZxzvM5Dys5lELxJM4+lvZCuqtFCYSq+wzvLahKHsI1YiWKY8KX50Ir68RVOWlFgRgYol4tBCoywidKqxyeTTaXiA0gRdTbbIvLBxdT8KvzpRImSg2mDglSHog+TmHFEQGZilWu0hFrU0UsNkQROM8uhqDklaQK8b7Ctz5Y0puYCmLZ4d6mwHm/y5GaPfUGVFivCxQ+3ZJZLCXXTMtSj0n/gPOOiEVcLeDsCEUlAd252gVb1c4UPmyKu/JzpPrAInA1AQBqBBghkcrlrbqCMjGYLViIxEKUuB/HgI9iFoqgXY6hiGvI/jKdI0G+BbVdgqqEwVuIGEdyT0F2pABjSjfDyZnzDSMuNJpMANkwGE7GlCzOQJG/72nvw/jT22s9A8Iyq0a0xrtHATUo/gAWc0y7iAl4AnxQuzkpcNuWIt+BFYMftybtbRAzWK8Jhf0M7sTPZSsak1lS4rWgpBbDTJfjilmxu4KHRteoV0Cg1isIUura7w9IrUW0ocHOXBbJZXaD+aywGkmNJ6CYpmO4J1o7oBVB2qZ7e9aVpqZVW3JRmWvEKnW5mxkNuSuJFmw5EnENMw0lMrGm9u6tAL0/ukpaygmPmUv83tcOtYXVglKYjIVgJgqVk/zE1qPEfKD14ZzHciFa88UqmTqnT2NaGUyhLpYsyzRfVBqnqOcgv8M60WTFoHaMb/z8/ks9W2jtW4fXPvWr369BgE9ayi2mOAa1LFDqF3DgStFTetG1JESbcogFcXMCtQ4lSzzJhMJaY9BQRlN8LSglx6glFCfRlMtiJ37YITnq/KH2bjcITV2h24wP5D/nzUsmV8SaAPehrhpkYdQqpN1QlEMSOXyuZaQQNSUTbBSQsATyh11HPmr2WdsUy3KQlw4zmFicCo77C9sXub8g+a3SXMbXMfZpNZFoO9ClLQOKzp6z7YZhyknBPsHEIMFf6kYM8YBSB8zHLiY0z7WaVtnMYFJBS9zBvW5SIo5CIwWVulA1ApBdTMqiUrcZrDQmpKqosB1H4eplAyExB+XM3w7QLfn8M7/445uW+9VdvWj8TOFzWeq5UisDLjwp5adMs056jWYYtz3uuiztql1n6lXcZNsR3JWt0q4Q1Brc8ZM4YWVsfqT1E8Dea6VXLgGwduGXA8O0VQuJeJFOZ3LQ7TcLbibx4H7RfhtMspqX2DBtF+QClMwYcuCjuHsMzvIoJtwji0v+ce8DI+7WIrFOqwjYMsDdZFviUvVvnqcPGbcEdPU7Dy0CzPN5VykJN5r7kAOeJomTZBkkJXGxip0JQBHo7IqUdrAiUKZuKW00l/HWQKyR4oVdDv08Tci8LSn8cVGo73ScqFWdo+0CEitRbRpCrElAatkC3rF7Xc1Ocr3G8cKBLPscvgH5g4IShc1b8hSH2orqkAJPF4KpclR1nlrW/aNgvU/bvA9St589N3v/Gt0JIO4rQ7ATbStBSGy4ONeMwRQzeMqguM7NVCXDdeoClMHZDZy7CmJZ5riDha/Wfe26bNo48EvNPdaq69VCnxBKMGEQ5h9PfYeoVYt9F0n5NPUwemoFH/jplQnocEbyNBfZJP1ndhn0BtzZvlZtQSZWnZJfc4tLtXmRrqGCbnn5zFaR8iro1p5d8Mbu1hQS1KFOx1Vo5ZnXfr1nuhdZe3778Llnl6cB40e6OeswX/odfQR7Fi2ti2wlSZZJYKZkTqCFuGIaUgPqDO87Sqg+0hpHaB7LRJQS+9prL+4Z7lXOLb0fevDZv0ygdptpv+TS2DIJFH//J7sYGoWXC0JTsVWsF9FtsOaZyYI0VhQMD5eonpNsWaseDs5/T3bLQUhatgu4ZeTc7J61XmXc8hu8Q9PvDMFSnKOG2j3qNsBUVXe9irSdzaIc9X/terJe1ZrKkOqGZd+NMeCd0HnCprqjRXfnldneXG3bgPJAw28a3PpDzRPaY9NXk9TVrLdph5qAAlzfZv1JV9aaUj0jrvzucgzMPJHdmK3itJP1/KuzeyZpi8PSNscffvzZ6SJUI4iXWcvULvsZFd6GRNMxNypJW1DJvXKlXu2uvlyZOJHpXRr4+hJ5aTtgeNzxa/08Rp9aPYrscwQ1zwGQ+4HU1YnUnVwBsn6z76S76a63+lonYbLHupoxqctES5WNhxE32/obhrsGqHuMTq42dlFxwFQWb8ntvCRm0jcJtbI2463Hqxd9t8r7K5tecQLUUlWEbYPhsSOA8vjSN/8xhNbXSu58aqOE0h9jmNTabRPIbOnCqTsBw6Onl8Z3MvILZsqMJ+4lzmhy4wR8fvo3L2+NzW41dhTQLmJZ7XteTZJ2lOQlvlmLIZx45eU9i3SXxrZZrtdhUj2WmCxy9ZzcbAYv0A7eTTA8dtjldhE3BfMfNGnrmBZRlZ9+5eXGIu3A2FlAN7iaNrn1uwh0nPkXaQfHzpNCMItawuyMRf7nx78BxFZGrPnmPSAAAAAASUVORK5CYII=";const mn=e=>((0,s.dD)("data-v-05ed6bbe"),e=e(),(0,s.Cn)(),e),pn={class:"promo--bottom py-15"},An=mn((()=>(0,s._)("h1",{class:"mb-9 text-white"},"Why millions of users choose us",-1))),gn={class:"d-flex align-center pb-8"},hn=["src"],wn={class:"heading-3 mb-1 text-white"},fn={key:0,style:{"max-width":"350px",color:"#9ba1ae"},class:"heading-5"},yn={key:1,class:"text-gray heading-5",style:{"max-width":"350px"}},vn=mn((()=>(0,s._)("a",{href:"mailto:support@simplex.com"},"support@mew.com",-1)));var bn=(0,s.aZ)({__name:"PromoComponentThisIsWhy",setup(e){const t=window.location.search.includes("platform=ethvm"),r=window.location.search.includes("platform=enkrypt"),a=[{icon:t?en:r?$s:tn,title:"Low fees",description:"Get the most crypto for your fiat with limited fees from the provider and MEW"},{icon:t?an:r?rn:sn,title:"Quick transactions",description:"Get crypto in your wallet in minutes"},{icon:t?on:r?nn:ln,title:"Easy verification",description:"Payment is processed in a few short steps"},{icon:t?dn:r?cn:un,title:"Human support",description:`Reach out to ${t?"support@ethvm.com":"support@enkrypt.com"} with any questions`}];return(e,t)=>((0,s.wg)(),(0,s.iD)("div",pn,[(0,s.Wm)(P.K,null,{default:(0,s.w5)((()=>[An,(0,s.Wm)(Ps.o,null,{default:(0,s.w5)((()=>[((0,s.wg)(),(0,s.iD)(s.HY,null,(0,s.Ko)(a,((e,t)=>(0,s.Wm)(Rs.D,{cols:"12",md:"6",sm:"6",key:t,class:(0,p.C_)(["justify-left","d-flex"])},{default:(0,s.w5)((()=>[(0,s._)("div",gn,[(0,s._)("img",{class:"mr-4",src:e.icon,alt:"Promo"},null,8,hn),(0,s._)("div",null,[(0,s._)("div",wn,(0,p.zw)(e.title),1),e.description?((0,s.wg)(),(0,s.iD)("div",fn,(0,p.zw)(e.description),1)):((0,s.wg)(),(0,s.iD)("div",yn,[(0,s.Uk)(" Feel free to contact "),vn,(0,s.Uk)(" should you have questions. ")]))])])])),_:2},1024))),64))])),_:1})])),_:1})]))}});const Sn=(0,c.Z)(bn,[["__scopeId","data-v-05ed6bbe"]]);var Cn=Sn;const xn={class:"background-image pt-15"};var kn=(0,s.aZ)({__name:"LandingPage",setup(e){const t=(0,s.f3)("$amplitude"),r="CCSwapShown",a=window.location.search.includes("platform=ethvm"),n=window.location.search.includes("platform=enkrypt");return a&&t.track(`${r}EthVM`),n&&t.track(`${r}Enkrypt`),a||n||t.track(`${r}Web`),(e,t)=>((0,s.wg)(),(0,s.iD)("div",{class:(0,p.C_)(["component--landing-page-old-design",[e.$vuetify.display.mdAndUp?"background-lg":"background-sm"]])},[(0,s._)("div",xn,[(0,s.Wm)(P.K,null,{default:(0,s.w5)((()=>[(0,s.Wm)(Ps.o,null,{default:(0,s.w5)((()=>[(0,s.Wm)(Rs.D,{cols:"12",md:"5",lg:"7"},{default:(0,s.w5)((()=>[(0,s.Wm)(H)])),_:1}),(0,s.Wm)(Rs.D,{cols:"12",md:"7",lg:"5"},{default:(0,s.w5)((()=>[(0,s.Wm)(Ns)])),_:1})])),_:1})])),_:1}),(0,s.Wm)(_s)]),(0,s.Wm)(Cn),(0,s.Wm)(Ls),(0,s.Wm)($)],2))}});const Bn=(0,c.Z)(kn,[["__scopeId","data-v-72a78744"]]);var Tn=Bn;const Un=(0,m.p7)({history:(0,m.PO)(),routes:[{path:"/",name:"home",component:Tn}]});var Dn=Un,En=r(20065),Fn=(0,En.MT)({state:{},getters:{},mutations:{},actions:{},modules:{}}),Mn=r(68957),On=r(68657),Wn=r(48600);r(29773);const In={white:"#FFFFFF",purple:"#7B61FF",mew:"#05c0a5",gray:"#8799ab","black-1":"#202030",black:"#000",blue:"#0065FF",navy:"#1A2C5C","purple-linear-1":"#C549FF","purple-linear-2":"#704BFF","grey-1":"#1B1B1B","dark-blue":"#1A2C5C","dark-blue-2":"#1D2342","grey-2":"#797982"},Nn={dark:!1,colors:{purple:In.purple,mew:In.mew,gray:In.gray,"promo--bottom":In["grey-1"],"buynow--banner":In.purple,"buynow--banner-btn-text":In.purple,"buynow--banner-btn":In.white,"btn-linear-1":In["purple-linear-1"],"btn-linear-2":In["purple-linear-2"],"btn-get-wallet":In.purple,"promo-border":In.purple,"promo-header-text":In["grey-1"],"background-fill":In.white,"background-gradient":In.purple,black:In["black-1"],white:In.white,blue:In.blue,navy:In.navy,"grey-1":In["grey-1"],"grey-2":In["grey-2"]}},Qn={dark:!1,colors:{blue:In.blue,navy:In.navy,mew:In.mew,black:In["black-1"],"promo--bottom":In["black"],"buynow--banner":In["dark-blue"],"buynow--banner-btn-text":In.white,"buynow--banner-btn":In.blue,"btn-linear-1":In.blue,"btn-linear-2":In.blue,"btn-get-wallet":In.blue,"promo-border":In.blue,"promo-header-text":In.white,"background-fill":In["dark-blue-2"],"background-gradient":In.blue,white:In.white,"grey-1":In["grey-1"],"grey-2":In["grey-2"]}},Zn={dark:!1,colors:{blue:In.blue,navy:In.navy,mew:In.mew,black:In["black-1"],"promo--bottom":In["dark-blue-2"],"buynow--banner":In.mew,"buynow--banner-btn-text":In.mew,"buynow--banner-btn":In.white,"btn-linear-1":In.mew,"btn-linear-2":In.mew,"btn-get-wallet":In.mew,"promo-border":In.mew,"promo-header-text":In.black,"background-fill":In.white,"background-gradient":In.mew,white:In.white,"grey-1":In["grey-1"],"grey-2":In["grey-2"]}},jn=window.location.search,Hn=jn.includes("platform=ethvm")?"ethvmTheme":jn.includes("platform=enkrypt")?"enkryptTheme":"mewTheme";var Vn=(0,Mn.Rd)({components:On,directives:Wn,options:{customProperties:!0},theme:{defaultTheme:Hn,themes:{enkryptTheme:Nn,ethvmTheme:Qn,mewTheme:Zn}}});async function Ln(){const e=await r.e(461).then(r.t.bind(r,33657,23));e.load({google:{families:["Roboto:100,300,400,500,700,900&display=swap"]}})}var Pn=r(9284),Rn=r(26750);Pn.init("f90fa07c6624d9c3273268b866fc8788733e4dbac6feb32a420949e8bd45331f",{instanceName:"mew-web-prod",optOut:!1,serverUrl:"https://analytics-web.mewwallet.dev/record",appVersion:"0.0.1",trackingOptions:{ipAddress:!1},identityStorage:"none",logLevel:Rn.i.None,defaultTracking:{formInteractions:!1,pageViews:!1}}),Ln(),(0,a.ri)({render:()=>(0,s.h)(u)}).use(Dn).use(Fn).use(Vn).provide("$amplitude",Pn).mount("#app")},67604:function(e,t,r){var a={"./BCH.svg":27599,"./BNB.svg":1265,"./BTC.svg":3090,"./DAI.svg":27646,"./DOGE.svg":97579,"./DOT.svg":42095,"./ETH.svg":55694,"./KDA.svg":58095,"./KSM.svg":88160,"./LTC.svg":30230,"./MATIC.svg":12466,"./USDC.svg":90311,"./USDT.svg":38792};function s(e){var t=n(e);return r(t)}function n(e){if(!r.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}s.keys=function(){return Object.keys(a)},s.resolve=n,e.exports=s,s.id=67604},33222:function(e,t,r){var a={"./AUD.svg":5614,"./CAD.svg":58082,"./EUR.svg":54596,"./GBP.svg":81569,"./JPY.svg":51071,"./RUB.svg":53715,"./USD.svg":96576};function s(e){var t=n(e);return r(t)}function n(e){if(!r.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}s.keys=function(){return Object.keys(a)},s.resolve=n,e.exports=s,s.id=33222},8295:function(e,t,r){var a={"./crypto/BCH.svg":27599,"./crypto/BNB.svg":1265,"./crypto/BTC.svg":3090,"./crypto/DAI.svg":27646,"./crypto/DOGE.svg":97579,"./crypto/DOT.svg":42095,"./crypto/ETH.svg":55694,"./crypto/KDA.svg":58095,"./crypto/KSM.svg":88160,"./crypto/LTC.svg":30230,"./crypto/MATIC.svg":12466,"./crypto/USDC.svg":90311,"./crypto/USDT.svg":38792,"./fiat/AUD.svg":5614,"./fiat/CAD.svg":58082,"./fiat/EUR.svg":54596,"./fiat/GBP.svg":81569,"./fiat/JPY.svg":51071,"./fiat/RUB.svg":53715,"./fiat/USD.svg":96576};function s(e){var t=n(e);return r(t)}function n(e){if(!r.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}s.keys=function(){return Object.keys(a)},s.resolve=n,e.exports=s,s.id=8295},27599:function(e,t,r){"use strict";e.exports=r.p+"img/BCH.ede80552.svg"},1265:function(e,t,r){"use strict";e.exports=r.p+"img/BNB.612b5f42.svg"},3090:function(e,t,r){"use strict";e.exports=r.p+"img/BTC.ab086363.svg"},27646:function(e,t,r){"use strict";e.exports=r.p+"img/DAI.e32e3c9f.svg"},97579:function(e,t,r){"use strict";e.exports=r.p+"img/DOGE.a3a33acc.svg"},42095:function(e,t,r){"use strict";e.exports=r.p+"img/DOT.d1fb1977.svg"},55694:function(e,t,r){"use strict";e.exports=r.p+"img/ETH.0e8cfec5.svg"},58095:function(e,t,r){"use strict";e.exports=r.p+"img/KDA.4bec5697.svg"},88160:function(e,t,r){"use strict";e.exports=r.p+"img/KSM.2237c7d6.svg"},30230:function(e,t,r){"use strict";e.exports=r.p+"img/LTC.947ccebc.svg"},12466:function(e,t,r){"use strict";e.exports=r.p+"img/MATIC.b6283cd4.svg"},90311:function(e,t,r){"use strict";e.exports=r.p+"img/USDC.74c6aa75.svg"},38792:function(e,t,r){"use strict";e.exports=r.p+"img/USDT.dcef1ab2.svg"},5614:function(e,t,r){"use strict";e.exports=r.p+"img/AUD.013b3cd5.svg"},58082:function(e,t,r){"use strict";e.exports=r.p+"img/CAD.59f15cea.svg"},54596:function(e,t,r){"use strict";e.exports=r.p+"img/EUR.fe1f1b75.svg"},81569:function(e,t,r){"use strict";e.exports=r.p+"img/GBP.90f28af4.svg"},51071:function(e,t,r){"use strict";e.exports=r.p+"img/JPY.8b7cb3b4.svg"},53715:function(e,t,r){"use strict";e.exports=r.p+"img/RUB.85ae75af.svg"},96576:function(e,t,r){"use strict";e.exports=r.p+"img/USD.b98eb5c8.svg"},90407:function(e,t,r){"use strict";e.exports=r.p+"img/icon-apple-pay.8729e08b.svg"},13822:function(e,t,r){"use strict";e.exports=r.p+"img/icon-bank.69ca9b2e.svg"},83845:function(e,t,r){"use strict";e.exports=r.p+"img/icon-master.e13b09eb.svg"},1902:function(e,t,r){"use strict";e.exports=r.p+"img/icon-moonpay.a8303886.svg"},60074:function(e,t,r){"use strict";e.exports=r.p+"img/icon-simplex.36f689db.svg"},14393:function(e,t,r){"use strict";e.exports=r.p+"img/icon-visa.a210c6d6.svg"},80950:function(){},46601:function(){},89214:function(){},8623:function(){},7748:function(){},85568:function(){},56619:function(){},77108:function(){},52361:function(){},94616:function(){},33523:function(){},11734:function(){},61575:function(){},67647:function(){},43503:function(){},80390:function(){},41529:function(){},55896:function(){},22960:function(){},22322:function(){},9324:function(){},35091:function(){}},t={};function r(a){var s=t[a];if(void 0!==s)return s.exports;var n=t[a]={id:a,loaded:!1,exports:{}};return e[a].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=e,function(){r.amdO={}}(),function(){var e=[];r.O=function(t,a,s,n){if(!a){var o=1/0;for(d=0;d=n)&&Object.keys(r.O).every((function(e){return r.O[e](a[l])}))?a.splice(l--,1):(i=!1,n0&&e[d-1][2]>n;d--)e[d]=e[d-1];e[d]=[a,s,n]}}(),function(){r.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return r.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};r.t=function(a,s){if(1&s&&(a=this(a)),8&s)return a;if("object"===typeof a&&a){if(4&s&&a.__esModule)return a;if(16&s&&"function"===typeof a.then)return a}var n=Object.create(null);r.r(n);var o={};e=e||[null,t({}),t([]),t(t)];for(var i=2&s&&a;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((function(e){o[e]=function(){return a[e]}}));return o["default"]=function(){return a},r.d(n,o),n}}(),function(){r.d=function(e,t){for(var a in t)r.o(t,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}}(),function(){r.f={},r.e=function(e){return Promise.all(Object.keys(r.f).reduce((function(t,a){return r.f[a](e,t),t}),[]))}}(),function(){r.u=function(e){return"js/webfontloader.07803e14.js"}}(),function(){r.miniCssF=function(e){}}(),function(){r.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="mew-ccswap:";r.l=function(a,s,n,o){if(e[a])e[a].push(s);else{var i,l;if(void 0!==n)for(var c=document.getElementsByTagName("script"),d=0;d [\n _createVNode(_component_v_main, null, {\n default: _withCtx(() => [\n _createVNode(_component_router_view)\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n}","\nimport { defineComponent } from \"vue\";\n\nexport default defineComponent({\n name: \"App\",\n});\n","import { render } from \"./App.vue?vue&type=template&id=3cef02d2&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5f3caf0a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"dropShadow\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = {\n class: \"d-flex align-center\",\n style: {\"margin-top\":\"60px\"}\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-color mr-4\" }, \"Powered by\", -1))\nconst _hoisted_5 = [\"src\"]\nconst _hoisted_6 = [\"src\"]\nconst _hoisted_7 = { class: \"d-flex flex-wrap align-center mt-4\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-color mr-2\" }, \"We accept\", -1))\nconst _hoisted_9 = { class: \"d-flex align-center\" }\nconst _hoisted_10 = [\"src\"]\nconst _hoisted_11 = [\"src\"]\nconst _hoisted_12 = [\"src\"]\n\nimport visa from \"@/assets/images/icon-visa.svg\";\nimport master from \"@/assets/images/icon-master.svg\";\nimport applePay from \"@/assets/images/icon-apple-pay.svg\";\nimport simplex from \"@/assets/images/icon-simplex.svg\";\nimport simplexLight from \"@/assets/images/icon-simplex-light.svg\";\nimport moonpay from \"@/assets/images/icon-moonpay.svg\";\nimport moonpayWhite from \"@/assets/images/icon-moonpay-white.svg\";\nimport enkryptDarkLogo from \"@/assets/images/icon-enkrypt-logo-dark.svg\";\nimport ethvmLogo from \"@/assets/images/icon-ethvm-logo.svg\";\nimport mewLogo from \"@/assets/images/icon-mew-logo-dark.svg\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'HeaderComponent',\n setup(__props) {\n\nconst isEthVm = window.location.search.includes(\"platform=ethvm\");\nconst isEnkrypt = window.location.search.includes(\"platform=enkrypt\");\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"img\", {\n src: _unref(isEthVm) ? _unref(ethvmLogo) : _unref(isEnkrypt) ? _unref(enkryptDarkLogo) : _unref(mewLogo),\n alt: \"MEW\",\n height: \"36\"\n }, null, 8, _hoisted_2),\n _createElementVNode(\"div\", {\n class: \"heading-1 text-color\",\n style: _normalizeStyle(\n _ctx.$vuetify.display.smAndUp\n ? 'margin-top: 100px; max-width: 520px'\n : 'margin-top: 50px; max-width: 520px'\n )\n }, \" Buy and Sell Crypto Fast and Secure \", 4),\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createElementVNode(\"img\", {\n class: \"mr-2\",\n src: _unref(isEthVm) ? _unref(simplexLight) : _unref(simplex),\n alt: \"Simplex\",\n height: \"25\"\n }, null, 8, _hoisted_5),\n _createElementVNode(\"img\", {\n src: _unref(isEthVm) ? _unref(moonpayWhite) : _unref(moonpay),\n alt: \"Moonpay\",\n height: \"25\"\n }, null, 8, _hoisted_6)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"img\", {\n class: \"mr-2\",\n src: _unref(visa),\n alt: \"Visa\",\n height: \"22\"\n }, null, 8, _hoisted_10),\n _createElementVNode(\"img\", {\n class: \"mr-2\",\n src: _unref(applePay),\n alt: \"Visa\",\n height: \"22\"\n }, null, 8, _hoisted_11),\n _createElementVNode(\"img\", {\n src: _unref(master),\n alt: \"Master\",\n height: \"22\"\n }, null, 8, _hoisted_12)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./HeaderComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./HeaderComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./HeaderComponent.vue?vue&type=style&index=0&id=5f3caf0a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5f3caf0a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4fb33120\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"component--footer py-2\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = { class: \"my-5\" }\nconst _hoisted_4 = {\n \"footer--text\": \"\",\n style: {\"color\":\"white\"}\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"font-weight-regular\",\n style: {\"color\":\"white\"}\n}, [\n /*#__PURE__*/_createTextVNode(\" Need Ethereum wallet? Get one from \"),\n /*#__PURE__*/_createElementVNode(\"a\", {\n class: \"text-white\",\n href: \"https://www.myetherwallet.com/wallet/create\",\n target: \"_blank\",\n style: {\"text-decoration\":\"none\"}\n }, \" myetherwallet.com \")\n], -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-white font-weight-bold\" }, \"Get a wallet\", -1))\n\nimport mewIconLight from \"@/assets/images/icon-mew-logo-light.svg\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'FooterComponent',\n setup(__props) {\n\nconst presentDate = new Date().getFullYear();\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_btn = _resolveComponent(\"v-btn\")!\n const _component_v_container = _resolveComponent(\"v-container\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_v_container, { class: \"text-center\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"img\", {\n src: _unref(mewIconLight),\n alt: \"MEW\",\n height: \"25\"\n }, null, 8, _hoisted_2),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, \" ©\" + _toDisplayString(_unref(presentDate)) + \" MyEtherWallet Inc. All rights reserved \", 1),\n _hoisted_5\n ]),\n _createVNode(_component_v_btn, {\n size: \"x-large\",\n class: \"rounded-pill text-white mt-3 text-none\",\n color: \"btn-get-wallet\",\n href: \"https://www.myetherwallet.com/wallet/create\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./FooterComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FooterComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FooterComponent.vue?vue&type=style&index=0&id=4fb33120&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4fb33120\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5c7fe0a9\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"top-container component--buy-form elevated-box elevation-4 pa-3 pa-sm-6 pa-md-8\" }\nconst _hoisted_2 = { key: 0 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_buy_form = _resolveComponent(\"buy-form\")!\n const _component_sell_form = _resolveComponent(\"sell-form\")!\n const _component_MewTabs = _resolveComponent(\"MewTabs\")!\n const _component_TokenSelect = _resolveComponent(\"TokenSelect\")!\n const _component_BuyProviders = _resolveComponent(\"BuyProviders\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.step === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_component_MewTabs, {\n items: _ctx.tabItems,\n \"active-tab\": _ctx.activeTab,\n \"base-color\": \"greenPrimary\",\n \"has-underline\": \"\",\n onOnTab: _ctx.onTab\n }, {\n tabContent1: _withCtx(() => [\n _createVNode(_component_buy_form, {\n \"crypto-selected\": _ctx.selectedCurrency,\n \"fiat-selected\": _ctx.selectedFiat,\n \"network-selected\": _ctx.selectedNetwork,\n \"fiat-amount\": _ctx.fiatAmount,\n onSetQuotes: _ctx.setQuotes,\n onSelectedCurrency: _ctx.openTokenSelect,\n onSuccess: _ctx.buySuccess,\n onSelectedNetwork: _ctx.setNetwork,\n onSelectCurrency: _ctx.setSelectedCurrency\n }, null, 8, [\"crypto-selected\", \"fiat-selected\", \"network-selected\", \"fiat-amount\", \"onSetQuotes\", \"onSelectedCurrency\", \"onSuccess\", \"onSelectedNetwork\", \"onSelectCurrency\"])\n ]),\n tabContent2: _withCtx(() => [\n _createVNode(_component_sell_form, {\n \"crypto-selected\": _ctx.selectedCurrency,\n \"fiat-selected\": _ctx.selectedFiat,\n \"network-selected\": _ctx.selectedNetwork,\n \"fiat-amount\": _ctx.fiatAmount,\n onSetQuotes: _ctx.setQuotes,\n onSelectedCurrency: _ctx.openTokenSelect,\n onSuccess: _ctx.sellSuccess\n }, null, 8, [\"crypto-selected\", \"fiat-selected\", \"network-selected\", \"fiat-amount\", \"onSetQuotes\", \"onSelectedCurrency\", \"onSuccess\"])\n ]),\n _: 1\n }, 8, [\"items\", \"active-tab\", \"onOnTab\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"token-select-slider\", _ctx.step === 1 ? 'open' : ''])\n }, [\n (_ctx.step === 1)\n ? (_openBlock(), _createBlock(_component_TokenSelect, {\n key: 0,\n class: \"pa-3 pa-sm-6 pa-md-8\",\n \"selected-network\": _ctx.selectedNetwork,\n \"selected-currency\": _ctx.selectedCurrency,\n \"fiat-selected\": _ctx.selectedFiat,\n \"moonpay-data\": _ctx.moonpayData,\n \"simplex-data\": _ctx.simplexData,\n \"is-sell\": _ctx.isSell,\n onClose: _ctx.close,\n onSelectCurrency: _ctx.setSelectedCurrency,\n onSelectedNetwork: _ctx.setNetwork\n }, null, 8, [\"selected-network\", \"selected-currency\", \"fiat-selected\", \"moonpay-data\", \"simplex-data\", \"is-sell\", \"onClose\", \"onSelectCurrency\", \"onSelectedNetwork\"]))\n : _createCommentVNode(\"\", true)\n ], 2),\n (_ctx.step === 2)\n ? (_openBlock(), _createBlock(_component_BuyProviders, {\n key: 1,\n \"selected-fiat\": _ctx.selectedFiat,\n \"selected-currency\": _ctx.selectedCurrency,\n \"only-simplex\": _ctx.onlySimplex,\n \"buy-obj\": _ctx.buyObj,\n \"simplex-quote\": _ctx.simplexQuote,\n \"to-address\": _ctx.toAddress,\n onClose: _ctx.close\n }, null, 8, [\"selected-fiat\", \"selected-currency\", \"only-simplex\", \"buy-obj\", \"simplex-quote\", \"to-address\", \"onClose\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode, renderSlot as _renderSlot, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5311767f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_v_chip = _resolveComponent(\"v-chip\")!\n const _component_v_chip_group = _resolveComponent(\"v-chip-group\")!\n const _component_v_tab = _resolveComponent(\"v-tab\")!\n const _component_v_window_item = _resolveComponent(\"v-window-item\")!\n const _component_v_window = _resolveComponent(\"v-window\")!\n const _component_v_tabs = _resolveComponent(\"v-tabs\")!\n const _component_v_slide_x_reverse_transition = _resolveComponent(\"v-slide-x-reverse-transition\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n (_ctx.compact)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_v_chip_group, {\n modelValue: _ctx.onTab,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.onTab) = $event)),\n mandatory: \"\",\n column: \"\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (mobileItem, mobileItemKey) => {\n return (_openBlock(), _createBlock(_component_v_chip, {\n key: mobileItemKey,\n class: \"ma-1\",\n \"active-class\": \"greenPrimary text--primary\",\n outlined: \"\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(mobileItem), 1)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createElementVNode(\"template\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (mobileItem, mobileItemKey) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: mobileItemKey }, [\n (_ctx.onTab == mobileItemKey)\n ? _renderSlot(_ctx.$slots, 'tabItemContent' + (mobileItemKey + 1), { key: 0 }, undefined, true)\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.compact)\n ? (_openBlock(), _createBlock(_component_v_tabs, {\n key: 1,\n modelValue: _ctx.onTab,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.onTab) = $event)),\n class: _normalizeClass(_ctx.tabClasses),\n \"background-color\": _ctx.background,\n color: _ctx.activeColor,\n centered: _ctx.isCentered,\n \"slider-size\": \"3\",\n \"hide-slider\": _ctx.isBlock || _ctx.isVertical,\n grow: _ctx.isBlock || _ctx.hasFullWidth,\n vertical: _ctx.isVertical,\n \"show-arrows\": _ctx.showArrows,\n \"align-with-title\": !_ctx.isBlock && !_ctx.isCentered && !_ctx.isVertical\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item, i) => {\n return (_openBlock(), _createBlock(_component_v_tab, {\n key: `${item}` + i,\n class: _normalizeClass([\n _ctx.isBlock\n ? 'mew-tab-block'\n : _ctx.isVertical || _ctx.isSmall\n ? 'mew-body font-weight-medium'\n : 'mew-heading-2',\n 'capitalize'\n ]),\n ripple: !_ctx.isVertical\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item), 1)\n ]),\n _: 2\n }, 1032, [\"class\", \"ripple\"]))\n }), 128)),\n _createVNode(_component_v_window, {\n modelValue: _ctx.onTab,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.onTab) = $event))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item, i) => {\n return (_openBlock(), _createBlock(_component_v_window_item, {\n key: `${item}` + i,\n value: item,\n \"reverse-transition\": \n !_ctx.isVertical ? 'slide-x-transition' : 'slide-y-transition'\n \n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, 'tabItemContent' + (i + 1), {}, undefined, true)\n ]),\n _: 2\n }, 1032, [\"value\", \"reverse-transition\"]))\n }), 128))\n ]),\n _: 3\n }, 8, [\"modelValue\"])\n ]),\n _: 3\n }, 8, [\"modelValue\", \"class\", \"background-color\", \"color\", \"centered\", \"hide-slider\", \"grow\", \"vertical\", \"show-arrows\", \"align-with-title\"]))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: `${item}` + i\n }, [\n _createVNode(_component_v_slide_x_reverse_transition, {\n \"hide-on-leave\": true,\n mode: \"out-in\"\n }, {\n default: _withCtx(() => [\n (_ctx.onTab === i)\n ? _renderSlot(_ctx.$slots, 'tabContent' + (i + 1), { key: 0 }, undefined, true)\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1024)\n ]))\n }), 128))\n ]))\n}","\n import { defineComponent } from 'vue';\n\n export default defineComponent({\n name: 'MewTabs',\n props: {\n /**\n * Sets the color for active tab.\n * If nothing passed, titlePrimary will be used.\n */\n activeColor: {\n type: String,\n default: 'titlePrimary'\n },\n /**\n * Sets the color for the background of mew-tabs.\n * If nothing passed, transparent will be used.\n */\n background: {\n type: String,\n default: 'transparent'\n },\n /**\n * Displays arrows if tab items overflow container.\n */\n showArrows: {\n type: Boolean,\n default: false\n },\n /**\n * Sets the active tab.\n */\n activeTab: {\n type: Number,\n default: 0\n },\n /**\n * Sets the tabs as vertical.\n */\n hasUnderline: {\n type: Boolean,\n default: false\n },\n /**\n * Sets the tabs as vertical.\n */\n isVertical: {\n type: Boolean,\n default: false\n },\n /**\n * Sets the tabs to the center of the page.\n */\n isCentered: {\n type: Boolean,\n default: false\n },\n /**\n * Tab content\n */\n items: {\n type: Array,\n default: () => {\n return [];\n }\n },\n /**\n * Shows the tab as a block.\n */\n isBlock: {\n type: Boolean,\n default: false\n },\n /**\n * Allows tabs to take up the full-width of the page.\n */\n hasFullWidth: {\n type: Boolean,\n default: false\n },\n /**\n * Sets the font size to 14px (mew-body)\n */\n isSmall: {\n type: Boolean,\n default: false\n },\n compact: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n onTab: this.activeTab\n };\n },\n computed: {\n tabClasses() {\n const classes = ['mew-tabs'];\n if (this.hasUnderline) {\n classes.push('mew-tabs-underline');\n }\n if (this.isBlock) {\n classes.push('mew-tabs-block elevation-3');\n }\n return classes;\n }\n },\n watch: {\n activeTab(newVal: number) {\n this.onTab = newVal;\n },\n onTab(newVal: number) {\n this.$emit('onTab', newVal);\n }\n },\n mounted() {\n this.onTab = this.activeTab;\n }\n });\n ","import { render } from \"./MewTabs.vue?vue&type=template&id=5311767f&scoped=true&ts=true\"\nimport script from \"./MewTabs.vue?vue&type=script&lang=ts\"\nexport * from \"./MewTabs.vue?vue&type=script&lang=ts\"\n\nimport \"./MewTabs.vue?vue&type=style&index=0&id=5311767f&lang=scss\"\nimport \"./MewTabs.vue?vue&type=style&index=1&id=5311767f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5311767f\"]])\n\nexport default __exports__","import axios from \"axios\";\nimport { toNumber } from \"lodash\";\nimport { sha3 } from \"web3-utils\";\n// const API = \"https://qa.mewwallet.dev\";\nconst API = \"https://mainnet.mewwallet.dev\";\n\nconst supportedCrypto = [\"ETH\", \"BTC\", \"BCH\", \"MATIC\", \"USDT\", \"USDC\", \"DAI\", \"DOT\", \"KSM\", \"KDA\"];\n\nconst supportedFiat = [\"USD\", \"EUR\", \"JPY\", \"AUD\", \"CAD\", \"GBP\"];\n// const supportedFiat = [\n// \"USD\",\n// \"EUR\",\n// \"JPY\",\n// \"AUD\",\n// \"CAD\",\n// \"GBP\",\n// \"KRW\",\n// \"CHF\",\n// \"CZK\",\n// \"DKK\",\n// \"NOK\",\n// \"NZD\",\n// \"PLN\",\n// \"SEK\",\n// \"TRY\",\n// \"ZAR\",\n// \"HUF\",\n// ];\n\nconst currencySymbols: { [key: string]: string } = {\n USD: \"$\", // US Dollar\n RUB: \"₽\", // Russian Ruble\n EUR: \"€\", // Euro\n JPY: \"¥\", // Japanese Yen\n AUD: \"AU$\", // Australian dollar\n CAD: \"CA$\", // Canadian dollar\n GBP: \"£\", // British Pound Sterling\n};\n\nasync function getSimplexQuote(\n fiatCurrency: string,\n cryptoCurrency: string,\n requestedCurrency: string,\n requestedAmount: string,\n address = \"0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D\"\n) {\n const apiQuote = `${API}/purchase/simplex/quote`;\n\n return await axios\n .get(apiQuote, {\n params: {\n id: `WEB|${sha3(address)?.substring(0, 42)}`,\n fiatCurrency: fiatCurrency,\n cryptoCurrency: cryptoCurrency,\n requestedCurrency: requestedCurrency,\n requestedAmount: toNumber(requestedAmount),\n },\n })\n .then((response) => {\n return response.data;\n })\n .catch((e) => {\n throw e;\n });\n}\nconst filterData = (res: any) => {\n const { data } = res;\n if (Array.isArray(data)) return data.filter((i) => (i.name === \"SIMPLEX\" || i.name === \"MOONPAY\"));\n};\n\nasync function getCryptoPrices(\n cryptoCurrency?: \"ETH\" | \"BTC\" | \"BCH\" | \"LTC\" | \"DOGE\" | \"BNB\" | \"MATIC\" | \"USDT\" | \"USDC\" | \"DAI\" | \"DOT\" | \"KSM\" | \"KDA\"\n) {\n const apiQuote = `${API}/v4/purchase/providers/web`;\n if (cryptoCurrency)\n return await axios\n .get(apiQuote, {\n params: {\n iso: \"us\",\n cryptoCurrency,\n },\n })\n .then((response) => filterData(response))\n .catch((e) => {\n throw e;\n });\n return Promise.all(\n supportedCrypto.map((c) =>\n axios\n .get(apiQuote, {\n params: {\n iso: \"us\",\n cryptoCurrency: c,\n },\n })\n .then((response) => filterData(response))\n .catch((e) => {\n throw e;\n })\n )\n ).catch((e) => {\n throw e;\n });\n}\n\n/**\n * Moonpay\n */\nasync function getFiatRatesForBuy() {\n return axios\n .get(`${API}/v4/purchase/moonpay/quotes`, {\n headers: {\n 'Accept-Language': 'en-US'\n }\n })\n .then(res => res.data);\n}\n/**\n *\n * @param {String} symbol - Crypto Symbol ex. ETH\n * @returns\n */\nasync function getSupportedFiatToBuy(symbol: string) {\n return axios\n .get(`${API}/v4/purchase/providers/web?iso=us&cryptoCurrency=${symbol}`, {\n headers: {\n 'Accept-Language': 'en-US'\n }\n })\n .then(res => res.data);\n}\n/*\n * Get supported fiat to sell from Moonpay\n */\nasync function getSupportedFiatToSell(symbol: string) {\n return axios\n .get(`${API}/v3/sell/providers/web?iso=us&cryptoCurrency=${symbol}`, {\n headers: {\n 'Accept-Language': 'en-US'\n }\n })\n .then(res => res.data);\n}\n\nasync function getCryptoSellPrices(\n cryptoCurrency?: \"ETH\" | \"MATIC\" | \"BNB\" | \"USDT\" | \"USDC\"\n) {\n if (cryptoCurrency)\n return await getSupportedFiatToSell(cryptoCurrency)\n .then((response) => filterData(response))\n .catch((e) => {\n throw e;\n });\n const cryptos = [\"ETH\", \"BNB\", \"MATIC\", \"USDT\", \"USDC\", \"DAI\"];\n return Promise.all(\n cryptos.map((c) =>\n getSupportedFiatToSell(c)\n .catch((e) => {\n throw e;\n }))\n ).catch((e) => {\n throw e;\n });\n}\n\nexport {\n supportedCrypto,\n supportedFiat,\n currencySymbols,\n getSimplexQuote,\n getCryptoPrices,\n getFiatRatesForBuy,\n getSupportedFiatToBuy,\n getSupportedFiatToSell,\n getCryptoSellPrices\n};\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-830abb46\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"blockie-placeholder mr-1 selectHover\"\n}\nconst _hoisted_2 = [\"onClick\"]\nconst _hoisted_3 = { class: \"d-flex align-center justify-space-between\" }\nconst _hoisted_4 = {\n key: 1,\n class: \"d-flex align-center\"\n}\nconst _hoisted_5 = { class: \"mew-address\" }\nconst _hoisted_6 = { class: \"overline primary--text font-weight-medium ml-3 mr-3\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_mew_blockie = _resolveComponent(\"mew-blockie\")!\n const _component_mew_transform_hash = _resolveComponent(\"mew-transform-hash\")!\n const _component_v_combobox = _resolveComponent(\"v-combobox\")!\n\n return (_openBlock(), _createBlock(_component_v_combobox, {\n ref: \"mewAddressSelect\",\n modelValue: _ctx.addressValue,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event: any) => ((_ctx.addressValue) = $event)),\n _ctx.onInputChange\n ],\n class: \"address-select pa-0 rounded-lg\",\n color: \"primary\",\n label: _ctx.label,\n \"item-value\": \"address\",\n \"item-text\": \"address\",\n placeholder: _ctx.placeholder,\n disabled: _ctx.disabled,\n \"error-messages\": _ctx.errorMessages,\n hint: _ctx.hint || _ctx.resolvedAddr || '',\n \"persistent-hint\": _ctx.resolvedAddr.length > 0 || _ctx.hint.length > 0,\n rules: _ctx.rules,\n \"no-data-text\": _ctx.noDataText,\n \"menu-props\": { closeOnContentClick: true },\n variant: \"outlined\",\n \"onUpdate:searchInput\": _ctx.onChange\n }, {\n \"prepend-inner\": _withCtx(() => [\n (!_ctx.isValidAddress || !_ctx.blockieHash)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1))\n : _createCommentVNode(\"\", true),\n (_ctx.isValidAddress)\n ? (_openBlock(), _createBlock(_component_mew_blockie, {\n key: 1,\n class: \"mr-1\",\n address: _ctx.blockieHash,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, [\"address\"]))\n : _createCommentVNode(\"\", true)\n ]),\n item: _withCtx(({ item }) => [\n _createElementVNode(\"div\", {\n class: \"py-4 px-0 full-width d-flex align-center justify-space-between cursor-pointer\",\n onClick: ($event: any) => (_ctx.selectAddress(item))\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_mew_blockie, {\n class: \"mr-2 ml-2\",\n address: \n item.raw.resolvedAddr ? item.raw.resolvedAddr : item.raw.address\n ,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, [\"address\"]),\n (!item.raw.resolvedAddr || item.raw.resolvedAddr === '')\n ? (_openBlock(), _createBlock(_component_mew_transform_hash, {\n key: 0,\n hash: item.raw.address\n }, null, 8, [\"hash\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(item.raw.address), 1),\n _createElementVNode(\"span\", null, _toDisplayString(item.raw.address.slice(-4)), 1)\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(item.raw.nickname), 1)\n ], 8, _hoisted_2)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"label\", \"placeholder\", \"disabled\", \"error-messages\", \"hint\", \"persistent-hint\", \"rules\", \"no-data-text\", \"onUpdate:searchInput\", \"onUpdate:modelValue\"]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, vShow as _vShow, normalizeStyle as _normalizeStyle, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0413b8b6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"src\"]\nconst _hoisted_2 = {\n key: 0,\n class: \"inset-shadow\"\n}\nconst _hoisted_3 = [\"src\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _withDirectives(_createElementVNode(\"div\", {\n style: _normalizeStyle([{\"position\":\"relative\"}, `width: ${_ctx.width}; height: ${_ctx.height}`])\n }, [\n _createElementVNode(\"img\", {\n ref: \"blockie\",\n src: _ctx.blockieImg,\n alt: \"Blockie Image\",\n style: {\"display\":\"block\",\"border-radius\":\"50%\"}\n }, null, 8, _hoisted_1),\n (!_ctx.flat)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n : _createCommentVNode(\"\", true)\n ], 4), [\n [_vShow, _ctx.address]\n ]),\n (_ctx.currency)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n alt: \"icon\",\n class: \"currency-icon\",\n src: _ctx.currency\n }, null, 8, _hoisted_3))\n : _createCommentVNode(\"\", true)\n ]))\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\nconst randseed = new Array(4); // Xorshift: [x, y, z, w] 32 bit values\n\nfunction seedrand(seed: string) {\n for (let i = 0; i < randseed.length; i++) {\n randseed[i] = 0;\n }\n for (let j = 0; j < seed.length; j++) {\n randseed[j % 4] =\n (randseed[j % 4] << 5) - randseed[j % 4] + seed.charCodeAt(j);\n }\n}\n\nfunction rand() {\n // based on Java's String.hashCode(), expanded to 4 32bit values\n const t = randseed[0] ^ (randseed[0] << 11);\n\n randseed[0] = randseed[1];\n randseed[1] = randseed[2];\n randseed[2] = randseed[3];\n randseed[3] = randseed[3] ^ (randseed[3] >> 19) ^ t ^ (t >> 8);\n\n return (randseed[3] >>> 0) / ((1 << 31) >>> 0);\n}\n\nfunction createColor() {\n // saturation is the whole color spectrum\n const h = Math.floor(rand() * 360);\n // saturation goes from 40 to 100, it avoids greyish colors\n const s = rand() * 60 + 40 + '%';\n // lightness can be anything from 0 to 100, but probabilities are a bell curve around 50%\n const l = (rand() + rand() + rand() + rand()) * 25 + '%';\n\n const color = 'hsl(' + h + ',' + s + ',' + l + ')';\n return color;\n}\n\nfunction createImageData(size: number) {\n const width = size; // Only support square icons for now\n const height = size;\n\n const dataWidth = Math.ceil(width / 2);\n const mirrorWidth = width - dataWidth;\n\n const data = [];\n for (let y = 0; y < height; y++) {\n let row = [];\n for (let x = 0; x < dataWidth; x++) {\n // this makes foreground and background color to have a 43% (1/2.3) probability\n // spot color has 13% chance\n row[x] = Math.floor(rand() * 2.3);\n }\n const r = row.slice(0, mirrorWidth);\n r.reverse();\n row = row.concat(r);\n\n for (let i = 0; i < row.length; i++) {\n data.push(row[i]);\n }\n }\n\n return data;\n}\n\nfunction createCanvas(\n imageData: any,\n color: string,\n scale: number,\n bgcolor: string,\n spotcolor: string\n) {\n const width = Math.sqrt(imageData.length);\n const c = document.createElement('canvas');\n c.width = c.height = width * scale;\n const cc = c.getContext('2d');\n if (cc !== null) {\n cc.fillStyle = bgcolor;\n cc.fillRect(0, 0, c.width, c.height);\n cc.fillStyle = color;\n\n for (let i = 0; i < imageData.length; i++) {\n const row = Math.floor(i / width);\n const col = i % width;\n cc.fillStyle = imageData[i] === 1 ? color : spotcolor;\n if (imageData[i]) {\n cc.fillRect(col * scale, row * scale, scale, scale);\n }\n }\n }\n return c;\n}\n\nfunction createIcon(opts: any) {\n opts = opts || {};\n const size = opts.size || 8;\n const scale = opts.scale || 4;\n const seed =\n opts.seed || Math.floor(Math.random() * Math.pow(10, 16)).toString(16);\n seedrand(seed);\n const color = opts.color || createColor();\n const bgcolor = opts.bgcolor || createColor();\n const spotcolor = opts.spotcolor || createColor();\n const imageData = createImageData(size);\n const canvas = createCanvas(imageData, color, scale, bgcolor, spotcolor);\n\n return canvas;\n}\nexport default createIcon;\n","\nimport Blockies from '@/helpers/blockies';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'MewBlockie',\n props: {\n /**\n * Currency image url\n */\n currency: {\n type: String,\n default: '',\n },\n /**\n * Valid address\n */\n address: {\n type: String,\n default: '',\n },\n /**\n * Blockie width\n */\n width: {\n type: String,\n default: '64px',\n },\n /**\n * Blockie height\n */\n height: {\n type: String,\n default: '64px',\n },\n /**\n * Remove inset shadow\n */\n flat: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n scale: 16,\n size: 8,\n blockieImg: '',\n };\n },\n watch: {\n address() {\n this.createBlockie();\n },\n width() {\n this.createBlockie();\n },\n height() {\n this.createBlockie();\n },\n scale() {\n this.createBlockie();\n },\n size() {\n this.createBlockie();\n },\n },\n mounted() {\n this.createBlockie();\n },\n methods: {\n createBlockie() {\n this.blockieImg = Blockies({\n seed: this.address ? this.address.toLowerCase() : '',\n size: this.size,\n scale: this.scale,\n }).toDataURL();\n const blockieElem = this.$refs.blockie as HTMLImageElement;\n blockieElem.style.width = this.width;\n blockieElem.style.height = this.height;\n },\n },\n});\n","import { render } from \"./MewBlockie.vue?vue&type=template&id=0413b8b6&scoped=true&ts=true\"\nimport script from \"./MewBlockie.vue?vue&type=script&lang=ts\"\nexport * from \"./MewBlockie.vue?vue&type=script&lang=ts\"\n\nimport \"./MewBlockie.vue?vue&type=style&index=0&id=0413b8b6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0413b8b6\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7c3e7d09\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"firstPart\" }\nconst _hoisted_2 = { class: \"lastPart\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\n 'd-flex hash-container mew-address',\n _ctx.justifyStart ? 'justify-start' : 'justify-end',\n ])\n }, [\n _createElementVNode(\"span\", _hoisted_1, _toDisplayString(_ctx.start), 1),\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(_ctx.end), 1)\n ], 2))\n}","\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n name: 'MewTransformHash',\n props: {\n /**\n * Hash to truncate.\n */\n hash: {\n type: String,\n default: '',\n },\n /**\n * Adds justify start to parent div\n * instead of justify end\n */\n justifyStart: {\n type: Boolean,\n default: false,\n },\n },\n computed: {\n start() {\n const n = this.hash.length;\n return this.hash.slice(0, n - 4);\n },\n end() {\n const n = this.hash.length;\n return this.hash.slice(n - 4, n);\n },\n },\n});\n","import { render } from \"./MewTransformHash.vue?vue&type=template&id=7c3e7d09&scoped=true&ts=true\"\nimport script from \"./MewTransformHash.vue?vue&type=script&lang=ts\"\nexport * from \"./MewTransformHash.vue?vue&type=script&lang=ts\"\n\nimport \"./MewTransformHash.vue?vue&type=style&index=0&id=7c3e7d09&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7c3e7d09\"]])\n\nexport default __exports__","\nimport MewBlockie from \"@/components/MewBlockie/MewBlockie.vue\";\nimport MewTransformHash from \"../MewTransformHash/MewTransformHash.vue\";\nimport { defineComponent } from \"vue\";\n\n// data\nconst USER_INPUT_TYPES = {\n typed: \"TYPED\",\n selected: \"SELECTED\",\n};\n\nexport default defineComponent({\n name: \"MewAddressSelect\",\n components: {\n MewBlockie,\n MewTransformHash,\n },\n props: {\n /**\n * value passed\n */\n modelValue: {\n type: String,\n default: \"\",\n },\n /**\n * Text displayed under the input container.\n */\n hint: {\n type: String,\n default: \"\",\n },\n /**\n * For validating your input - accepts an array of functions that take\n * an input value as an argument and return either true / false or a\n * string with an error message.\n */\n rules: {\n type: Array,\n default: () => {\n return [];\n },\n },\n /**\n * The text to display if there is no data.\n */\n noDataText: {\n type: String,\n default: \"\",\n },\n /**\n * Resolved address for name.\n */\n resolvedAddr: {\n type: String,\n default: \"\",\n },\n /**\n * Disables the input.\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n /**\n * Returns if the address is valid or not.\n */\n isValidAddress: {\n type: Boolean,\n default: false,\n },\n /**\n * The input label.\n */\n label: {\n type: String,\n default: \"To Address\",\n },\n /**\n * The input placeholder.\n */\n placeholder: {\n type: String,\n default: \"Please enter an address\",\n },\n /**\n * Error messages to display when its an invalid value.\n */\n errorMessages: {\n type: [String, Array],\n default: \"\",\n },\n /**\n * Clear address\n */\n clearAddress: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n /**\n * The v-model value for the combobox.\n */\n addressValue: this.modelValue,\n /**\n * Indicates whether the user selected from dropdown or typed in the address\n */\n isTyped: USER_INPUT_TYPES.typed,\n };\n },\n computed: {\n /**\n * If the input item is a name (i.e, ens) and has a valid resolved address,\n * display the blockie for the resolved address otherwise display\n * the blockie for the regular address value.\n */\n blockieHash(): string {\n return this.resolvedAddr.length > 0\n ? this.resolvedAddr\n : this.addressValue;\n },\n },\n watch: {\n clearAddress() {\n this.clear();\n },\n modelValue(val) {\n this.addressValue = val;\n },\n },\n methods: {\n /**\n * Clears the v-model value.\n */\n clear() {\n this.addressValue = \"\";\n },\n /**\n * Sets the dropdown item to be the v-model value.\n */\n selectAddress(data: { value: any; raw: any }) {\n this.isTyped = USER_INPUT_TYPES.selected;\n const addressSelect = Object.assign(\n {},\n this.$refs.mewAddressSelect\n );\n this.addressValue = data.value.address;\n addressSelect.modelValue = this.addressValue;\n this.onChange(this.addressValue);\n },\n /**\n * Emits 'changed' when there is a v-model value change.\n */\n onChange(value: string) {\n this.$emit(\"changed\", value, this.isTyped);\n },\n /**\n * Sets the value for what the user types int\n */\n onInputChange(data: { address: string }) {\n this.isTyped = USER_INPUT_TYPES.typed;\n this.addressValue = data\n ? data.address\n ? data.address\n : data.toString()\n : \"\";\n this.onChange(this.addressValue);\n },\n },\n});\n","import { render } from \"./MewAddressSelect.vue?vue&type=template&id=830abb46&scoped=true&ts=true\"\nimport script from \"./MewAddressSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./MewAddressSelect.vue?vue&type=script&lang=ts\"\n\nimport \"./MewAddressSelect.vue?vue&type=style&index=0&id=830abb46&lang=scss&scoped=true\"\nimport \"./MewAddressSelect.vue?vue&type=style&index=1&id=830abb46&lang=scss\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-830abb46\"]])\n\nexport default __exports__","/*\nPrimary Attribution\nRichard Moore \nhttps://github.com/ethers-io\n\nNote, Richard is a god of ether gods. Follow and respect him, and use Ethers.io!\n*/\n\nimport { toBN } from 'web3-utils';\n\nconst zero = toBN(0);\nconst negative1 = toBN(-1);\n\n/**\n * Returns value of unit in Wei\n *\n * @method getValueOfUnit\n * @param {number} decimals the unit to convert to, default ether\n * @returns {BN} value of the unit (in Wei)\n * @throws error if the unit is not correct:w\n */\n\nconst getValueOfUnit = (decimals: number) => {\n return toBN(10).pow(toBN(decimals));\n};\n\nconst numberToString = (arg: any) => {\n if (typeof arg === 'string') {\n if (!arg.match(/^-?[0-9.]+$/)) {\n throw new Error(\n `while converting number to string, invalid number value '${arg}', should be a number matching (^-?[0-9.]+).`\n );\n }\n return arg;\n } else if (typeof arg === 'number') {\n return String(arg);\n } else if (\n typeof arg === 'object' &&\n arg.toString &&\n (arg.toTwos || arg.dividedToIntegerBy)\n ) {\n if (arg.toPrecision) {\n return String(arg.toPrecision());\n }\n return arg.toString(10);\n }\n throw new Error(\n `while converting number to string, invalid number value '${arg}' type ${typeof arg}.`\n );\n};\n\nconst fromBase = (weiInput: number | string, decimals: number, optionsInput?: { pad?: boolean, commify?: boolean }): string => {\n let wei = toBN(weiInput);\n const negative = wei.lt(zero);\n const base = getValueOfUnit(decimals);\n const baseLength = base.toString().length - 1 || 1;\n const options = optionsInput || {};\n\n if (negative) {\n wei = wei.mul(negative1);\n }\n\n let fraction: any = wei.mod(base).toString(10);\n\n while (fraction.length < baseLength) {\n fraction = `0${fraction}`;\n }\n if (!options.pad) {\n // eslint-disable-next-line\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n }\n\n let whole = wei.div(base).toString(10);\n\n if (options.commify) {\n whole = whole.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ','); // eslint-disable-line\n }\n\n let value = `${whole}${fraction == '0' ? '' : `.${fraction}`}`;\n\n if (negative) {\n value = `-${value}`;\n }\n\n return value;\n};\n\nconst toBase = (etherInput: number, decimals: number): string => {\n let ether = numberToString(etherInput);\n const base = getValueOfUnit(decimals);\n const baseLength = base.toString().length - 1 || 1;\n\n // Is it negative?\n const negative = ether.substring(0, 1) === '-';\n if (negative) {\n ether = ether.substring(1);\n }\n\n if (ether === '.') {\n throw new Error(\n `[ethjs-unit] while converting number ${etherInput} to wei, invalid value`\n );\n }\n\n // Split it into a whole and fractional part\n const comps = ether.split('.');\n if (comps.length > 2) {\n throw new Error(\n `[ethjs-unit] while converting number ${etherInput} to wei, too many decimal points`\n );\n }\n\n let whole = comps[0],\n fraction = comps[1];\n\n if (!whole) {\n whole = '0';\n }\n if (!fraction) {\n fraction = '0';\n }\n if (fraction.length > baseLength) {\n throw new Error(\n `[ethjs-unit] while converting number ${etherInput} to wei, too many decimal places`\n );\n }\n\n while (fraction.length < baseLength) {\n fraction += '0';\n }\n\n whole = toBN(whole);\n fraction = toBN(fraction);\n let wei = whole.mul(base).add(fraction);\n\n if (negative) {\n wei = wei.mul(negative1);\n }\n\n return wei.toString();\n};\n\nexport { fromBase, toBase };\n","import { isNull } from 'lodash';\nimport { isBN, toBN } from 'web3-utils';\nimport { fromBase, toBase } from './units';\n\n/**\n * Localizes numbers to its specified currency\n * @returns {string} converted number\n */\nexport const localizeCurrency = ({\n currency = 'USD',\n number = '0.00' as any,\n rate = 1,\n small = false,\n verySmall = false\n}) => {\n if (isNull(number)) {\n return convertNumber({ currency, options: {}, convertedPrice: 0.0 });\n }\n const options = number.tooltipText\n ? {\n notation: 'compact',\n minimumFractionDigits: 3,\n maximumFractionDigits: 4\n }\n : small\n ? {\n notation: 'compact',\n minimumFractionDigits: 5,\n maximumFractionDigits: 6\n }\n : {};\n\n rate = typeof rate === 'string' ? currencyToNumber(rate) : rate;\n number =\n typeof number === 'string'\n ? currencyToNumber(number)\n : number.tooltipText\n ? currencyToNumber(number.tooltipText)\n : isBN(number)\n ? currencyToNumber(number.toString())\n : number;\n if (isNaN(number)) {\n return convertNumber({ currency, options: {}, convertedPrice: 0.0 });\n }\n const decimals = number.toString().split('.')[1]?.length || 0;\n const convertedPrice = small\n ? priceConversion(number, decimals, rate).toFixed(6)\n : verySmall\n ? priceConversion(number, decimals, rate).toFixed(7)\n : priceConversion(number, decimals, rate);\n return convertNumber({ currency, options, convertedPrice: Number.parseFloat(convertedPrice.toString()) });\n};\n\nconst priceConversion = (num: number, decimals: number, rate: number): number => {\n return parseFloat(fromBase(toBN(toBase(num, decimals)).muln(rate).toString(), decimals))\n}\n\n/**\n * Converts string representing fiat to a float\n * @param {string} currency\n * @returns {Number}\n */\nexport const currencyToNumber = (currency: string) =>\n typeof currency === 'string'\n ? parseFloat(currency.replace(/[,$₽<\\s]/g, ''))\n : currency;\n\ninterface NumberObj {\n currency: string,\n options: any,\n convertedPrice: number,\n}\n\n/**\n * Converts number to a local currency\n * @returns {string} Converted Number\n */\nconst convertNumber = (numberObj: NumberObj) => {\n try {\n return new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: numberObj.currency,\n currencyDisplay: 'narrowSymbol',\n ...numberObj.options\n }).format(numberObj.convertedPrice);\n } catch (e) {\n if (e instanceof Error)\n throw new Error(e.message);\n }\n};","import BigNumber from 'bignumber.js';\nimport { fromWei, toBN } from 'web3-utils';\nimport { isNaN as lodashIsNaN } from 'lodash';\nimport { localizeCurrency } from './localization';\n\n/**\n * ---------------------------------\n * Number Format Helper.\n * Used to format numerical strings in the UI\n * ---------------------------------\n */\n\n/** FormatterNumber Object:\n * {\n * value: '< 0.0000001', //string\n * tooltipText: '0.0000000001' //string || undefined,\n * unit: 'eth' // string || undefined,\n * };\n */\n\n/**\n * ---------------------------------\n * Constants\n * ---------------------------------\n */\n const SmallNumberBreakpoint = 0.000001;\n const SmallFiatBreakpoint = 0.01;\n const TenThousand = 1e4;\n const OneMillion = 1e6;\n const OneBillion = 1e9;\n const TenBillion = 1e10;\n const OneTrillion = 1e12;\n const OneQuadrillion = 1e15;\n \n const FormattedNumberUnit = {\n ETH: 'ETH',\n GWEI: 'Gwei',\n WEI: 'wei',\n PERCENT: '%',\n USD: '$',\n B: 'B',\n T: 'T',\n Q: 'Q',\n M: 'M',\n FIAT: 'fiat'\n };\n \n /* Set the global formatting options */\n const fmt = {\n decimalSeparator: '.',\n groupSeparator: ',',\n groupSize: 3\n };\n BigNumber.config({ FORMAT: fmt });\n BigNumber.config({ ROUNDING_MODE: 1 }); // equivalent\n \n /**\n * ---------------------------------\n * CORE Functions\n * ---------------------------------\n */\n \n /**\n * GROUP I: Format number\n * Converts an integer value to a formatted string using BigNumber.js\n * @param {any} _value - number to convert takes BigNumber || string || number 1000\n * @return {string} formatter number as a string ie: '1,000'\n */\n \n const formatIntegerToString = (_value: any) => {\n return new BigNumber(_value).toFormat();\n };\n \n /**\n * GROUP II: Formatted integers\n * Converts an integer value to a FormattedNumber object, returns value in { billions, trillions, \"> 1Q\"} if > 1 million\n * @param _value BigNumber || string || number}\n * @return {object} FormattedNumber\n */\n const formatIntegerValue = (_value: BigNumber | string | number) => {\n const value = new BigNumber(_value);\n /* Case I: value >= 1,000,000,000,000,000 */\n if (value.isGreaterThanOrEqualTo(OneQuadrillion)) {\n return convertToQuadrillion(value);\n }\n \n /* Case II: value >= 1,000,000,000,000 */\n if (value.isGreaterThanOrEqualTo(OneTrillion)) {\n return convertToTrillions(value);\n }\n \n /* Case III: value >= 1,000,000,000 */\n if (value.isGreaterThanOrEqualTo(OneBillion)) {\n return convertToBillions(value);\n }\n \n /* Case IV: value >= 1,000,000 */\n if (value.isGreaterThanOrEqualTo(OneMillion)) {\n return convertToMillions(value);\n }\n \n /* Case V: value < 1,000,000,000 */\n return { value: value.toFormat(), tooltipText: value.toFormat() };\n };\n \n /**\n * GROUP III: Floating point values\n * Converts a floating point value to a FormattedNumber object. Returns formatted value, unless the value is less then 0.000001.\n * Show upto 6 decimal points or to the last decimal point. Ie: 1.3 should be shown as 1.3. Follows Group II (formatIntegerValue) if value is greater than 1 million.\n * Use cases: Token Balances / Quantities / Tx fee/ Tx amount\n * @param {any} _value number to convert takes BigNumber || string || number\n * @returns {object} FormattedNumber with value as formatted string, and tooltipText\n */\n function formatFloatingPointValue(_value: any) {\n const value = new BigNumber(_value);\n /**\n * Case I: value === 0\n * Return: \"0\"\n */\n if (value.isZero() || value.isNaN()) {\n return { value: '0', tooltipText: '0' };\n }\n \n /**\n * Case II: value >= 1,000,000\n * Return: formated integer value with tooltip\n */\n if (value.isGreaterThanOrEqualTo(OneMillion)) {\n return formatIntegerValue(value);\n }\n \n /**\n * Case III: value >= 10,000\n * Return: a number, rounded to 2 decimal points and tooltip with full value if > 2 decimal places\n */\n if (value.isGreaterThanOrEqualTo(TenThousand)) {\n return getRoundNumber(value, 2);\n }\n \n /**\n * Case IV: value >= 1\n * Return: a number, rounded to 4 decimal points and tooltip with full value if > 4 decimal places\n */\n if (value.isGreaterThanOrEqualTo(1)) {\n return getRoundNumber(value, 4);\n }\n \n /**\n * Case V: value >= 0.0000001\n * Return: a number, rounded up to 7 decimal places and tooltip with full value if > 7 decimal places\n */\n if (value.isGreaterThanOrEqualTo(SmallNumberBreakpoint)) {\n return getRoundNumber(value, 6);\n }\n \n /**\n * Case V: value < 0.000001\n * Return: string \"< 0.000001\" and tooltip with full value\n */\n return {\n value: `< ${SmallNumberBreakpoint}`,\n tooltipText: value.toFormat()\n };\n }\n \n /**\n * GROUP IV: Balance ETH Value\n * Converts a floating point WEI value to a FormattedNumber object. Returns formatted value in ETH, Gwei or wei.\n * Show upto 6 decimal points or to the last decimal point. Ie: 1.3 should be shown as 1.3. Follows Group II (formatIntegerValue) if value is greater than 1 million.\n * Use cases: Dashboard ETH balance / Swap & Send Transaction Balance /Access Wallet with Mnemonic type wallet, in address table\n * @param {any} _value MUST BE IN WEI number to convert takes BigNumber || string || number\n * @returns {object} FormattedNumber with value as formatted string, unit and tooltipText\n */\n const formatBalanceEthValue = (_value: any) => {\n const value = new BigNumber(_value);\n const ethValue = new BigNumber(fromWei(_value.toString()));\n \n /**\n * Case I: value === 0\n * Return: \"0 ETH\"\n */\n if (value.isZero()) {\n return { value: '0', unit: FormattedNumberUnit.ETH };\n }\n /**\n * Case II: value < 10,000 wei\n * Return: small values in WEI (no conversion) and tooltip with ETH value\n */\n if (value.isLessThan(TenThousand)) {\n return {\n value: value.toFormat(),\n unit: FormattedNumberUnit.WEI,\n tooltipText: `${ethValue.toFormat()}`\n };\n }\n /**\n * Case III: value < 10 Billion Wei OR value < 10 Gwei\n * Return: Gwei value\n */\n if (value.isLessThan(TenBillion)) {\n return {\n value: new BigNumber(fromWei(_value.toString(), 'gwei')).toFormat(),\n unit: FormattedNumberUnit.GWEI,\n tooltipText: `${ethValue.toFormat()}`\n };\n }\n /**\n * Case IV: 0.00000001 ETH <= x < 0.000001 ETH\n * Return: rounded number to 8 dps\n */\n if (value.isLessThan(OneTrillion)) {\n const formatted = getRoundNumber(ethValue, 8);\n return {\n value: formatted.value,\n unit: FormattedNumberUnit.ETH,\n tooltipText: formatted.tooltipText\n };\n }\n \n /**\n * Case V: x >= 0.000001 ETH\n * Return: formatFloatingPointValue\n */\n const formatted = formatFloatingPointValue(ethValue);\n return {\n value: formatted.value,\n unit: FormattedNumberUnit.ETH,\n tooltipText: formatted.tooltipText\n };\n };\n /**\n * GROUP V: Gwei (gas) values\n * Converts a floating point WEI value to a FormattedNumber object. Returns formatted value in ETH, Gwei or wei.\n * Show upto 6 decimal points or to the last decimal point. Ie: 1.3 should be shown as 1.3. Follows Group II (formatIntegerValue) if value is greater than 1 million.\n * Use cases: Token Balances / Quantities / Tx fee/ Tx amount\n * @param {any} _value MUST BE IN WEI number to convert takes BigNumber || string || number\n * @returns {object} FormattedNumber with value as formatted string, unit and tooltipText\n */\n const formatGasValue = (_value: any) => {\n const value = new BigNumber(_value);\n const gweiValue = new BigNumber(fromWei(_value.toString(), 'gwei'));\n const ethValue = new BigNumber(fromWei(_value.toString()));\n const unit = FormattedNumberUnit.GWEI;\n \n /**\n * Case I: value === 0\n * Return: \"0 Gwei\"\n */\n if (value.isZero()) {\n return { value: '0', unit };\n }\n \n /**\n * Case II: x < 0.00001 Gwei\n * Return: number in wei and show tooltip with Gwei value\n */\n if (value.isLessThan(TenThousand)) {\n return {\n value: value.toFormat(),\n unit: FormattedNumberUnit.WEI,\n tooltipText: `${ethValue.toFormat()}`\n };\n }\n \n /**\n * Case III: 0.00001 Gwei =< X < 1 mil Gwei\n * Return: number in Gwei\n */\n \n if (gweiValue.isLessThan(OneMillion)) {\n return {\n value: formatFloatingPointValue(gweiValue).value,\n unit: unit,\n tooltipText: `${ethValue.toFormat()}`\n };\n }\n \n /**\n * Case IV: x >= 1 mill\n * Return: number in eth and show tooltip with Gwei value\n */\n const formatted = formatFloatingPointValue(ethValue);\n return {\n value: formatted.value,\n unit: FormattedNumberUnit.ETH,\n tooltipText: `${formatted.tooltipText}`\n };\n };\n /**\n * GROUP VI: Percentage values\n * Converts a percentage value to a FormattedNumber\n * @param {any} _value number to convert takes string || number\n * @returns {object} FormattedNumber with value as formatted string, unit and tooltipText\n */\n const formatPercentageValue = (_value: any) => {\n /* Strip '%' if necessary */\n const value = new BigNumber(_value.toString().replaceAll('%', ''));\n const unit = FormattedNumberUnit.PERCENT;\n /**\n * Case I: value === 0\n * Return: \"0%\"\n */\n if (value.isZero()) {\n return { value: '0', unit };\n }\n \n const isNegative = value.isNegative(); // Record whether value is negative\n const absoluteValue = value.absoluteValue(); // Get Absolute value\n \n /**\n * Case II: |value| > 10000\n * Return: >10,000% or <-10000% and tooltip\n */\n if (absoluteValue.isGreaterThan(TenThousand)) {\n const result = isNegative ? '< -10,000%' : '> 10,000%';\n return {\n value: result,\n unit: unit,\n tooltipText: `${value.toFormat()}%`\n };\n }\n \n /**\n * Case III: |value| >= 1000\n * Return: whole number and tooltips if has decimal points\n */\n if (absoluteValue.isGreaterThanOrEqualTo(1000)) {\n const dps = value.decimalPlaces();\n return {\n value: `${value.toFormat(0)}%`,\n unit: unit,\n tooltipText: dps ? `${value.toFormat()}%` : undefined\n };\n }\n \n /**\n * Case IV: |value| >= 0.01\n * Return: rounded to 2 decimal points number and tooltip if > 2 decimal points\n */\n if (absoluteValue.isGreaterThanOrEqualTo(0.01)) {\n return { value: `${getRoundNumber(value, 2, true).value}%`, unit: unit };\n }\n \n /**\n * Case V: |value| >= 0.01\n * Return: rounded to 2 decimal points number and tooltip if > 2 decimal points\n */\n if (absoluteValue.isGreaterThanOrEqualTo(SmallNumberBreakpoint)) {\n return { value: `${getRoundNumber(value, 6).value}%`, unit: unit };\n }\n \n /**\n * Case VI: If |value| < 0.000001\n * Return: '>-0.000001' '<0.000001'r and tooltip\n */\n const result = isNegative ? '> -0.000001%' : '< 0.000001%';\n return { value: result, unit: unit, tooltipText: `${value.toFormat()}%` };\n };\n\n/**\n * GROUP VII: Fiat Values\n * Converts a fiat value to a FormattedNumber\n * Shows upto 6 decimal points or to the last decimal point on 0.000001 <= X < 0.01.\n * Shows 2 decimal points or to the last decimal point on 0.01 <= X < 1,000,000.\n * @param _value: BigNumber\n * @returns Object FormattedNumber with value as formatted string and tooltipText\n */\n const formatFiatValue = (\n _value: string,\n options = { locale: 'en-US', currency: 'USD', rate: 1 }\n ) => {\n const value = new BigNumber(_value);\n /**\n * Case I: value === 0\n * Return: \"$0.00\"\n */\n if (value === undefined || value.isZero() || value.isNaN()) {\n return { value: localizeCurrency({ number: _value, ...options }) };\n }\n \n /**\n * Case II: value >= 1,000,000\n * Return: formated integer value with tooltip\n */\n if (value.isGreaterThanOrEqualTo(OneMillion)) {\n return {\n value: localizeCurrency({ number: formatIntegerValue(value), ...options })\n };\n }\n \n /**\n * Case V: value > 0.04\n * Return: rounded number up to 2 decimal points, no tooltip\n */\n if (value.isGreaterThanOrEqualTo(SmallFiatBreakpoint)) {\n return {\n value: localizeCurrency({\n number: getRoundNumber(value, 2, true).value,\n ...options\n })\n };\n }\n \n /**\n * Case VI: 0.000001 <= value < 0.01\n * Return: rounded number up to 6 decimal points\", no tooltip\n */\n if (value.isGreaterThanOrEqualTo(SmallNumberBreakpoint)) {\n return {\n value: localizeCurrency({\n number: getRoundNumber(value, 6).value,\n small: true,\n ...options\n })\n };\n }\n \n /**\n * Case V: value < 0.0000001\n * Return: string \"< $0.0000001\" and tooltip with full value with tooltip\n */\n return {\n value: `< ${localizeCurrency({\n number: SmallNumberBreakpoint,\n verySmall: true,\n ...options\n })}`,\n tooltipText: value.toFormat()\n };\n };\n\n/**\n * ---------------------------------\n * Helper Functions\n * Do not export then to use in formatting strings\n * ---------------------------------\n */\n\n/**\n * Helper function. Converts a value to Millions in FormattedNumber object\n * @param {BigNumber} value - number to convert takes BigNumber || string || number 1000\n * @return {object} - FormatterNumber\n */\n const convertToMillions = (value: BigNumber) => {\n const result = value.dividedBy(OneMillion);\n return {\n value: `${getRoundNumber(result, 4).value}${FormattedNumberUnit.M}`,\n tooltipText: value.toFormat()\n };\n };\n \n /**\n * Helper function. Converts a value to Billions in FormattedNumber object\n * @param {BigNumber} value - number to convert takes BigNumber || string || number\n * @return {object} - FormatterNumber\n */\n const convertToBillions = (value: BigNumber) => {\n const result = value.dividedBy(OneBillion);\n return {\n value: `${getRoundNumber(result, 4).value}${FormattedNumberUnit.B}`,\n tooltipText: value.toFormat()\n };\n };\n /**\n * Helper function. Converts a value to Trillions in FormattedNumber object\n * @param {BigNumber} value - number to convert takes BigNumber || string || number\n * @return {object} - FormatterNumber\n */\n const convertToTrillions = (value: BigNumber) => {\n const result = value.dividedBy(OneTrillion);\n return {\n value: `${getRoundNumber(result, 4).value}${FormattedNumberUnit.T}`,\n tooltipText: value.toFormat()\n };\n };\n \n /**\n * Helper function. returns Quadrillion in FormattedNumber object\n * @param {BigNumber} value - number to convert takes BigNumber || string || number\n * @return {object} - FormatterNumber\n */\n const convertToQuadrillion = (value: BigNumber) => {\n return {\n value: '> 1Q',\n unit: FormattedNumberUnit.Q,\n tooltipText: value.toFormat()\n };\n };\n \n /**\n * Helper function. Rounds a value to specified decimal points and tooltip with full value if > more decimal points then round\n * @param {BigNumber} value - number to convert takes BigNumber || string || number\n * @param {number} round - how many decimal points to round the number\n * @param {boolean} hasTrailingZeros - set this to true, if you want to dispaly trailing zeros ie: desired result 12.3000 instead of 12.3\n * @return {object} - FormatterNumber\n */\n const getRoundNumber = (value: BigNumber, round: number, hasTrailingZeros = false) => {\n let dps = value.decimalPlaces();\n if (dps === null) dps = 0;\n return {\n value: hasTrailingZeros\n ? value.decimalPlaces(round).toFormat(round)\n : value.decimalPlaces(round).toFormat(),\n tooltipText: dps > round ? value.toFormat() : undefined\n };\n };\n \n /**\n * Handles edge cases for web3 util toBN\n * @param {Number|String} number\n * @return {import('bn.js')} BN from web3\n */\n \n const toBNSafe = (number: number | string) => {\n if (lodashIsNaN(number) || !number) number = 0;\n return toBN(new BigNumber(number).toFixed(0));\n };\n \n export {\n formatIntegerToString,\n formatIntegerValue,\n formatFloatingPointValue,\n formatFiatValue,\n formatBalanceEthValue,\n formatPercentageValue,\n formatGasValue,\n toBNSafe\n };","import { Network } from './types';\nexport const Networks = >[\n {\n name: 'ETH',\n name_long: 'Ethereum',\n chainID: 1,\n tokens: [],\n icon: getIcon('ETH'),\n currencyName: 'ETH',\n gasPriceMultiplier: 1,\n coingeckoID: 'ethereum',\n service: 'myetherwallet.com-ws',\n url: 'wss://nodes.mewapi.io/ws/eth',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n {\n name: 'BTC',\n name_long: 'Bitcoin',\n chainID: 1,\n tokens: [],\n icon: getIcon('BTC'),\n currencyName: 'BTC',\n gasPriceMultiplier: 1,\n coingeckoID: 'bitcoin',\n service: '',\n url: '',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n {\n name: 'BCH',\n name_long: 'Bitcoin Cash',\n chainID: 1,\n tokens: [],\n icon: getIcon('BCH'),\n currencyName: 'BCH',\n gasPriceMultiplier: 1,\n coingeckoID: 'bitcoin-cash',\n service: '',\n url: '',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n // {\n // name: 'BSC',\n // name_long: 'Binance Smart Chain',\n // chainID: 56,\n // tokens: [],\n // icon: getIcon('BNB'),\n // currencyName: 'BNB',\n // gasPriceMultiplier: 1,\n // coingeckoID: 'binancecoin',\n // service: 'myetherwallet.com-ws',\n // url: 'wss://nodes.mewapi.io/ws/bsc',\n // port: 443,\n // auth: false,\n // username: '',\n // password: '',\n // },\n {\n name: 'MATIC',\n name_long: 'Polygon (Matic)',\n chainID: 137,\n tokens: [],\n icon: getIcon('MATIC'),\n currencyName: 'MATIC',\n gasPriceMultiplier: 1.7,\n coingeckoID: 'matic-network',\n service: 'myetherwallet.com-ws',\n url: 'wss://nodes.mewapi.io/ws/matic',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n {\n name: 'DOT',\n name_long: 'Polkadot',\n chainID: 1,\n tokens: [],\n icon: getIcon('DOT'),\n currencyName: 'DOT',\n gasPriceMultiplier: 1,\n coingeckoID: 'polkadot',\n service: '',\n url: '',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n {\n name: 'KSM',\n name_long: 'Kusama',\n chainID: 1,\n tokens: [],\n icon: getIcon('KSM'),\n currencyName: 'KSM',\n gasPriceMultiplier: 1,\n coingeckoID: 'kusama',\n service: '',\n url: '',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n // {\n // name: 'LTC',\n // name_long: 'Litecoin',\n // chainID: 1,\n // tokens: [],\n // icon: getIcon('LTC'),\n // currencyName: 'LTC',\n // gasPriceMultiplier: 1,\n // coingeckoID: 'litecoin',\n // service: '',\n // url: '',\n // port: 443,\n // auth: false,\n // username: '',\n // password: '',\n // },\n // {\n // name: 'DOGE',\n // name_long: 'Dogecoin',\n // chainID: 1,\n // tokens: [],\n // icon: getIcon('DOGE'),\n // currencyName: 'DOGE',\n // gasPriceMultiplier: 1,\n // coingeckoID: 'dogecoin',\n // service: '',\n // url: '',\n // port: 443,\n // auth: false,\n // username: '',\n // password: '',\n // },\n {\n name: 'KDA',\n name_long: 'Kadena',\n chainID: 1,\n tokens: [],\n icon: getIcon('KDA'),\n currencyName: 'KDA',\n gasPriceMultiplier: 1,\n coingeckoID: 'kadena',\n service: '',\n url: '',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n];\n\nfunction getIcon(currency: string) {\n return require(`@/assets/images/crypto/${currency}.svg`);\n}\n","class Crypto {\n decimals: number;\n img: string;\n name: string;\n subtext: string;\n value: string;\n symbol: string;\n network: string;\n\n constructor(\n name: string,\n subtext: string,\n network: string,\n decimals: number,\n img: string\n ) {\n this.decimals = decimals;\n this.img = img;\n this.name = name;\n this.subtext = subtext;\n this.value = name;\n this.symbol = name;\n this.network = network;\n }\n}\ninterface Fiat {\n name: string;\n value: string;\n img: string;\n}\n// Provider Quote Object\ninterface QuoteData {\n cryptoToFiat: string;\n selectedCryptoName: string;\n plusFeeF: string;\n includesFeeText: string;\n networkFeeText: string;\n dailyLimit: string;\n monthlyLimit: string;\n fiatAmount: string;\n}\ninterface SubmitData {\n simplex_quote: QuoteData;\n address: string;\n buy_obj: QuoteData; // Rename when done\n open_providers: number;\n selected_currency: Crypto;\n selected_fiat: Fiat;\n fiat_amount: string;\n disable_moonpay: boolean;\n}\n\ninterface SubmitSellData {\n address: string;\n selected_currency: Crypto;\n selected_fiat: Fiat;\n fiat_amount: string;\n}\ninterface Network {\n name: string;\n name_long: string;\n chainID: number;\n tokens: Array;\n icon: any;\n currencyName: string;\n gasPriceMultiplier: number;\n coingeckoID: string;\n service: string;\n url: string;\n port: number;\n auth: boolean;\n username: string;\n password: string;\n}\ninterface Data {\n conversion_rates: { [currency: string]: number };\n limits: { [currency: string]: { min: number; max: number } };\n prices: { [currency: string]: string };\n}\nexport { Crypto, Fiat, QuoteData, SubmitData, SubmitSellData, Network, Data };\n","//\n// PuchaseSimplexFeeModel\n// MEWmodels\n//\n// Created by Mikhail Nikanorov on 3/24/21.\n// Copyright © 2021 MyEtherWallet Inc. All rights reserved.\n//\n\nimport {\n FiatCurrencyConversionRate,\n PurchaseComponentsFeeDescription,\n PurchaseCryptoCurrency,\n PurchasePrice,\n} from './types';\nimport { BigNumber } from 'bignumber.js';\n\nconst _providerMinFee = 10.0;\nconst _providerPlainFee = 0.0;\nconst providerReducedPercentFee = 0.0175;\nconst providerPercentFee = 0.0525;\nlet networkFee: number;\n\nexport function providerMinFee(\n fiatConversionRate: FiatCurrencyConversionRate\n): number {\n return (\n (_providerMinFee * fiatConversionRate.rate) / fiatConversionRate.baseRate\n );\n}\n\nexport function providerPlainFee(\n fiatConversionRate: FiatCurrencyConversionRate\n): number {\n return (\n (_providerPlainFee * fiatConversionRate.rate) / fiatConversionRate.baseRate\n );\n}\n\n// MARK: - LifeCycle\n\nexport function init(NetworkFee: number | null) {\n networkFee = NetworkFee ?? 2.65;\n}\n\n// MARK: - PurchaseProviderFee\n\nexport function feeDescription(\n fiatConversionRate: FiatCurrencyConversionRate\n): PurchaseComponentsFeeDescription {\n const decimals = fiatConversionRate.fiatCurrency.decimals;\n const minFee = roundAmount(\n providerMinFee(fiatConversionRate),\n decimals,\n BigNumber.ROUND_CEIL\n );\n const networkFeeRounded = roundAmount(\n networkFee * fiatConversionRate.rate,\n decimals,\n BigNumber.ROUND_CEIL\n );\n return new PurchaseComponentsFeeDescription(\n providerPercentFee,\n minFee,\n networkFeeRounded\n );\n}\n\nexport function calculateCrypto(\n Amount: number,\n cryptoCurrency: PurchaseCryptoCurrency,\n price: PurchasePrice,\n fiatConversionRate: FiatCurrencyConversionRate\n) {\n if (price.price <= 0) {\n return 0;\n }\n const decimals = price.fiatCurrency.decimals;\n const amount = roundAmount(Amount, decimals, BigNumber.ROUND_FLOOR);\n const fee = roundAmount(\n fiatFee(amount, fiatConversionRate),\n decimals,\n BigNumber.ROUND_HALF_EVEN\n );\n const base = roundAmount(\n fiatBase(amount, fee),\n decimals,\n BigNumber.ROUND_FLOOR\n );\n\n if (base <= 0) {\n return 0;\n }\n\n const crypto = Math.max(base / price.price, 0);\n return roundAmount(crypto, cryptoCurrency.decimals, BigNumber.ROUND_FLOOR);\n}\n\nexport function calculateFiat(\n Amount: number,\n cryptoCurrency: PurchaseCryptoCurrency,\n price: PurchasePrice,\n fiatConversionRate: FiatCurrencyConversionRate\n) {\n const amount = roundAmount(\n Amount,\n cryptoCurrency.decimals,\n BigNumber.ROUND_FLOOR\n );\n const base = roundAmount(\n cryptoBase(amount, price.price),\n price.fiatCurrency.decimals,\n BigNumber.ROUND_FLOOR\n );\n\n const totalMin = cryptoTotal(true, base, fiatConversionRate);\n const totalMax = cryptoTotal(false, base, fiatConversionRate);\n\n return roundAmount(\n Math.max(totalMin, totalMax),\n price.fiatCurrency.decimals,\n BigNumber.ROUND_CEIL\n );\n}\n\nexport function calculateFiatFee(\n Amount: number,\n price: PurchasePrice,\n fiatConversionRate: FiatCurrencyConversionRate\n) {\n if (price.price <= 0) {\n return 0;\n }\n const decimals = price.fiatCurrency.decimals;\n const amount = roundAmount(Amount, decimals, BigNumber.ROUND_FLOOR);\n const fee = roundAmount(\n fiatFee(amount, fiatConversionRate),\n decimals,\n BigNumber.ROUND_HALF_EVEN\n );\n const base = roundAmount(\n fiatBase(amount, fee),\n decimals,\n BigNumber.ROUND_FLOOR\n );\n if (base <= 0) {\n return 0;\n }\n\n return amount - base;\n}\n\n// MARK: - Calculation\n\n// MARK: Fiat -> Crypto\n\nexport function fiatFee(\n amount: number,\n fiatConversionRate: FiatCurrencyConversionRate\n) {\n const convertedMinFee = providerMinFee(fiatConversionRate);\n const minFee =\n (amount - convertedMinFee) * providerReducedPercentFee + convertedMinFee;\n const calculatedFee = amount * providerPercentFee;\n return Math.max(minFee, calculatedFee);\n}\n\nfunction fiatBase(amount: number, fee: number) {\n return Math.max(amount - fee, 0);\n}\n\n// MARK: Crypto -> Fiat\n\nexport function cryptoTotal(\n min: boolean,\n amount: number,\n fiatConversionRate: FiatCurrencyConversionRate\n) {\n let total: number;\n if (min) {\n const convertedMinFee = providerMinFee(fiatConversionRate);\n total =\n (amount + (Number(1) - providerReducedPercentFee) * convertedMinFee) /\n (Number(1) - providerReducedPercentFee);\n } else {\n total = amount / (Number(1) - providerPercentFee);\n }\n return total;\n}\n\nfunction cryptoBase(amount: number, price: number): number {\n return amount * price;\n}\n/**\n *\n * @param amount Number to be formatted\n * @param decimalPlaces Decimal places to format to\n * @param roundingMode BigNumber RoundingMode to round number\n * @returns Rounded number\n */\nfunction roundAmount(\n amount: number,\n decimalPlaces: number,\n roundingMode: BigNumber.RoundingMode\n): number {\n return new BigNumber(amount)\n .decimalPlaces(decimalPlaces, roundingMode)\n .toNumber();\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, unref as _unref, isRef as _isRef, toDisplayString as _toDisplayString, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ed869630\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"pa-3 pa-sm-2 pa-md-2 components--buy-form\",\n ref: \"formDiv\"\n}\nconst _hoisted_2 = { class: \"mb-6 mt-6\" }\nconst _hoisted_3 = { class: \"d-flex align-center justify-space-between mb-3\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 textDark--text\" }, \" How much do you want to spend? \", -1))\nconst _hoisted_5 = {\n key: 0,\n class: \"ml-2 d-flex align-center\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"h3 font-weight-regular mr-1\" }, \"Loading\", -1))\nconst _hoisted_7 = { class: \"d-flex mt-2\" }\nconst _hoisted_8 = [\"src\", \"alt\"]\nconst _hoisted_9 = [\"onClick\"]\nconst _hoisted_10 = { class: \"d-flex align-center\" }\nconst _hoisted_11 = [\"src\", \"alt\"]\nconst _hoisted_12 = { class: \"text-capitalize ml-2 my-2 d-flex flex-column\" }\nconst _hoisted_13 = { class: \"mb-6\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 textDark--text mb-3\" }, \"You will get\", -1))\nconst _hoisted_15 = { class: \"d-flex mt-2\" }\nconst _hoisted_16 = [\"src\", \"alt\"]\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 textDark--text mb-3\" }, \" Where should we send your crypto? \", -1))\nconst _hoisted_18 = {\n key: 0,\n class: \"pt-2 text-center\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-white font-weight-bold\" }, \"BUY NOW\", -1))\nconst _hoisted_20 = {\n key: 1,\n class: \"text-center py-5\"\n}\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"text-center font-weight-bold mt-3\",\n style: {\"line-height\":\"1.4rem\"}\n}, \" Processing purchase.... \", -1))\n\nimport {\n computed,\n reactive,\n watch,\n onMounted,\n PropType,\n onUnmounted,\n ref,\n Ref,\n} from \"vue\";\nimport BigNumber from \"bignumber.js\";\nimport {\n supportedCrypto,\n supportedFiat,\n getCryptoPrices,\n currencySymbols,\n} from \"./prices\";\nimport { isObject, isNumber, isString, isEmpty } from \"lodash\";\nimport WAValidator from \"multicoin-address-validator\";\nimport { isHexStrict, isAddress, fromWei, toBN, isHex } from \"web3-utils\";\nimport { encodeAddress } from \"@polkadot/keyring\";\nimport MewAddressSelect from \"../MewAddressSelect/MewAddressSelect.vue\";\nimport {\n formatFiatValue,\n formatFloatingPointValue,\n} from \"@/helpers/numberFormatHelper\";\nimport { Networks } from \"./network/networks\";\nimport { Crypto, Data, Network, Fiat } from \"./network/types\";\nimport Web3 from \"web3\";\nimport { init, calculateFiatFee } from \"./models/purchaseSimplexFeeModel\";\nimport { fromBase, toBase } from \"@/helpers/units\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BuyForm',\n props: {\n cryptoSelected: {\n type: Object,\n default: () => ({}),\n },\n networkSelected: {\n type: Object as PropType,\n default: () => ({}),\n },\n fiatSelected: {\n type: Object as PropType,\n default: () => ({}),\n },\n fiatAmount: {\n type: String,\n default: \"0\",\n },\n},\n emits: [\n \"success\",\n \"selectedCurrency\",\n \"selectedFiat\",\n \"toAddress\",\n \"setQuotes\",\n \"selectedNetwork\",\n \"selectCurrency\",\n],\n setup(__props, { emit }) {\n\nconst props = __props\n\nconst defaultFiatValue = \"0\";\nlet gasPrice = \"0\";\nconst polkadot_chains = [\"DOT\", \"KSM\"];\nconst bitcoin_chains = [\"BTC\", \"BCH\", \"DOGE\", \"LTC\"];\nconst other_chains = [\"KDA\"];\n// eslint-disable-next-line no-undef\nlet priceTimer: NodeJS.Timer;\nlet fiatFilter = \"\";\n\nonMounted(async () => {\n form.address = \"\";\n\n // Get crypto Data\n await getPrices();\n if (!isEmpty(props.fiatSelected)) {\n form.cryptoSelected = props.cryptoSelected.name;\n form.fiatSelected = props.fiatSelected.name;\n form.fiatAmount = props.fiatAmount;\n fiatToCrypto();\n } else {\n // Load URL parameter value and verify crypto address\n loadUrlParameters();\n if (form.fiatAmount === \"0\") {\n cryptoToFiat();\n }\n }\n await fetchGasPrice();\n priceTimer = setInterval(getPrices, 1000 * 60 * 2);\n});\n\nonUnmounted(async () => {\n clearInterval(priceTimer);\n});\n\n// emits\n\n\n// props\n\n\n// data\n\n// non-reactive\nconst fiatItems: string[] = supportedFiat;\nconst filteredFiatItems: Ref = ref(fiatItems);\nconst updateFiatFilter = (value: string) => {\n fiatFilter = value;\n filteredFiatItems.value = fiatItems.filter((item) =>\n item.toLowerCase().includes(fiatFilter.toLowerCase())\n );\n};\n\nlet simplexData: { [key: string]: Data } = {\n ETH: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n MATIC: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n BNB: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n DOT: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n KSM: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n};\nlet moonpayData: { [key: string]: Data } = {\n ETH: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n MATIC: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n BNB: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n DOT: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n KSM: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n};\n// reactive\nconst form = reactive({\n fiatAmount: defaultFiatValue,\n fiatSelected: \"USD\",\n cryptoAmount: \"1\",\n cryptoSelected: \"ETH\",\n address: \"\",\n validAddress: false,\n addressErrorMsg: \"\",\n reCaptchaToken: \"\",\n addressError: false,\n});\nconst loading = reactive({\n data: false,\n showAlert: false,\n processingBuyForm: false,\n alertMessage: \"\",\n});\nconst dropdown = reactive({\n fiat: false,\n crypto: false,\n});\n\n// watchers\nwatch(\n () => form.cryptoSelected,\n () => {\n verifyAddress();\n fiatToCrypto();\n minMaxError();\n }\n);\n\nwatch(\n () => form.fiatSelected,\n () => {\n verifyAddress();\n cryptoToFiat();\n minMaxError();\n }\n);\n\nwatch(\n () => form.fiatAmount,\n () => {\n if (!loading.data) {\n minMaxError();\n }\n }\n);\nwatch(\n () => form.cryptoAmount,\n () => {\n if (!loading.data) {\n minMaxError();\n }\n }\n);\n\n// computed\nconst web3 = computed(() => {\n const supportedNodes: { [key: string]: string } = {\n ETH: \"ETH\",\n BSC: \"BSC\",\n MATIC: \"MATIC\",\n };\n const nodeType = supportedNodes[props.cryptoSelected.network];\n const node = Networks.find((network) => {\n return network.name === nodeType;\n });\n return new Web3(node ? node.url : \"\");\n});\n\n/**\n * Moonpay Fee calculations\n */\nconst includesFeeText = computed(() => {\n return `Includes ${percentFee.value} fee (${\n formatFiatValue(fromBase(minFee.value.toString(), 2), currencyConfig.value)\n .value\n } min)`;\n});\nconst networkFeeText = computed(() => {\n return `${form.cryptoSelected} network fee (for transfers to your wallet) ~${\n formatFiatValue(networkFeeToFiat.value.toString(), currencyConfig.value)\n .value\n }`;\n});\nconst dailyLimit = (isMoonpay = false) => {\n const simplexMax = isValidData(simplexData)\n ? simplexData[form.cryptoSelected].limits[form.fiatSelected].max\n : 0;\n const moonpayMax = isValidData(moonpayData)\n ? moonpayData[form.cryptoSelected].limits[form.fiatSelected].max\n : 0;\n const value = isMoonpay ? moonpayMax : simplexMax;\n return `Daily limit: ${\n formatFiatValue(value.toString(), currencyConfig.value).value\n }`;\n};\nconst monthlyLimit = () => {\n const value = BigNumber(fiatMultiplier.value).times(50000);\n return `Monthly limit: ${\n formatFiatValue(value.toString(), currencyConfig.value).value\n }`;\n};\nconst currencyConfig = computed(() => {\n const fiat = form.fiatSelected;\n const rate =\n moonpayData[form.cryptoSelected]?.conversion_rates[fiat] ||\n simplexData[form.cryptoSelected]?.conversion_rates[fiat];\n const currency = fiat;\n return { locale: \"en-US\", rate, currency };\n});\nconst fiatMultiplier = computed(() => {\n if (hasData()) {\n const selectedCurrencyPrice =\n moonpayData[form.cryptoSelected]?.conversion_rates[form.fiatSelected];\n return selectedCurrencyPrice\n ? BigNumber(selectedCurrencyPrice).toString()\n : toBN(1).toString();\n }\n return toBN(1).toString();\n});\nconst networkFee = computed(() => {\n return fromWei(networkFeeWei.value);\n});\nconst networkFeeWei = computed(() => {\n return toBN(gasPrice).muln(21000).toString();\n});\nconst priceOb = computed(() => {\n return isValidData(moonpayData)\n ? moonpayData[form.cryptoSelected].prices[form.fiatSelected]\n : simplexData[form.cryptoSelected].prices[form.fiatSelected];\n});\nconst networkPrice = computed(() => {\n return isValidData(moonpayData)\n ? moonpayData[props.networkSelected.currencyName].prices[form.fiatSelected]\n : simplexData[props.networkSelected.currencyName].prices[form.fiatSelected];\n});\nconst networkFeeToFiat = computed(() => {\n return fromWei(\n toBN(networkFeeWei.value).muln(parseFloat(networkPrice.value))\n );\n});\nconst minFee = computed(() => {\n return toBN(399); // Minimum 3.99 in respective currency\n});\nconst plusFee = computed(() => {\n const fiatAmount = toBN(toBase(parseFloat(form.fiatAmount), 2));\n const fee = isEUR.value\n ? fiatAmount.muln(0.007) // 0.7% SEPA fee\n : fiatAmount.muln(0.0325); // Standard 3.25% fee\n const withFee = fee.gt(minFee.value)\n ? fiatAmount.sub(fee)\n : fiatAmount.sub(fee).sub(minFee.value);\n return fromBase(\n withFee.subn(parseFloat(networkFeeToFiat.value)).toString(),\n 2\n );\n});\nconst plusFeeF = computed(() => {\n const isAvailable = isValidData(moonpayData);\n if (!isAvailable)\n return `${form.cryptoSelected} is not available for this provider`;\n const moonpayLimit =\n moonpayData[form.cryptoSelected]?.limits[form.fiatSelected];\n return moonpayLimit.max > Number.parseFloat(form.fiatAmount)\n ? formatFiatValue(plusFee.value, currencyConfig.value).value\n : `Value exceeds max: ${\n formatFiatValue(moonpayLimit.max.toString(), currencyConfig.value).value\n }`;\n});\nconst percentFee = computed(() => {\n return isEUR.value ? \"0.7%\" : \"3.25%\";\n});\nconst isEUR = computed(() => {\n return form.fiatSelected === \"EUR\" || form.fiatSelected === \"GBP\";\n});\n\nconst moonpayCryptoAmount = computed(() => {\n const moonpayAvailable = isValidData(moonpayData);\n return moonpayAvailable\n ? formatFloatingPointValue(\n BigNumber(plusFee.value).div(priceOb.value).toString()\n ).value\n : 0;\n});\n\n/**\n * Simplex Fee calculations\n */\nconst simplexAvailable = computed(() => isValidData(simplexData));\nconst fiatCurrency = computed(() => {\n return { decimals: form.fiatSelected === \"JPY\" ? 0 : 2 };\n});\nconst simplexPrice = computed(() => {\n return new BigNumber(\n simplexAvailable.value\n ? simplexData[form.cryptoSelected].prices[form.fiatSelected]\n : 0\n );\n});\nconst simplexFiatAmount = computed(() => {\n return simplexAvailable.value ? form.fiatAmount : \"0.00\";\n});\nconst simplexFiatFee = computed(() => {\n const { fiatSelected, cryptoSelected } = form;\n return simplexAvailable.value\n ? calculateFiatFee(\n Number.parseFloat(simplexFiatAmount.value),\n {\n price: simplexPrice.value.toNumber(),\n fiatCurrency: fiatCurrency.value,\n },\n {\n rate: simplexData[cryptoSelected].conversion_rates[fiatSelected],\n baseRate: simplexData[cryptoSelected].conversion_rates[\"USD\"],\n fiatCurrency: fiatCurrency.value,\n }\n )\n : 0;\n});\nconst simplexPlusFee = computed(() => {\n return BigNumber(simplexFiatAmount.value)\n .minus(simplexFiatFee.value)\n .toFixed(fiatCurrency.value.decimals);\n});\nconst simplexPlusFeeF = computed(() =>\n simplexAvailable.value\n ? formatFiatValue(simplexPlusFee.value, currencyConfig.value).value\n : `${form.cryptoSelected} is not available for this provider`\n);\nconst simplexIncludesFeeText = computed(() => {\n return `Includes 5.25% fee (${\n formatFiatValue(BigNumber(10.0).toString(), currencyConfig.value).value\n } min)`;\n});\nconst simplexCryptoAmount = computed(() => {\n const amount = BigNumber(simplexPlusFee.value || \"0\");\n return simplexAvailable.value\n ? formatFloatingPointValue(amount.dividedBy(simplexPrice.value).toString())\n .value\n : 0;\n});\n\n// Icons for selected token\nconst fiatIcon = computed(() => {\n return require(`@/assets/images/fiat/${form.fiatSelected}.svg`);\n});\nconst cryptoIcon = computed(() => {\n return require(`@/assets/images/crypto/${form.cryptoSelected}.svg`);\n});\n\n// methods\nconst getIcon = (currency: string, isFiat = true) => {\n return require(`@/assets/images/${\n isFiat ? \"fiat\" : \"crypto\"\n }/${currency}.svg`);\n};\n\nconst selectCurrency = (currency: string) => {\n form.fiatSelected = currency;\n dropdown.fiat = false;\n emit(\"selectedFiat\", form.fiatSelected);\n};\n\nconst isValidForm = computed(() => {\n return (\n minMax.value &&\n form.fiatSelected &&\n form.cryptoSelected &&\n form.address &&\n !form.addressError &&\n form.addressErrorMsg === \"\" &&\n loading.alertMessage === \"\" &&\n form.validAddress\n );\n});\n\nconst rules = [\n (e: any) => {\n if (isString(e) && e?.length >= 1) return true;\n if (!isNumber(e)) return \"Must be a valid number\";\n return true;\n },\n];\nconst isValidData = (data: { [key: string]: Data }) => {\n const { cryptoSelected, fiatSelected } = form;\n return !isEmpty(data[cryptoSelected]?.limits[fiatSelected]);\n};\nconst hasData = () => {\n return isValidData(simplexData) || isValidData(moonpayData);\n};\nconst min = computed(() => {\n const { cryptoSelected, fiatSelected } = form;\n if (!hasData()) return 0;\n const simplexLimit = simplexData[cryptoSelected]?.limits[fiatSelected];\n const moonpayLimit = moonpayData[cryptoSelected]?.limits[fiatSelected];\n if (!isValidData(moonpayData)) return simplexLimit.min;\n if (!isValidData(simplexData)) return moonpayLimit.min;\n return moonpayLimit.min < simplexLimit.min\n ? moonpayLimit.min\n : simplexLimit.min;\n});\nconst max = computed(() => {\n const { cryptoSelected, fiatSelected } = form;\n if (!hasData()) return 0;\n const simplexLimit = simplexData[cryptoSelected]?.limits[fiatSelected];\n const moonpayLimit = moonpayData[cryptoSelected]?.limits[fiatSelected];\n if (!isValidData(moonpayData)) return simplexLimit.max;\n if (!isValidData(simplexData)) return moonpayLimit.max;\n return moonpayLimit.max > simplexLimit.max\n ? moonpayLimit.max\n : simplexLimit.max;\n});\nconst minMax = computed(() => {\n const { fiatAmount } = form;\n if (!hasData()) return false;\n const limit = { min: min.value, max: max.value };\n const amount = new BigNumber(fiatAmount || 0);\n const valid =\n amount.gte(new BigNumber(limit.min)) &&\n amount.lte(new BigNumber(limit.max));\n return valid;\n});\n\nconst minMaxError = () => {\n const limit = { min: min.value, max: max.value };\n if (!minMax.value) {\n loading.showAlert = true;\n loading.alertMessage = `Fiat price must be between ${\n currencySymbols[form.fiatSelected]\n }${limit.min} and ${currencySymbols[form.fiatSelected]}${limit.max}`;\n return;\n }\n loading.showAlert = false;\n loading.alertMessage = \"\";\n};\nconst getPrices = async () => {\n try {\n loading.data = true;\n const data: any[] = (await getCryptoPrices()) || [];\n data.forEach((arr: any) => {\n arr.forEach((d: any) => {\n const tmp: Data = { conversion_rates: {}, limits: {}, prices: {} };\n\n d.conversion_rates.forEach(\n (r: any) => (tmp.conversion_rates[r.fiat_currency] = r.exchange_rate)\n );\n d.limits.forEach((l: any) => {\n if (l.type === \"WEB\") tmp.limits[l.fiat_currency] = l.limit;\n });\n d.prices.forEach((p: any) => (tmp.prices[p.fiat_currency] = p.price));\n const tokenName = d.crypto_currencies[0];\n const mainCoin = Networks.find(\n (item) => item.currencyName === tokenName\n );\n // Hard code names/decimals for now\n const tokensInfo: { [key: string]: any } = {\n USDT: { name: \"Tether\", decimals: 6 },\n USDC: { name: \"USD Coin\", decimals: 6 },\n DAI: { name: \"Dai Stablecoin\", decimals: 18 },\n };\n // If token name isnt a native network coin\n // assume the token is ERC-20(ETH)\n if (!mainCoin) {\n const foundToken = Networks[0].tokens.find(\n (item) => item.name === tokenName\n );\n if (!foundToken) {\n const tokenInfo = tokensInfo[tokenName];\n Networks[0].tokens.push(\n new Crypto(\n tokenName,\n tokenInfo.name,\n \"ETH\",\n tokenInfo.decimals,\n getIcon(tokenName, false)\n )\n );\n }\n }\n if (d.name === \"SIMPLEX\") simplexData[tokenName] = tmp;\n else if (d.name === \"MOONPAY\") moonpayData[tokenName] = tmp;\n });\n });\n loading.data = false;\n emit(\"setQuotes\", simplexData, moonpayData);\n } catch (e: any) {\n errorHandler(e);\n }\n};\n\nconst openTokenSelect = () => {\n emit(\n \"selectedCurrency\",\n {\n name: form.fiatSelected,\n value: form.fiatSelected,\n // eslint-disable-next-line\n img: require(`@/assets/images/fiat/${form.fiatSelected}.svg`),\n },\n form.fiatAmount\n );\n};\n\nconst kdaValidator = (address: string) => {\n const kPrefixed = address.substr(0, 2) === \"k:\";\n const checkHex = isHex(address.substring(2));\n return kPrefixed && checkHex;\n};\n\nconst addressValid = computed(() => {\n return other_chains.includes(form.cryptoSelected)\n ? form.cryptoSelected === \"KDA\"\n ? kdaValidator(form.address)\n : WAValidator.validate(form.address, form.cryptoSelected)\n : !polkadot_chains.includes(form.cryptoSelected)\n ? bitcoin_chains.includes(form.cryptoSelected)\n ? WAValidator.validate(form.address, form.cryptoSelected)\n : WAValidator.validate(form.address, form.cryptoSelected) &&\n validAddress(form.address)\n : isValidAddressPolkadotAddress(\n form.address,\n form.cryptoSelected === \"DOT\" ? 0 : 2\n );\n});\n\n// Best price for display\nconst bestPrice = computed(() => {\n const { fiatSelected, cryptoSelected } = form;\n const simplexPrice = new BigNumber(\n simplexData[cryptoSelected]?.prices[fiatSelected]\n );\n const moonpayPrice = new BigNumber(\n moonpayData[cryptoSelected]?.prices[fiatSelected]\n );\n if (moonpayPrice.isNaN()) return simplexPrice;\n if (simplexPrice.isNaN()) return moonpayPrice;\n return simplexPrice.lte(moonpayPrice) ? simplexPrice : moonpayPrice;\n});\n\nconst fiatToCrypto = () => {\n const price = bestPrice.value;\n const amount = new BigNumber(form.fiatAmount || \"0\");\n form.cryptoAmount = BigNumber(amount).div(price).toString();\n};\n\nconst cryptoToFiat = () => {\n const price = bestPrice.value;\n const amount = new BigNumber(form.cryptoAmount || \"0\");\n form.fiatAmount = amount.times(price).toFixed(2).toString();\n};\n\nconst loadUrlParameters = () => {\n const queryString = window.location.search;\n if (queryString) {\n const urlParams = new URLSearchParams(queryString);\n const queryCryptoAmount = urlParams.get(\"crypto_amount\");\n const queryFiat = urlParams.get(\"fiat\");\n const queryCrypto = urlParams.get(\"crypto\");\n const queryTo = urlParams.get(\"to\");\n\n // validate queries\n const isSupportedCrypto = supportedCrypto.find((cItem) => {\n if (cItem.toLowerCase() === queryCrypto?.toLowerCase()) {\n return queryCrypto;\n }\n });\n\n const isSupportedFiat = supportedCrypto.find((cItem) => {\n if (cItem.toLowerCase() === queryCrypto?.toLowerCase()) {\n return queryCrypto;\n }\n });\n\n const fiat = queryFiat && isSupportedFiat ? queryFiat.toUpperCase() : \"USD\";\n const crypto =\n queryCrypto && isSupportedCrypto ? queryCrypto.toUpperCase() : \"ETH\";\n form.fiatSelected = fiat;\n\n let tokensList;\n if (crypto !== props.networkSelected.name) {\n const network = Networks.find((network) => {\n return network.name === crypto;\n });\n if (!network) return;\n // generate token list\n let decimals = 18;\n\n if (network.name === \"DOT\") decimals = 10;\n else if (network.name === \"KSM\") decimals = 12;\n const mainCoin = new Crypto(\n network.currencyName,\n network.name_long,\n network.name,\n decimals,\n network.icon\n );\n tokensList = [mainCoin];\n if (form.fiatSelected === \"CAD\") return tokensList;\n if (network.tokens) tokensList = tokensList.concat(network.tokens);\n emit(\"selectedNetwork\", network);\n }\n const foundToken = tokensList\n ? tokensList.find((item) => {\n return item.symbol === crypto;\n })\n : undefined;\n if (foundToken) emit(\"selectCurrency\", foundToken);\n form.cryptoSelected = foundToken ? foundToken.symbol : crypto;\n form.address = queryTo ? queryTo : \"\";\n if (queryTo) {\n verifyAddress();\n }\n const queryCryptoAmountHolder = BigNumber(\n queryCryptoAmount ? queryCryptoAmount : \"1\"\n );\n\n const locPriceOb = BigNumber(priceOb.value);\n const locMin = BigNumber(min.value);\n const cryptoToFiat = BigNumber(\n queryCryptoAmountHolder.times(locPriceOb)\n ).lt(locMin)\n ? locMin.div(locPriceOb).times(2).toString()\n : queryCryptoAmountHolder;\n form.cryptoAmount = BigNumber(cryptoToFiat).toNumber();\n }\n};\n\nconst errorHandler = (e: any): void => {\n const value = toBN(form.fiatAmount).gt(toBN(0));\n if (value) {\n const isErrorObj = isObject(e.response.data.error);\n if (isErrorObj) {\n // eslint-disable-next-line\n const hasErr = e.response.data.error.hasOwnProperty(\"errors\");\n if (hasErr) {\n loading.alertMessage = e.response.data.error.errors[0].message;\n }\n } else {\n loading.alertMessage = e.response.data.error;\n }\n }\n};\n\nconst validAddress = (address: string) => {\n return address && isHexStrict(address) && isAddress(address);\n};\n\nconst isValidAddressPolkadotAddress = (\n address: string,\n cryptoPrefix: number\n) => {\n try {\n const encodedAddress = encodeAddress(address, cryptoPrefix);\n return address === encodedAddress;\n } catch (error) {\n return false;\n }\n};\n\nconst addressInput = (value: string): void => {\n form.address = value;\n verifyAddress();\n};\n\nconst verifyAddress = (): void => {\n const valid = addressValid.value;\n if (valid) {\n form.addressErrorMsg = \"\";\n form.addressError = false;\n form.validAddress = true;\n } else {\n if (!form.address) {\n form.addressErrorMsg = \"\";\n form.validAddress = false;\n } else {\n form.addressErrorMsg = `Please provide a valid ${form.cryptoSelected} address`;\n form.validAddress = false;\n }\n }\n};\n\nconst submitForm = (): void => {\n const { fiatSelected, cryptoSelected, address, fiatAmount } = form;\n const moonpayAvailable = isValidData(moonpayData);\n const moonpayOverMax = moonpayAvailable\n ? moonpayData[cryptoSelected].limits[fiatSelected].max <\n Number.parseFloat(fiatAmount)\n : true;\n\n const moonpayFiatAmount = moonpayAvailable ? fiatAmount : \"0.00\";\n emit(\"success\", {\n simplex_quote: {\n cryptoToFiat: simplexCryptoAmount.value,\n selectedCryptoName: cryptoSelected,\n plusFeeF: simplexPlusFeeF.value,\n includesFeeText: simplexIncludesFeeText,\n networkFeeText: networkFeeText,\n dailyLimit: dailyLimit(),\n monthlyLimit: monthlyLimit(),\n fiatAmount: simplexFiatAmount.value,\n },\n address: address,\n buy_obj: {\n cryptoToFiat: moonpayCryptoAmount,\n selectedCryptoName: cryptoSelected,\n plusFeeF: plusFeeF,\n includesFeeText: includesFeeText,\n networkFeeText: networkFeeText,\n dailyLimit: dailyLimit(true),\n monthlyLimit: monthlyLimit(),\n fiatAmount: moonpayFiatAmount,\n },\n open_providers: 2,\n selected_currency: props.cryptoSelected,\n selected_fiat: {\n name: fiatSelected,\n value: fiatSelected,\n // eslint-disable-next-line\n img: require(`@/assets/images/fiat/${fiatSelected}.svg`),\n },\n fiat_amount: fiatAmount,\n disable_moonpay: !moonpayAvailable || moonpayOverMax,\n });\n};\n\nconst fetchGasPrice = async (): Promise => {\n if (\n polkadot_chains.includes(form.cryptoSelected) ||\n bitcoin_chains.includes(form.cryptoSelected) ||\n other_chains.includes(form.cryptoSelected)\n ) {\n gasPrice = \"0\";\n return;\n }\n gasPrice = await web3.value.eth.getGasPrice();\n const price = isValidData(simplexData)\n ? simplexData[form.cryptoSelected].prices[form.fiatSelected]\n : moonpayData[form.cryptoSelected].prices[form.fiatSelected];\n init(parseFloat(networkFee.value) * parseFloat(price));\n};\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_progress_circular = _resolveComponent(\"v-progress-circular\")!\n const _component_v_text_field = _resolveComponent(\"v-text-field\")!\n const _component_v_select = _resolveComponent(\"v-select\")!\n const _component_v_icon = _resolveComponent(\"v-icon\")!\n const _component_v_btn = _resolveComponent(\"v-btn\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n (loading.data)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _hoisted_6,\n _createVNode(_component_v_progress_circular, {\n size: 11,\n width: 2,\n indeterminate: \"\"\n })\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_v_text_field, {\n class: \"no-right-border\",\n onInput: fiatToCrypto,\n type: \"number\",\n modelValue: form.fiatAmount,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((form.fiatAmount) = $event)),\n modelModifiers: { number: true },\n required: \"\",\n variant: \"outlined\",\n \"error-messages\": loading.alertMessage,\n disabled: loading.data,\n rules: rules\n }, null, 8, [\"modelValue\", \"error-messages\", \"disabled\"]),\n _createVNode(_component_v_select, {\n style: {\"max-width\":\"120px\"},\n class: \"rounded-right no-left-border buy-input\",\n modelValue: form.fiatSelected,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((form.fiatSelected) = $event)),\n items: filteredFiatItems.value,\n disabled: loading.data,\n \"menu-props\": { closeOnContentClick: true },\n \"base-color\": \"primary\",\n \"return-object\": \"\",\n variant: \"outlined\"\n }, {\n \"prepend-inner\": _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"currency-icon mr-1\",\n src: _unref(fiatIcon),\n alt: form.fiatSelected,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_8)\n ]),\n \"prepend-item\": _withCtx(() => [\n _createVNode(_component_v_text_field, {\n modelValue: _unref(fiatFilter),\n \"onUpdate:modelValue\": [\n _cache[1] || (_cache[1] = ($event: any) => (_isRef(fiatFilter) ? (fiatFilter).value = $event : fiatFilter = $event)),\n updateFiatFilter\n ],\n variant: \"outlined\",\n class: \"px-2\",\n \"prepend-inner-icon\": \"mdi-magnify\",\n autofocus: true,\n density: \"compact\",\n placeholder: \"Search\"\n }, null, 8, [\"modelValue\"])\n ]),\n item: _withCtx((data) => [\n _createElementVNode(\"div\", {\n class: \"d-flex align-center justify-space-between full-width cursor-pointer\",\n onClick: ($event: any) => (selectCurrency(data.item.value))\n }, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"img\", {\n class: \"currency-icon mr-1 ml-3\",\n src: getIcon(data.item.value),\n alt: data.item.value,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_11),\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(data.item.value), 1)\n ])\n ], 8, _hoisted_9)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"items\", \"disabled\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _hoisted_14,\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_v_text_field, {\n class: \"no-right-border\",\n onInput: cryptoToFiat,\n type: \"number\",\n modelValue: form.cryptoAmount,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((form.cryptoAmount) = $event)),\n modelModifiers: { number: true },\n required: \"\",\n variant: \"outlined\",\n rounded: \"left\",\n rules: rules,\n disabled: loading.data\n }, null, 8, [\"modelValue\", \"disabled\"]),\n _createVNode(_component_v_btn, {\n modelValue: form.cryptoSelected,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((form.cryptoSelected) = $event)),\n rounded: \"right\",\n variant: \"outlined\",\n class: \"no-left-border custom-btn\",\n \"append-icon\": \"mdi-menu-down\",\n disabled: loading.data,\n onClick: openTokenSelect\n }, {\n prepend: _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"currency-icon mr-1 padding--2\",\n src: _unref(cryptoIcon),\n alt: form.cryptoSelected,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_16)\n ]),\n append: _withCtx(() => [\n _createVNode(_component_v_icon, {\n color: \"grey-2\",\n size: \"large\"\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(form.cryptoSelected), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"disabled\"])\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _hoisted_17,\n _createVNode(MewAddressSelect, {\n ref: \"addressSelect\",\n modelValue: form.address,\n \"error-messages\": form.addressErrorMsg,\n autofocus: false,\n label: \"\",\n \"is-valid-address\": form.validAddress,\n placeholder: \"Enter Crypto Address\",\n onKeyup: verifyAddress,\n onChanged: addressInput\n }, null, 8, [\"modelValue\", \"error-messages\", \"is-valid-address\"])\n ]),\n (!loading.processingBuyForm)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_v_btn, {\n flat: \"\",\n rounded: \"pill\",\n disabled: !_unref(isValidForm),\n \"min-height\": \"60px\",\n width: \"360px\",\n onClick: submitForm,\n class: \"buy-button\"\n }, {\n default: _withCtx(() => [\n _hoisted_19\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n _createVNode(_component_v_progress_circular, {\n size: 70,\n width: 7,\n indeterminate: \"\",\n color: \"#05c0a5\"\n }),\n _hoisted_21\n ]))\n ], 512))\n}\n}\n\n})","import script from \"./BuyForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./BuyForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./BuyForm.vue?vue&type=style&index=0&id=ed869630&lang=scss&scoped=true\"\nimport \"./BuyForm.vue?vue&type=style&index=1&id=ed869630&lang=scss\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ed869630\"]])\n\nexport default __exports__","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, mergeProps as _mergeProps, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6d7572c2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"d-flex align-center textDark--text mb-10\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-2\" }, \"Select provider\", -1))\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"section-block pa-5 mb-6\" }\nconst _hoisted_5 = [\"src\"]\nconst _hoisted_6 = {\n key: 0,\n class: \"mb-3\"\n}\nconst _hoisted_7 = { class: \"d-flex mb-1 align-center justify-space-between\" }\nconst _hoisted_8 = { class: \"d-flex align-center\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"mr-1 textDark--text\"\n}\nconst _hoisted_10 = {\n key: 1,\n class: \"mr-1 text-red\"\n}\nconst _hoisted_11 = { class: \"elevated-box pa-3\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_17 = { class: \"d-flex align-center mb-1\" }\nconst _hoisted_18 = [\"src\"]\nconst _hoisted_19 = [\"src\"]\nconst _hoisted_20 = [\"src\"]\nconst _hoisted_21 = [\"src\"]\nconst _hoisted_22 = { class: \"mew-label mb-5\" }\nconst _hoisted_23 = { class: \"section-block pa-5\" }\nconst _hoisted_24 = {\n key: 0,\n class: \"mb-3\"\n}\nconst _hoisted_25 = { class: \"d-flex mb-1 align-center justify-space-between\" }\nconst _hoisted_26 = { class: \"d-flex mew-heading-3\" }\nconst _hoisted_27 = { class: \"mew-heading-3 pl-1\" }\nconst _hoisted_28 = { class: \"d-flex align-center\" }\nconst _hoisted_29 = { class: \"mr-1\" }\nconst _hoisted_30 = { class: \"elevated-box pa-3\" }\nconst _hoisted_31 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_32 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_33 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_34 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_35 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_36 = {\n key: 1,\n class: \"mb-3\"\n}\nconst _hoisted_37 = { class: \"d-flex align-center justify-space-between\" }\nconst _hoisted_38 = { class: \"d-flex align-start mb-1\" }\nconst _hoisted_39 = [\"src\"]\nconst _hoisted_40 = [\"src\"]\nconst _hoisted_41 = [\"src\"]\nconst _hoisted_42 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-label mb-5\" }, \"Visa, Mastercard\", -1))\nconst _hoisted_43 = {\n key: 1,\n class: \"text-center py-5\"\n}\nconst _hoisted_44 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"text-center font-weight-bold mt-3\",\n style: {\"line-height\":\"1.4rem\"}\n}, \" Processing purchase.... \", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_v_icon = _resolveComponent(\"v-icon\")!\n const _component_v_tooltip = _resolveComponent(\"v-tooltip\")!\n const _component_v_btn = _resolveComponent(\"v-btn\")!\n const _component_v_progress_circular = _resolveComponent(\"v-progress-circular\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_v_icon, {\n color: \"textDark\",\n class: \"cursor-pointer\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('close')))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" mdi-arrow-left mr-4 \")\n ]),\n _: 1\n }),\n _hoisted_2\n ]),\n (!_ctx.processingBuy)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"img\", {\n class: \"provider-logo\",\n src: _ctx.moonpayLogo,\n alt: \"Moonpay\",\n height: \"28\"\n }, null, 8, _hoisted_5),\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"d-flex mew-heading-3\", _ctx.hideMoonpay ? 'text-red' : ''])\n }, [\n _createTextVNode(_toDisplayString(_ctx.buyObj.cryptoToFiat) + \" \", 1),\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"mew-heading-3 pl-1\", _ctx.hideMoonpay ? 'text-red' : ''])\n }, _toDisplayString(_ctx.selectedCryptoName), 3)\n ], 2)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (!_ctx.hideMoonpay)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, \" ≈ \" + _toDisplayString(_ctx.buyObj.plusFeeF), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, _toDisplayString(_ctx.buyObj.plusFeeF), 1)),\n (!_ctx.hideMoonpay)\n ? (_openBlock(), _createBlock(_component_v_tooltip, {\n key: 2,\n location: \"bottom\"\n }, {\n activator: _withCtx(({ props }) => [\n _createVNode(_component_v_icon, _mergeProps(props, {\n color: \"grey-lighten-1\",\n size: \"x-small\",\n class: \"cursor-pointer\"\n }), {\n default: _withCtx(() => [\n _createTextVNode(\" mdi-information \")\n ]),\n _: 2\n }, 1040)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.buyObj.includesFeeText) + \" \", 1),\n _hoisted_12,\n _hoisted_13,\n _createTextVNode(\" \" + _toDisplayString(_ctx.buyObj.networkFeeText) + \" \", 1),\n _hoisted_14,\n _hoisted_15,\n _createTextVNode(\" \" + _toDisplayString(_ctx.buyObj.dailyLimit) + \" \", 1),\n _hoisted_16,\n _createTextVNode(\" \" + _toDisplayString(_ctx.buyObj.monthlyLimit), 1)\n ])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"img\", {\n src: _ctx.visaIcon,\n alt: \"Visa\",\n height: \"24\",\n class: \"mr-2\"\n }, null, 8, _hoisted_18),\n _createElementVNode(\"img\", {\n src: _ctx.masterIcon,\n alt: \"Master\",\n height: \"24\",\n class: \"mr-2\"\n }, null, 8, _hoisted_19),\n _createElementVNode(\"img\", {\n src: _ctx.applePayIcon,\n alt: \"ApplePay\",\n height: \"24\",\n class: \"mr-2\"\n }, null, 8, _hoisted_20),\n (_ctx.isEUR)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _ctx.bankIcon,\n alt: \"Bank\",\n height: \"24\"\n }, null, 8, _hoisted_21))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_22, _toDisplayString(_ctx.paymentOptionString), 1),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_v_btn, {\n size: \"large\",\n class: \"grey-light greyPrimary--text\",\n width: \"100%\",\n variant: \"flat\",\n disabled: _ctx.hideMoonpay || _ctx.loading,\n onClick: _ctx.buy\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.moonpayBtnTitle), 1)\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_23, [\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"div\", _hoisted_26, [\n _createTextVNode(_toDisplayString(_ctx.simplexQuote.cryptoToFiat) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_27, _toDisplayString(_ctx.selectedCryptoName), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_28, [\n _createElementVNode(\"div\", _hoisted_29, \"≈ \" + _toDisplayString(_ctx.simplexQuote.plusFeeF), 1),\n _createVNode(_component_v_tooltip, { location: \"bottom\" }, {\n activator: _withCtx(({ props }) => [\n _createVNode(_component_v_icon, _mergeProps(props, {\n color: \"grey-lighten-1\",\n size: \"x-small\",\n class: \"cursor-pointer\"\n }), {\n default: _withCtx(() => [\n _createTextVNode(\" mdi-information \")\n ]),\n _: 2\n }, 1040)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_30, [\n _createTextVNode(_toDisplayString(_ctx.simplexQuote.includesFeeText) + \" \", 1),\n _hoisted_31,\n _hoisted_32,\n _createTextVNode(\" \" + _toDisplayString(_ctx.simplexQuote.networkFeeText) + \" \", 1),\n _hoisted_33,\n _hoisted_34,\n _createTextVNode(\" \" + _toDisplayString(_ctx.simplexQuote.dailyLimit) + \" \", 1),\n _hoisted_35,\n _createTextVNode(\" \" + _toDisplayString(_ctx.simplexQuote.monthlyLimit), 1)\n ])\n ]),\n _: 1\n })\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_36)),\n _createElementVNode(\"div\", _hoisted_37, [\n _createElementVNode(\"div\", _hoisted_38, [\n _createElementVNode(\"img\", {\n src: _ctx.visaIcon,\n alt: \"Visa\",\n height: \"24\",\n class: \"mr-2\"\n }, null, 8, _hoisted_39),\n _createElementVNode(\"img\", {\n src: _ctx.masterIcon,\n alt: \"Master\",\n height: \"24\",\n class: \"mr-2\"\n }, null, 8, _hoisted_40)\n ]),\n _createElementVNode(\"img\", {\n class: \"provider-logo\",\n src: _ctx.simplexLogo,\n alt: \"Simplex\",\n height: \"28\"\n }, null, 8, _hoisted_41)\n ]),\n _hoisted_42,\n _createElementVNode(\"div\", null, [\n _createVNode(_component_v_btn, {\n disabled: _ctx.loading,\n size: \"large\",\n class: \"grey-light greyPrimary--text\",\n width: \"100%\",\n variant: \"flat\",\n onClick: _ctx.openSimplex\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.simplexBtnTitle), 1)\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"])\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_43, [\n _createVNode(_component_v_progress_circular, {\n size: 70,\n width: 7,\n indeterminate: \"\",\n color: \"#05c0a5\"\n }),\n _hoisted_44\n ]))\n ]))\n}","import axios from \"axios\";\nimport { getSimplexQuote } from \"./prices\";\nimport { sha3 } from \"web3-utils\";\nconst API = \"https://mainnet.mewwallet.dev\";\nconst apiOrder = \"https://mainnet.mewwallet.dev/purchase/simplex/order\";\n\n// ===================================================================================================\n// Get the quote confirmed by Simplex\n// ===================================================================================================\nasync function confirmSimplexOrder(paymentId: string, address: string) {\n return await axios\n .get(apiOrder, {\n params: {\n paymentId: paymentId,\n address: address,\n },\n })\n .then((response) => {\n return response.data;\n })\n .catch((e) => {\n return e;\n });\n}\n\nasync function submitForm(form: any) {\n const id = `WEB|${sha3(form[\"destination_wallet[address]\"])?.substring(\n 0,\n 42\n )}`;\n const url = `${API}/v2/purchase/simplex/order?id=${id}&fiatCurrency=${form[\"fiat_total_amount[currency]\"]}&requestedCurrency=${form[\"fiat_total_amount[currency]\"]}&requestedAmount=${form[\"fiat_total_amount[amount]\"]}&address=${form[\"destination_wallet[address]\"]}&cryptoCurrency=${form[\"destination_wallet[currency]\"]}`;\n window.location.href = encodeURI(url);\n}\n\n// ===================================================================================================\n// Execute Simplex payment\n// ===================================================================================================\nasync function executeSimplexPayment(\n fiatCurrency: string,\n cryptoCurrency: string,\n requestedCurrency: string,\n requestedAmount: string,\n address: string\n) {\n // =====================================================\n // (1) Get quote for crypto amount\n // =====================================================\n let responseQuote = null;\n try {\n responseQuote = await getSimplexQuote(\n fiatCurrency,\n cryptoCurrency,\n requestedCurrency,\n requestedAmount,\n address\n );\n } catch (e: any) {\n throw new Error(e);\n }\n\n // =====================================================\n // (2) Get the quote confirmed by Simplex\n // =====================================================\n const responseOrder = await confirmSimplexOrder(\n responseQuote.payment_id,\n address\n );\n\n // Submit payment form data and goto Simplex payment page.\n await submitForm(responseOrder.form);\n\n // Manual form submission for development only\n return responseOrder.form;\n}\n\n/*\n ** MoonPay\n */\nasync function executeMoonpayBuy(tokenSymbol: string, fiatCurrency: string, amount: string, address: string) {\n const hash = sha3(address);\n const id = `WEB|${hash?.substring(0, 42)}`;\n const q = window.location.search;\n const platform = q.includes('platform=enkrypt') ? 'enkrypt' : 'web';\n return new Promise(resolve => {\n let link = `${API}/v3/purchase/moonpay/order?address=${address}&id=${id}&cryptoCurrency=${tokenSymbol}&fiatCurrency=${fiatCurrency}&platform=${platform}`;\n if (amount) {\n link += `&requestedAmount=${amount}`;\n }\n const parsedUrl = encodeURI(link);\n // eslint-disable-next-line\n window.location.href = parsedUrl;\n resolve();\n });\n}\n\nasync function executeMoonpaySell(tokenSymbol: string, amount: string, address: string) {\n const hash = sha3(address);\n const id = `WEB|${hash?.substring(0, 42)}`;\n\n const q = window.location.search;\n const platform = q.includes('platform=enkrypt') ? 'enkrypt' : 'web';\n return new Promise(resolve => {\n const parsedUrl = encodeURI(\n `${API}/v3/sell/moonpay/order?address=${address}&id=${id}&cryptoCurrency=${tokenSymbol}&requestedAmount=${amount}&platform=${platform}`\n );\n // eslint-disable-next-line\n window.location.href = parsedUrl;\n resolve();\n });\n}\n\nexport { executeSimplexPayment, executeMoonpaySell, executeMoonpayBuy };\n","\nimport MultiCoinValidator from \"multicoin-address-validator\";\nimport { executeSimplexPayment, executeMoonpayBuy } from \"./order\";\nimport { defineComponent, inject } from \"vue\";\n\nexport default defineComponent({\n name: \"BuyProviders\",\n props: {\n orderHandler: {\n type: Object,\n default: () => ({}),\n },\n close: {\n type: Function,\n default: () => ({}),\n },\n onlySimplex: {\n type: Boolean,\n default: false,\n },\n selectedFiat: {\n type: Object,\n default: () => ({}),\n },\n selectedCurrency: {\n type: Object,\n default: () => ({}),\n },\n buyObj: {\n type: Object,\n default: () => ({}),\n },\n simplexQuote: {\n type: Object,\n default: () => ({}),\n },\n toAddress: {\n type: String,\n default: \"\",\n },\n },\n setup() {\n const amplitude: any = inject(\"$amplitude\");\n return { amplitude };\n },\n data() {\n return {\n loading: false,\n processingBuy: false,\n };\n },\n computed: {\n selectedFiatName() {\n return this.selectedFiat.name;\n },\n actualAddress() {\n return this.toAddress;\n },\n selectedCryptoName() {\n return this.selectedCurrency.symbol;\n },\n isEUR() {\n return this.selectedFiatName === \"EUR\" || this.selectedFiatName === \"GBP\";\n },\n hideMoonpay() {\n return this.onlySimplex;\n },\n simplexBtnTitle() {\n return \"BUY WITH SIMPLEX\";\n },\n moonpayBtnTitle() {\n return \"BUY WITH MOONPAY\";\n },\n paymentOptionString() {\n return `Visa, Mastercard, Apple Pay${this.isEUR ? \", Bank account\" : \"\"}`;\n },\n visaIcon() {\n return require(\"@/assets/images/icon-visa.svg\");\n },\n masterIcon() {\n return require(\"@/assets/images/icon-master.svg\");\n },\n bankIcon() {\n return require(\"@/assets/images/icon-bank.svg\");\n },\n applePayIcon() {\n return require(\"@/assets/images/icon-apple-pay.svg\");\n },\n simplexLogo() {\n return require(\"@/assets/images/icon-simplex.svg\");\n },\n moonpayLogo() {\n return require(\"@/assets/images/icon-moonpay.svg\");\n },\n },\n methods: {\n isValidToAddress(address: string) {\n return MultiCoinValidator.validate(address, this.selectedCurrency.symbol);\n },\n // Simplex buy\n openSimplex() {\n this.processingBuy = true;\n this.amplitude.track(`CCBuySellBuyWithSimplex`);\n executeSimplexPayment(\n this.selectedFiatName,\n this.selectedCryptoName,\n this.selectedFiatName,\n this.simplexQuote.fiatAmount,\n this.actualAddress\n )\n .then(() => {\n this.reset(true);\n this.close();\n this.$emit(\"reset\");\n this.amplitude.track(`CCBuySellBuyWithSimplexSuccess`);\n })\n .catch(() => {\n this.reset();\n this.close();\n this.$emit(\"reset\");\n this.amplitude.track(`CCBuySellBuyWithSimplexFailed`);\n });\n },\n currencyFormatter(value: number) {\n const locale = \"en-US\";\n return new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency: this.selectedFiatName,\n }).format(value);\n },\n reset(isPurchasing = false) {\n this.loading = true;\n this.processingBuy = isPurchasing;\n },\n // Moonpay buy\n buy() {\n this.processingBuy = true;\n this.amplitude.track(`CCBuySellBuyWithMoonpay`);\n executeMoonpayBuy(\n this.selectedCryptoName,\n this.selectedFiatName,\n this.buyObj.fiatAmount,\n this.actualAddress\n )\n .then(() => {\n this.reset(true);\n this.close();\n this.$emit(\"reset\");\n this.amplitude.track(`CCBuySellBuyWithMoonpaySuccess`);\n })\n .catch(() => {\n this.reset();\n this.close();\n this.$emit(\"reset\");\n this.amplitude.track(`CCBuySellBuyWithMoonpayFailed`);\n });\n },\n },\n});\n","import { render } from \"./BuyProviders.vue?vue&type=template&id=6d7572c2&scoped=true&ts=true\"\nimport script from \"./BuyProviders.vue?vue&type=script&lang=ts\"\nexport * from \"./BuyProviders.vue?vue&type=script&lang=ts\"\n\nimport \"./BuyProviders.vue?vue&type=style&index=0&id=6d7572c2&lang=scss&scoped=true\"\nimport \"./BuyProviders.vue?vue&type=style&index=1&id=6d7572c2&lang=scss\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6d7572c2\"]])\n\nexport default __exports__","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b4df45c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"d-flex align-center textDark--text mb-10\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-2\" }, \"Select Token\", -1))\nconst _hoisted_3 = { class: \"d-flex mt-2\" }\nconst _hoisted_4 = [\"src\", \"alt\"]\nconst _hoisted_5 = { class: \"network-selected\" }\nconst _hoisted_6 = { class: \"px-8 pt-6\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 mb-4\" }, \"Select Network\", -1))\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = { class: \"d-flex align-center\" }\nconst _hoisted_10 = [\"src\", \"alt\"]\nconst _hoisted_11 = { class: \"ml-2 my-2 d-flex flex-column\" }\nconst _hoisted_12 = { class: \"d-flex\" }\nconst _hoisted_13 = { class: \"d-flex\" }\nconst _hoisted_14 = [\"src\", \"alt\"]\nconst _hoisted_15 = { class: \"text-capitalize text--bold\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_v_icon = _resolveComponent(\"v-icon\")!\n const _component_v_text_field = _resolveComponent(\"v-text-field\")!\n const _component_v_select = _resolveComponent(\"v-select\")!\n const _component_v_list_item_title = _resolveComponent(\"v-list-item-title\")!\n const _component_v_list_item = _resolveComponent(\"v-list-item\")!\n const _component_v_list = _resolveComponent(\"v-list\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_v_icon, {\n color: \"textDark\",\n class: \"cursor-pointer\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('close')))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" mdi-arrow-left mr-4 \")\n ]),\n _: 1\n }),\n _hoisted_2\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_v_select, {\n class: \"full-width\",\n modelValue: _ctx.networkSelected,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.networkSelected) = $event)),\n label: \"Network\",\n items: _ctx.filteredNetworkList,\n \"menu-props\": { closeOnContentClick: true },\n \"return-object\": \"\",\n variant: \"outlined\"\n }, {\n selection: _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"network-icon mr-5 pa-1\",\n src: _ctx.networkSelected.icon,\n alt: _ctx.networkSelected.name,\n width: \"28px\",\n height: \"28px\"\n }, null, 8, _hoisted_4),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.networkSelected.name_long), 1)\n ]),\n \"prepend-item\": _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_v_text_field, {\n modelValue: _ctx.networkSearchInput,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.networkSearchInput) = $event)),\n variant: \"outlined\",\n class: \"mr-1\",\n \"prepend-inner-icon\": \"mdi-magnify\",\n placeholder: \"Search\",\n autofocus: true\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n item: _withCtx((data) => [\n _createElementVNode(\"div\", {\n class: \"d-flex align-center justify-space-between full-width cursor-pointer px-8 pb-6\",\n onClick: ($event: any) => (_ctx.selectNetwork(data.item.value))\n }, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"img\", {\n class: \"currency-icon padding--2 mr-1 ml-3\",\n src: data.item.value.icon,\n alt: data.item.value.name,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_10),\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(data.item.value.name_long), 1)\n ])\n ], 8, _hoisted_8)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"items\"])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(_component_v_text_field, {\n modelValue: _ctx.searchInput,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.searchInput) = $event)),\n variant: \"outlined\",\n class: \"mr-1\",\n \"prepend-inner-icon\": \"mdi-magnify\",\n placeholder: \"Search\",\n autofocus: true\n }, null, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_v_list, {\n lines: \"one\",\n class: \"full-width\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.filteredTokenList, (item, i) => {\n return (_openBlock(), _createBlock(_component_v_list_item, {\n key: i,\n value: item,\n \"base-color\": \"primary\",\n onClick: ($event: any) => (_ctx.selectCurrency(item, true))\n }, {\n prepend: _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"currency-icon no-border mr-3\",\n src: item.img,\n alt: item.name,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_14)\n ]),\n append: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.tokenPrice(item.name)), 1)\n ]),\n default: _withCtx(() => [\n _createVNode(_component_v_list_item_title, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(item.name), 1),\n _createElementVNode(\"span\", null, _toDisplayString(` - ${item.subtext}`), 1)\n ])\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1032, [\"value\", \"onClick\"]))\n }), 128))\n ]),\n _: 1\n })\n ])\n ])\n ]))\n}","class Crypto {\n decimals: number;\n img: string;\n name: string;\n subtext: string;\n value: string;\n symbol: string;\n network: string;\n\n constructor(name: string, subtext: string, network: string, decimals: number, img: string) {\n this.decimals = decimals;\n this.img = img;\n this.name = name;\n this.subtext = subtext;\n this.value = name;\n this.symbol = name;\n this.network = network;\n }\n}\ninterface Fiat {\n name: string\n value: string,\n img: string\n}\n// Provider Quote Object\ninterface QuoteData {\n cryptoToFiat: string,\n selectedCryptoName: string,\n plusFeeF: string,\n includesFeeText: string,\n networkFeeText: string,\n dailyLimit: string,\n monthlyLimit: string,\n fiatAmount: string\n}\ninterface SubmitData {\n simplex_quote: QuoteData,\n address: string,\n buy_obj: QuoteData, // Rename when done\n open_providers: number,\n selected_currency: Crypto,\n selected_fiat: Fiat,\n disable_moonpay: boolean\n}\ninterface Network {\n name: string,\n name_long: string,\n chainID: number,\n tokens: Array,\n icon: any,\n currencyName: string,\n gasPriceMultiplier: number,\n coingeckoID: string,\n service: string,\n url: string,\n port: number,\n auth: boolean,\n username: string,\n password: string\n}\ninterface Data {\n conversion_rates: { [currency: string]: number };\n limits: { [currency: string]: { min: number; max: number } };\n prices: { [currency: string]: string };\n}\n\ninterface ConversionRates {\n exchange_rate: string;\n fiat_currency: string;\n}\n\ninterface limits_limit {\n max: string;\n min: string;\n}\ninterface Limits {\n crypto_currency: string;\n type: string;\n limit: limits_limit;\n}\n\ninterface prices {\n crypto_currency: string;\n fiat_currency: string;\n price: string;\n}\n\ninterface PriceItem {\n ach: boolean;\n conversion_rates: Array;\n crypto_currencies: Array;\n fiat_currencies: Array;\n prices: Array;\n limits: Array;\n name: string;\n}\nexport { Crypto, Fiat, QuoteData, SubmitData, Network, Data, PriceItem }","\nimport { defineComponent, PropType } from \"vue\";\nimport { Crypto, Network, Data, Fiat } from \"../types\";\nimport { Networks } from \"../network/networks\";\nimport { formatFiatValue } from \"@/helpers/numberFormatHelper\";\n\nexport default defineComponent({\n name: \"TokenSelect\",\n props: {\n close: {\n type: Function,\n default: () => ({}),\n },\n selectedNetwork: {\n type: Object as PropType,\n default: () => ({}),\n },\n selectedCurrency: {\n type: Object as PropType,\n default: () => ({}),\n },\n moonpayData: {\n type: Object as PropType<{ [key: string]: Data }>,\n default: () => ({}),\n },\n simplexData: {\n type: Object as PropType<{ [key: string]: Data }>,\n default: () => ({}),\n },\n fiatSelected: {\n type: Object as PropType,\n default: () => ({}),\n },\n isSell: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n networks: Networks,\n networkSelected: {} as Network,\n cryptoSelected: {} as Crypto,\n networkDropdown: false,\n cryptoDropdown: false,\n searchInput: \"\",\n networkSearchInput: \"\",\n };\n },\n computed: {\n cryptoIcon() {\n return require(`@/assets/images/crypto/${this.cryptoSelected.name}.svg`);\n },\n tokensList() {\n let decimals = 18;\n if (this.networkSelected.name === \"DOT\") decimals = 10;\n else if (this.networkSelected.name === \"KSM\") decimals = 12;\n const mainCoin = new Crypto(\n this.networkSelected.currencyName,\n this.networkSelected.name_long,\n this.networkSelected.name,\n decimals,\n this.networkSelected.icon\n );\n let tokensList = [mainCoin];\n if (this.fiatName === \"CAD\") return tokensList;\n if (this.networkSelected.tokens)\n tokensList = tokensList.concat(this.networkSelected.tokens);\n return tokensList;\n },\n filteredTokenList() {\n const filterText = this.searchInput.toLowerCase();\n return this.tokensList.filter((token) => {\n const tokenSymbol = token.name.toLowerCase();\n const tokenName = token.subtext.toLowerCase();\n if (\n this.hasValidPrices(token.name) &&\n (tokenSymbol.includes(filterText) || tokenName.includes(filterText))\n )\n return token;\n });\n },\n fiatName() {\n return this.fiatSelected.name;\n },\n networkList() {\n return this.isSell\n ? this.networks.filter(\n (network) => network.name !== \"DOT\" && network.name !== \"KSM\"\n )\n : this.networks;\n },\n filteredNetworkList() {\n const filter = this.networkSearchInput.toLowerCase();\n return this.networkList.filter(\n (network) =>\n network.name.toLowerCase().includes(filter) ||\n network.name_long.toLowerCase().includes(filter) ||\n network.currencyName.toLowerCase().includes(filter)\n );\n },\n },\n beforeMount() {\n this.networks = Networks;\n this.networkSelected = this.selectedNetwork;\n this.cryptoSelected = this.selectedCurrency;\n },\n watch: {\n networkSelected() {\n this.selectCurrency(this.tokensList[0]);\n this.$emit(\"selectedNetwork\", this.networkSelected);\n },\n },\n methods: {\n selectCurrency(currency: Crypto, emit = false) {\n this.cryptoSelected = currency;\n this.cryptoDropdown = false;\n if (emit) this.$emit(\"selectCurrency\", this.cryptoSelected);\n },\n selectNetwork(network: Network) {\n this.networkSelected = network;\n this.networkDropdown = false;\n },\n tokenPrice(token: string) {\n const simplexPrice = parseFloat(\n this.simplexData[token]?.prices[this.fiatName]\n );\n const moonpayPrice = parseFloat(\n this.moonpayData[token]?.prices[this.fiatName]\n );\n const currencyConfig = {\n locale: \"en-US\",\n rate: 1,\n currency: this.fiatName,\n };\n if (isNaN(moonpayPrice))\n return formatFiatValue(simplexPrice.toFixed(2), currencyConfig).value;\n if (isNaN(simplexPrice))\n return formatFiatValue(moonpayPrice.toFixed(2), currencyConfig).value;\n const price = simplexPrice <= moonpayPrice ? simplexPrice : moonpayPrice;\n return formatFiatValue(price.toFixed(2), currencyConfig).value;\n },\n hasValidPrices(token: string) {\n let price = this.tokenPrice(token);\n price = price?.substring(1, price.length);\n return price !== \"0.00\";\n },\n },\n});\n","import { render } from \"./TokenSelect.vue?vue&type=template&id=3b4df45c&scoped=true&ts=true\"\nimport script from \"./TokenSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./TokenSelect.vue?vue&type=script&lang=ts\"\n\nimport \"./TokenSelect.vue?vue&type=style&index=0&id=3b4df45c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3b4df45c\"]])\n\nexport default __exports__","import { AbiItem, AbiType } from 'web3-utils';\n\nconst abi: AbiItem[] = [\n {\n constant: true,\n inputs: [],\n name: 'name',\n outputs: [\n {\n name: '',\n type: 'string'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function' as AbiType\n },\n {\n constant: true,\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n name: '',\n type: 'uint8'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function' as AbiType\n },\n {\n constant: true,\n inputs: [],\n name: 'symbol',\n outputs: [\n {\n name: '',\n type: 'string'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function' as AbiType\n },\n {\n constant: true,\n inputs: [\n {\n name: '_owner',\n type: 'address'\n }\n ],\n name: 'balanceOf',\n outputs: [\n {\n name: 'balance',\n type: 'uint256'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function' as AbiType\n }\n ];\n\nexport { abi };","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, unref as _unref, withCtx as _withCtx, isRef as _isRef, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-16eba3c0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"pa-3 pa-sm-2 pa-md-2 components--sell-form\",\n ref: \"formDiv\"\n}\nconst _hoisted_2 = { class: \"mb-6 mt-6\" }\nconst _hoisted_3 = { class: \"d-flex justify-space-between mb-3\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 textDark--text\" }, \" How much do you want to sell? \", -1))\nconst _hoisted_5 = {\n key: 0,\n class: \"text-mew\"\n}\nconst _hoisted_6 = { class: \"d-flex mt-2\" }\nconst _hoisted_7 = [\"src\", \"alt\"]\nconst _hoisted_8 = { class: \"mb-6\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 textDark--text mb-3\" }, \"You will get\", -1))\nconst _hoisted_10 = { class: \"d-flex mt-2\" }\nconst _hoisted_11 = [\"src\", \"alt\"]\nconst _hoisted_12 = [\"onClick\"]\nconst _hoisted_13 = { class: \"d-flex align-center\" }\nconst _hoisted_14 = [\"src\", \"alt\"]\nconst _hoisted_15 = { class: \"text-capitalize ml-2 my-2 d-flex flex-column\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-sm-flex align-center justify-space-between mb-2\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 mr-2\" }, \" What wallet are you sending your crypto from? \")\n], -1))\nconst _hoisted_17 = { class: \"text-gray mt-3 mb-6\" }\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_20 = { class: \"text-bolder\" }\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-gray\" }, \"Network Fee:\", -1))\nconst _hoisted_22 = {\n class: \"text-gray\",\n style: {\"float\":\"right\"}\n}\nconst _hoisted_23 = {\n key: 0,\n class: \"pt-2 text-center\"\n}\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-white font-weight-bold\" }, \"Sell With Moonpay\", -1))\nconst _hoisted_25 = {\n key: 1,\n class: \"text-center py-5\"\n}\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"text-center font-weight-bold mt-3\",\n style: {\"line-height\":\"1.4rem\"}\n}, \" Processing purchase.... \", -1))\n\nimport {\n computed,\n reactive,\n watch,\n onMounted,\n PropType,\n onUnmounted,\n ref,\n Ref,\n inject,\n} from \"vue\";\nimport { supportedFiat, getCryptoSellPrices } from \"./prices\";\nimport { executeMoonpaySell } from \"./order\";\nimport { isObject, isNumber, isString, isEmpty } from \"lodash\";\nimport WAValidator from \"multicoin-address-validator\";\nimport { isHexStrict, isAddress, fromWei, toBN } from \"web3-utils\";\nimport { encodeAddress } from \"@polkadot/keyring\";\nimport MewAddressSelect from \"../MewAddressSelect/MewAddressSelect.vue\";\nimport { Networks } from \"./network/networks\";\nimport { Crypto, Data, Network, Fiat } from \"./network/types\";\nimport Web3 from \"web3\";\nimport { formatFloatingPointValue } from \"@/helpers/numberFormatHelper\";\nimport { abi } from \"./handler/abiERC20\";\nimport { fromBase, toBase } from \"@/helpers/units\";\nimport { PriceItem } from \"./types\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SellForm',\n props: {\n cryptoSelected: {\n type: Object as PropType,\n default: () => ({}),\n },\n networkSelected: {\n type: Object as PropType,\n default: () => ({}),\n },\n fiatSelected: {\n type: Object as PropType,\n default: () => ({}),\n },\n fiatAmount: {\n type: String,\n default: \"0\",\n },\n},\n emits: [\n \"success\",\n \"selectedCurrency\",\n \"selectedFiat\",\n \"toAddress\",\n \"setQuotes\",\n],\n setup(__props, { emit }) {\n\nconst props = __props\n\nconst amplitude: any = inject(\"$amplitude\");\n\nconst defaultFiatValue = \"0\";\nconst polkdadot_chains = [\"DOT\", \"KSM\"];\nlet gasPrice = ref(\"0\");\n// eslint-disable-next-line no-undef\nlet priceTimer: NodeJS.Timer, gasTimer: NodeJS.Timer;\nlet fiatFilter = \"\";\n// Hard code names/decimals for now\nconst tokensInfo: { [key: string]: any } = {\n USDT: {\n name: \"Tether\",\n decimals: 6,\n contract: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n },\n USDC: {\n name: \"USD Coin\",\n decimals: 6,\n contract: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n },\n DAI: { name: \"Dai Stablecoin\", decimals: 18, contract: \"\" },\n};\n\nlet moonpayData: { [key: string]: Data } = {\n ETH: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n MATIC: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n BNB: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n DOT: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n KSM: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n};\n\nconst addressBook = [\n {\n address: \"0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D\",\n currency: \"ETH\",\n nickname: \"MEW Donations\",\n resolvedAddr: \"0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D\",\n },\n];\n\n\n\n\n\nonMounted(async () => {\n form.address = \"\";\n\n // Load URL parameter value and verify crypto address\n loadUrlParameters();\n verifyAddress();\n\n // Get crypto Data\n await getPrices();\n await fetchGasPrice();\n if (!isEmpty(props.fiatSelected)) {\n form.cryptoSelected = props.cryptoSelected.name;\n form.fiatSelected = props.fiatSelected.name;\n form.fiatAmount = props.fiatAmount;\n fiatToCrypto();\n } else cryptoToFiat();\n getBalance();\n priceTimer = setInterval(getPrices, 1000 * 60 * 2);\n gasTimer = setInterval(fetchGasPrice, 1000 * 60 * 2);\n filteredFiatItems.value = Object.getOwnPropertyNames(\n moonpayData[\"ETH\"]?.prices\n );\n});\n\nonUnmounted(async () => {\n clearInterval(priceTimer);\n clearInterval(gasTimer);\n});\n\n// reactive\nconst fiatItems: string[] = supportedFiat;\nconst filteredFiatItems: Ref = ref(fiatItems);\nconst updateFiatFilter = (value: string) => {\n fiatFilter = value;\n const items = Object.getOwnPropertyNames(moonpayData[\"ETH\"]?.prices);\n filteredFiatItems.value = items.filter((item) =>\n item.toLowerCase().includes(fiatFilter.toLowerCase())\n );\n};\n\n// reactive\nconst form = reactive({\n fiatAmount: defaultFiatValue,\n fiatSelected: \"USD\",\n cryptoAmount: \"1\",\n cryptoSelected: \"ETH\",\n address: \"\",\n validAddress: false,\n addressErrorMsg: \"\",\n reCaptchaToken: \"\",\n addressError: false,\n balance: \"\",\n balanceWei: \"\",\n balanceETH: \"\",\n balanceError: false,\n balanceErrorMsg: \"\",\n});\nconst loading = reactive({\n data: false,\n showAlert: false,\n processingBuyForm: false,\n alertMessage: \"\",\n});\nconst dropdown = reactive({\n fiat: false,\n crypto: false,\n});\n\nconst web3 = computed(() => {\n const supportedNodes: { [key: string]: any } = {\n ETH: \"ETH\",\n BSC: \"BSC\",\n MATIC: \"MATIC\",\n };\n const nodeType = supportedNodes[props.cryptoSelected.network];\n const node = Networks.find((network) => {\n return network.name === nodeType;\n });\n return new Web3(node ? node.url : \"\");\n});\n\n// watchers\nwatch(\n () => form.cryptoSelected,\n () => {\n verifyAddress();\n fiatToCrypto();\n fetchGasPrice();\n checkBalance();\n }\n);\n\nwatch(\n () => form.fiatSelected,\n () => {\n verifyAddress();\n cryptoToFiat();\n }\n);\n\nwatch(\n () => form.fiatAmount,\n () => {\n fetchGasPrice();\n if (!loading.data) {\n checkBalance();\n }\n }\n);\nwatch(\n () => form.cryptoAmount,\n () => {\n fetchGasPrice();\n if (!loading.data) {\n checkBalance();\n }\n }\n);\n\nwatch(\n () => form.address,\n () => {\n verifyAddress();\n fetchGasPrice();\n if (!loading.data) {\n getBalance();\n }\n }\n);\n\n// Computed Icons for selected token\nconst fiatIcon = computed(() => {\n return require(`@/assets/images/fiat/${form.fiatSelected}.svg`);\n});\nconst cryptoIcon = computed(() => {\n return require(`@/assets/images/crypto/${form.cryptoSelected}.svg`);\n});\n\nconst networkFee = computed(() => {\n return toBN(gasPrice.value).muln(21000);\n});\nconst networkFeeF = computed(() => {\n return formatFloatingPointValue(fromWei(networkFee.value.toString())).value;\n});\n\n// methods\nconst getIcon = (currency: string, isFiat = true) => {\n return require(`@/assets/images/${\n isFiat ? \"fiat\" : \"crypto\"\n }/${currency}.svg`);\n};\n\nconst selectCurrency = (currency: string, isFiat = true) => {\n if (isFiat) {\n form.fiatSelected = currency;\n dropdown.fiat = false;\n } else {\n form.cryptoSelected = currency;\n dropdown.crypto = false;\n }\n};\n\nconst hasData = () => {\n const { cryptoSelected } = form;\n return !isEmpty(moonpayData[cryptoSelected]?.limits[cryptoSelected]);\n};\n\nconst isValidForm = computed(() => {\n return (\n minMax.value &&\n form.fiatSelected &&\n form.cryptoSelected &&\n form.address &&\n !form.addressError &&\n form.addressErrorMsg === \"\" &&\n loading.alertMessage === \"\" &&\n form.validAddress &&\n form.balanceErrorMsg === \"\"\n );\n});\n\nconst rules = [\n (e: any) => {\n if (isString(e) && e?.length >= 1) return true;\n if (!isNumber(e)) return \"Must be a valid number\";\n return true;\n },\n];\n\nconst minMax = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { cryptoSelected, cryptoAmount, address } = form; // wont update without address\n const validData = hasData();\n if (!validData) return false;\n const limit = moonpayData[cryptoSelected].limits[cryptoSelected];\n const decimals = props.cryptoSelected.decimals;\n const amount = toBN(toBase(parseFloat(cryptoAmount || \"0\"), decimals));\n const valid =\n amount.gte(toBN(toBase(limit.min, decimals))) &&\n amount.lte(toBN(toBase(limit.max, decimals)));\n return valid;\n});\n\nconst getPrices = async () => {\n try {\n loading.data = true;\n const data: any[] = (await getCryptoSellPrices()) || [];\n data.forEach((arr: any) => {\n arr.forEach((d: PriceItem) => {\n if (isObject(d)) {\n const tmp: Data = { conversion_rates: {}, limits: {}, prices: {} };\n\n d.conversion_rates.forEach(\n (r: any) =>\n (tmp.conversion_rates[r.fiat_currency] = r.exchange_rate)\n );\n d.limits.forEach((l: any) => {\n if (l.type === \"WEB\") tmp.limits[l.crypto_currency] = l.limit;\n });\n d.prices.forEach((p: any) => (tmp.prices[p.fiat_currency] = p.price));\n const tokenName = d.crypto_currencies[0];\n const mainCoin = Networks.find(\n (item) => item.currencyName === tokenName\n );\n // If token name isnt a native network coin\n // assume the token is ERC-20(ETH)\n if (!mainCoin) {\n const foundToken = Networks[0].tokens.find(\n (item) => item.name === tokenName\n );\n if (!foundToken) {\n const tokenInfo = tokensInfo[tokenName];\n Networks[0].tokens.push(\n new Crypto(\n tokenName,\n tokenInfo.name,\n \"ETH\",\n tokenInfo.decimals,\n getIcon(tokenName, false)\n )\n );\n }\n }\n moonpayData[tokenName] = tmp;\n }\n });\n });\n loading.data = false;\n emit(\"setQuotes\", moonpayData);\n } catch (e: any) {\n errorHandler(e);\n }\n};\n\nconst getBalance = async () => {\n if (!form.validAddress) return \"0\";\n const isMainCoin =\n props.networkSelected.currencyName === props.cryptoSelected.symbol;\n const balance = form.address ? await getETHBalance() : \"0\";\n if (isMainCoin) {\n form.balanceWei = balance;\n form.balance = fromWei(balance);\n } else await getTokenBalance(props.cryptoSelected.symbol);\n\n checkBalance();\n return balance;\n};\nconst getETHBalance = async () => {\n if (!form.validAddress) return \"0\";\n const balance = form.address\n ? await web3.value.eth.getBalance(form.address, \"latest\")\n : \"0\";\n form.balanceETH = balance;\n return balance;\n};\n\nconst displayBalance = () => {\n if (!form.balance) return \"0\";\n\n return formatFloatingPointValue(form.balance).value;\n};\nconst userBalance = () => {\n if (!form.balanceWei) return toBN(0);\n\n return toBN(form.balanceWei);\n};\n\nconst hasEnoughCrypto = () => {\n if (!form.balanceWei || form.balanceWei === \"0\") return false;\n const isMainCoin =\n props.networkSelected.currencyName === props.cryptoSelected.symbol;\n return isMainCoin\n ? totalWithFee.value.lte(toBN(form.balanceETH))\n : networkFee.value.lte(toBN(form.balanceETH));\n};\n\nconst totalWithFee = computed(() => {\n if (subtotalSell.value === toBN(0)) return networkFee.value;\n return subtotalSell.value.add(networkFee.value);\n});\nconst subtotalSell = computed(() => {\n if (!form.balance || form.balance === \"0\") return toBN(0);\n const amount = toBase(\n parseFloat(form.cryptoAmount),\n props.cryptoSelected.decimals\n );\n return toBN(amount);\n});\n\nconst checkBalance = () => {\n const validData = hasData();\n if (validData) {\n // MinMax check\n const limit = moonpayData[form.cryptoSelected].limits[form.cryptoSelected];\n if (!minMax.value) {\n const decimals = props.cryptoSelected.decimals;\n const amount = toBN(\n toBase(parseFloat(form.cryptoAmount || \"0\"), decimals)\n );\n const min = toBN(toBase(limit.min, decimals));\n const max = toBN(toBase(limit.max, decimals));\n if (amount.lt(min))\n form.balanceErrorMsg = `Minimum is ${limit.min} ${form.cryptoSelected}`;\n else if (amount.gt(max))\n form.balanceErrorMsg = `Maximum is ${limit.max} ${form.cryptoSelected}`;\n form.balanceError = true;\n return;\n }\n }\n\n // User balance check\n if (form.validAddress) {\n const balance = userBalance();\n if (subtotalSell.value.gt(balance)) {\n form.balanceErrorMsg = `You do not have enough ${props.cryptoSelected.name} to sell`;\n return;\n }\n if (!hasEnoughCrypto()) {\n form.balanceErrorMsg = `You do not have enough ${props.networkSelected.currencyName} to pay for network fees`;\n return;\n }\n }\n form.balanceErrorMsg = \"\";\n form.balanceError = false;\n};\n\nconst fiatToCrypto = () => {\n const { fiatSelected, fiatAmount, cryptoSelected } = form;\n const decimals = props.cryptoSelected.decimals;\n const price = parseFloat(moonpayData[cryptoSelected].prices[fiatSelected]);\n const amount = parseFloat(fiatAmount || \"0\");\n const cryptoAmount = amount / price;\n // Make sure decimal amount is valid\n const decimalAmount = cryptoAmount.toString().split(\".\")[1]?.length || 0;\n form.cryptoAmount =\n decimalAmount > decimals\n ? cryptoAmount.toFixed(decimals)\n : cryptoAmount.toString();\n};\n\nconst cryptoToFiat = () => {\n const price = parseFloat(\n moonpayData[form.cryptoSelected].prices[form.fiatSelected]\n );\n const amount = parseFloat(form.cryptoAmount || \"0\");\n const fiatAmount = amount * price;\n form.fiatAmount = fiatAmount.toFixed(2);\n};\n\nconst loadUrlParameters = () => {\n const queryString = window.location.search;\n if (queryString) {\n const urlParams = new URLSearchParams(queryString);\n const queryCryptoAmount = urlParams.get(\"crypto_amount\");\n const queryFiat = urlParams.get(\"fiat\");\n const queryCrypto = urlParams.get(\"crypto\");\n const queryTo = urlParams.get(\"to\");\n form.fiatSelected = queryFiat ? queryFiat : \"USD\";\n form.fiatAmount = queryCryptoAmount ? queryCryptoAmount : \"100\";\n form.cryptoSelected = queryCrypto ? queryCrypto : \"ETH\";\n form.cryptoAmount = queryCryptoAmount ? queryCryptoAmount : \"1\";\n form.address = queryTo ? queryTo : \"\";\n }\n};\n\nconst errorHandler = (e: any): void => {\n const value = parseFloat(form.fiatAmount) > 0;\n if (value) {\n const isErrorObj = isObject(e.response.data.error);\n if (isErrorObj) {\n // eslint-disable-next-line\n const hasErr = e.response.data.error.hasOwnProperty(\"errors\");\n if (hasErr) {\n loading.alertMessage = e.response.data.error.errors[0].message;\n }\n } else {\n loading.alertMessage = e.response.data.error;\n }\n }\n};\n\nconst validAddress = (address: string) => {\n return address && isHexStrict(address) && isAddress(address);\n};\n\nconst isValidAddressPolkadotAddress = (\n address: string,\n cryptoPrefix: number\n) => {\n try {\n const encodedAddress = encodeAddress(address, cryptoPrefix);\n return address === encodedAddress;\n } catch (error) {\n return false;\n }\n};\n\nconst addressInput = (value: string): void => {\n form.address = value;\n verifyAddress();\n};\n\nconst verifyAddress = (): void => {\n const polkdadot_chains = [\"DOT\", \"KSM\"];\n const valid = !polkdadot_chains.includes(form.cryptoSelected)\n ? WAValidator.validate(form.address, form.cryptoSelected) &&\n validAddress(form.address)\n : isValidAddressPolkadotAddress(\n form.address,\n form.cryptoSelected === \"DOT\" ? 0 : 2\n );\n if (valid) {\n form.addressErrorMsg = \"\";\n form.addressError = false;\n form.validAddress = true;\n } else {\n if (!form.address) {\n form.addressErrorMsg = \"\";\n form.validAddress = false;\n } else {\n form.addressErrorMsg = `Please provide a valid ${form.cryptoSelected} address`;\n form.validAddress = false;\n }\n }\n};\n\nconst submitForm = (): void => {\n loading.processingBuyForm = true;\n amplitude.track(\"CCBuySellSellWithMoonpay\");\n executeMoonpaySell(form.cryptoSelected, form.cryptoAmount, form.address);\n};\n\nconst openTokenSelect = () => {\n emit(\n \"selectedCurrency\",\n {\n name: form.fiatSelected,\n value: form.fiatSelected,\n // eslint-disable-next-line\n img: require(`@/assets/images/fiat/${form.fiatSelected}.svg`),\n },\n form.fiatAmount\n );\n};\n\nconst fetchGasPrice = async (): Promise => {\n if (polkdadot_chains.includes(form.cryptoSelected)) {\n gasPrice.value = \"0\";\n return;\n }\n gasPrice.value = await web3.value.eth.getGasPrice();\n};\n\nconst getTokenBalance = async (tokenName: string) => {\n // if (!isValidAddress(contract)) return;\n const newContract = new web3.value.eth.Contract(\n abi as any,\n tokensInfo[tokenName].contract\n );\n const bal = await newContract.methods\n .balanceOf(form.address)\n .call()\n .catch((e: Error) => console.error(e));\n form.balanceWei = bal.toString();\n form.balance = fromBase(form.balanceWei, tokensInfo[tokenName].decimals);\n};\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_text_field = _resolveComponent(\"v-text-field\")!\n const _component_v_icon = _resolveComponent(\"v-icon\")!\n const _component_v_btn = _resolveComponent(\"v-btn\")!\n const _component_v_select = _resolveComponent(\"v-select\")!\n const _component_v_progress_circular = _resolveComponent(\"v-progress-circular\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n (!loading.data)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, \" Balance: \" + _toDisplayString(displayBalance()), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_v_text_field, {\n onInput: cryptoToFiat,\n type: \"number\",\n modelValue: form.cryptoAmount,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((form.cryptoAmount) = $event)),\n modelModifiers: { number: true },\n required: \"\",\n variant: \"outlined\",\n rounded: \"left\",\n rules: rules,\n disabled: loading.data,\n \"error-messages\": form.balanceErrorMsg,\n error: form.balanceError,\n class: \"no-right-border\"\n }, null, 8, [\"modelValue\", \"disabled\", \"error-messages\", \"error\"]),\n _createVNode(_component_v_btn, {\n modelValue: form.cryptoSelected,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((form.cryptoSelected) = $event)),\n rounded: \"right\",\n variant: \"outlined\",\n class: \"no-left-border custom-btn\",\n onClick: openTokenSelect,\n \"append-icon\": \"mdi-menu-down\",\n disabled: loading.data\n }, {\n prepend: _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"currency-icon mr-1 padding--2\",\n src: _unref(cryptoIcon),\n alt: form.cryptoSelected,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_7)\n ]),\n append: _withCtx(() => [\n _createVNode(_component_v_icon, {\n color: \"grey-2\",\n size: \"large\"\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(form.cryptoSelected), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"disabled\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_v_text_field, {\n onInput: fiatToCrypto,\n type: \"number\",\n modelValue: form.fiatAmount,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((form.fiatAmount) = $event)),\n modelModifiers: { number: true },\n required: \"\",\n variant: \"outlined\",\n rounded: \"left\",\n rules: rules,\n \"error-messages\": loading.alertMessage,\n disabled: loading.data,\n class: \"no-right-border\"\n }, null, 8, [\"modelValue\", \"error-messages\", \"disabled\"]),\n _createVNode(_component_v_select, {\n style: {\"max-width\":\"120px\"},\n class: \"rounded-right no-left-border\",\n modelValue: form.fiatSelected,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((form.fiatSelected) = $event)),\n items: filteredFiatItems.value,\n disabled: loading.data,\n \"menu-props\": { closeOnContentClick: true },\n \"base-color\": \"primary\",\n \"return-object\": \"\",\n variant: \"outlined\"\n }, {\n \"prepend-inner\": _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"currency-icon mr-1\",\n src: _unref(fiatIcon),\n alt: form.fiatSelected,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_11)\n ]),\n \"prepend-item\": _withCtx(() => [\n _createVNode(_component_v_text_field, {\n modelValue: _unref(fiatFilter),\n \"onUpdate:modelValue\": [\n _cache[3] || (_cache[3] = ($event: any) => (_isRef(fiatFilter) ? (fiatFilter).value = $event : fiatFilter = $event)),\n updateFiatFilter\n ],\n variant: \"outlined\",\n class: \"px-2\",\n \"prepend-inner-icon\": \"mdi-magnify\",\n density: \"compact\",\n placeholder: \"Search\",\n autofocus: true\n }, null, 8, [\"modelValue\"])\n ]),\n item: _withCtx((data) => [\n _createElementVNode(\"div\", {\n class: \"d-flex align-center justify-space-between full-width cursor-pointer\",\n onClick: ($event: any) => (selectCurrency(data.item.value))\n }, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"img\", {\n class: \"currency-icon padding--2 mr-1 ml-3\",\n src: getIcon(data.item.value),\n alt: data.item.value,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_14),\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(data.item.value), 1)\n ])\n ], 8, _hoisted_12)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"items\", \"disabled\"])\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _hoisted_16,\n _createVNode(MewAddressSelect, {\n ref: \"addressSelect\",\n \"model-value\": form.address,\n \"error-messages\": form.addressErrorMsg,\n autofocus: false,\n label: \"\",\n items: addressBook,\n \"is-valid-address\": form.validAddress,\n placeholder: \"Enter Crypto Address\",\n onKeyup: verifyAddress,\n onChanged: addressInput\n }, null, 8, [\"model-value\", \"error-messages\", \"is-valid-address\"])\n ]),\n _createElementVNode(\"div\", _hoisted_17, [\n _createTextVNode(\" After submitting your sell order, you will have to send your crypto to MoonPay. Make sure to have enough currency in your wallet to cover network transaction fees. \"),\n _hoisted_18,\n _hoisted_19,\n _createElementVNode(\"div\", _hoisted_20, [\n _hoisted_21,\n _createElementVNode(\"span\", _hoisted_22, \"~\" + _toDisplayString(_unref(networkFeeF)) + \" \" + _toDisplayString(props.networkSelected.currencyName), 1)\n ])\n ]),\n (!loading.processingBuyForm)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_23, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_v_btn, {\n flat: \"\",\n rounded: \"pill\",\n disabled: !_unref(isValidForm),\n \"min-height\": \"60px\",\n width: \"360px\",\n onClick: submitForm,\n class: \"sell-button\"\n }, {\n default: _withCtx(() => [\n _hoisted_24\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_25, [\n _createVNode(_component_v_progress_circular, {\n size: 70,\n width: 7,\n indeterminate: \"\",\n color: \"#05c0a5\"\n }),\n _hoisted_26\n ]))\n ], 512))\n}\n}\n\n})","import script from \"./SellForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SellForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./SellForm.vue?vue&type=style&index=0&id=16eba3c0&lang=scss&scoped=true\"\nimport \"./SellForm.vue?vue&type=style&index=1&id=16eba3c0&lang=scss\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-16eba3c0\"]])\n\nexport default __exports__","\nimport { isEmpty } from \"lodash\";\n\nimport { defineComponent, inject } from \"vue\";\nimport MewTabs from \"../MewTabs/MewTabs.vue\";\nimport BuyForm from \"./BuyForm.vue\";\nimport BuyProviders from \"./BuyProviders.vue\";\nimport TokenSelect from \"./components/TokenSelect.vue\";\nimport SellForm from \"./SellForm.vue\";\nimport {\n Fiat,\n Crypto,\n QuoteData,\n SubmitData,\n SubmitSellData,\n Network,\n Data,\n} from \"./network/types\";\nimport { Networks } from \"./network/networks\";\n\nexport default defineComponent({\n name: \"OrderForm\",\n components: {\n MewTabs,\n BuyForm,\n SellForm,\n BuyProviders,\n TokenSelect,\n },\n props: {\n // Removing breaks the page for some reason\n open: Boolean,\n },\n setup() {\n const amplitude: any = inject(\"$amplitude\");\n return { amplitude };\n },\n data() {\n return {\n activeTab: 0,\n orderHandler: {},\n selectedNetwork: {} as Network,\n selectedCurrency: {} as Crypto,\n selectedFiat: {} as Fiat,\n fiatAmount: \"0\",\n onlySimplex: false,\n buyObj: {} as QuoteData,\n step: 0,\n simplexQuote: {} as QuoteData,\n toAddress: \"\",\n moonpayData: {} as { [key: string]: Data },\n simplexData: {} as { [key: string]: Data },\n };\n },\n computed: {\n defaultCurrency(): Crypto {\n if (\n isEmpty(this.selectedCurrency) ||\n (this.activeTab === 1 && !this.supportedSell)\n ) {\n return {\n decimals: 18,\n img: require(\"@/assets/images/crypto/ETH.svg\"),\n name: \"ETH\",\n subtext: \"Ethereum\",\n value: \"ETH\",\n symbol: \"ETH\",\n network: \"ETH\",\n };\n }\n return this.selectedCurrency;\n },\n defaultNetwork(): Network {\n if (\n isEmpty(this.selectedNetwork) ||\n (this.activeTab === 1 && !this.supportedSell)\n ) {\n return Networks[0];\n }\n return this.selectedNetwork;\n },\n supportedSell() {\n return (\n this.selectedCurrency.symbol !== \"DOT\" &&\n this.selectedCurrency.symbol !== \"KSM\"\n );\n },\n leftBtn() {\n return {\n method: this.close,\n };\n },\n tabItems() {\n return [\"Buy\", \"Sell\"];\n },\n isSell() {\n return this.activeTab === 1;\n },\n },\n beforeMount() {\n this.selectedNetwork = this.defaultNetwork;\n this.selectedCurrency = this.defaultCurrency;\n },\n methods: {\n onTab(val: number) {\n this.selectedCurrency = {} as Crypto;\n this.selectedCurrency = this.defaultCurrency;\n this.selectedNetwork = {} as Network;\n this.selectedNetwork = this.defaultNetwork;\n this.activeTab = val;\n this.amplitude.track(`CCBuySell${val === 0 ? \"BuyTab\" : \"SellTab\"}`);\n },\n close() {\n this.step = 0;\n this.onlySimplex = false;\n },\n setNetwork(network: Network) {\n this.selectedNetwork = network;\n },\n setSelectedCurrency(e: Crypto) {\n this.selectedCurrency = e;\n this.step = 0;\n },\n setSelectedFiat(e: Fiat) {\n this.selectedFiat = e;\n },\n openProviders(val: number) {\n this.step = val;\n },\n openTokenSelect(selectedFiat: Fiat, fiatAmount: string) {\n this.step = 1;\n this.selectedFiat = selectedFiat;\n this.fiatAmount = fiatAmount;\n this.amplitude.track(\n `CCBuySell${this.activeTab === 0 ? \"BuyInput\" : \"SellInput\"}`\n );\n },\n setBuyObj(val: QuoteData) {\n this.buyObj = val;\n },\n setSimplexQuote(val: QuoteData) {\n this.simplexQuote = val;\n },\n setToAddress(val: string) {\n this.toAddress = val;\n },\n setQuotes(\n simplexQuote: { [key: string]: Data },\n moonpayQuote: { [key: string]: Data }\n ) {\n this.simplexData = simplexQuote;\n this.moonpayData = moonpayQuote;\n },\n reset() {\n this.selectedCurrency = this.defaultCurrency;\n this.selectedFiat = {\n name: \"USD\",\n value: \"USD\",\n // eslint-disable-next-line\n img: require(`@/assets/images/fiat/USD.svg`),\n };\n this.onlySimplex = false;\n },\n disableMoonpay(val: boolean) {\n this.onlySimplex = val;\n },\n buySuccess(data: SubmitData) {\n this.setSimplexQuote(data.simplex_quote);\n this.setToAddress(data.address);\n this.setBuyObj(data.buy_obj);\n this.setSelectedCurrency(data.selected_currency);\n this.openProviders(data.open_providers);\n this.setSelectedFiat(data.selected_fiat);\n this.fiatAmount = data.fiat_amount;\n this.disableMoonpay(data.disable_moonpay);\n },\n sellSuccess(data: SubmitSellData) {\n this.setToAddress(data.address);\n this.setSelectedCurrency(data.selected_currency);\n this.setSelectedFiat(data.selected_fiat);\n this.fiatAmount = data.fiat_amount;\n },\n },\n});\n","import { render } from \"./OrderForm.vue?vue&type=template&id=5c7fe0a9&scoped=true&ts=true\"\nimport script from \"./OrderForm.vue?vue&type=script&lang=ts\"\nexport * from \"./OrderForm.vue?vue&type=script&lang=ts\"\n\nimport \"./OrderForm.vue?vue&type=style&index=0&id=5c7fe0a9&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5c7fe0a9\"]])\n\nexport default __exports__","\n\n\n\n\n","import script from \"./BuyBanner.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./BuyBanner.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./BuyBanner.vue?vue&type=style&index=0&id=3c3c19dd&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3c3c19dd\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-610a7521\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h1\", { class: \"mb-9\" }, [\n /*#__PURE__*/_createTextVNode(\" Increased buy limits \"),\n /*#__PURE__*/_createElementVNode(\"br\"),\n /*#__PURE__*/_createTextVNode(\" so you can do more with crypto \")\n], -1))\nconst _hoisted_2 = { class: \"elevated-box-small elevation-5 pa-10\" }\nconst _hoisted_3 = { class: \"heading-2 description-text mb-2\" }\nconst _hoisted_4 = { class: \"font-weight-medium description-title\" }\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'PromoComponent',\n setup(__props) {\n\nconst promo1 = [\n {\n title: \"For your first transaction\",\n description:\n \"If you are buying coins very first time, you can buy up to $20,000 worth of coins.\",\n amount: \"$50 to $20,000\",\n rate: \"for first buy\",\n },\n {\n title: \"Daily limit\",\n description: \"You can buy up to $20,000 worth of coins daily.\",\n amount: \"Up to $20,000\",\n rate: \"/day\",\n },\n {\n title: \"Monthly limit\",\n description: \"You can buy up to $50,000 worth of coins monthly.\",\n amount: \"Up to $50,000\",\n rate: \"/month\",\n },\n];\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_col = _resolveComponent(\"v-col\")!\n const _component_v_row = _resolveComponent(\"v-row\")!\n const _component_v_container = _resolveComponent(\"v-container\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"component--promo dropShadow\",\n style: _normalizeStyle(_ctx.$vuetify.display.lgAndUp ? 'padding: 150px 0' : 'padding: 100px 0')\n }, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_v_container, null, {\n default: _withCtx(() => [\n _hoisted_1,\n _createVNode(_component_v_row, null, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(promo1, (p1, key1) => {\n return _createVNode(_component_v_col, {\n cols: \"12\",\n md: \"4\",\n key: key1\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(p1.amount), 1),\n _createElementVNode(\"h2\", _hoisted_4, _toDisplayString(p1.title), 1)\n ])\n ]),\n _: 2\n }, 1024)\n }), 64))\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ])\n ], 4))\n}\n}\n\n})","import script from \"./PromoComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PromoComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PromoComponent.vue?vue&type=style&index=0&id=610a7521&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-610a7521\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-05ed6bbe\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"promo--bottom py-15\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h1\", { class: \"mb-9 text-white\" }, \"Why millions of users choose us\", -1))\nconst _hoisted_3 = { class: \"d-flex align-center pb-8\" }\nconst _hoisted_4 = [\"src\"]\nconst _hoisted_5 = { class: \"heading-3 mb-1 text-white\" }\nconst _hoisted_6 = {\n key: 0,\n style: {\"max-width\":\"350px\",\"color\":\"#9ba1ae\"},\n class: \"heading-5\"\n}\nconst _hoisted_7 = {\n key: 1,\n class: \"text-gray heading-5\",\n style: {\"max-width\":\"350px\"}\n}\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", { href: \"mailto:support@simplex.com\" }, \"support@mew.com\", -1))\n\nimport iconFee from \"@/assets/images/promo/icon-fee.png\";\nimport iconFeeBlue from \"@/assets/images/promo/icon-fee-blue.png\";\nimport iconFeeMew from \"@/assets/images/promo/icon-fee-mew.png\";\nimport iconQuick from \"@/assets/images/promo/icon-quick.png\";\nimport iconQuickBlue from \"@/assets/images/promo/icon-quick-blue.png\";\nimport iconQuickMew from \"@/assets/images/promo/icon-quick-mew.png\";\nimport iconVerification from \"@/assets/images/promo/icon-verification.png\";\nimport iconVerificationBlue from \"@/assets/images/promo/icon-verification-blue.png\";\nimport iconVerificationMew from \"@/assets/images/promo/icon-verification-mew.png\";\nimport iconSupport from \"@/assets/images/promo/icon-support.png\";\nimport iconSupportBlue from \"@/assets/images/promo/icon-support-blue.png\";\nimport iconSupportMew from \"@/assets/images/promo/icon-support-mew.png\";\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'PromoComponentThisIsWhy',\n setup(__props) {\n\nconst isEthVm = window.location.search.includes(\"platform=ethvm\");\nconst isEnkrypt = window.location.search.includes(\"platform=enkrypt\");\n\nconst promo2 = [\n {\n icon: isEthVm ? iconFeeBlue : isEnkrypt ? iconFee : iconFeeMew,\n title: \"Low fees\",\n description:\n \"Get the most crypto for your fiat with limited fees from the provider and MEW\",\n },\n {\n icon: isEthVm ? iconQuickBlue : isEnkrypt ? iconQuick : iconQuickMew,\n title: \"Quick transactions\",\n description: \"Get crypto in your wallet in minutes\",\n },\n {\n icon: isEthVm\n ? iconVerificationBlue\n : isEnkrypt\n ? iconVerification\n : iconVerificationMew,\n title: \"Easy verification\",\n description: \"Payment is processed in a few short steps\",\n },\n {\n icon: isEthVm ? iconSupportBlue : isEnkrypt ? iconSupport : iconSupportMew,\n title: \"Human support\",\n description: `Reach out to ${\n isEthVm ? \"support@ethvm.com\" : \"support@enkrypt.com\"\n } with any questions`,\n },\n];\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_col = _resolveComponent(\"v-col\")!\n const _component_v_row = _resolveComponent(\"v-row\")!\n const _component_v_container = _resolveComponent(\"v-container\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_v_container, null, {\n default: _withCtx(() => [\n _hoisted_2,\n _createVNode(_component_v_row, null, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(promo2, (p2, key2) => {\n return _createVNode(_component_v_col, {\n cols: \"12\",\n md: \"6\",\n sm: \"6\",\n key: key2,\n class: _normalizeClass(['justify-left', 'd-flex'])\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"img\", {\n class: \"mr-4\",\n src: p2.icon,\n alt: \"Promo\"\n }, null, 8, _hoisted_4),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(p2.title), 1),\n (p2.description)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _toDisplayString(p2.description), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createTextVNode(\" Feel free to contact \"),\n _hoisted_8,\n _createTextVNode(\" should you have questions. \")\n ]))\n ])\n ])\n ]),\n _: 2\n }, 1024)\n }), 64))\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./PromoComponentThisIsWhy.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PromoComponentThisIsWhy.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PromoComponentThisIsWhy.vue?vue&type=style&index=0&id=05ed6bbe&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-05ed6bbe\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-72a78744\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"background-image pt-15\" }\n\nimport { inject } from \"vue\";\n\nimport HeaderComponent from \"@/components/Header/HeaderComponent.vue\";\nimport FooterComponent from \"@/components/Footer/FooterComponent.vue\";\nimport OrderForm from \"@/components/OrderForm/OrderForm.vue\";\nimport BuyFormBanner from \"@/components/BuyNowBanner/BuyBanner.vue\";\nimport PromoComponent from \"@/components/Promo/PromoComponent.vue\";\nimport PromoComponentThisIsWhy from \"@/components/Promo/PromoComponentThisIsWhy.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'LandingPage',\n setup(__props) {\n\nconst amplitude: any = inject(\"$amplitude\");\n\nconst VIEWED_CC_SWAP = \"CCSwapShown\";\n\nconst isEthVm = window.location.search.includes(\"platform=ethvm\");\nconst isEnkrypt = window.location.search.includes(\"platform=enkrypt\");\n\nif (isEthVm) {\n amplitude.track(`${VIEWED_CC_SWAP}EthVM`);\n}\nif (isEnkrypt) {\n amplitude.track(`${VIEWED_CC_SWAP}Enkrypt`);\n}\nif (!isEthVm && !isEnkrypt) {\n amplitude.track(`${VIEWED_CC_SWAP}Web`);\n}\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_col = _resolveComponent(\"v-col\")!\n const _component_v_row = _resolveComponent(\"v-row\")!\n const _component_v_container = _resolveComponent(\"v-container\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"component--landing-page-old-design\", [_ctx.$vuetify.display.mdAndUp ? 'background-lg' : 'background-sm']])\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_v_container, null, {\n default: _withCtx(() => [\n _createVNode(_component_v_row, null, {\n default: _withCtx(() => [\n _createVNode(_component_v_col, {\n cols: \"12\",\n md: \"5\",\n lg: \"7\"\n }, {\n default: _withCtx(() => [\n _createVNode(HeaderComponent)\n ]),\n _: 1\n }),\n _createVNode(_component_v_col, {\n cols: \"12\",\n md: \"7\",\n lg: \"5\"\n }, {\n default: _withCtx(() => [\n _createVNode(OrderForm)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(PromoComponent)\n ]),\n _createVNode(PromoComponentThisIsWhy),\n _createVNode(BuyFormBanner),\n _createVNode(FooterComponent)\n ], 2))\n}\n}\n\n})","import script from \"./LandingPage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LandingPage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LandingPage.vue?vue&type=style&index=0&id=72a78744&lang=scss\"\nimport \"./LandingPage.vue?vue&type=style&index=1&id=72a78744&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72a78744\"]])\n\nexport default __exports__","import { createRouter, createWebHistory } from \"vue-router\";\nimport LandingPage from \"@/layouts/LandingPage.vue\";\nconst router = createRouter({\n history: createWebHistory(),\n routes: [\n {\n path: \"/\",\n name: \"home\",\n component: LandingPage,\n },\n ],\n});\n\nexport default router;\n","import { createStore } from \"vuex\";\n\nexport default createStore({\n state: {},\n getters: {},\n mutations: {},\n actions: {},\n modules: {},\n});\n","import { createVuetify } from 'vuetify';\nimport * as components from 'vuetify/components';\nimport * as directives from 'vuetify/directives';\nimport '@mdi/font/css/materialdesignicons.css';\nimport 'vuetify/styles';\n\nconst COLORS = {\n // Enkrypt\n white: '#FFFFFF',\n purple: '#7B61FF',\n mew: '#05c0a5',\n gray: '#8799ab',\n 'black-1': '#202030',\n 'black': '#000',\n // EthVM\n blue: '#0065FF',\n navy: '#1A2C5C',\n 'purple-linear-1': '#C549FF',\n 'purple-linear-2': '#704BFF',\n // Shared colors\n 'grey-1': '#1B1B1B',\n 'dark-blue': '#1A2C5C',\n 'dark-blue-2': '#1D2342',\n 'grey-2': '#797982'\n\n};\n\nconst enkryptTheme = {\n dark: false,\n colors: {\n purple: COLORS.purple,\n mew: COLORS.mew,\n gray: COLORS.gray,\n 'promo--bottom': COLORS['grey-1'],\n 'buynow--banner': COLORS.purple,\n 'buynow--banner-btn-text': COLORS.purple,\n 'buynow--banner-btn': COLORS.white,\n 'btn-linear-1': COLORS['purple-linear-1'],\n 'btn-linear-2': COLORS['purple-linear-2'],\n 'btn-get-wallet': COLORS.purple,\n 'promo-border': COLORS.purple,\n 'promo-header-text': COLORS['grey-1'],\n 'background-fill': COLORS.white,\n 'background-gradient': COLORS.purple,\n black: COLORS['black-1'],\n white: COLORS.white,\n blue: COLORS.blue,\n navy: COLORS.navy,\n 'grey-1': COLORS['grey-1'],\n 'grey-2': COLORS['grey-2']\n },\n};\n\nconst ethvmTheme = {\n dark: false,\n colors: {\n blue: COLORS.blue,\n navy: COLORS.navy,\n mew: COLORS.mew,\n black: COLORS['black-1'],\n 'promo--bottom': COLORS['black'],\n 'buynow--banner': COLORS['dark-blue'],\n 'buynow--banner-btn-text': COLORS.white,\n 'buynow--banner-btn': COLORS.blue,\n 'btn-linear-1': COLORS.blue,\n 'btn-linear-2': COLORS.blue,\n 'btn-get-wallet': COLORS.blue,\n 'promo-border': COLORS.blue,\n 'promo-header-text': COLORS.white,\n 'background-fill': COLORS['dark-blue-2'],\n 'background-gradient': COLORS.blue,\n white: COLORS.white,\n 'grey-1': COLORS['grey-1'],\n 'grey-2': COLORS['grey-2']\n },\n};\nconst mewTheme = {\n dark: false,\n colors: {\n blue: COLORS.blue,\n navy: COLORS.navy,\n mew: COLORS.mew,\n black: COLORS['black-1'],\n 'promo--bottom': COLORS['dark-blue-2'],\n 'buynow--banner': COLORS.mew,\n 'buynow--banner-btn-text': COLORS.mew,\n 'buynow--banner-btn': COLORS.white,\n 'btn-linear-1': COLORS.mew,\n 'btn-linear-2': COLORS.mew,\n 'btn-get-wallet': COLORS.mew,\n 'promo-border': COLORS.mew,\n 'promo-header-text': COLORS.black,\n 'background-fill': COLORS.white,\n 'background-gradient': COLORS.mew,\n white: COLORS.white,\n 'grey-1': COLORS['grey-1'],\n 'grey-2': COLORS['grey-2']\n },\n};\n\nconst q = window.location.search;\nconst defaultTheme = q.includes('platform=ethvm') ? 'ethvmTheme' : q.includes('platform=enkrypt') ? 'enkryptTheme' : 'mewTheme';\n\nexport default createVuetify({\n components,\n directives,\n options: { customProperties: true },\n theme: {\n defaultTheme: defaultTheme,\n themes: {\n enkryptTheme,\n ethvmTheme,\n mewTheme\n },\n },\n});\n","/**\n * plugins/webfontloader.js\n *\n * webfontloader documentation: https://github.com/typekit/webfontloader\n */\n\nexport async function loadFonts() {\n const webFontLoader = await import(\n /* webpackChunkName: \"webfontloader\" */ \"webfontloader\"\n );\n\n webFontLoader.load({\n google: {\n families: [\"Roboto:100,300,400,500,700,900&display=swap\"],\n },\n });\n}\n","import { createApp, h } from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport store from \"./store\";\nimport vuetify from \"./plugins/vuetify\";\nimport { loadFonts } from \"./plugins/webfontloader\";\nimport * as amplitude from '@amplitude/analytics-browser';\n\n\namplitude.init(\n \"f90fa07c6624d9c3273268b866fc8788733e4dbac6feb32a420949e8bd45331f\",\n {\n instanceName:\n process.env.NODE_ENV === \"production\" ? \"mew-web-prod\" : \"mew-web-dev\",\n optOut: false,\n serverUrl:\n process.env.NODE_ENV === \"production\"\n ? \"https://analytics-web.mewwallet.dev/record\"\n : \"https://analytics-web-development.mewwallet.dev/record\",\n appVersion: \"0.0.1\",\n trackingOptions: {\n ipAddress: false,\n },\n identityStorage: \"none\",\n logLevel: amplitude.Types.LogLevel.None,\n defaultTracking: {\n formInteractions: false,\n pageViews: false\n }\n },\n);\n\n\nloadFonts();\n\ncreateApp({\n render: () => h(App),\n})\n .use(router)\n .use(store)\n .use(vuetify)\n .provide(\"$amplitude\", amplitude)\n .mount(\"#app\");\n","var map = {\n\t\"./BCH.svg\": 27599,\n\t\"./BNB.svg\": 1265,\n\t\"./BTC.svg\": 3090,\n\t\"./DAI.svg\": 27646,\n\t\"./DOGE.svg\": 97579,\n\t\"./DOT.svg\": 42095,\n\t\"./ETH.svg\": 55694,\n\t\"./KDA.svg\": 58095,\n\t\"./KSM.svg\": 88160,\n\t\"./LTC.svg\": 30230,\n\t\"./MATIC.svg\": 12466,\n\t\"./USDC.svg\": 90311,\n\t\"./USDT.svg\": 38792\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 67604;","var map = {\n\t\"./AUD.svg\": 5614,\n\t\"./CAD.svg\": 58082,\n\t\"./EUR.svg\": 54596,\n\t\"./GBP.svg\": 81569,\n\t\"./JPY.svg\": 51071,\n\t\"./RUB.svg\": 53715,\n\t\"./USD.svg\": 96576\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 33222;","var map = {\n\t\"./crypto/BCH.svg\": 27599,\n\t\"./crypto/BNB.svg\": 1265,\n\t\"./crypto/BTC.svg\": 3090,\n\t\"./crypto/DAI.svg\": 27646,\n\t\"./crypto/DOGE.svg\": 97579,\n\t\"./crypto/DOT.svg\": 42095,\n\t\"./crypto/ETH.svg\": 55694,\n\t\"./crypto/KDA.svg\": 58095,\n\t\"./crypto/KSM.svg\": 88160,\n\t\"./crypto/LTC.svg\": 30230,\n\t\"./crypto/MATIC.svg\": 12466,\n\t\"./crypto/USDC.svg\": 90311,\n\t\"./crypto/USDT.svg\": 38792,\n\t\"./fiat/AUD.svg\": 5614,\n\t\"./fiat/CAD.svg\": 58082,\n\t\"./fiat/EUR.svg\": 54596,\n\t\"./fiat/GBP.svg\": 81569,\n\t\"./fiat/JPY.svg\": 51071,\n\t\"./fiat/RUB.svg\": 53715,\n\t\"./fiat/USD.svg\": 96576\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 8295;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + \"webfontloader\" + \".\" + \"07803e14\" + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"mew-ccswap:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmew_ccswap\"] = self[\"webpackChunkmew_ccswap\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(74562); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_ctx","_cache","$props","$setup","$data","$options","_component_router_view","_resolveComponent","_openBlock","_createBlock","_component_v_app","default","_withCtx","_createVNode","_component_v_main","_","defineComponent","name","__exports__","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","class","_hoisted_2","_hoisted_3","style","_hoisted_4","_createElementVNode","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_defineComponent","__name","setup","__props","isEthVm","window","location","search","includes","isEnkrypt","_createElementBlock","src","_unref","ethvmLogo","enkryptDarkLogo","mewLogo","alt","height","_normalizeStyle","$vuetify","display","smAndUp","simplexLight","simplex","moonpayWhite","moonpay","visa","applePay","master","_createTextVNode","href","target","presentDate","Date","getFullYear","_component_v_container","mewIconLight","_toDisplayString","_component_v_btn","size","color","key","_component_buy_form","_component_sell_form","_component_MewTabs","_component_TokenSelect","_component_BuyProviders","step","items","tabItems","activeTab","onOnTab","onTab","tabContent1","selectedCurrency","selectedFiat","selectedNetwork","fiatAmount","onSetQuotes","setQuotes","onSelectedCurrency","openTokenSelect","onSuccess","buySuccess","onSelectedNetwork","setNetwork","onSelectCurrency","setSelectedCurrency","tabContent2","sellSuccess","_createCommentVNode","_normalizeClass","moonpayData","simplexData","isSell","onClose","close","onlySimplex","buyObj","simplexQuote","toAddress","compact","_component_v_chip_group","modelValue","$event","mandatory","column","_Fragment","_renderList","mobileItem","mobileItemKey","_component_v_chip","outlined","_renderSlot","$slots","undefined","_component_v_tabs","tabClasses","background","activeColor","centered","isCentered","isBlock","isVertical","grow","hasFullWidth","vertical","showArrows","item","i","_component_v_tab","isSmall","ripple","_component_v_window","_component_v_window_item","value","_component_v_slide_x_reverse_transition","mode","props","type","String","Boolean","Number","hasUnderline","Array","data","this","computed","classes","push","watch","newVal","$emit","mounted","API","supportedCrypto","supportedFiat","currencySymbols","USD","RUB","EUR","JPY","AUD","CAD","GBP","async","getSimplexQuote","fiatCurrency","cryptoCurrency","requestedCurrency","requestedAmount","address","apiQuote","axios","params","id","sha3","substring","toNumber","then","response","catch","e","filterData","res","isArray","filter","getCryptoPrices","iso","Promise","all","map","c","getSupportedFiatToSell","symbol","headers","getCryptoSellPrices","cryptos","_component_mew_blockie","_component_mew_transform_hash","_component_v_combobox","ref","addressValue","onInputChange","label","placeholder","disabled","errorMessages","hint","resolvedAddr","length","rules","noDataText","closeOnContentClick","variant","onChange","isValidAddress","blockieHash","width","onClick","selectAddress","raw","slice","hash","nickname","_withDirectives","blockieImg","flat","_vShow","currency","randseed","seedrand","seed","j","charCodeAt","rand","t","createColor","h","Math","floor","s","l","createImageData","dataWidth","ceil","mirrorWidth","y","row","x","r","reverse","concat","createCanvas","imageData","scale","bgcolor","spotcolor","sqrt","document","createElement","cc","getContext","fillStyle","fillRect","col","createIcon","opts","random","pow","toString","canvas","createBlockie","methods","Blockies","toLowerCase","toDataURL","blockieElem","$refs","blockie","justifyStart","start","end","USER_INPUT_TYPES","typed","selected","components","MewBlockie","MewTransformHash","clearAddress","isTyped","clear","val","addressSelect","Object","assign","mewAddressSelect","zero","toBN","negative1","getValueOfUnit","decimals","numberToString","arg","match","Error","toTwos","dividedToIntegerBy","toPrecision","fromBase","weiInput","optionsInput","wei","negative","lt","base","baseLength","options","mul","fraction","mod","pad","whole","div","commify","replace","toBase","etherInput","ether","comps","split","add","localizeCurrency","number","rate","small","verySmall","isNull","convertNumber","convertedPrice","tooltipText","notation","minimumFractionDigits","maximumFractionDigits","currencyToNumber","isBN","isNaN","priceConversion","toFixed","parseFloat","num","muln","numberObj","Intl","NumberFormat","currencyDisplay","format","message","SmallNumberBreakpoint","SmallFiatBreakpoint","TenThousand","OneMillion","OneBillion","OneTrillion","OneQuadrillion","FormattedNumberUnit","ETH","GWEI","WEI","PERCENT","B","T","Q","M","FIAT","fmt","decimalSeparator","groupSeparator","groupSize","BigNumber","FORMAT","ROUNDING_MODE","formatIntegerValue","_value","isGreaterThanOrEqualTo","convertToQuadrillion","convertToTrillions","convertToBillions","convertToMillions","toFormat","formatFloatingPointValue","isZero","getRoundNumber","formatFiatValue","locale","result","dividedBy","unit","round","hasTrailingZeros","dps","decimalPlaces","Networks","name_long","chainID","tokens","icon","getIcon","currencyName","gasPriceMultiplier","coingeckoID","service","url","port","auth","username","password","require","Crypto","constructor","subtext","network","img","_providerMinFee","providerReducedPercentFee","providerPercentFee","networkFee","providerMinFee","fiatConversionRate","baseRate","init","NetworkFee","calculateFiatFee","Amount","price","amount","roundAmount","fee","fiatFee","fiatBase","convertedMinFee","minFee","calculatedFee","max","roundingMode","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","cryptoSelected","networkSelected","fiatSelected","emits","emit","defaultFiatValue","gasPrice","polkadot_chains","bitcoin_chains","other_chains","priceTimer","fiatFilter","onMounted","form","getPrices","isEmpty","loadUrlParameters","cryptoToFiat","fiatToCrypto","fetchGasPrice","setInterval","onUnmounted","clearInterval","fiatItems","filteredFiatItems","updateFiatFilter","conversion_rates","limits","prices","MATIC","BNB","DOT","KSM","reactive","cryptoAmount","validAddress","addressErrorMsg","reCaptchaToken","addressError","loading","showAlert","processingBuyForm","alertMessage","dropdown","fiat","crypto","verifyAddress","minMaxError","web3","supportedNodes","BSC","nodeType","node","find","Web3","includesFeeText","percentFee","currencyConfig","networkFeeText","networkFeeToFiat","dailyLimit","isMoonpay","simplexMax","isValidData","moonpayMax","monthlyLimit","fiatMultiplier","times","hasData","selectedCurrencyPrice","fromWei","networkFeeWei","priceOb","networkPrice","plusFee","isEUR","withFee","gt","sub","subn","plusFeeF","isAvailable","moonpayLimit","moonpayCryptoAmount","moonpayAvailable","simplexAvailable","simplexPrice","simplexFiatAmount","simplexFiatFee","simplexPlusFee","minus","simplexPlusFeeF","simplexIncludesFeeText","simplexCryptoAmount","fiatIcon","cryptoIcon","isFiat","selectCurrency","isValidForm","minMax","isString","isNumber","min","simplexLimit","limit","valid","gte","lte","forEach","arr","d","tmp","fiat_currency","exchange_rate","p","tokenName","crypto_currencies","mainCoin","tokensInfo","USDT","USDC","DAI","foundToken","tokenInfo","errorHandler","kdaValidator","kPrefixed","substr","checkHex","isHex","addressValid","WAValidator","isValidAddressPolkadotAddress","bestPrice","moonpayPrice","queryString","urlParams","URLSearchParams","queryCryptoAmount","get","queryFiat","queryCrypto","queryTo","isSupportedCrypto","cItem","isSupportedFiat","toUpperCase","tokensList","queryCryptoAmountHolder","locPriceOb","locMin","isErrorObj","isObject","error","hasErr","hasOwnProperty","errors","isHexStrict","isAddress","cryptoPrefix","encodedAddress","encodeAddress","addressInput","submitForm","moonpayOverMax","moonpayFiatAmount","simplex_quote","selectedCryptoName","buy_obj","open_providers","selected_currency","selected_fiat","fiat_amount","disable_moonpay","eth","getGasPrice","_component_v_progress_circular","indeterminate","_component_v_text_field","onInput","modelModifiers","required","_component_v_select","_isRef","autofocus","density","rounded","prepend","append","_component_v_icon","MewAddressSelect","onKeyup","onChanged","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","processingBuy","moonpayLogo","hideMoonpay","_component_v_tooltip","activator","_mergeProps","visaIcon","masterIcon","applePayIcon","bankIcon","paymentOptionString","buy","moonpayBtnTitle","simplexLogo","openSimplex","simplexBtnTitle","apiOrder","confirmSimplexOrder","paymentId","encodeURI","executeSimplexPayment","responseQuote","responseOrder","payment_id","executeMoonpayBuy","tokenSymbol","q","platform","resolve","link","parsedUrl","executeMoonpaySell","orderHandler","Function","amplitude","inject","selectedFiatName","actualAddress","isValidToAddress","MultiCoinValidator","track","reset","currencyFormatter","isPurchasing","filteredNetworkList","selection","networkSearchInput","selectNetwork","searchInput","_component_v_list","lines","filteredTokenList","_component_v_list_item","tokenPrice","_component_v_list_item_title","networks","networkDropdown","cryptoDropdown","fiatName","filterText","token","hasValidPrices","networkList","beforeMount","abi","constant","inputs","outputs","payable","stateMutability","polkdadot_chains","gasTimer","contract","addressBook","getBalance","getOwnPropertyNames","balance","balanceWei","balanceETH","balanceError","balanceErrorMsg","checkBalance","networkFeeF","validData","crypto_currency","isMainCoin","getETHBalance","getTokenBalance","displayBalance","userBalance","hasEnoughCrypto","totalWithFee","subtotalSell","decimalAmount","newContract","Contract","bal","balanceOf","call","console","MewTabs","BuyForm","SellForm","BuyProviders","TokenSelect","open","defaultCurrency","supportedSell","defaultNetwork","leftBtn","method","setSelectedFiat","openProviders","setBuyObj","setSimplexQuote","setToAddress","moonpayQuote","disableMoonpay","scrollTop","scrollTo","promo1","title","description","lgAndUp","_component_v_row","p1","key1","_component_v_col","cols","md","promo2","iconFeeBlue","iconFee","iconFeeMew","iconQuickBlue","iconQuick","iconQuickMew","iconVerificationBlue","iconVerification","iconVerificationMew","iconSupportBlue","iconSupport","iconSupportMew","p2","key2","sm","VIEWED_CC_SWAP","mdAndUp","lg","HeaderComponent","OrderForm","PromoComponent","PromoComponentThisIsWhy","BuyFormBanner","FooterComponent","router","createRouter","history","createWebHistory","routes","path","component","LandingPage","createStore","state","getters","mutations","actions","modules","COLORS","white","purple","mew","gray","blue","navy","enkryptTheme","dark","colors","black","ethvmTheme","mewTheme","defaultTheme","createVuetify","directives","customProperties","theme","themes","loadFonts","webFontLoader","load","google","families","instanceName","optOut","serverUrl","appVersion","trackingOptions","ipAddress","identityStorage","logLevel","defaultTracking","formInteractions","pageViews","createApp","App","use","store","vuetify","provide","mount","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","keys","module","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","m","amdO","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","splice","getter","__esModule","a","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","ns","create","def","current","indexOf","definition","defineProperty","enumerable","f","chunkId","reduce","promises","u","miniCssF","g","globalThis","prop","prototype","inProgress","dataWebpackPrefix","done","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","setAttribute","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","installedChunks","installedChunkData","promise","reject","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.c48c9920.js b/js/app.c48c9920.js deleted file mode 100644 index c004cd2c..00000000 --- a/js/app.c48c9920.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){var e={4149:function(e,t,r){"use strict";var a=r(49242),s=r(73396),n=r(97718),o=r(73140);function i(e,t,r,a,i,l){const c=(0,s.up)("router-view");return(0,s.wg)(),(0,s.j4)(n.q,null,{default:(0,s.w5)((()=>[(0,s.Wm)(o.O,null,{default:(0,s.w5)((()=>[(0,s.Wm)(c)])),_:1})])),_:1})}var l=(0,s.aZ)({name:"App"}),c=r(40089);const d=(0,c.Z)(l,[["render",i]]);var u=d,m=r(22483),p=r(87139),A=r(44870),g=r(14393),h=r(83845),w=r(90407),f=r(60074),y=r.p+"img/icon-simplex-light.de776b97.svg",v=r(1902),b=r.p+"img/icon-moonpay-white.0dac1d0d.svg",S=r.p+"img/icon-enkrypt-logo-dark.fbd22524.svg",C=r.p+"img/icon-ethvm-logo.e575d2d1.svg",x=r.p+"img/icon-mew-logo-dark.49ceaae5.svg";const k=e=>((0,s.dD)("data-v-5f3caf0a"),e=e(),(0,s.Cn)(),e),B={class:"dropShadow"},T=["src"],U={class:"d-flex align-center",style:{"margin-top":"60px"}},D=k((()=>(0,s._)("div",{class:"text-color mr-4"},"Powered by",-1))),E=["src"],F=["src"],M={class:"d-flex flex-wrap align-center mt-4"},O=k((()=>(0,s._)("div",{class:"text-color mr-2"},"We accept",-1))),W={class:"d-flex align-center"},I=["src"],N=["src"],Q=["src"];var Z=(0,s.aZ)({__name:"HeaderComponent",setup(e){const t=window.location.search.includes("platform=ethvm"),r=window.location.search.includes("platform=enkrypt");return(e,a)=>((0,s.wg)(),(0,s.iD)("div",B,[(0,s._)("img",{src:(0,A.SU)(t)?(0,A.SU)(C):(0,A.SU)(r)?(0,A.SU)(S):(0,A.SU)(x),alt:"MEW",height:"36"},null,8,T),(0,s._)("div",{class:"heading-1 text-color",style:(0,p.j5)(e.$vuetify.display.smAndUp?"margin-top: 100px; max-width: 520px":"margin-top: 50px; max-width: 520px")}," Buy and Sell Crypto Fast and Secure ",4),(0,s._)("div",U,[D,(0,s._)("img",{class:"mr-2",src:(0,A.SU)(t)?(0,A.SU)(y):(0,A.SU)(f),alt:"Simplex",height:"25"},null,8,E),(0,s._)("img",{src:(0,A.SU)(t)?(0,A.SU)(b):(0,A.SU)(v),alt:"Moonpay",height:"25"},null,8,F)]),(0,s._)("div",M,[O,(0,s._)("div",W,[(0,s._)("img",{class:"mr-2",src:(0,A.SU)(g),alt:"Visa",height:"22"},null,8,I),(0,s._)("img",{class:"mr-2",src:(0,A.SU)(w),alt:"Visa",height:"22"},null,8,N),(0,s._)("img",{src:(0,A.SU)(h),alt:"Master",height:"22"},null,8,Q)])])]))}});const j=(0,c.Z)(Z,[["__scopeId","data-v-5f3caf0a"]]);var H=j,V=r.p+"img/icon-mew-logo-light.b7102cfa.svg",L=r(75101),P=r(23369);const R=e=>((0,s.dD)("data-v-4fb33120"),e=e(),(0,s.Cn)(),e),G={class:"component--footer py-2"},Y=["src"],z={class:"my-5"},K={"footer--text":"",style:{color:"white"}},q=R((()=>(0,s._)("div",{class:"font-weight-regular",style:{color:"white"}},[(0,s.Uk)(" Need Ethereum wallet? Get one from "),(0,s._)("a",{class:"text-white",href:"https://www.myetherwallet.com/wallet/create",target:"_blank",style:{"text-decoration":"none"}}," myetherwallet.com ")],-1))),X=R((()=>(0,s._)("div",{class:"text-white font-weight-bold"},"Get a wallet",-1)));var J=(0,s.aZ)({__name:"FooterComponent",setup(e){const t=(new Date).getFullYear();return(e,r)=>((0,s.wg)(),(0,s.iD)("div",G,[(0,s.Wm)(P.K,{class:"text-center"},{default:(0,s.w5)((()=>[(0,s._)("img",{src:(0,A.SU)(V),alt:"MEW",height:"25"},null,8,Y),(0,s._)("div",z,[(0,s._)("div",K," ©"+(0,p.zw)((0,A.SU)(t))+" MyEtherWallet Inc. All rights reserved ",1),q]),(0,s.Wm)(L.T,{size:"x-large",class:"rounded-pill text-white mt-3 text-none",color:"btn-get-wallet",href:"https://www.myetherwallet.com/wallet/create",target:"_blank"},{default:(0,s.w5)((()=>[X])),_:1})])),_:1})]))}});const _=(0,c.Z)(J,[["__scopeId","data-v-4fb33120"]]);var $=_;const ee={class:"top-container component--buy-form elevated-box elevation-4 pa-3 pa-sm-6 pa-md-8"},te={key:0};function re(e,t,r,a,n,o){const i=(0,s.up)("buy-form"),l=(0,s.up)("sell-form"),c=(0,s.up)("MewTabs"),d=(0,s.up)("TokenSelect"),u=(0,s.up)("BuyProviders");return(0,s.wg)(),(0,s.iD)("div",ee,[0===e.step?((0,s.wg)(),(0,s.iD)("div",te,[(0,s.Wm)(c,{items:e.tabItems,"active-tab":e.activeTab,"base-color":"greenPrimary","has-underline":"",onOnTab:e.onTab},{tabContent1:(0,s.w5)((()=>[(0,s.Wm)(i,{"crypto-selected":e.selectedCurrency,"fiat-selected":e.selectedFiat,"network-selected":e.selectedNetwork,"fiat-amount":e.fiatAmount,onSetQuotes:e.setQuotes,onSelectedCurrency:e.openTokenSelect,onSuccess:e.buySuccess,onSelectedNetwork:e.setNetwork,onSelectCurrency:e.setSelectedCurrency},null,8,["crypto-selected","fiat-selected","network-selected","fiat-amount","onSetQuotes","onSelectedCurrency","onSuccess","onSelectedNetwork","onSelectCurrency"])])),tabContent2:(0,s.w5)((()=>[(0,s.Wm)(l,{"crypto-selected":e.selectedCurrency,"fiat-selected":e.selectedFiat,"network-selected":e.selectedNetwork,"fiat-amount":e.fiatAmount,onSetQuotes:e.setQuotes,onSelectedCurrency:e.openTokenSelect,onSuccess:e.sellSuccess},null,8,["crypto-selected","fiat-selected","network-selected","fiat-amount","onSetQuotes","onSelectedCurrency","onSuccess"])])),_:1},8,["items","active-tab","onOnTab"])])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,p.C_)(["token-select-slider",1===e.step?"open":""])},[1===e.step?((0,s.wg)(),(0,s.j4)(d,{key:0,class:"pa-3 pa-sm-6 pa-md-8","selected-network":e.selectedNetwork,"selected-currency":e.selectedCurrency,"fiat-selected":e.selectedFiat,"moonpay-data":e.moonpayData,"simplex-data":e.simplexData,"is-sell":e.isSell,onClose:e.close,onSelectCurrency:e.setSelectedCurrency,onSelectedNetwork:e.setNetwork},null,8,["selected-network","selected-currency","fiat-selected","moonpay-data","simplex-data","is-sell","onClose","onSelectCurrency","onSelectedNetwork"])):(0,s.kq)("",!0)],2),2===e.step?((0,s.wg)(),(0,s.j4)(u,{key:1,"selected-fiat":e.selectedFiat,"selected-currency":e.selectedCurrency,"only-simplex":e.onlySimplex,"buy-obj":e.buyObj,"simplex-quote":e.simplexQuote,"to-address":e.toAddress,onClose:e.close},null,8,["selected-fiat","selected-currency","only-simplex","buy-obj","simplex-quote","to-address","onClose"])):(0,s.kq)("",!0)])}var ae=r(74806),se=r(51037),ne=r(2356),oe=r(11165),ie=r(79870),le=r(76161),ce=r(84722),de=r(68952);const ue={key:0};function me(e,t,r,a,n,o){return(0,s.wg)(),(0,s.iD)("div",null,[e.compact?((0,s.wg)(),(0,s.iD)("div",ue,[(0,s.Wm)(ne.N,{modelValue:e.onTab,"onUpdate:modelValue":t[0]||(t[0]=t=>e.onTab=t),mandatory:"",column:""},{default:(0,s.w5)((()=>[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.items,((e,t)=>((0,s.wg)(),(0,s.j4)(se.v,{key:t,class:"ma-1","active-class":"greenPrimary text--primary",outlined:""},{default:(0,s.w5)((()=>[(0,s.Uk)((0,p.zw)(e),1)])),_:2},1024)))),128))])),_:1},8,["modelValue"]),(0,s._)("template",null,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.items,((t,r)=>((0,s.wg)(),(0,s.iD)("div",{key:r},[e.onTab==r?(0,s.WI)(e.$slots,"tabItemContent"+(r+1),{key:0},void 0,!0):(0,s.kq)("",!0)])))),128))])])):(0,s.kq)("",!0),e.compact?(0,s.kq)("",!0):((0,s.wg)(),(0,s.j4)(oe.d,{key:1,modelValue:e.onTab,"onUpdate:modelValue":t[2]||(t[2]=t=>e.onTab=t),class:(0,p.C_)(e.tabClasses),"background-color":e.background,color:e.activeColor,centered:e.isCentered,"slider-size":"3","hide-slider":e.isBlock||e.isVertical,grow:e.isBlock||e.hasFullWidth,vertical:e.isVertical,"show-arrows":e.showArrows,"align-with-title":!e.isBlock&&!e.isCentered&&!e.isVertical},{default:(0,s.w5)((()=>[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.items,((t,r)=>((0,s.wg)(),(0,s.j4)(ie.L,{key:`${t}`+r,class:(0,p.C_)([e.isBlock?"mew-tab-block":e.isVertical||e.isSmall?"mew-body font-weight-medium":"mew-heading-2","capitalize"]),ripple:!e.isVertical},{default:(0,s.w5)((()=>[(0,s.Uk)((0,p.zw)(t),1)])),_:2},1032,["class","ripple"])))),128)),(0,s.Wm)(le.Oo,{modelValue:e.onTab,"onUpdate:modelValue":t[1]||(t[1]=t=>e.onTab=t)},{default:(0,s.w5)((()=>[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.items,((t,r)=>((0,s.wg)(),(0,s.j4)(ce.H,{key:`${t}`+r,value:t,"reverse-transition":e.isVertical?"slide-y-transition":"slide-x-transition"},{default:(0,s.w5)((()=>[(0,s.WI)(e.$slots,"tabItemContent"+(r+1),{},void 0,!0)])),_:2},1032,["value","reverse-transition"])))),128))])),_:3},8,["modelValue"])])),_:3},8,["modelValue","class","background-color","color","centered","hide-slider","grow","vertical","show-arrows","align-with-title"])),((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.items,((t,r)=>((0,s.wg)(),(0,s.iD)("div",{key:`${t}`+r},[(0,s.Wm)(de.Zy,{"hide-on-leave":!0,mode:"out-in"},{default:(0,s.w5)((()=>[e.onTab===r?(0,s.WI)(e.$slots,"tabContent"+(r+1),{key:0},void 0,!0):(0,s.kq)("",!0)])),_:2},1024)])))),128))])}r(57658);var pe=(0,s.aZ)({name:"MewTabs",props:{activeColor:{type:String,default:"titlePrimary"},background:{type:String,default:"transparent"},showArrows:{type:Boolean,default:!1},activeTab:{type:Number,default:0},hasUnderline:{type:Boolean,default:!1},isVertical:{type:Boolean,default:!1},isCentered:{type:Boolean,default:!1},items:{type:Array,default:()=>[]},isBlock:{type:Boolean,default:!1},hasFullWidth:{type:Boolean,default:!1},isSmall:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},data(){return{onTab:this.activeTab}},computed:{tabClasses(){const e=["mew-tabs"];return this.hasUnderline&&e.push("mew-tabs-underline"),this.isBlock&&e.push("mew-tabs-block elevation-3"),e}},watch:{activeTab(e){this.onTab=e},onTab(e){this.$emit("onTab",e)}},mounted(){this.onTab=this.activeTab}});const Ae=(0,c.Z)(pe,[["render",me],["__scopeId","data-v-5311767f"]]);var ge=Ae,he=r(91097),we=r(56265),fe=r.n(we),ye=r(77802);const ve="https://mainnet.mewwallet.dev",be=["ETH","BTC","BCH","MATIC","USDT","USDC","DAI","DOT","KSM","KDA"],Se=["USD","EUR","JPY","AUD","CAD","GBP"],Ce={USD:"$",RUB:"₽",EUR:"€",JPY:"¥",AUD:"AU$",CAD:"CA$",GBP:"£"};async function xe(e,t,r,a,s="0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D"){const n=`${ve}/purchase/simplex/quote`;return await fe().get(n,{params:{id:`WEB|${(0,ye.sha3)(s)?.substring(0,42)}`,fiatCurrency:e,cryptoCurrency:t,requestedCurrency:r,requestedAmount:(0,ae.toNumber)(a)}}).then((e=>e.data)).catch((e=>{throw e}))}const ke=e=>{const{data:t}=e;if(Array.isArray(t))return t.filter((e=>"SIMPLEX"===e.name||"MOONPAY"===e.name))};async function Be(e){const t=`${ve}/v4/purchase/providers/web`;return e?await fe().get(t,{params:{iso:"us",cryptoCurrency:e}}).then((e=>ke(e))).catch((e=>{throw e})):Promise.all(be.map((e=>fe().get(t,{params:{iso:"us",cryptoCurrency:e}}).then((e=>ke(e))).catch((e=>{throw e}))))).catch((e=>{throw e}))}async function Te(e){return fe().get(`${ve}/v3/sell/providers/web?iso=us&cryptoCurrency=${e}`,{headers:{"Accept-Language":"en-US"}}).then((e=>e.data))}async function Ue(e){if(e)return await Te(e).then((e=>ke(e))).catch((e=>{throw e}));const t=["ETH","BNB","MATIC","USDT","USDC","DAI"];return Promise.all(t.map((e=>Te(e).catch((e=>{throw e}))))).catch((e=>{throw e}))}var De=r(40513),Ee=r.n(De),Fe=r(58714),Me=r(68560);const Oe={key:0,class:"blockie-placeholder mr-1 selectHover"},We=["onClick"],Ie={class:"d-flex align-center justify-space-between"},Ne={key:1,class:"d-flex align-center"},Qe={class:"mew-address"},Ze={class:"overline primary--text font-weight-medium ml-3 mr-3"};function je(e,t,r,a,n,o){const i=(0,s.up)("mew-blockie"),l=(0,s.up)("mew-transform-hash");return(0,s.wg)(),(0,s.j4)(Me.E,{ref:"mewAddressSelect",modelValue:e.addressValue,"onUpdate:modelValue":[t[0]||(t[0]=t=>e.addressValue=t),e.onInputChange],class:"address-select pa-0 rounded-lg",color:"primary",label:e.label,"item-value":"address","item-text":"address",placeholder:e.placeholder,disabled:e.disabled,"error-messages":e.errorMessages,hint:e.hint||e.resolvedAddr||"","persistent-hint":e.resolvedAddr.length>0||e.hint.length>0,rules:e.rules,"no-data-text":e.noDataText,"menu-props":{closeOnContentClick:!0},variant:"outlined","onUpdate:searchInput":e.onChange},{"prepend-inner":(0,s.w5)((()=>[e.isValidAddress&&e.blockieHash?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",Oe)),e.isValidAddress?((0,s.wg)(),(0,s.j4)(i,{key:1,class:"mr-1",address:e.blockieHash,width:"25px",height:"25px"},null,8,["address"])):(0,s.kq)("",!0)])),item:(0,s.w5)((({item:t})=>[(0,s._)("div",{class:"py-4 px-0 full-width d-flex align-center justify-space-between cursor-pointer",onClick:r=>e.selectAddress(t)},[(0,s._)("div",Ie,[(0,s.Wm)(i,{class:"mr-2 ml-2",address:t.raw.resolvedAddr?t.raw.resolvedAddr:t.raw.address,width:"25px",height:"25px"},null,8,["address"]),t.raw.resolvedAddr&&""!==t.raw.resolvedAddr?((0,s.wg)(),(0,s.iD)("div",Ne,[(0,s._)("span",Qe,(0,p.zw)(t.raw.address),1),(0,s._)("span",null,(0,p.zw)(t.raw.address.slice(-4)),1)])):((0,s.wg)(),(0,s.j4)(l,{key:0,hash:t.raw.address},null,8,["hash"]))]),(0,s._)("div",Ze,(0,p.zw)(t.raw.nickname),1)],8,We)])),_:1},8,["modelValue","label","placeholder","disabled","error-messages","hint","persistent-hint","rules","no-data-text","onUpdate:searchInput","onUpdate:modelValue"])}const He=["src"],Ve={key:0,class:"inset-shadow"},Le=["src"];function Pe(e,t,r,n,o,i){return(0,s.wg)(),(0,s.iD)("div",null,[(0,s.wy)((0,s._)("div",{style:(0,p.j5)([{position:"relative"},`width: ${e.width}; height: ${e.height}`])},[(0,s._)("img",{ref:"blockie",src:e.blockieImg,alt:"Blockie Image",style:{display:"block","border-radius":"50%"}},null,8,He),e.flat?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",Ve))],4),[[a.F8,e.address]]),e.currency?((0,s.wg)(),(0,s.iD)("img",{key:0,alt:"icon",class:"currency-icon",src:e.currency},null,8,Le)):(0,s.kq)("",!0)])}const Re=new Array(4);function Ge(e){for(let t=0;t>19^e^e>>8,(Re[3]>>>0)/(1<<31>>>0)}function ze(){const e=Math.floor(360*Ye()),t=60*Ye()+40+"%",r=25*(Ye()+Ye()+Ye()+Ye())+"%",a="hsl("+e+","+t+","+r+")";return a}function Ke(e){const t=e,r=e,a=Math.ceil(t/2),s=t-a,n=[];for(let o=0;o[]},noDataText:{type:String,default:""},resolvedAddr:{type:String,default:""},disabled:{type:Boolean,default:!1},isValidAddress:{type:Boolean,default:!1},label:{type:String,default:"To Address"},placeholder:{type:String,default:"Please enter an address"},errorMessages:{type:[String,Array],default:""},clearAddress:{type:Boolean,default:!1}},data(){return{addressValue:this.modelValue,isTyped:it.typed}},computed:{blockieHash(){return this.resolvedAddr.length>0?this.resolvedAddr:this.addressValue}},watch:{clearAddress(){this.clear()},modelValue(e){this.addressValue=e}},methods:{clear(){this.addressValue=""},selectAddress(e){this.isTyped=it.selected;const t=Object.assign({},this.$refs.mewAddressSelect);this.addressValue=e.value.address,t.modelValue=this.addressValue,this.onChange(this.addressValue)},onChange(e){this.$emit("changed",e,this.isTyped)},onInputChange(e){this.isTyped=it.typed,this.addressValue=e?e.address?e.address:e.toString():"",this.onChange(this.addressValue)}}});const ct=(0,c.Z)(lt,[["render",je],["__scopeId","data-v-830abb46"]]);var dt=ct;const ut=(0,ye.toBN)(0),mt=(0,ye.toBN)(-1),pt=e=>(0,ye.toBN)(10).pow((0,ye.toBN)(e)),At=e=>{if("string"===typeof e){if(!e.match(/^-?[0-9.]+$/))throw new Error(`while converting number to string, invalid number value '${e}', should be a number matching (^-?[0-9.]+).`);return e}if("number"===typeof e)return String(e);if("object"===typeof e&&e.toString&&(e.toTwos||e.dividedToIntegerBy))return e.toPrecision?String(e.toPrecision()):e.toString(10);throw new Error(`while converting number to string, invalid number value '${e}' type ${typeof e}.`)},gt=(e,t,r)=>{let a=(0,ye.toBN)(e);const s=a.lt(ut),n=pt(t),o=n.toString().length-1||1,i=r||{};s&&(a=a.mul(mt));let l=a.mod(n).toString(10);while(l.length{let r=At(e);const a=pt(t),s=a.toString().length-1||1,n="-"===r.substring(0,1);if(n&&(r=r.substring(1)),"."===r)throw new Error(`[ethjs-unit] while converting number ${e} to wei, invalid value`);const o=r.split(".");if(o.length>2)throw new Error(`[ethjs-unit] while converting number ${e} to wei, too many decimal points`);let i=o[0],l=o[1];if(i||(i="0"),l||(l="0"),l.length>s)throw new Error(`[ethjs-unit] while converting number ${e} to wei, too many decimal places`);while(l.length{if((0,ae.isNull)(t))return vt({currency:e,options:{},convertedPrice:0});const n=t.tooltipText?{notation:"compact",minimumFractionDigits:3,maximumFractionDigits:4}:a?{notation:"compact",minimumFractionDigits:5,maximumFractionDigits:6}:{};if(r="string"===typeof r?yt(r):r,t="string"===typeof t?yt(t):t.tooltipText?yt(t.tooltipText):(0,ye.isBN)(t)?yt(t.toString()):t,isNaN(t))return vt({currency:e,options:{},convertedPrice:0});const o=t.toString().split(".")[1]?.length||0,i=a?ft(t,o,r).toFixed(6):s?ft(t,o,r).toFixed(7):ft(t,o,r);return vt({currency:e,options:n,convertedPrice:Number.parseFloat(i.toString())})},ft=(e,t,r)=>parseFloat(gt((0,ye.toBN)(ht(e,t)).muln(r).toString(),t)),yt=e=>"string"===typeof e?parseFloat(e.replace(/[,$₽<\s]/g,"")):e,vt=e=>{try{return new Intl.NumberFormat(void 0,{style:"currency",currency:e.currency,currencyDisplay:"narrowSymbol",...e.options}).format(e.convertedPrice)}catch(t){if(t instanceof Error)throw new Error(t.message)}},bt=1e-6,St=.01,Ct=1e4,xt=1e6,kt=1e9,Bt=1e12,Tt=1e15,Ut={ETH:"ETH",GWEI:"Gwei",WEI:"wei",PERCENT:"%",USD:"$",B:"B",T:"T",Q:"Q",M:"M",FIAT:"fiat"},Dt={decimalSeparator:".",groupSeparator:",",groupSize:3};he.Z.config({FORMAT:Dt}),he.Z.config({ROUNDING_MODE:1});const Et=e=>{const t=new he.Z(e);return t.isGreaterThanOrEqualTo(Tt)?Nt(t):t.isGreaterThanOrEqualTo(Bt)?It(t):t.isGreaterThanOrEqualTo(kt)?Wt(t):t.isGreaterThanOrEqualTo(xt)?Ot(t):{value:t.toFormat(),tooltipText:t.toFormat()}};function Ft(e){const t=new he.Z(e);return t.isZero()||t.isNaN()?{value:"0",tooltipText:"0"}:t.isGreaterThanOrEqualTo(xt)?Et(t):t.isGreaterThanOrEqualTo(Ct)?Qt(t,2):t.isGreaterThanOrEqualTo(1)?Qt(t,4):t.isGreaterThanOrEqualTo(bt)?Qt(t,6):{value:`< ${bt}`,tooltipText:t.toFormat()}}const Mt=(e,t={locale:"en-US",currency:"USD",rate:1})=>{const r=new he.Z(e);return void 0===r||r.isZero()||r.isNaN()?{value:wt({number:e,...t})}:r.isGreaterThanOrEqualTo(xt)?{value:wt({number:Et(r),...t})}:r.isGreaterThanOrEqualTo(St)?{value:wt({number:Qt(r,2,!0).value,...t})}:r.isGreaterThanOrEqualTo(bt)?{value:wt({number:Qt(r,6).value,small:!0,...t})}:{value:`< ${wt({number:bt,verySmall:!0,...t})}`,tooltipText:r.toFormat()}},Ot=e=>{const t=e.dividedBy(xt);return{value:`${Qt(t,4).value}${Ut.M}`,tooltipText:e.toFormat()}},Wt=e=>{const t=e.dividedBy(kt);return{value:`${Qt(t,4).value}${Ut.B}`,tooltipText:e.toFormat()}},It=e=>{const t=e.dividedBy(Bt);return{value:`${Qt(t,4).value}${Ut.T}`,tooltipText:e.toFormat()}},Nt=e=>({value:"> 1Q",unit:Ut.Q,tooltipText:e.toFormat()}),Qt=(e,t,r=!1)=>{let a=e.decimalPlaces();return null===a&&(a=0),{value:r?e.decimalPlaces(t).toFormat(t):e.decimalPlaces(t).toFormat(),tooltipText:a>t?e.toFormat():void 0}},Zt=[{name:"ETH",name_long:"Ethereum",chainID:1,tokens:[],icon:jt("ETH"),currencyName:"ETH",gasPriceMultiplier:1,coingeckoID:"ethereum",service:"myetherwallet.com-ws",url:"wss://nodes.mewapi.io/ws/eth",port:443,auth:!1,username:"",password:""},{name:"BTC",name_long:"Bitcoin",chainID:1,tokens:[],icon:jt("BTC"),currencyName:"BTC",gasPriceMultiplier:1,coingeckoID:"bitcoin",service:"",url:"",port:443,auth:!1,username:"",password:""},{name:"BCH",name_long:"Bitcoin Cash",chainID:1,tokens:[],icon:jt("BCH"),currencyName:"BCH",gasPriceMultiplier:1,coingeckoID:"bitcoin-cash",service:"",url:"",port:443,auth:!1,username:"",password:""},{name:"MATIC",name_long:"Polygon (Matic)",chainID:137,tokens:[],icon:jt("MATIC"),currencyName:"MATIC",gasPriceMultiplier:1.7,coingeckoID:"matic-network",service:"myetherwallet.com-ws",url:"wss://nodes.mewapi.io/ws/matic",port:443,auth:!1,username:"",password:""},{name:"DOT",name_long:"Polkadot",chainID:1,tokens:[],icon:jt("DOT"),currencyName:"DOT",gasPriceMultiplier:1,coingeckoID:"polkadot",service:"",url:"",port:443,auth:!1,username:"",password:""},{name:"KSM",name_long:"Kusama",chainID:1,tokens:[],icon:jt("KSM"),currencyName:"KSM",gasPriceMultiplier:1,coingeckoID:"kusama",service:"",url:"",port:443,auth:!1,username:"",password:""},{name:"KDA",name_long:"Kadena",chainID:1,tokens:[],icon:jt("KDA"),currencyName:"KDA",gasPriceMultiplier:1,coingeckoID:"kadena",service:"",url:"",port:443,auth:!1,username:"",password:""}];function jt(e){return r(67604)(`./${e}.svg`)}var Ht=r(82482);class Vt{constructor(e,t,r,a,s){(0,Ht.Z)(this,"decimals",void 0),(0,Ht.Z)(this,"img",void 0),(0,Ht.Z)(this,"name",void 0),(0,Ht.Z)(this,"subtext",void 0),(0,Ht.Z)(this,"value",void 0),(0,Ht.Z)(this,"symbol",void 0),(0,Ht.Z)(this,"network",void 0),this.decimals=a,this.img=s,this.name=e,this.subtext=t,this.value=e,this.symbol=e,this.network=r}}var Lt=r(35085),Pt=r.n(Lt);const Rt=10,Gt=.0175,Yt=.0525;let zt;function Kt(e){return Rt*e.rate/e.baseRate}function qt(e){zt=e??2.65}function Xt(e,t,r){if(t.price<=0)return 0;const a=t.fiatCurrency.decimals,s=$t(e,a,he.O.ROUND_FLOOR),n=$t(Jt(s,r),a,he.O.ROUND_HALF_EVEN),o=$t(_t(s,n),a,he.O.ROUND_FLOOR);return o<=0?0:s-o}function Jt(e,t){const r=Kt(t),a=(e-r)*Gt+r,s=e*Yt;return Math.max(a,s)}function _t(e,t){return Math.max(e-t,0)}function $t(e,t,r){return new he.O(e).decimalPlaces(t,r).toNumber()}var er=r(53289),tr=r(13173),rr=r(10240),ar=r(165);const sr=e=>((0,s.dD)("data-v-37fcf657"),e=e(),(0,s.Cn)(),e),nr={class:"pa-3 pa-sm-2 pa-md-2 components--buy-form",ref:"formDiv"},or={class:"mb-6 mt-6"},ir={class:"d-flex align-center justify-space-between mb-3"},lr=sr((()=>(0,s._)("div",{class:"mew-heading-4 textDark--text"}," How much do you want to spend? ",-1))),cr={key:0,class:"ml-2 d-flex align-center"},dr=sr((()=>(0,s._)("span",{class:"h3 font-weight-regular mr-1"},"Loading",-1))),ur={class:"d-flex mt-2"},mr=["src","alt"],pr=["onClick"],Ar={class:"d-flex align-center"},gr=["src","alt"],hr={class:"text-capitalize ml-2 my-2 d-flex flex-column"},wr={class:"mb-6"},fr=sr((()=>(0,s._)("div",{class:"mew-heading-4 textDark--text mb-3"},"You will get",-1))),yr={class:"d-flex mt-2"},vr=["src","alt"],br=sr((()=>(0,s._)("div",{class:"mew-heading-4 textDark--text mb-3"}," Where should we send your crypto? ",-1))),Sr={key:0,class:"pt-2 text-center"},Cr=sr((()=>(0,s._)("div",{class:"text-white font-weight-bold"},"BUY NOW",-1))),xr={key:1,class:"text-center py-5"},kr=sr((()=>(0,s._)("div",{class:"text-center font-weight-bold mt-3",style:{"line-height":"1.4rem"}}," Processing purchase.... ",-1)));var Br=(0,s.aZ)({__name:"BuyForm",props:{cryptoSelected:{type:Object,default:()=>({})},networkSelected:{type:Object,default:()=>({})},fiatSelected:{type:Object,default:()=>({})},fiatAmount:{type:String,default:"0"}},emits:["success","selectedCurrency","selectedFiat","toAddress","setQuotes","selectedNetwork","selectCurrency"],setup(e,{emit:t}){const a=e,n="0";let o="0";const i=["DOT","KSM"],l=["BTC","BCH","DOGE","LTC"],c=["KDA"];let d,u="";(0,s.bv)((async()=>{y.address="",await ce(),(0,ae.isEmpty)(a.fiatSelected)?(we(),"0"===y.fiatAmount&&ge()):(y.cryptoSelected=a.cryptoSelected.name,y.fiatSelected=a.fiatSelected.name,y.fiatAmount=a.fiatAmount,Ae()),await De(),d=setInterval(ce,12e4)})),(0,s.Ah)((async()=>{clearInterval(d)}));const m=Se,g=(0,A.iH)(m),h=e=>{u=e,g.value=m.filter((e=>e.toLowerCase().includes(u.toLowerCase())))};let w={ETH:{conversion_rates:{},limits:{},prices:{}},MATIC:{conversion_rates:{},limits:{},prices:{}},BNB:{conversion_rates:{},limits:{},prices:{}},DOT:{conversion_rates:{},limits:{},prices:{}},KSM:{conversion_rates:{},limits:{},prices:{}}},f={ETH:{conversion_rates:{},limits:{},prices:{}},MATIC:{conversion_rates:{},limits:{},prices:{}},BNB:{conversion_rates:{},limits:{},prices:{}},DOT:{conversion_rates:{},limits:{},prices:{}},KSM:{conversion_rates:{},limits:{},prices:{}}};const y=(0,A.qj)({fiatAmount:n,fiatSelected:"USD",cryptoAmount:"1",cryptoSelected:"ETH",address:"",validAddress:!1,addressErrorMsg:"",reCaptchaToken:"",addressError:!1}),v=(0,A.qj)({data:!1,showAlert:!1,processingBuyForm:!1,alertMessage:""}),b=(0,A.qj)({fiat:!1,crypto:!1});(0,s.YP)((()=>y.cryptoSelected),(()=>{Te(),Ae(),le()})),(0,s.YP)((()=>y.fiatSelected),(()=>{Te(),ge(),le()})),(0,s.YP)((()=>y.fiatAmount),(()=>{v.data||le()})),(0,s.YP)((()=>y.cryptoAmount),(()=>{v.data||le()}));const S=(0,s.Fl)((()=>{const e={ETH:"ETH",BSC:"BSC",MATIC:"MATIC"},t=e[a.cryptoSelected.network],r=Zt.find((e=>e.name===t));return new(Pt())(r?r.url:"")})),C=(0,s.Fl)((()=>`Includes ${Q.value} fee (${Mt(gt(W.value.toString(),2),T.value).value} min)`)),x=(0,s.Fl)((()=>`${y.cryptoSelected} network fee (for transfers to your wallet) ~${Mt(O.value.toString(),T.value).value}`)),k=(e=!1)=>{const t=re(w)?w[y.cryptoSelected].limits[y.fiatSelected].max:0,r=re(f)?f[y.cryptoSelected].limits[y.fiatSelected].max:0,a=e?r:t;return`Daily limit: ${Mt(a.toString(),T.value).value}`},B=()=>{const e=(0,he.Z)(U.value).times(5e4);return`Monthly limit: ${Mt(e.toString(),T.value).value}`},T=(0,s.Fl)((()=>{const e=y.fiatSelected,t=f[y.cryptoSelected]?.conversion_rates[e]||w[y.cryptoSelected]?.conversion_rates[e],r=e;return{locale:"en-US",rate:t,currency:r}})),U=(0,s.Fl)((()=>{if(se()){const e=f[y.cryptoSelected]?.conversion_rates[y.fiatSelected];return e?(0,he.Z)(e).toString():(0,ye.toBN)(1).toString()}return(0,ye.toBN)(1).toString()})),D=(0,s.Fl)((()=>(0,ye.fromWei)(E.value))),E=(0,s.Fl)((()=>(0,ye.toBN)(o).muln(21e3).toString())),F=(0,s.Fl)((()=>re(f)?f[y.cryptoSelected].prices[y.fiatSelected]:w[y.cryptoSelected].prices[y.fiatSelected])),M=(0,s.Fl)((()=>re(f)?f[a.networkSelected.currencyName].prices[y.fiatSelected]:w[a.networkSelected.currencyName].prices[y.fiatSelected])),O=(0,s.Fl)((()=>(0,ye.fromWei)((0,ye.toBN)(E.value).muln(parseFloat(M.value))))),W=(0,s.Fl)((()=>(0,ye.toBN)(399))),I=(0,s.Fl)((()=>{const e=(0,ye.toBN)(ht(parseFloat(y.fiatAmount),2)),t=Z.value?e.muln(.007):e.muln(.0325),r=t.gt(W.value)?e.sub(t):e.sub(t).sub(W.value);return gt(r.subn(parseFloat(O.value)).toString(),2)})),N=(0,s.Fl)((()=>{const e=re(f);if(!e)return`${y.cryptoSelected} is not available for this provider`;const t=f[y.cryptoSelected]?.limits[y.fiatSelected];return t.max>Number.parseFloat(y.fiatAmount)?Mt(I.value,T.value).value:`Value exceeds max: ${Mt(t.max.toString(),T.value).value}`})),Q=(0,s.Fl)((()=>Z.value?"0.7%":"3.25%")),Z=(0,s.Fl)((()=>"EUR"===y.fiatSelected||"GBP"===y.fiatSelected)),j=(0,s.Fl)((()=>{const e=re(f);return e?Ft((0,he.Z)(I.value).div(F.value).toString()).value:0})),H=(0,s.Fl)((()=>re(w))),V=(0,s.Fl)((()=>({decimals:"JPY"===y.fiatSelected?0:2}))),P=(0,s.Fl)((()=>new he.Z(H.value?w[y.cryptoSelected].prices[y.fiatSelected]:0))),R=(0,s.Fl)((()=>H.value?y.fiatAmount:"0.00")),G=(0,s.Fl)((()=>{const{fiatSelected:e,cryptoSelected:t}=y;return H.value?Xt(Number.parseFloat(R.value),{price:P.value.toNumber(),fiatCurrency:V.value},{rate:w[t].conversion_rates[e],baseRate:w[t].conversion_rates["USD"],fiatCurrency:V.value}):0})),Y=(0,s.Fl)((()=>(0,he.Z)(R.value).minus(G.value).toFixed(V.value.decimals))),z=(0,s.Fl)((()=>H.value?Mt(Y.value,T.value).value:`${y.cryptoSelected} is not available for this provider`)),K=(0,s.Fl)((()=>`Includes 5.25% fee (${Mt((0,he.Z)(10).toString(),T.value).value} min)`)),q=(0,s.Fl)((()=>{const e=(0,he.Z)(Y.value||"0");return H.value?Ft(e.dividedBy(P.value).toString()).value:0})),X=(0,s.Fl)((()=>r(33222)(`./${y.fiatSelected}.svg`))),J=(0,s.Fl)((()=>r(67604)(`./${y.cryptoSelected}.svg`))),_=(e,t=!0)=>r(8295)(`./${t?"fiat":"crypto"}/${e}.svg`),$=e=>{y.fiatSelected=e,b.fiat=!1,t("selectedFiat",y.fiatSelected)},ee=(0,s.Fl)((()=>ie.value&&y.fiatSelected&&y.cryptoSelected&&y.address&&!y.addressError&&""===y.addressErrorMsg&&""===v.alertMessage&&y.validAddress)),te=[e=>!!((0,ae.isString)(e)&&e?.length>=1)||(!!(0,ae.isNumber)(e)||"Must be a valid number")],re=e=>{const{cryptoSelected:t,fiatSelected:r}=y;return!(0,ae.isEmpty)(e[t]?.limits[r])},se=()=>re(w)||re(f),ne=(0,s.Fl)((()=>{const{cryptoSelected:e,fiatSelected:t}=y;if(!se())return 0;const r=w[e]?.limits[t],a=f[e]?.limits[t];return re(f)?re(w)?a.min{const{cryptoSelected:e,fiatSelected:t}=y;if(!se())return 0;const r=w[e]?.limits[t],a=f[e]?.limits[t];return re(f)?re(w)?a.max>r.max?a.max:r.max:a.max:r.max})),ie=(0,s.Fl)((()=>{const{fiatAmount:e}=y;if(!se())return!1;const t={min:ne.value,max:oe.value},r=new he.Z(e||0),a=r.gte(new he.Z(t.min))&&r.lte(new he.Z(t.max));return a})),le=()=>{const e={min:ne.value,max:oe.value};if(!ie.value)return v.showAlert=!0,void(v.alertMessage=`Fiat price must be between ${Ce[y.fiatSelected]}${e.min} and ${Ce[y.fiatSelected]}${e.max}`);v.showAlert=!1,v.alertMessage=""},ce=async()=>{try{v.data=!0;const e=await Be()||[];e.forEach((e=>{e.forEach((e=>{const t={conversion_rates:{},limits:{},prices:{}};e.conversion_rates.forEach((e=>t.conversion_rates[e.fiat_currency]=e.exchange_rate)),e.limits.forEach((e=>{"WEB"===e.type&&(t.limits[e.fiat_currency]=e.limit)})),e.prices.forEach((e=>t.prices[e.fiat_currency]=e.price));const r=e.crypto_currencies[0],a=Zt.find((e=>e.currencyName===r)),s={USDT:{name:"Tether",decimals:6},USDC:{name:"USD Coin",decimals:6},DAI:{name:"Dai Stablecoin",decimals:18}};if(!a){const e=Zt[0].tokens.find((e=>e.name===r));if(!e){const e=s[r];Zt[0].tokens.push(new Vt(r,e.name,"ETH",e.decimals,_(r,!1)))}}"SIMPLEX"===e.name?w[r]=t:"MOONPAY"===e.name&&(f[r]=t)}))})),v.data=!1,t("setQuotes",w,f)}catch(e){fe(e)}},de=()=>{t("selectedCurrency",{name:y.fiatSelected,value:y.fiatSelected,img:r(33222)(`./${y.fiatSelected}.svg`)},y.fiatAmount)},ue=e=>{const t="k:"===e.substr(0,2),r=(0,ye.isHex)(e.substring(2));return t&&r},me=(0,s.Fl)((()=>c.includes(y.cryptoSelected)?"KDA"===y.cryptoSelected?ue(y.address):Ee().validate(y.address,y.cryptoSelected):i.includes(y.cryptoSelected)?xe(y.address,"DOT"===y.cryptoSelected?0:2):l.includes(y.cryptoSelected)?Ee().validate(y.address,y.cryptoSelected):Ee().validate(y.address,y.cryptoSelected)&&ve(y.address))),pe=(0,s.Fl)((()=>{const{fiatSelected:e,cryptoSelected:t}=y,r=new he.Z(w[t]?.prices[e]),a=new he.Z(f[t]?.prices[e]);return a.isNaN()?r:r.isNaN()?a:r.lte(a)?r:a})),Ae=()=>{const e=pe.value,t=new he.Z(y.fiatAmount||"0");y.cryptoAmount=(0,he.Z)(t).div(e).toString()},ge=()=>{const e=pe.value,t=new he.Z(y.cryptoAmount||"0");y.fiatAmount=t.times(e).toFixed(2).toString()},we=()=>{const e=window.location.search;if(e){const r=new URLSearchParams(e),s=r.get("crypto_amount"),n=r.get("fiat"),o=r.get("crypto"),i=r.get("to"),l=be.find((e=>{if(e.toLowerCase()===o?.toLowerCase())return o})),c=be.find((e=>{if(e.toLowerCase()===o?.toLowerCase())return o})),d=n&&c?n.toUpperCase():"USD",u=o&&l?o.toUpperCase():"ETH";let m;if(y.fiatSelected=d,u!==a.networkSelected.name){const e=Zt.find((e=>e.name===u));if(!e)return;let r=18;"DOT"===e.name?r=10:"KSM"===e.name&&(r=12);const a=new Vt(e.currencyName,e.name_long,e.name,r,e.icon);if(m=[a],"CAD"===y.fiatSelected)return m;e.tokens&&(m=m.concat(e.tokens)),t("selectedNetwork",e)}const p=m?m.find((e=>e.symbol===u)):void 0;p&&t("selectCurrency",p),y.cryptoSelected=p?p.symbol:u,y.address=i||"",i&&Te();const A=(0,he.Z)(s||"1"),g=(0,he.Z)(A.times(F.value)).lt(ne.value)?(0,he.Z)(ne.value).div(F.value).times(2).toString():s;y.cryptoAmount=g}},fe=e=>{const t=(0,ye.toBN)(y.fiatAmount).gt((0,ye.toBN)(0));if(t){const t=(0,ae.isObject)(e.response.data.error);if(t){const t=e.response.data.error.hasOwnProperty("errors");t&&(v.alertMessage=e.response.data.error.errors[0].message)}else v.alertMessage=e.response.data.error}},ve=e=>e&&(0,ye.isHexStrict)(e)&&(0,ye.isAddress)(e),xe=(e,t)=>{try{const r=(0,Fe.m)(e,t);return e===r}catch(r){return!1}},ke=e=>{y.address=e,Te()},Te=()=>{const e=me.value;e?(y.addressErrorMsg="",y.addressError=!1,y.validAddress=!0):y.address?(y.addressErrorMsg=`Please provide a valid ${y.cryptoSelected} address`,y.validAddress=!1):(y.addressErrorMsg="",y.validAddress=!1)},Ue=()=>{const{fiatSelected:e,cryptoSelected:s,address:n,fiatAmount:o}=y,i=re(f),l=!i||f[s].limits[e].max{if(i.includes(y.cryptoSelected)||l.includes(y.cryptoSelected)||c.includes(y.cryptoSelected))return void(o="0");o=await S.value.eth.getGasPrice();const e=re(w)?w[y.cryptoSelected].prices[y.fiatSelected]:f[y.cryptoSelected].prices[y.fiatSelected];qt(parseFloat(D.value)*parseFloat(e))};return(e,t)=>((0,s.wg)(),(0,s.iD)("div",nr,[(0,s._)("div",or,[(0,s._)("div",ir,[lr,v.data?((0,s.wg)(),(0,s.iD)("div",cr,[dr,(0,s.Wm)(tr.L,{size:11,width:2,indeterminate:""})])):(0,s.kq)("",!0)]),(0,s._)("div",ur,[(0,s.Wm)(ar.h,{class:"no-right-border",onInput:Ae,type:"number",modelValue:y.fiatAmount,"onUpdate:modelValue":t[0]||(t[0]=e=>y.fiatAmount=e),modelModifiers:{number:!0},required:"",variant:"outlined","error-messages":v.alertMessage,disabled:v.data,rules:te},null,8,["modelValue","error-messages","disabled"]),(0,s.Wm)(rr.r,{style:{"max-width":"120px"},class:"rounded-right no-left-border buy-input",modelValue:y.fiatSelected,"onUpdate:modelValue":t[2]||(t[2]=e=>y.fiatSelected=e),items:g.value,disabled:v.data,"menu-props":{closeOnContentClick:!0},"base-color":"primary","return-object":"",variant:"outlined"},{"prepend-inner":(0,s.w5)((()=>[(0,s._)("img",{class:"currency-icon mr-1",src:(0,A.SU)(X),alt:y.fiatSelected,width:"25px",height:"25px"},null,8,mr)])),"prepend-item":(0,s.w5)((()=>[(0,s.Wm)(ar.h,{modelValue:(0,A.SU)(u),"onUpdate:modelValue":[t[1]||(t[1]=e=>(0,A.dq)(u)?u.value=e:u=e),h],variant:"outlined",class:"px-2","prepend-inner-icon":"mdi-magnify",autofocus:!0,density:"compact",placeholder:"Search"},null,8,["modelValue"])])),item:(0,s.w5)((e=>[(0,s._)("div",{class:"d-flex align-center justify-space-between full-width cursor-pointer",onClick:t=>$(e.item.value)},[(0,s._)("div",Ar,[(0,s._)("img",{class:"currency-icon mr-1 ml-3",src:_(e.item.value),alt:e.item.value,width:"25px",height:"25px"},null,8,gr),(0,s._)("span",hr,(0,p.zw)(e.item.value),1)])],8,pr)])),_:1},8,["modelValue","items","disabled"])])]),(0,s._)("div",wr,[fr,(0,s._)("div",yr,[(0,s.Wm)(ar.h,{class:"no-right-border",onInput:ge,type:"number",modelValue:y.cryptoAmount,"onUpdate:modelValue":t[3]||(t[3]=e=>y.cryptoAmount=e),modelModifiers:{number:!0},required:"",variant:"outlined",rounded:"left",rules:te,disabled:v.data},null,8,["modelValue","disabled"]),(0,s.Wm)(L.T,{modelValue:y.cryptoSelected,"onUpdate:modelValue":t[4]||(t[4]=e=>y.cryptoSelected=e),rounded:"right",variant:"outlined",class:"no-left-border custom-btn","append-icon":"mdi-menu-down",disabled:v.data,onClick:de},{prepend:(0,s.w5)((()=>[(0,s._)("img",{class:"currency-icon mr-1 padding--2",src:(0,A.SU)(J),alt:y.cryptoSelected,width:"25px",height:"25px"},null,8,vr)])),append:(0,s.w5)((()=>[(0,s.Wm)(er.t,{color:"grey-2",size:"large"})])),default:(0,s.w5)((()=>[(0,s._)("span",null,(0,p.zw)(y.cryptoSelected),1)])),_:1},8,["modelValue","disabled"])])]),(0,s._)("div",null,[br,(0,s.Wm)(dt,{ref:"addressSelect",modelValue:y.address,"error-messages":y.addressErrorMsg,autofocus:!1,label:"","is-valid-address":y.validAddress,placeholder:"Enter Crypto Address",onKeyup:Te,onChanged:ke},null,8,["modelValue","error-messages","is-valid-address"])]),v.processingBuyForm?((0,s.wg)(),(0,s.iD)("div",xr,[(0,s.Wm)(tr.L,{size:70,width:7,indeterminate:"",color:"#05c0a5"}),kr])):((0,s.wg)(),(0,s.iD)("div",Sr,[(0,s._)("div",null,[(0,s.Wm)(L.T,{flat:"",rounded:"pill",disabled:!(0,A.SU)(ee),"min-height":"60px",width:"360px",onClick:Ue,class:"buy-button"},{default:(0,s.w5)((()=>[Cr])),_:1},8,["disabled"])])]))],512))}});const Tr=(0,c.Z)(Br,[["__scopeId","data-v-37fcf657"]]);var Ur=Tr,Dr=r(80678);const Er=e=>((0,s.dD)("data-v-6d7572c2"),e=e(),(0,s.Cn)(),e),Fr={class:"d-flex align-center textDark--text mb-10"},Mr=Er((()=>(0,s._)("div",{class:"mew-heading-2"},"Select provider",-1))),Or={key:0},Wr={class:"section-block pa-5 mb-6"},Ir=["src"],Nr={key:0,class:"mb-3"},Qr={class:"d-flex mb-1 align-center justify-space-between"},Zr={class:"d-flex align-center"},jr={key:0,class:"mr-1 textDark--text"},Hr={key:1,class:"mr-1 text-red"},Vr={class:"elevated-box pa-3"},Lr=Er((()=>(0,s._)("br",null,null,-1))),Pr=Er((()=>(0,s._)("br",null,null,-1))),Rr=Er((()=>(0,s._)("br",null,null,-1))),Gr=Er((()=>(0,s._)("br",null,null,-1))),Yr=Er((()=>(0,s._)("br",null,null,-1))),zr={class:"d-flex align-center mb-1"},Kr=["src"],qr=["src"],Xr=["src"],Jr=["src"],_r={class:"mew-label mb-5"},$r={class:"section-block pa-5"},ea={key:0,class:"mb-3"},ta={class:"d-flex mb-1 align-center justify-space-between"},ra={class:"d-flex mew-heading-3"},aa={class:"mew-heading-3 pl-1"},sa={class:"d-flex align-center"},na={class:"mr-1"},oa={class:"elevated-box pa-3"},ia=Er((()=>(0,s._)("br",null,null,-1))),la=Er((()=>(0,s._)("br",null,null,-1))),ca=Er((()=>(0,s._)("br",null,null,-1))),da=Er((()=>(0,s._)("br",null,null,-1))),ua=Er((()=>(0,s._)("br",null,null,-1))),ma={key:1,class:"mb-3"},pa={class:"d-flex align-center justify-space-between"},Aa={class:"d-flex align-start mb-1"},ga=["src"],ha=["src"],wa=["src"],fa=Er((()=>(0,s._)("div",{class:"mew-label mb-5"},"Visa, Mastercard",-1))),ya={key:1,class:"text-center py-5"},va=Er((()=>(0,s._)("div",{class:"text-center font-weight-bold mt-3",style:{"line-height":"1.4rem"}}," Processing purchase.... ",-1)));function ba(e,t,r,a,n,o){return(0,s.wg)(),(0,s.iD)("div",null,[(0,s._)("div",Fr,[(0,s.Wm)(er.t,{color:"textDark",class:"cursor-pointer",onClick:t[0]||(t[0]=t=>e.$emit("close"))},{default:(0,s.w5)((()=>[(0,s.Uk)(" mdi-arrow-left mr-4 ")])),_:1}),Mr]),e.processingBuy?((0,s.wg)(),(0,s.iD)("div",ya,[(0,s.Wm)(tr.L,{size:70,width:7,indeterminate:"",color:"#05c0a5"}),va])):((0,s.wg)(),(0,s.iD)("div",Or,[(0,s._)("div",Wr,[(0,s._)("img",{class:"provider-logo",src:e.moonpayLogo,alt:"Moonpay",height:"28"},null,8,Ir),e.loading?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",Nr,[(0,s._)("div",Qr,[(0,s._)("div",{class:(0,p.C_)(["d-flex mew-heading-3",e.hideMoonpay?"text-red":""])},[(0,s.Uk)((0,p.zw)(e.buyObj.cryptoToFiat)+" ",1),(0,s._)("span",{class:(0,p.C_)(["mew-heading-3 pl-1",e.hideMoonpay?"text-red":""])},(0,p.zw)(e.selectedCryptoName),3)],2)]),(0,s._)("div",Zr,[e.hideMoonpay?((0,s.wg)(),(0,s.iD)("div",Hr,(0,p.zw)(e.buyObj.plusFeeF),1)):((0,s.wg)(),(0,s.iD)("div",jr," ≈ "+(0,p.zw)(e.buyObj.plusFeeF),1)),e.hideMoonpay?(0,s.kq)("",!0):((0,s.wg)(),(0,s.j4)(Dr.N,{key:2,location:"bottom"},{activator:(0,s.w5)((({props:e})=>[(0,s.Wm)(er.t,(0,s.dG)(e,{color:"grey-lighten-1",size:"x-small",class:"cursor-pointer"}),{default:(0,s.w5)((()=>[(0,s.Uk)(" mdi-information ")])),_:2},1040)])),default:(0,s.w5)((()=>[(0,s._)("div",Vr,[(0,s.Uk)((0,p.zw)(e.buyObj.includesFeeText)+" ",1),Lr,Pr,(0,s.Uk)(" "+(0,p.zw)(e.buyObj.networkFeeText)+" ",1),Rr,Gr,(0,s.Uk)(" "+(0,p.zw)(e.buyObj.dailyLimit)+" ",1),Yr,(0,s.Uk)(" "+(0,p.zw)(e.buyObj.monthlyLimit),1)])])),_:1}))])])),(0,s._)("div",zr,[(0,s._)("img",{src:e.visaIcon,alt:"Visa",height:"24",class:"mr-2"},null,8,Kr),(0,s._)("img",{src:e.masterIcon,alt:"Master",height:"24",class:"mr-2"},null,8,qr),(0,s._)("img",{src:e.applePayIcon,alt:"ApplePay",height:"24",class:"mr-2"},null,8,Xr),e.isEUR?((0,s.wg)(),(0,s.iD)("img",{key:0,src:e.bankIcon,alt:"Bank",height:"24"},null,8,Jr)):(0,s.kq)("",!0)]),(0,s._)("div",_r,(0,p.zw)(e.paymentOptionString),1),(0,s._)("div",null,[(0,s.Wm)(L.T,{size:"large",class:"grey-light greyPrimary--text",width:"100%",variant:"flat",disabled:e.hideMoonpay||e.loading,onClick:e.buy},{default:(0,s.w5)((()=>[(0,s.Uk)((0,p.zw)(e.moonpayBtnTitle),1)])),_:1},8,["disabled","onClick"])])]),(0,s._)("div",$r,[e.loading?((0,s.wg)(),(0,s.iD)("div",ma)):((0,s.wg)(),(0,s.iD)("div",ea,[(0,s._)("div",ta,[(0,s._)("div",ra,[(0,s.Uk)((0,p.zw)(e.simplexQuote.cryptoToFiat)+" ",1),(0,s._)("span",aa,(0,p.zw)(e.selectedCryptoName),1)])]),(0,s._)("div",sa,[(0,s._)("div",na,"≈ "+(0,p.zw)(e.simplexQuote.plusFeeF),1),(0,s.Wm)(Dr.N,{location:"bottom"},{activator:(0,s.w5)((({props:e})=>[(0,s.Wm)(er.t,(0,s.dG)(e,{color:"grey-lighten-1",size:"x-small",class:"cursor-pointer"}),{default:(0,s.w5)((()=>[(0,s.Uk)(" mdi-information ")])),_:2},1040)])),default:(0,s.w5)((()=>[(0,s._)("div",oa,[(0,s.Uk)((0,p.zw)(e.simplexQuote.includesFeeText)+" ",1),ia,la,(0,s.Uk)(" "+(0,p.zw)(e.simplexQuote.networkFeeText)+" ",1),ca,da,(0,s.Uk)(" "+(0,p.zw)(e.simplexQuote.dailyLimit)+" ",1),ua,(0,s.Uk)(" "+(0,p.zw)(e.simplexQuote.monthlyLimit),1)])])),_:1})])])),(0,s._)("div",pa,[(0,s._)("div",Aa,[(0,s._)("img",{src:e.visaIcon,alt:"Visa",height:"24",class:"mr-2"},null,8,ga),(0,s._)("img",{src:e.masterIcon,alt:"Master",height:"24",class:"mr-2"},null,8,ha)]),(0,s._)("img",{class:"provider-logo",src:e.simplexLogo,alt:"Simplex",height:"28"},null,8,wa)]),fa,(0,s._)("div",null,[(0,s.Wm)(L.T,{disabled:e.loading,size:"large",class:"grey-light greyPrimary--text",width:"100%",variant:"flat",onClick:e.openSimplex},{default:(0,s.w5)((()=>[(0,s.Uk)((0,p.zw)(e.simplexBtnTitle),1)])),_:1},8,["disabled","onClick"])])])]))])}const Sa="https://mainnet.mewwallet.dev",Ca="https://mainnet.mewwallet.dev/purchase/simplex/order";async function xa(e,t){return await fe().get(Ca,{params:{paymentId:e,address:t}}).then((e=>e.data)).catch((e=>e))}async function ka(e){const t=`WEB|${(0,ye.sha3)(e["destination_wallet[address]"])?.substring(0,42)}`,r=`${Sa}/v2/purchase/simplex/order?id=${t}&fiatCurrency=${e["fiat_total_amount[currency]"]}&requestedCurrency=${e["fiat_total_amount[currency]"]}&requestedAmount=${e["fiat_total_amount[amount]"]}&address=${e["destination_wallet[address]"]}&cryptoCurrency=${e["destination_wallet[currency]"]}`;window.location.href=encodeURI(r)}async function Ba(e,t,r,a,s){let n=null;try{n=await xe(e,t,r,a,s)}catch(i){throw new Error(i)}const o=await xa(n.payment_id,s);return await ka(o.form),o.form}async function Ta(e,t,r,a){const s=(0,ye.sha3)(a),n=`WEB|${s?.substring(0,42)}`,o=window.location.search,i=o.includes("platform=enkrypt")?"enkrypt":"web";return new Promise((s=>{let o=`${Sa}/v3/purchase/moonpay/order?address=${a}&id=${n}&cryptoCurrency=${e}&fiatCurrency=${t}&platform=${i}`;r&&(o+=`&requestedAmount=${r}`);const l=encodeURI(o);window.location.href=l,s()}))}async function Ua(e,t,r){const a=(0,ye.sha3)(r),s=`WEB|${a?.substring(0,42)}`,n=window.location.search,o=n.includes("platform=enkrypt")?"enkrypt":"web";return new Promise((a=>{const n=encodeURI(`${Sa}/v3/sell/moonpay/order?address=${r}&id=${s}&cryptoCurrency=${e}&requestedAmount=${t}&platform=${o}`);window.location.href=n,a()}))}var Da=(0,s.aZ)({name:"BuyProviders",props:{orderHandler:{type:Object,default:()=>({})},close:{type:Function,default:()=>({})},onlySimplex:{type:Boolean,default:!1},selectedFiat:{type:Object,default:()=>({})},selectedCurrency:{type:Object,default:()=>({})},buyObj:{type:Object,default:()=>({})},simplexQuote:{type:Object,default:()=>({})},toAddress:{type:String,default:""}},setup(){const e=(0,s.f3)("$amplitude");return{amplitude:e}},data(){return{loading:!1,processingBuy:!1}},computed:{selectedFiatName(){return this.selectedFiat.name},actualAddress(){return this.toAddress},selectedCryptoName(){return this.selectedCurrency.symbol},isEUR(){return"EUR"===this.selectedFiatName||"GBP"===this.selectedFiatName},hideMoonpay(){return this.onlySimplex},simplexBtnTitle(){return"BUY WITH SIMPLEX"},moonpayBtnTitle(){return"BUY WITH MOONPAY"},paymentOptionString(){return"Visa, Mastercard, Apple Pay"+(this.isEUR?", Bank account":"")},visaIcon(){return r(14393)},masterIcon(){return r(83845)},bankIcon(){return r(13822)},applePayIcon(){return r(90407)},simplexLogo(){return r(60074)},moonpayLogo(){return r(1902)}},methods:{isValidToAddress(e){return Ee().validate(e,this.selectedCurrency.symbol)},openSimplex(){this.processingBuy=!0,this.amplitude.track("CCBuySellBuyWithSimplex"),Ba(this.selectedFiatName,this.selectedCryptoName,this.selectedFiatName,this.simplexQuote.fiatAmount,this.actualAddress).then((()=>{this.reset(!0),this.close(),this.$emit("reset"),this.amplitude.track("CCBuySellBuyWithSimplexSuccess")})).catch((()=>{this.reset(),this.close(),this.$emit("reset"),this.amplitude.track("CCBuySellBuyWithSimplexFailed")}))},currencyFormatter(e){const t="en-US";return new Intl.NumberFormat(t,{style:"currency",currency:this.selectedFiatName}).format(e)},reset(e=!1){this.loading=!0,this.processingBuy=e},buy(){this.processingBuy=!0,this.amplitude.track("CCBuySellBuyWithMoonpay"),Ta(this.selectedCryptoName,this.selectedFiatName,this.buyObj.fiatAmount,this.actualAddress).then((()=>{this.reset(!0),this.close(),this.$emit("reset"),this.amplitude.track("CCBuySellBuyWithMoonpaySuccess")})).catch((()=>{this.reset(),this.close(),this.$emit("reset"),this.amplitude.track("CCBuySellBuyWithMoonpayFailed")}))}}});const Ea=(0,c.Z)(Da,[["render",ba],["__scopeId","data-v-6d7572c2"]]);var Fa=Ea,Ma=r(68275),Oa=r(23150),Wa=r(52127);const Ia=e=>((0,s.dD)("data-v-3b4df45c"),e=e(),(0,s.Cn)(),e),Na={class:"d-flex align-center textDark--text mb-10"},Qa=Ia((()=>(0,s._)("div",{class:"mew-heading-2"},"Select Token",-1))),Za={class:"d-flex mt-2"},ja=["src","alt"],Ha={class:"network-selected"},Va={class:"px-8 pt-6"},La=Ia((()=>(0,s._)("div",{class:"mew-heading-4 mb-4"},"Select Network",-1))),Pa=["onClick"],Ra={class:"d-flex align-center"},Ga=["src","alt"],Ya={class:"ml-2 my-2 d-flex flex-column"},za={class:"d-flex"},Ka={class:"d-flex"},qa=["src","alt"],Xa={class:"text-capitalize text--bold"};function Ja(e,t,r,a,n,o){return(0,s.wg)(),(0,s.iD)("div",null,[(0,s._)("div",Na,[(0,s.Wm)(er.t,{color:"textDark",class:"cursor-pointer",onClick:t[0]||(t[0]=t=>e.$emit("close"))},{default:(0,s.w5)((()=>[(0,s.Uk)(" mdi-arrow-left mr-4 ")])),_:1}),Qa]),(0,s._)("div",null,[(0,s._)("div",Za,[(0,s.Wm)(rr.r,{class:"full-width",modelValue:e.networkSelected,"onUpdate:modelValue":t[2]||(t[2]=t=>e.networkSelected=t),label:"Network",items:e.filteredNetworkList,"menu-props":{closeOnContentClick:!0},"return-object":"",variant:"outlined"},{selection:(0,s.w5)((()=>[(0,s._)("img",{class:"network-icon mr-5 pa-1",src:e.networkSelected.icon,alt:e.networkSelected.name,width:"28px",height:"28px"},null,8,ja),(0,s._)("span",Ha,(0,p.zw)(e.networkSelected.name_long),1)])),"prepend-item":(0,s.w5)((()=>[(0,s._)("div",Va,[La,(0,s.Wm)(ar.h,{modelValue:e.networkSearchInput,"onUpdate:modelValue":t[1]||(t[1]=t=>e.networkSearchInput=t),variant:"outlined",class:"mr-1","prepend-inner-icon":"mdi-magnify",placeholder:"Search",autofocus:!0},null,8,["modelValue"])])])),item:(0,s.w5)((t=>[(0,s._)("div",{class:"d-flex align-center justify-space-between full-width cursor-pointer px-8 pb-6",onClick:r=>e.selectNetwork(t.item.value)},[(0,s._)("div",Ra,[(0,s._)("img",{class:"currency-icon padding--2 mr-1 ml-3",src:t.item.value.icon,alt:t.item.value.name,width:"25px",height:"25px"},null,8,Ga),(0,s._)("span",Ya,(0,p.zw)(t.item.value.name_long),1)])],8,Pa)])),_:1},8,["modelValue","items"])]),(0,s._)("div",za,[(0,s.Wm)(ar.h,{modelValue:e.searchInput,"onUpdate:modelValue":t[3]||(t[3]=t=>e.searchInput=t),variant:"outlined",class:"mr-1","prepend-inner-icon":"mdi-magnify",placeholder:"Search",autofocus:!0},null,8,["modelValue"])]),(0,s._)("div",Ka,[(0,s.Wm)(Ma.i,{lines:"one",class:"full-width"},{default:(0,s.w5)((()=>[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(e.filteredTokenList,((t,r)=>((0,s.wg)(),(0,s.j4)(Oa.l,{key:r,value:t,"base-color":"primary",onClick:r=>e.selectCurrency(t,!0)},{prepend:(0,s.w5)((()=>[(0,s._)("img",{class:"currency-icon no-border mr-3",src:t.img,alt:t.name,width:"25px",height:"25px"},null,8,qa)])),append:(0,s.w5)((()=>[(0,s._)("span",null,(0,p.zw)(e.tokenPrice(t.name)),1)])),default:(0,s.w5)((()=>[(0,s.Wm)(Wa.V,null,{default:(0,s.w5)((()=>[(0,s._)("div",null,[(0,s._)("span",Xa,(0,p.zw)(t.name),1),(0,s._)("span",null,(0,p.zw)(` - ${t.subtext}`),1)])])),_:2},1024)])),_:2},1032,["value","onClick"])))),128))])),_:1})])])])}class _a{constructor(e,t,r,a,s){(0,Ht.Z)(this,"decimals",void 0),(0,Ht.Z)(this,"img",void 0),(0,Ht.Z)(this,"name",void 0),(0,Ht.Z)(this,"subtext",void 0),(0,Ht.Z)(this,"value",void 0),(0,Ht.Z)(this,"symbol",void 0),(0,Ht.Z)(this,"network",void 0),this.decimals=a,this.img=s,this.name=e,this.subtext=t,this.value=e,this.symbol=e,this.network=r}}var $a=(0,s.aZ)({name:"TokenSelect",props:{close:{type:Function,default:()=>({})},selectedNetwork:{type:Object,default:()=>({})},selectedCurrency:{type:Object,default:()=>({})},moonpayData:{type:Object,default:()=>({})},simplexData:{type:Object,default:()=>({})},fiatSelected:{type:Object,default:()=>({})},isSell:{type:Boolean,default:!1}},data(){return{networks:Zt,networkSelected:{},cryptoSelected:{},networkDropdown:!1,cryptoDropdown:!1,searchInput:"",networkSearchInput:""}},computed:{cryptoIcon(){return r(67604)(`./${this.cryptoSelected.name}.svg`)},tokensList(){let e=18;"DOT"===this.networkSelected.name?e=10:"KSM"===this.networkSelected.name&&(e=12);const t=new _a(this.networkSelected.currencyName,this.networkSelected.name_long,this.networkSelected.name,e,this.networkSelected.icon);let r=[t];return"CAD"===this.fiatName||this.networkSelected.tokens&&(r=r.concat(this.networkSelected.tokens)),r},filteredTokenList(){const e=this.searchInput.toLowerCase();return this.tokensList.filter((t=>{const r=t.name.toLowerCase(),a=t.subtext.toLowerCase();if(this.hasValidPrices(t.name)&&(r.includes(e)||a.includes(e)))return t}))},fiatName(){return this.fiatSelected.name},networkList(){return this.isSell?this.networks.filter((e=>"DOT"!==e.name&&"KSM"!==e.name)):this.networks},filteredNetworkList(){const e=this.networkSearchInput.toLowerCase();return this.networkList.filter((t=>t.name.toLowerCase().includes(e)||t.name_long.toLowerCase().includes(e)||t.currencyName.toLowerCase().includes(e)))}},beforeMount(){this.networks=Zt,this.networkSelected=this.selectedNetwork,this.cryptoSelected=this.selectedCurrency},watch:{networkSelected(){this.selectCurrency(this.tokensList[0]),this.$emit("selectedNetwork",this.networkSelected)}},methods:{selectCurrency(e,t=!1){this.cryptoSelected=e,this.cryptoDropdown=!1,t&&this.$emit("selectCurrency",this.cryptoSelected)},selectNetwork(e){this.networkSelected=e,this.networkDropdown=!1},tokenPrice(e){const t=parseFloat(this.simplexData[e]?.prices[this.fiatName]),r=parseFloat(this.moonpayData[e]?.prices[this.fiatName]),a={locale:"en-US",rate:1,currency:this.fiatName};if(isNaN(r))return Mt(t.toFixed(2),a).value;if(isNaN(t))return Mt(r.toFixed(2),a).value;const s=t<=r?t:r;return Mt(s.toFixed(2),a).value},hasValidPrices(e){let t=this.tokenPrice(e);return t=t?.substring(1,t.length),"0.00"!==t}}});const es=(0,c.Z)($a,[["render",Ja],["__scopeId","data-v-3b4df45c"]]);var ts=es;const rs=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"}];var as=r(15941);const ss=e=>((0,s.dD)("data-v-16eba3c0"),e=e(),(0,s.Cn)(),e),ns={class:"pa-3 pa-sm-2 pa-md-2 components--sell-form",ref:"formDiv"},os={class:"mb-6 mt-6"},is={class:"d-flex justify-space-between mb-3"},ls=ss((()=>(0,s._)("div",{class:"mew-heading-4 textDark--text"}," How much do you want to sell? ",-1))),cs={key:0,class:"text-mew"},ds={class:"d-flex mt-2"},us=["src","alt"],ms={class:"mb-6"},ps=ss((()=>(0,s._)("div",{class:"mew-heading-4 textDark--text mb-3"},"You will get",-1))),As={class:"d-flex mt-2"},gs=["src","alt"],hs=["onClick"],ws={class:"d-flex align-center"},fs=["src","alt"],ys={class:"text-capitalize ml-2 my-2 d-flex flex-column"},vs=ss((()=>(0,s._)("div",{class:"d-sm-flex align-center justify-space-between mb-2"},[(0,s._)("div",{class:"mew-heading-4 mr-2"}," What wallet are you sending your crypto from? ")],-1))),bs={class:"text-gray mt-3 mb-6"},Ss=ss((()=>(0,s._)("br",null,null,-1))),Cs=ss((()=>(0,s._)("br",null,null,-1))),xs={class:"text-bolder"},ks=ss((()=>(0,s._)("span",{class:"text-gray"},"Network Fee:",-1))),Bs={class:"text-gray",style:{float:"right"}},Ts={key:0,class:"pt-2 text-center"},Us=ss((()=>(0,s._)("div",{class:"text-white font-weight-bold"},"Sell With Moonpay",-1))),Ds={key:1,class:"text-center py-5"},Es=ss((()=>(0,s._)("div",{class:"text-center font-weight-bold mt-3",style:{"line-height":"1.4rem"}}," Processing purchase.... ",-1)));var Fs=(0,s.aZ)({__name:"SellForm",props:{cryptoSelected:{type:Object,default:()=>({})},networkSelected:{type:Object,default:()=>({})},fiatSelected:{type:Object,default:()=>({})},fiatAmount:{type:String,default:"0"}},emits:["success","selectedCurrency","selectedFiat","toAddress","setQuotes"],setup(e,{emit:t}){const a=e,n=(0,s.f3)("$amplitude"),o="0",i=["DOT","KSM"];let l,c,d=(0,A.iH)("0"),u="";const m={USDT:{name:"Tether",decimals:6,contract:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},USDC:{name:"USD Coin",decimals:6,contract:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},DAI:{name:"Dai Stablecoin",decimals:18,contract:""}};let g={ETH:{conversion_rates:{},limits:{},prices:{}},MATIC:{conversion_rates:{},limits:{},prices:{}},BNB:{conversion_rates:{},limits:{},prices:{}},DOT:{conversion_rates:{},limits:{},prices:{}},KSM:{conversion_rates:{},limits:{},prices:{}}};const h=[{address:"0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D",currency:"ETH",nickname:"MEW Donations",resolvedAddr:"0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D"}];(0,s.bv)((async()=>{v.address="",Y(),J(),await W(),await ee(),(0,ae.isEmpty)(a.fiatSelected)?G():(v.cryptoSelected=a.cryptoSelected.name,v.fiatSelected=a.fiatSelected.name,v.fiatAmount=a.fiatAmount,R()),I(),l=setInterval(W,12e4),c=setInterval(ee,12e4),f.value=Object.getOwnPropertyNames(g["ETH"]?.prices)})),(0,s.Ah)((async()=>{clearInterval(l),clearInterval(c)}));const w=Se,f=(0,A.iH)(w),y=e=>{u=e;const t=Object.getOwnPropertyNames(g["ETH"]?.prices);f.value=t.filter((e=>e.toLowerCase().includes(u.toLowerCase())))},v=(0,A.qj)({fiatAmount:o,fiatSelected:"USD",cryptoAmount:"1",cryptoSelected:"ETH",address:"",validAddress:!1,addressErrorMsg:"",reCaptchaToken:"",addressError:!1,balance:"",balanceWei:"",balanceETH:"",balanceError:!1,balanceErrorMsg:""}),b=(0,A.qj)({data:!1,showAlert:!1,processingBuyForm:!1,alertMessage:""}),S=(0,A.qj)({fiat:!1,crypto:!1}),C=(0,s.Fl)((()=>{const e={ETH:"ETH",BSC:"BSC",MATIC:"MATIC"},t=e[a.cryptoSelected.network],r=Zt.find((e=>e.name===t));return new(Pt())(r?r.url:"")}));(0,s.YP)((()=>v.cryptoSelected),(()=>{J(),R(),ee(),P()})),(0,s.YP)((()=>v.fiatSelected),(()=>{J(),G()})),(0,s.YP)((()=>v.fiatAmount),(()=>{ee(),b.data||P()})),(0,s.YP)((()=>v.cryptoAmount),(()=>{ee(),b.data||P()})),(0,s.YP)((()=>v.address),(()=>{J(),ee(),b.data||I()}));const x=(0,s.Fl)((()=>r(33222)(`./${v.fiatSelected}.svg`))),k=(0,s.Fl)((()=>r(67604)(`./${v.cryptoSelected}.svg`))),B=(0,s.Fl)((()=>(0,ye.toBN)(d.value).muln(21e3))),T=(0,s.Fl)((()=>Ft((0,ye.fromWei)(B.value.toString())).value)),U=(e,t=!0)=>r(8295)(`./${t?"fiat":"crypto"}/${e}.svg`),D=(e,t=!0)=>{t?(v.fiatSelected=e,S.fiat=!1):(v.cryptoSelected=e,S.crypto=!1)},E=()=>{const{cryptoSelected:e}=v;return!(0,ae.isEmpty)(g[e]?.limits[e])},F=(0,s.Fl)((()=>O.value&&v.fiatSelected&&v.cryptoSelected&&v.address&&!v.addressError&&""===v.addressErrorMsg&&""===b.alertMessage&&v.validAddress&&""===v.balanceErrorMsg)),M=[e=>!!((0,ae.isString)(e)&&e?.length>=1)||(!!(0,ae.isNumber)(e)||"Must be a valid number")],O=(0,s.Fl)((()=>{const{cryptoSelected:e,cryptoAmount:t,address:r}=v,s=E();if(!s)return!1;const n=g[e].limits[e],o=a.cryptoSelected.decimals,i=(0,ye.toBN)(ht(parseFloat(t||"0"),o)),l=i.gte((0,ye.toBN)(ht(n.min,o)))&&i.lte((0,ye.toBN)(ht(n.max,o)));return l})),W=async()=>{try{b.data=!0;const e=await Ue()||[];e.forEach((e=>{e.forEach((e=>{if((0,ae.isObject)(e)){const t={conversion_rates:{},limits:{},prices:{}};e.conversion_rates.forEach((e=>t.conversion_rates[e.fiat_currency]=e.exchange_rate)),e.limits.forEach((e=>{"WEB"===e.type&&(t.limits[e.crypto_currency]=e.limit)})),e.prices.forEach((e=>t.prices[e.fiat_currency]=e.price));const r=e.crypto_currencies[0],a=Zt.find((e=>e.currencyName===r));if(!a){const e=Zt[0].tokens.find((e=>e.name===r));if(!e){const e=m[r];Zt[0].tokens.push(new Vt(r,e.name,"ETH",e.decimals,U(r,!1)))}}g[r]=t}}))})),b.data=!1,t("setQuotes",g)}catch(e){z(e)}},I=async()=>{if(!v.validAddress)return"0";const e=a.networkSelected.currencyName===a.cryptoSelected.symbol,t=v.address?await N():"0";return e?(v.balanceWei=t,v.balance=(0,ye.fromWei)(t)):await te(a.cryptoSelected.symbol),P(),t},N=async()=>{if(!v.validAddress)return"0";const e=v.address?await C.value.eth.getBalance(v.address,"latest"):"0";return v.balanceETH=e,e},Q=()=>v.balance?Ft(v.balance).value:"0",Z=()=>v.balanceWei?(0,ye.toBN)(v.balanceWei):(0,ye.toBN)(0),j=()=>{if(!v.balanceWei||"0"===v.balanceWei)return!1;const e=a.networkSelected.currencyName===a.cryptoSelected.symbol;return e?H.value.lte((0,ye.toBN)(v.balanceETH)):B.value.lte((0,ye.toBN)(v.balanceETH))},H=(0,s.Fl)((()=>V.value===(0,ye.toBN)(0)?B.value:V.value.add(B.value))),V=(0,s.Fl)((()=>{if(!v.balance||"0"===v.balance)return(0,ye.toBN)(0);const e=ht(parseFloat(v.cryptoAmount),a.cryptoSelected.decimals);return(0,ye.toBN)(e)})),P=()=>{const e=E();if(e){const e=g[v.cryptoSelected].limits[v.cryptoSelected];if(!O.value){const t=a.cryptoSelected.decimals,r=(0,ye.toBN)(ht(parseFloat(v.cryptoAmount||"0"),t)),s=(0,ye.toBN)(ht(e.min,t)),n=(0,ye.toBN)(ht(e.max,t));return r.lt(s)?v.balanceErrorMsg=`Minimum is ${e.min} ${v.cryptoSelected}`:r.gt(n)&&(v.balanceErrorMsg=`Maximum is ${e.max} ${v.cryptoSelected}`),void(v.balanceError=!0)}}if(v.validAddress){const e=Z();if(V.value.gt(e))return void(v.balanceErrorMsg=`You do not have enough ${a.cryptoSelected.name} to sell`);if(!j())return void(v.balanceErrorMsg=`You do not have enough ${a.networkSelected.currencyName} to pay for network fees`)}v.balanceErrorMsg="",v.balanceError=!1},R=()=>{const{fiatSelected:e,fiatAmount:t,cryptoSelected:r}=v,s=a.cryptoSelected.decimals,n=parseFloat(g[r].prices[e]),o=parseFloat(t||"0"),i=o/n,l=i.toString().split(".")[1]?.length||0;v.cryptoAmount=l>s?i.toFixed(s):i.toString()},G=()=>{const e=parseFloat(g[v.cryptoSelected].prices[v.fiatSelected]),t=parseFloat(v.cryptoAmount||"0"),r=t*e;v.fiatAmount=r.toFixed(2)},Y=()=>{const e=window.location.search;if(e){const t=new URLSearchParams(e),r=t.get("crypto_amount"),a=t.get("fiat"),s=t.get("crypto"),n=t.get("to");v.fiatSelected=a||"USD",v.fiatAmount=r||"100",v.cryptoSelected=s||"ETH",v.cryptoAmount=r||"1",v.address=n||""}},z=e=>{const t=parseFloat(v.fiatAmount)>0;if(t){const t=(0,ae.isObject)(e.response.data.error);if(t){const t=e.response.data.error.hasOwnProperty("errors");t&&(b.alertMessage=e.response.data.error.errors[0].message)}else b.alertMessage=e.response.data.error}},K=e=>e&&(0,ye.isHexStrict)(e)&&(0,ye.isAddress)(e),q=(e,t)=>{try{const r=(0,Fe.m)(e,t);return e===r}catch(r){return!1}},X=e=>{v.address=e,J()},J=()=>{const e=["DOT","KSM"],t=e.includes(v.cryptoSelected)?q(v.address,"DOT"===v.cryptoSelected?0:2):Ee().validate(v.address,v.cryptoSelected)&&K(v.address);t?(v.addressErrorMsg="",v.addressError=!1,v.validAddress=!0):v.address?(v.addressErrorMsg=`Please provide a valid ${v.cryptoSelected} address`,v.validAddress=!1):(v.addressErrorMsg="",v.validAddress=!1)},_=()=>{b.processingBuyForm=!0,n.track("CCBuySellSellWithMoonpay"),Ua(v.cryptoSelected,v.cryptoAmount,v.address)},$=()=>{t("selectedCurrency",{name:v.fiatSelected,value:v.fiatSelected,img:r(33222)(`./${v.fiatSelected}.svg`)},v.fiatAmount)},ee=async()=>{i.includes(v.cryptoSelected)?d.value="0":d.value=await C.value.eth.getGasPrice()},te=async e=>{const t=new C.value.eth.Contract(rs,m[e].contract),r=await t.methods.balanceOf(v.address).call().catch((e=>as.error(e)));v.balanceWei=r.toString(),v.balance=gt(v.balanceWei,m[e].decimals)};return(e,t)=>((0,s.wg)(),(0,s.iD)("div",ns,[(0,s._)("div",os,[(0,s._)("div",is,[ls,b.data?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",cs," Balance: "+(0,p.zw)(Q()),1))]),(0,s._)("div",ds,[(0,s.Wm)(ar.h,{onInput:G,type:"number",modelValue:v.cryptoAmount,"onUpdate:modelValue":t[0]||(t[0]=e=>v.cryptoAmount=e),modelModifiers:{number:!0},required:"",variant:"outlined",rounded:"left",rules:M,disabled:b.data,"error-messages":v.balanceErrorMsg,error:v.balanceError,class:"no-right-border"},null,8,["modelValue","disabled","error-messages","error"]),(0,s.Wm)(L.T,{modelValue:v.cryptoSelected,"onUpdate:modelValue":t[1]||(t[1]=e=>v.cryptoSelected=e),rounded:"right",variant:"outlined",class:"no-left-border custom-btn",onClick:$,"append-icon":"mdi-menu-down",disabled:b.data},{prepend:(0,s.w5)((()=>[(0,s._)("img",{class:"currency-icon mr-1 padding--2",src:(0,A.SU)(k),alt:v.cryptoSelected,width:"25px",height:"25px"},null,8,us)])),append:(0,s.w5)((()=>[(0,s.Wm)(er.t,{color:"grey-2",size:"large"})])),default:(0,s.w5)((()=>[(0,s._)("span",null,(0,p.zw)(v.cryptoSelected),1)])),_:1},8,["modelValue","disabled"])])]),(0,s._)("div",ms,[ps,(0,s._)("div",As,[(0,s.Wm)(ar.h,{onInput:R,type:"number",modelValue:v.fiatAmount,"onUpdate:modelValue":t[2]||(t[2]=e=>v.fiatAmount=e),modelModifiers:{number:!0},required:"",variant:"outlined",rounded:"left",rules:M,"error-messages":b.alertMessage,disabled:b.data,class:"no-right-border"},null,8,["modelValue","error-messages","disabled"]),(0,s.Wm)(rr.r,{style:{"max-width":"120px"},class:"rounded-right no-left-border",modelValue:v.fiatSelected,"onUpdate:modelValue":t[4]||(t[4]=e=>v.fiatSelected=e),items:f.value,disabled:b.data,"menu-props":{closeOnContentClick:!0},"base-color":"primary","return-object":"",variant:"outlined"},{"prepend-inner":(0,s.w5)((()=>[(0,s._)("img",{class:"currency-icon mr-1",src:(0,A.SU)(x),alt:v.fiatSelected,width:"25px",height:"25px"},null,8,gs)])),"prepend-item":(0,s.w5)((()=>[(0,s.Wm)(ar.h,{modelValue:(0,A.SU)(u),"onUpdate:modelValue":[t[3]||(t[3]=e=>(0,A.dq)(u)?u.value=e:u=e),y],variant:"outlined",class:"px-2","prepend-inner-icon":"mdi-magnify",density:"compact",placeholder:"Search",autofocus:!0},null,8,["modelValue"])])),item:(0,s.w5)((e=>[(0,s._)("div",{class:"d-flex align-center justify-space-between full-width cursor-pointer",onClick:t=>D(e.item.value)},[(0,s._)("div",ws,[(0,s._)("img",{class:"currency-icon padding--2 mr-1 ml-3",src:U(e.item.value),alt:e.item.value,width:"25px",height:"25px"},null,8,fs),(0,s._)("span",ys,(0,p.zw)(e.item.value),1)])],8,hs)])),_:1},8,["modelValue","items","disabled"])])]),(0,s._)("div",null,[vs,(0,s.Wm)(dt,{ref:"addressSelect","model-value":v.address,"error-messages":v.addressErrorMsg,autofocus:!1,label:"",items:h,"is-valid-address":v.validAddress,placeholder:"Enter Crypto Address",onKeyup:J,onChanged:X},null,8,["model-value","error-messages","is-valid-address"])]),(0,s._)("div",bs,[(0,s.Uk)(" After submitting your sell order, you will have to send your crypto to MoonPay. Make sure to have enough currency in your wallet to cover network transaction fees. "),Ss,Cs,(0,s._)("div",xs,[ks,(0,s._)("span",Bs,"~"+(0,p.zw)((0,A.SU)(T))+" "+(0,p.zw)(a.networkSelected.currencyName),1)])]),b.processingBuyForm?((0,s.wg)(),(0,s.iD)("div",Ds,[(0,s.Wm)(tr.L,{size:70,width:7,indeterminate:"",color:"#05c0a5"}),Es])):((0,s.wg)(),(0,s.iD)("div",Ts,[(0,s._)("div",null,[(0,s.Wm)(L.T,{flat:"",rounded:"pill",disabled:!(0,A.SU)(F),"min-height":"60px",width:"360px",onClick:_,class:"sell-button"},{default:(0,s.w5)((()=>[Us])),_:1},8,["disabled"])])]))],512))}});const Ms=(0,c.Z)(Fs,[["__scopeId","data-v-16eba3c0"]]);var Os=Ms,Ws=(0,s.aZ)({name:"OrderForm",components:{MewTabs:ge,BuyForm:Ur,SellForm:Os,BuyProviders:Fa,TokenSelect:ts},props:{open:Boolean},setup(){const e=(0,s.f3)("$amplitude");return{amplitude:e}},data(){return{activeTab:0,orderHandler:{},selectedNetwork:{},selectedCurrency:{},selectedFiat:{},fiatAmount:"0",onlySimplex:!1,buyObj:{},step:0,simplexQuote:{},toAddress:"",moonpayData:{},simplexData:{}}},computed:{defaultCurrency(){return(0,ae.isEmpty)(this.selectedCurrency)||1===this.activeTab&&!this.supportedSell?{decimals:18,img:r(55694),name:"ETH",subtext:"Ethereum",value:"ETH",symbol:"ETH",network:"ETH"}:this.selectedCurrency},defaultNetwork(){return(0,ae.isEmpty)(this.selectedNetwork)||1===this.activeTab&&!this.supportedSell?Zt[0]:this.selectedNetwork},supportedSell(){return"DOT"!==this.selectedCurrency.symbol&&"KSM"!==this.selectedCurrency.symbol},leftBtn(){return{method:this.close}},tabItems(){return["Buy","Sell"]},isSell(){return 1===this.activeTab}},beforeMount(){this.selectedNetwork=this.defaultNetwork,this.selectedCurrency=this.defaultCurrency},methods:{onTab(e){this.selectedCurrency={},this.selectedCurrency=this.defaultCurrency,this.selectedNetwork={},this.selectedNetwork=this.defaultNetwork,this.activeTab=e,this.amplitude.track("CCBuySell"+(0===e?"BuyTab":"SellTab"))},close(){this.step=0,this.onlySimplex=!1},setNetwork(e){this.selectedNetwork=e},setSelectedCurrency(e){this.selectedCurrency=e,this.step=0},setSelectedFiat(e){this.selectedFiat=e},openProviders(e){this.step=e},openTokenSelect(e,t){this.step=1,this.selectedFiat=e,this.fiatAmount=t,this.amplitude.track("CCBuySell"+(0===this.activeTab?"BuyInput":"SellInput"))},setBuyObj(e){this.buyObj=e},setSimplexQuote(e){this.simplexQuote=e},setToAddress(e){this.toAddress=e},setQuotes(e,t){this.simplexData=e,this.moonpayData=t},reset(){this.selectedCurrency=this.defaultCurrency,this.selectedFiat={name:"USD",value:"USD",img:r(96576)},this.onlySimplex=!1},disableMoonpay(e){this.onlySimplex=e},buySuccess(e){this.setSimplexQuote(e.simplex_quote),this.setToAddress(e.address),this.setBuyObj(e.buy_obj),this.setSelectedCurrency(e.selected_currency),this.openProviders(e.open_providers),this.setSelectedFiat(e.selected_fiat),this.fiatAmount=e.fiat_amount,this.disableMoonpay(e.disable_moonpay)},sellSuccess(e){this.setToAddress(e.address),this.setSelectedCurrency(e.selected_currency),this.setSelectedFiat(e.selected_fiat),this.fiatAmount=e.fiat_amount}}});const Is=(0,c.Z)(Ws,[["render",re],["__scopeId","data-v-5c7fe0a9"]]);var Ns=Is;const Qs=e=>((0,s.dD)("data-v-3c3c19dd"),e=e(),(0,s.Cn)(),e),Zs={class:"buynow--banner py-9"},js=Qs((()=>(0,s._)("h2",{class:"font-weight-bold"},"Buy Now",-1)));var Hs={__name:"BuyBanner",setup(e){const t=()=>{window.scrollTo(0,0)};return(e,r)=>((0,s.wg)(),(0,s.iD)("div",Zs,[(0,s.Wm)(P.K,{class:"d-flex justify-space-around align-center",style:{"max-width":"1000px"}},{default:(0,s.w5)((()=>[(0,s.Wm)(L.T,{class:"buy--btn rounded-pill text-white text-none",color:"buynow--banner-btn",onClick:t},{default:(0,s.w5)((()=>[js])),_:1})])),_:1})]))}};const Vs=(0,c.Z)(Hs,[["__scopeId","data-v-3c3c19dd"]]);var Ls=Vs,Ps=r(16824),Rs=r(68521);const Gs=e=>((0,s.dD)("data-v-610a7521"),e=e(),(0,s.Cn)(),e),Ys=Gs((()=>(0,s._)("h1",{class:"mb-9"},[(0,s.Uk)(" Increased buy limits "),(0,s._)("br"),(0,s.Uk)(" so you can do more with crypto ")],-1))),zs={class:"elevated-box-small elevation-5 pa-10"},Ks={class:"heading-2 description-text mb-2"},qs={class:"font-weight-medium description-title"};var Xs=(0,s.aZ)({__name:"PromoComponent",setup(e){const t=[{title:"For your first transaction",description:"If you are buying coins very first time, you can buy up to $20,000 worth of coins.",amount:"$50 to $20,000",rate:"for first buy"},{title:"Daily limit",description:"You can buy up to $20,000 worth of coins daily.",amount:"Up to $20,000",rate:"/day"},{title:"Monthly limit",description:"You can buy up to $50,000 worth of coins monthly.",amount:"Up to $50,000",rate:"/month"}];return(e,r)=>((0,s.wg)(),(0,s.iD)("div",{class:"component--promo dropShadow",style:(0,p.j5)(e.$vuetify.display.lgAndUp?"padding: 150px 0":"padding: 100px 0")},[(0,s._)("div",null,[(0,s.Wm)(P.K,null,{default:(0,s.w5)((()=>[Ys,(0,s.Wm)(Ps.o,null,{default:(0,s.w5)((()=>[((0,s.wg)(),(0,s.iD)(s.HY,null,(0,s.Ko)(t,((e,t)=>(0,s.Wm)(Rs.D,{cols:"12",md:"4",key:t},{default:(0,s.w5)((()=>[(0,s._)("div",zs,[(0,s._)("div",Ks,(0,p.zw)(e.amount),1),(0,s._)("h2",qs,(0,p.zw)(e.title),1)])])),_:2},1024))),64))])),_:1})])),_:1})])],4))}});const Js=(0,c.Z)(Xs,[["__scopeId","data-v-610a7521"]]);var _s=Js,$s="data:image/png;base64,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",en="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIjSURBVHgB7Zm7TsMwFIb/hMIAS6fOhSeAjbGoT0GnItEVZibUiRUxIYEELOUpEBk78gTQuRNLJ0TNcZyqJL2odh03l/NJURIncfzpOM6JAzAMwzAMwzDp4M2UtEUVO7iEQJv26sgWA1oC/KCLZ28AA+LCbVHHNt6RPdEkA5I+MZH2Y3v5kJXIwDzBgKnwuWggH7ITGlGbtfBjFeSPQ2hSWXpUoEdP+SuygMAptaWVKK1CEx8lo4K08LGHXxzTVi0q+aIIfdJ6iDRRz3UjURrg0Qvkhn1hJdrBGM05b3nZNd+ovIf0xBtU/3XinpJANc8uNRK9oxs2F56hjt1gGnmn2BSWAquKqHNlb3CMPWERjqA6UauFXd8xtoRrS7vxIuQ1jqNsR1jgAKaokdwZtiK8D3OcDl6lSzxsCZu/U7fCZMQZtoT7MGVMGZhD7Ah7GIUZlC7qmnRTzQQ2n+EH6DV+GKWYTrEnLKMMXGE16aHGuVaxPUorkWXdWx7zcYENyErS+DyUXfWW1r0oIVHvaD8s79MgNaJlY6T3PazEZRTVCC4w+UzbKKWe8fieOarmkFrIAh6s8D/CH8gfATSZCqs5nwB5waO/D9E8lQ7xZ3gLZ2FFWUe20adfLQbEhe89VZHAS0bFB9S2LnZxFLbVgNnXkqqojYLC38NFh4WLzuq5dEdkIBNen7JEOJhsFF84kZEVW3hORlZU4bUzMoZhGIZhGEaXP7IJdgv7SbWIAAAAAElFTkSuQmCC",tn="data:image/png;base64,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",rn="data:image/png;base64,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",an="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUYSURBVHgB7Vk9jBtFFP5mnUNIR+HKlDj0J4WKdPgENSElNFwU3wkJieRKfiTOBVDm0kU5Tuc0ocxdalBcHlUsQX0yJa6usYTIxZP3Zuy1d353vWtX/qS5W8/Pm/n2/czMW2CNNdZYPfbkZ9iVL7Ej66gaO7KpZN+lORZAgqJoyx8h8YyebmBD/a8WGzhRshOSvUdzFUQxQnvyAQQO5mpaqq4qtBWBVvpb0lwF5YtcvdgMNiZasSX08T+20RWXKAM237fwkkg0Ha19vMJtmmMQExMnpMm8oKem1SbxBO/gPg4dZHiBb6OOKxo3piJwmZYj0ffMxaROSK7LfwZEajtGKkyInX9MEwjUHSM7eCwOMnVt2SIjvkULasGlzSz6JKNH8s/wq+gZcg6ozeU/l9T/Do7FqU+onxDbc9ZfZkKBfXrL3bRmV+7Q33uIk/BhQKWTkdmW92l+t//wuh6LjrvJBXZESaZk9x5Q/e3UZFgjQkWlJqrBgDSwn2pgV94g+c+cfiVwSKT27WoTHP8TRzhm50+IzKOJDftIV4H5xX4l2QdfeILFnYxW4dOQacPzzs+Oq4OE27wkRjT2gp7O6flv1PAvLWik2hJs0vP71N6gtptUcxN+zCKbK1i4fBhhH+pS65eZgeGIx0Se06LPUgJxNGjMFo39Qj3byEa22Yt+SJpxWoefkH4rLSJzmv72a4aJPC1AxERDkRL42NHWn5DSWwMHoE2cOrcK5N1YGf5AcUj1f6AKSAr5Am3nHI4A4EI+QjosnxiTsza+m/iLb4GbPDr9XcNRVIuSfAz4meRuZurH5E+B/WeKvGc51yb3W5AMgxfFZjQtY2OR7jEXtKoj2Ct9kOd0HyfEG5wdBJjMGZYFbcLPjdom+XR0m4gTEuoEMI8hladYNqSaY2jU3YtpKUxI+04zUydWQEbPM3LMVce18PEqpqFbxu9hZREtD3guaQQR3hsDiBFqGRP8hVVD4HejJng19xPigyGMa4NYoXZm+NP4XcfX8j1fZz+hseN4k0TC9DIgHXP+hw983f2EhEVoVOJoszg4ONh+1PR1D/mQGR5XT2YKYc3tDd3F01hlIOgSsmSECJXL4rgg8T2Vz7FEhIKCSaihLmhFIJX9n2dkCHX3OabyYX5Bxl1Jou/r6CdUcw5qoAj0bv+TOv5njzEs54fJdSQsc0wXQFuu13r8hF6pTExceB7oHf8b8KE2uzC+0B0HzTDBdavOTHtluvugb4g9ozaUAwhDRyo+m901zBCpGUqHfIlPjJoeAghHOWldEbYmpQyGXjNMrEvdFvUzNfQEAYQJXaHrqK0mStlmeG4dfBN8ao2rldEQm5203siW0zQWwbwZwrilSuVf5jzdNC/oQXxjveZIB4sc0akYhjDNT/tVFjV0EEGcEL8RaQliW/8F1ZKaouGUzfnBR1V8TmH4v93wW/0W5lV5cfjIDCiNdT2PgHxnOfalhJJ9cJweeAHSmSAsBr3HubQ+nTsX8icaGfrSx9lT+7TLEUo4EhtxMAHO3bkCDb/Abe8HMgeKEWKESGmcq42zRsV3f+L95jUR0CcF375WmAyjOCFG+BPHvPSLyeVsNEnmszbeRSyYsM+wmeUIAvbQRcGBokYhPbHydmXxkPR34EvGx7A4oSlYW1fqO2wLZSDVCaATOnjmQXlCU2hirLGPoqY4w4DKGfU/LUtkiuoIzYMDh/6Uz99IsykniX+obUD7Wm8RH1ljjTWWize4jbCLysvBgQAAAABJRU5ErkJggg==",sn="data:image/png;base64,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",nn="data:image/png;base64,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",on="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPOSURBVHgB7ZoxTBRBFIb/2VOasyAxwRapvQQ7GhMMvWAJjWC8Wi21MTbSYkci0aM5StFawpWWJPTkaiosqIQb39u58/Zmd3ZnZmc5iv2Thd29md359r2deTNvgVq1apWRQNXalLOYwWsM8AdXOERH9FGhqgFiiAhraOAFHS1rv/Zo28cX0UEFCgv0Si4TyCpZY5OuPJtbVuKCyhzS/33siR4CqTzQyKUkQQDz8FOf6n8O4ZJ+QPkuVVY9lHBJNyAXl2JJXFK5I9r7PTxeoeMW7c1Z1PVyyWIgV5dSEGe0d0DwZwR/mVFmif4uUbkV2MnaJYuBXspNcq1vKNYp2BIRWSQLIksRmjGcjMFaheWvsYWv+a54B+WUhhg41FZ1jobbXOyOtnAG+QId0PaLtvNhw0LonGDGcIjdsg1HRfBTFyOYasTX/gkP+QLdWtVAt13TBxK4D5uB1lLTBWKYAXZobxuBoKYHNIJRIRTDBIGaDtAkzEgM4zzu6Lp5oGwYxPFfFLtfKYUDklin7U1umTwYgffWMWCOysZySgwjsDHc5wamn/QNwLAiixL9jHPN//tJGNXAlZSlfGBk4h55bUkVKZKgiZauQeJmImMKkoTyt8wDeKjY5f7SU7mrnYvwkBoyCk67w//rE2XU5G2GyrW83IwtpD+qK5ygQMUW6gi20KSVBqmnx1AHGbWfeL8zAo+0MxfDtuTKtpfTn8xSRhkT1FguHYBITfIKrcOyA5L4oZ1ZmOgYxjJDucCoDqFV0IZM+VqoSQ0zLXCkody75rQHiHh5q1B2QGoZycbtRhpD+YwzyWFAHfdpnc7K5ewHVja5wGLiTGu4nRpqdOMlrYjWHlxguFeMtCBV4qNtdfvQ5yoe/fVeZj23jqCH4BoBRBnhU8PO3VR1W3GXyYt9k2ILPUM48bX0KUQHu/br3W7BabaVNhBmcjZHDyz97jTs3Y3lBqSspN+Au9htQzdu2wp1DaFdY0AeseuWjfDLPrTlMfSsg2/UrJaDP9G2MHFe0nuzJ57CUX7zoQatMeuuxw3ihrlYygTDrnYnvoez/BNenFoROM74hYPWdyheWc1bR3hsO+7oKpfBa1NmAobMhKRxSGSEQWyV67g3W029M0pbZfKv5VOSeVBqAb5LLqoSXipcWoW5V9wqm0wOkzRuy0W60ndq/LyxjEqENQ2t4ITWc183SyrMIgk3JAL3SD1jGRMM92ZcNwCMuk1osQsKfMi1lhL3km9Df69Q3ZckZrCTONC9R1HHTvEM1FXVfxqjuve1eF9S0jfgRxa1atUKr3+gizyHfxZ6wwAAAABJRU5ErkJggg==",ln="data:image/png;base64,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",cn="data:image/png;base64,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",dn="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAVnSURBVHgB7Vo9cFw1EF49xxQ4hatLe0lBxU2cCirGGVcUxC6Bypn4GCq4FDROwaWh9aVjfJ7haOwSSJ/BdO4w495c66tchIq5p+xKd7knafXzfuxkMvlmZN/Tk/bp065Wq30P4D3ebghoEttyFTLYghtwF6/aIGFV/Qe4VEVgyeEfrD+FKRzDSFxCw6hPiEh8AN/jINfxah3K4RjLrzAUI2gI1QnNieTQQymrUA9jlDGCffEUaqIaoa4kjfQbIGJjjHIfwoE4hoooR4i0sgx79CvScoLlXP2X8HL2pJv49zaWW1haEB5Vv6q20gltyzaS+Q1/rXlanGE5QafwAs3wv6AsCXfwyR/jr03wkxvB//C4rONII6TJ/AnaY9kSznGAB6AJLZDBCnoy0gZphQhOVFu3/wb2/xp4YsfoMO5DCaQR6sq/gdfMcyxDq44GtomD3EDpK9Y9MsEzrD8EbZaLPkSKyLkYIamHkIg4oW/kHj6sZ9RJNeMD7H1itX4wG9hKRCoRGzL9SVNfgTvKx7imBpCAMKGu3Ma/vxh1msyuYz4SByLUgNIhcFIkrjmzbsOZQI17qKlTiCCL3P+RqRswZD4tTUb364K9djTBI6b1HiTAT2hH0iy1rdojxkxoVruMBHISu1i+wKd8qbRhrhsCmSanjUOwnQxFITtyHSLwExIYBZiYzB5kIocO2LMs1Czvvh4UuXGaeQnfYbE9XUd5RBeDmXkX5XIWY4AnpNdO2xJ26JHwiVVDg+fbCrwnlIs3MUWTdUET+IdVF9WST0ObjnB78S5wx7o+A9e0wveF2qs4PHdqsnAAfMNTv2Vc6b3Dh6OZic1xge1juICimUoMizj5QpkcTUCn0JYmuw8euIQ4lQqvdkA9ME7AhA59ivLPA63JCXUK12sqpvSERJzJcRHBGTQFvV/ZTuAk0MO9t8yEYDNkzAPNxuHZKwdu89VrM7Tm3HtTb4DMmJx9xpGRyDkFOlDtMrHaBJYwBMqjEohUqyCv7WvocwoLSBUl1wEFnk9QhukNSfMC96q8gQkrIE6oLgSSkQ6ZF1iGTZMhxAmJyOkyBKlMzCUjVRRQRs6KZSXeQx/n5cbW9S2oCjdgnSjNlJdjekXpjPE1OC9nh+gtT6wVhlR97BjvsLSZSScSAZXf88AltAzumYOPtaoMpMoW4IZFgayQu4Z+FmMMTsdQDE61uw1FCy4ytRk/Mury4H7jgz2Zp+HHcpCYzTThHhHSMLFKFXSs679CjXlCAn536mSFE2ldcIkWyYytAP+W2ZWUtlq3aheHtvhgaA09MOqWSu89P0FRQwK92764HeqQBQbEZS57yR5P7x0bRslLeEt9ErbN7Vmsm58QeZLcEdDCuidwHciYdHMWNjfdJISpSsiPrdqOJ83UHHSE8ZFVO1IeOIIwITpE5eBmLbUJkfb8nm9x2lyULGn9tJgI4xLXX1LyPi2OppSWYPNiE5UQESX3qDDIpM29RyCZfdFP6Zx+MNiR/UAaqRli3AEwwbOZzcvAr6k5dDJeH5vp8HaR7KYlfIayf3DqlzD0SVg7c5Q/un2Lr1ZyfLUi/afGCCgcMqMGvYH2mNElm9ocsdy2C5otMgGZtkij8JGhPackGUJ5QnMc4MPIHCjuE/7zSQSfezRzim8aKm0NzX2n8EhuoTRKUN7F/2uhlsp980kTTeZDuA+Dat8wNPvhxRw9TAS+RFIZZpCkei+7gFSvY/hXkDXJaBFXCXIgU/g3qS2Z7k00v0G9r0uuPuuTAvJmw/IOgMObJUTOhEKrYfUPLWxU93L18QzXy706X41wuH4NSfXB0tOmicxxfYSumMgcV0/omoi8s3gFNx2KnDYYUhoAAAAASUVORK5CYII=",un="data:image/png;base64,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";const mn=e=>((0,s.dD)("data-v-05ed6bbe"),e=e(),(0,s.Cn)(),e),pn={class:"promo--bottom py-15"},An=mn((()=>(0,s._)("h1",{class:"mb-9 text-white"},"Why millions of users choose us",-1))),gn={class:"d-flex align-center pb-8"},hn=["src"],wn={class:"heading-3 mb-1 text-white"},fn={key:0,style:{"max-width":"350px",color:"#9ba1ae"},class:"heading-5"},yn={key:1,class:"text-gray heading-5",style:{"max-width":"350px"}},vn=mn((()=>(0,s._)("a",{href:"mailto:support@simplex.com"},"support@mew.com",-1)));var bn=(0,s.aZ)({__name:"PromoComponentThisIsWhy",setup(e){const t=window.location.search.includes("platform=ethvm"),r=window.location.search.includes("platform=enkrypt"),a=[{icon:t?en:r?$s:tn,title:"Low fees",description:"Get the most crypto for your fiat with limited fees from the provider and MEW"},{icon:t?an:r?rn:sn,title:"Quick transactions",description:"Get crypto in your wallet in minutes"},{icon:t?on:r?nn:ln,title:"Easy verification",description:"Payment is processed in a few short steps"},{icon:t?dn:r?cn:un,title:"Human support",description:`Reach out to ${t?"support@ethvm.com":"support@enkrypt.com"} with any questions`}];return(e,t)=>((0,s.wg)(),(0,s.iD)("div",pn,[(0,s.Wm)(P.K,null,{default:(0,s.w5)((()=>[An,(0,s.Wm)(Ps.o,null,{default:(0,s.w5)((()=>[((0,s.wg)(),(0,s.iD)(s.HY,null,(0,s.Ko)(a,((e,t)=>(0,s.Wm)(Rs.D,{cols:"12",md:"6",sm:"6",key:t,class:(0,p.C_)(["justify-left","d-flex"])},{default:(0,s.w5)((()=>[(0,s._)("div",gn,[(0,s._)("img",{class:"mr-4",src:e.icon,alt:"Promo"},null,8,hn),(0,s._)("div",null,[(0,s._)("div",wn,(0,p.zw)(e.title),1),e.description?((0,s.wg)(),(0,s.iD)("div",fn,(0,p.zw)(e.description),1)):((0,s.wg)(),(0,s.iD)("div",yn,[(0,s.Uk)(" Feel free to contact "),vn,(0,s.Uk)(" should you have questions. ")]))])])])),_:2},1024))),64))])),_:1})])),_:1})]))}});const Sn=(0,c.Z)(bn,[["__scopeId","data-v-05ed6bbe"]]);var Cn=Sn;const xn={class:"background-image pt-15"};var kn=(0,s.aZ)({__name:"LandingPage",setup(e){const t=(0,s.f3)("$amplitude"),r="CCSwapShown",a=window.location.search.includes("platform=ethvm"),n=window.location.search.includes("platform=enkrypt");return a&&t.track(`${r}EthVM`),n&&t.track(`${r}Enkrypt`),a||n||t.track(`${r}Web`),(e,t)=>((0,s.wg)(),(0,s.iD)("div",{class:(0,p.C_)(["component--landing-page-old-design",[e.$vuetify.display.mdAndUp?"background-lg":"background-sm"]])},[(0,s._)("div",xn,[(0,s.Wm)(P.K,null,{default:(0,s.w5)((()=>[(0,s.Wm)(Ps.o,null,{default:(0,s.w5)((()=>[(0,s.Wm)(Rs.D,{cols:"12",md:"5",lg:"7"},{default:(0,s.w5)((()=>[(0,s.Wm)(H)])),_:1}),(0,s.Wm)(Rs.D,{cols:"12",md:"7",lg:"5"},{default:(0,s.w5)((()=>[(0,s.Wm)(Ns)])),_:1})])),_:1})])),_:1}),(0,s.Wm)(_s)]),(0,s.Wm)(Cn),(0,s.Wm)(Ls),(0,s.Wm)($)],2))}});const Bn=(0,c.Z)(kn,[["__scopeId","data-v-72a78744"]]);var Tn=Bn;const Un=(0,m.p7)({history:(0,m.PO)(),routes:[{path:"/",name:"home",component:Tn}]});var Dn=Un,En=r(20065),Fn=(0,En.MT)({state:{},getters:{},mutations:{},actions:{},modules:{}}),Mn=r(68957),On=r(68657),Wn=r(48600);r(29773);const In={white:"#FFFFFF",purple:"#7B61FF",mew:"#05c0a5",gray:"#8799ab","black-1":"#202030",black:"#000",blue:"#0065FF",navy:"#1A2C5C","purple-linear-1":"#C549FF","purple-linear-2":"#704BFF","grey-1":"#1B1B1B","dark-blue":"#1A2C5C","dark-blue-2":"#1D2342","grey-2":"#797982"},Nn={dark:!1,colors:{purple:In.purple,mew:In.mew,gray:In.gray,"promo--bottom":In["grey-1"],"buynow--banner":In.purple,"buynow--banner-btn-text":In.purple,"buynow--banner-btn":In.white,"btn-linear-1":In["purple-linear-1"],"btn-linear-2":In["purple-linear-2"],"btn-get-wallet":In.purple,"promo-border":In.purple,"promo-header-text":In["grey-1"],"background-fill":In.white,"background-gradient":In.purple,black:In["black-1"],white:In.white,blue:In.blue,navy:In.navy,"grey-1":In["grey-1"],"grey-2":In["grey-2"]}},Qn={dark:!1,colors:{blue:In.blue,navy:In.navy,mew:In.mew,black:In["black-1"],"promo--bottom":In["black"],"buynow--banner":In["dark-blue"],"buynow--banner-btn-text":In.white,"buynow--banner-btn":In.blue,"btn-linear-1":In.blue,"btn-linear-2":In.blue,"btn-get-wallet":In.blue,"promo-border":In.blue,"promo-header-text":In.white,"background-fill":In["dark-blue-2"],"background-gradient":In.blue,white:In.white,"grey-1":In["grey-1"],"grey-2":In["grey-2"]}},Zn={dark:!1,colors:{blue:In.blue,navy:In.navy,mew:In.mew,black:In["black-1"],"promo--bottom":In["dark-blue-2"],"buynow--banner":In.mew,"buynow--banner-btn-text":In.mew,"buynow--banner-btn":In.white,"btn-linear-1":In.mew,"btn-linear-2":In.mew,"btn-get-wallet":In.mew,"promo-border":In.mew,"promo-header-text":In.black,"background-fill":In.white,"background-gradient":In.mew,white:In.white,"grey-1":In["grey-1"],"grey-2":In["grey-2"]}},jn=window.location.search,Hn=jn.includes("platform=ethvm")?"ethvmTheme":jn.includes("platform=enkrypt")?"enkryptTheme":"mewTheme";var Vn=(0,Mn.Rd)({components:On,directives:Wn,options:{customProperties:!0},theme:{defaultTheme:Hn,themes:{enkryptTheme:Nn,ethvmTheme:Qn,mewTheme:Zn}}});async function Ln(){const e=await r.e(461).then(r.t.bind(r,33657,23));e.load({google:{families:["Roboto:100,300,400,500,700,900&display=swap"]}})}var Pn=r(9284),Rn=r(26750);Pn.init("f90fa07c6624d9c3273268b866fc8788733e4dbac6feb32a420949e8bd45331f",{instanceName:"mew-web-prod",optOut:!1,serverUrl:"https://analytics-web.mewwallet.dev/record",appVersion:"0.0.1",trackingOptions:{ipAddress:!1},identityStorage:"none",logLevel:Rn.i.None,defaultTracking:{formInteractions:!1,pageViews:!1}}),Ln(),(0,a.ri)({render:()=>(0,s.h)(u)}).use(Dn).use(Fn).use(Vn).provide("$amplitude",Pn).mount("#app")},67604:function(e,t,r){var a={"./BCH.svg":27599,"./BNB.svg":1265,"./BTC.svg":3090,"./DAI.svg":27646,"./DOGE.svg":97579,"./DOT.svg":42095,"./ETH.svg":55694,"./KDA.svg":58095,"./KSM.svg":88160,"./LTC.svg":30230,"./MATIC.svg":12466,"./USDC.svg":90311,"./USDT.svg":38792};function s(e){var t=n(e);return r(t)}function n(e){if(!r.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}s.keys=function(){return Object.keys(a)},s.resolve=n,e.exports=s,s.id=67604},33222:function(e,t,r){var a={"./AUD.svg":5614,"./CAD.svg":58082,"./EUR.svg":54596,"./GBP.svg":81569,"./JPY.svg":51071,"./RUB.svg":53715,"./USD.svg":96576};function s(e){var t=n(e);return r(t)}function n(e){if(!r.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}s.keys=function(){return Object.keys(a)},s.resolve=n,e.exports=s,s.id=33222},8295:function(e,t,r){var a={"./crypto/BCH.svg":27599,"./crypto/BNB.svg":1265,"./crypto/BTC.svg":3090,"./crypto/DAI.svg":27646,"./crypto/DOGE.svg":97579,"./crypto/DOT.svg":42095,"./crypto/ETH.svg":55694,"./crypto/KDA.svg":58095,"./crypto/KSM.svg":88160,"./crypto/LTC.svg":30230,"./crypto/MATIC.svg":12466,"./crypto/USDC.svg":90311,"./crypto/USDT.svg":38792,"./fiat/AUD.svg":5614,"./fiat/CAD.svg":58082,"./fiat/EUR.svg":54596,"./fiat/GBP.svg":81569,"./fiat/JPY.svg":51071,"./fiat/RUB.svg":53715,"./fiat/USD.svg":96576};function s(e){var t=n(e);return r(t)}function n(e){if(!r.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}s.keys=function(){return Object.keys(a)},s.resolve=n,e.exports=s,s.id=8295},27599:function(e,t,r){"use strict";e.exports=r.p+"img/BCH.ede80552.svg"},1265:function(e,t,r){"use strict";e.exports=r.p+"img/BNB.612b5f42.svg"},3090:function(e,t,r){"use strict";e.exports=r.p+"img/BTC.ab086363.svg"},27646:function(e,t,r){"use strict";e.exports=r.p+"img/DAI.e32e3c9f.svg"},97579:function(e,t,r){"use strict";e.exports=r.p+"img/DOGE.a3a33acc.svg"},42095:function(e,t,r){"use strict";e.exports=r.p+"img/DOT.d1fb1977.svg"},55694:function(e,t,r){"use strict";e.exports=r.p+"img/ETH.0e8cfec5.svg"},58095:function(e,t,r){"use strict";e.exports=r.p+"img/KDA.4bec5697.svg"},88160:function(e,t,r){"use strict";e.exports=r.p+"img/KSM.2237c7d6.svg"},30230:function(e,t,r){"use strict";e.exports=r.p+"img/LTC.947ccebc.svg"},12466:function(e,t,r){"use strict";e.exports=r.p+"img/MATIC.b6283cd4.svg"},90311:function(e,t,r){"use strict";e.exports=r.p+"img/USDC.74c6aa75.svg"},38792:function(e,t,r){"use strict";e.exports=r.p+"img/USDT.dcef1ab2.svg"},5614:function(e,t,r){"use strict";e.exports=r.p+"img/AUD.013b3cd5.svg"},58082:function(e,t,r){"use strict";e.exports=r.p+"img/CAD.59f15cea.svg"},54596:function(e,t,r){"use strict";e.exports=r.p+"img/EUR.fe1f1b75.svg"},81569:function(e,t,r){"use strict";e.exports=r.p+"img/GBP.90f28af4.svg"},51071:function(e,t,r){"use strict";e.exports=r.p+"img/JPY.8b7cb3b4.svg"},53715:function(e,t,r){"use strict";e.exports=r.p+"img/RUB.85ae75af.svg"},96576:function(e,t,r){"use strict";e.exports=r.p+"img/USD.b98eb5c8.svg"},90407:function(e,t,r){"use strict";e.exports=r.p+"img/icon-apple-pay.8729e08b.svg"},13822:function(e,t,r){"use strict";e.exports=r.p+"img/icon-bank.69ca9b2e.svg"},83845:function(e,t,r){"use strict";e.exports=r.p+"img/icon-master.e13b09eb.svg"},1902:function(e,t,r){"use strict";e.exports=r.p+"img/icon-moonpay.a8303886.svg"},60074:function(e,t,r){"use strict";e.exports=r.p+"img/icon-simplex.36f689db.svg"},14393:function(e,t,r){"use strict";e.exports=r.p+"img/icon-visa.a210c6d6.svg"},80950:function(){},46601:function(){},89214:function(){},8623:function(){},7748:function(){},85568:function(){},56619:function(){},77108:function(){},52361:function(){},94616:function(){},33523:function(){},11734:function(){},61575:function(){},67647:function(){},43503:function(){},80390:function(){},41529:function(){},55896:function(){},22960:function(){},22322:function(){},9324:function(){},35091:function(){}},t={};function r(a){var s=t[a];if(void 0!==s)return s.exports;var n=t[a]={id:a,loaded:!1,exports:{}};return e[a].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=e,function(){r.amdO={}}(),function(){var e=[];r.O=function(t,a,s,n){if(!a){var o=1/0;for(d=0;d=n)&&Object.keys(r.O).every((function(e){return r.O[e](a[l])}))?a.splice(l--,1):(i=!1,n0&&e[d-1][2]>n;d--)e[d]=e[d-1];e[d]=[a,s,n]}}(),function(){r.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return r.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};r.t=function(a,s){if(1&s&&(a=this(a)),8&s)return a;if("object"===typeof a&&a){if(4&s&&a.__esModule)return a;if(16&s&&"function"===typeof a.then)return a}var n=Object.create(null);r.r(n);var o={};e=e||[null,t({}),t([]),t(t)];for(var i=2&s&&a;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((function(e){o[e]=function(){return a[e]}}));return o["default"]=function(){return a},r.d(n,o),n}}(),function(){r.d=function(e,t){for(var a in t)r.o(t,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}}(),function(){r.f={},r.e=function(e){return Promise.all(Object.keys(r.f).reduce((function(t,a){return r.f[a](e,t),t}),[]))}}(),function(){r.u=function(e){return"js/webfontloader.07803e14.js"}}(),function(){r.miniCssF=function(e){}}(),function(){r.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="mew-ccswap:";r.l=function(a,s,n,o){if(e[a])e[a].push(s);else{var i,l;if(void 0!==n)for(var c=document.getElementsByTagName("script"),d=0;d [\n _createVNode(_component_v_main, null, {\n default: _withCtx(() => [\n _createVNode(_component_router_view)\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n}","\nimport { defineComponent } from \"vue\";\n\nexport default defineComponent({\n name: \"App\",\n});\n","import { render } from \"./App.vue?vue&type=template&id=3cef02d2&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5f3caf0a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"dropShadow\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = {\n class: \"d-flex align-center\",\n style: {\"margin-top\":\"60px\"}\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-color mr-4\" }, \"Powered by\", -1))\nconst _hoisted_5 = [\"src\"]\nconst _hoisted_6 = [\"src\"]\nconst _hoisted_7 = { class: \"d-flex flex-wrap align-center mt-4\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-color mr-2\" }, \"We accept\", -1))\nconst _hoisted_9 = { class: \"d-flex align-center\" }\nconst _hoisted_10 = [\"src\"]\nconst _hoisted_11 = [\"src\"]\nconst _hoisted_12 = [\"src\"]\n\nimport visa from \"@/assets/images/icon-visa.svg\";\nimport master from \"@/assets/images/icon-master.svg\";\nimport applePay from \"@/assets/images/icon-apple-pay.svg\";\nimport simplex from \"@/assets/images/icon-simplex.svg\";\nimport simplexLight from \"@/assets/images/icon-simplex-light.svg\";\nimport moonpay from \"@/assets/images/icon-moonpay.svg\";\nimport moonpayWhite from \"@/assets/images/icon-moonpay-white.svg\";\nimport enkryptDarkLogo from \"@/assets/images/icon-enkrypt-logo-dark.svg\";\nimport ethvmLogo from \"@/assets/images/icon-ethvm-logo.svg\";\nimport mewLogo from \"@/assets/images/icon-mew-logo-dark.svg\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'HeaderComponent',\n setup(__props) {\n\nconst isEthVm = window.location.search.includes(\"platform=ethvm\");\nconst isEnkrypt = window.location.search.includes(\"platform=enkrypt\");\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"img\", {\n src: _unref(isEthVm) ? _unref(ethvmLogo) : _unref(isEnkrypt) ? _unref(enkryptDarkLogo) : _unref(mewLogo),\n alt: \"MEW\",\n height: \"36\"\n }, null, 8, _hoisted_2),\n _createElementVNode(\"div\", {\n class: \"heading-1 text-color\",\n style: _normalizeStyle(\n _ctx.$vuetify.display.smAndUp\n ? 'margin-top: 100px; max-width: 520px'\n : 'margin-top: 50px; max-width: 520px'\n )\n }, \" Buy and Sell Crypto Fast and Secure \", 4),\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createElementVNode(\"img\", {\n class: \"mr-2\",\n src: _unref(isEthVm) ? _unref(simplexLight) : _unref(simplex),\n alt: \"Simplex\",\n height: \"25\"\n }, null, 8, _hoisted_5),\n _createElementVNode(\"img\", {\n src: _unref(isEthVm) ? _unref(moonpayWhite) : _unref(moonpay),\n alt: \"Moonpay\",\n height: \"25\"\n }, null, 8, _hoisted_6)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"img\", {\n class: \"mr-2\",\n src: _unref(visa),\n alt: \"Visa\",\n height: \"22\"\n }, null, 8, _hoisted_10),\n _createElementVNode(\"img\", {\n class: \"mr-2\",\n src: _unref(applePay),\n alt: \"Visa\",\n height: \"22\"\n }, null, 8, _hoisted_11),\n _createElementVNode(\"img\", {\n src: _unref(master),\n alt: \"Master\",\n height: \"22\"\n }, null, 8, _hoisted_12)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./HeaderComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./HeaderComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./HeaderComponent.vue?vue&type=style&index=0&id=5f3caf0a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5f3caf0a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4fb33120\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"component--footer py-2\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = { class: \"my-5\" }\nconst _hoisted_4 = {\n \"footer--text\": \"\",\n style: {\"color\":\"white\"}\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"font-weight-regular\",\n style: {\"color\":\"white\"}\n}, [\n /*#__PURE__*/_createTextVNode(\" Need Ethereum wallet? Get one from \"),\n /*#__PURE__*/_createElementVNode(\"a\", {\n class: \"text-white\",\n href: \"https://www.myetherwallet.com/wallet/create\",\n target: \"_blank\",\n style: {\"text-decoration\":\"none\"}\n }, \" myetherwallet.com \")\n], -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-white font-weight-bold\" }, \"Get a wallet\", -1))\n\nimport mewIconLight from \"@/assets/images/icon-mew-logo-light.svg\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'FooterComponent',\n setup(__props) {\n\nconst presentDate = new Date().getFullYear();\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_btn = _resolveComponent(\"v-btn\")!\n const _component_v_container = _resolveComponent(\"v-container\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_v_container, { class: \"text-center\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"img\", {\n src: _unref(mewIconLight),\n alt: \"MEW\",\n height: \"25\"\n }, null, 8, _hoisted_2),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, \" ©\" + _toDisplayString(_unref(presentDate)) + \" MyEtherWallet Inc. All rights reserved \", 1),\n _hoisted_5\n ]),\n _createVNode(_component_v_btn, {\n size: \"x-large\",\n class: \"rounded-pill text-white mt-3 text-none\",\n color: \"btn-get-wallet\",\n href: \"https://www.myetherwallet.com/wallet/create\",\n target: \"_blank\"\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./FooterComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FooterComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FooterComponent.vue?vue&type=style&index=0&id=4fb33120&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4fb33120\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5c7fe0a9\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"top-container component--buy-form elevated-box elevation-4 pa-3 pa-sm-6 pa-md-8\" }\nconst _hoisted_2 = { key: 0 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_buy_form = _resolveComponent(\"buy-form\")!\n const _component_sell_form = _resolveComponent(\"sell-form\")!\n const _component_MewTabs = _resolveComponent(\"MewTabs\")!\n const _component_TokenSelect = _resolveComponent(\"TokenSelect\")!\n const _component_BuyProviders = _resolveComponent(\"BuyProviders\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.step === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_component_MewTabs, {\n items: _ctx.tabItems,\n \"active-tab\": _ctx.activeTab,\n \"base-color\": \"greenPrimary\",\n \"has-underline\": \"\",\n onOnTab: _ctx.onTab\n }, {\n tabContent1: _withCtx(() => [\n _createVNode(_component_buy_form, {\n \"crypto-selected\": _ctx.selectedCurrency,\n \"fiat-selected\": _ctx.selectedFiat,\n \"network-selected\": _ctx.selectedNetwork,\n \"fiat-amount\": _ctx.fiatAmount,\n onSetQuotes: _ctx.setQuotes,\n onSelectedCurrency: _ctx.openTokenSelect,\n onSuccess: _ctx.buySuccess,\n onSelectedNetwork: _ctx.setNetwork,\n onSelectCurrency: _ctx.setSelectedCurrency\n }, null, 8, [\"crypto-selected\", \"fiat-selected\", \"network-selected\", \"fiat-amount\", \"onSetQuotes\", \"onSelectedCurrency\", \"onSuccess\", \"onSelectedNetwork\", \"onSelectCurrency\"])\n ]),\n tabContent2: _withCtx(() => [\n _createVNode(_component_sell_form, {\n \"crypto-selected\": _ctx.selectedCurrency,\n \"fiat-selected\": _ctx.selectedFiat,\n \"network-selected\": _ctx.selectedNetwork,\n \"fiat-amount\": _ctx.fiatAmount,\n onSetQuotes: _ctx.setQuotes,\n onSelectedCurrency: _ctx.openTokenSelect,\n onSuccess: _ctx.sellSuccess\n }, null, 8, [\"crypto-selected\", \"fiat-selected\", \"network-selected\", \"fiat-amount\", \"onSetQuotes\", \"onSelectedCurrency\", \"onSuccess\"])\n ]),\n _: 1\n }, 8, [\"items\", \"active-tab\", \"onOnTab\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"token-select-slider\", _ctx.step === 1 ? 'open' : ''])\n }, [\n (_ctx.step === 1)\n ? (_openBlock(), _createBlock(_component_TokenSelect, {\n key: 0,\n class: \"pa-3 pa-sm-6 pa-md-8\",\n \"selected-network\": _ctx.selectedNetwork,\n \"selected-currency\": _ctx.selectedCurrency,\n \"fiat-selected\": _ctx.selectedFiat,\n \"moonpay-data\": _ctx.moonpayData,\n \"simplex-data\": _ctx.simplexData,\n \"is-sell\": _ctx.isSell,\n onClose: _ctx.close,\n onSelectCurrency: _ctx.setSelectedCurrency,\n onSelectedNetwork: _ctx.setNetwork\n }, null, 8, [\"selected-network\", \"selected-currency\", \"fiat-selected\", \"moonpay-data\", \"simplex-data\", \"is-sell\", \"onClose\", \"onSelectCurrency\", \"onSelectedNetwork\"]))\n : _createCommentVNode(\"\", true)\n ], 2),\n (_ctx.step === 2)\n ? (_openBlock(), _createBlock(_component_BuyProviders, {\n key: 1,\n \"selected-fiat\": _ctx.selectedFiat,\n \"selected-currency\": _ctx.selectedCurrency,\n \"only-simplex\": _ctx.onlySimplex,\n \"buy-obj\": _ctx.buyObj,\n \"simplex-quote\": _ctx.simplexQuote,\n \"to-address\": _ctx.toAddress,\n onClose: _ctx.close\n }, null, 8, [\"selected-fiat\", \"selected-currency\", \"only-simplex\", \"buy-obj\", \"simplex-quote\", \"to-address\", \"onClose\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode, renderSlot as _renderSlot, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5311767f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_v_chip = _resolveComponent(\"v-chip\")!\n const _component_v_chip_group = _resolveComponent(\"v-chip-group\")!\n const _component_v_tab = _resolveComponent(\"v-tab\")!\n const _component_v_window_item = _resolveComponent(\"v-window-item\")!\n const _component_v_window = _resolveComponent(\"v-window\")!\n const _component_v_tabs = _resolveComponent(\"v-tabs\")!\n const _component_v_slide_x_reverse_transition = _resolveComponent(\"v-slide-x-reverse-transition\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n (_ctx.compact)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_v_chip_group, {\n modelValue: _ctx.onTab,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.onTab) = $event)),\n mandatory: \"\",\n column: \"\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (mobileItem, mobileItemKey) => {\n return (_openBlock(), _createBlock(_component_v_chip, {\n key: mobileItemKey,\n class: \"ma-1\",\n \"active-class\": \"greenPrimary text--primary\",\n outlined: \"\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(mobileItem), 1)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createElementVNode(\"template\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (mobileItem, mobileItemKey) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: mobileItemKey }, [\n (_ctx.onTab == mobileItemKey)\n ? _renderSlot(_ctx.$slots, 'tabItemContent' + (mobileItemKey + 1), { key: 0 }, undefined, true)\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.compact)\n ? (_openBlock(), _createBlock(_component_v_tabs, {\n key: 1,\n modelValue: _ctx.onTab,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.onTab) = $event)),\n class: _normalizeClass(_ctx.tabClasses),\n \"background-color\": _ctx.background,\n color: _ctx.activeColor,\n centered: _ctx.isCentered,\n \"slider-size\": \"3\",\n \"hide-slider\": _ctx.isBlock || _ctx.isVertical,\n grow: _ctx.isBlock || _ctx.hasFullWidth,\n vertical: _ctx.isVertical,\n \"show-arrows\": _ctx.showArrows,\n \"align-with-title\": !_ctx.isBlock && !_ctx.isCentered && !_ctx.isVertical\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item, i) => {\n return (_openBlock(), _createBlock(_component_v_tab, {\n key: `${item}` + i,\n class: _normalizeClass([\n _ctx.isBlock\n ? 'mew-tab-block'\n : _ctx.isVertical || _ctx.isSmall\n ? 'mew-body font-weight-medium'\n : 'mew-heading-2',\n 'capitalize'\n ]),\n ripple: !_ctx.isVertical\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item), 1)\n ]),\n _: 2\n }, 1032, [\"class\", \"ripple\"]))\n }), 128)),\n _createVNode(_component_v_window, {\n modelValue: _ctx.onTab,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.onTab) = $event))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item, i) => {\n return (_openBlock(), _createBlock(_component_v_window_item, {\n key: `${item}` + i,\n value: item,\n \"reverse-transition\": \n !_ctx.isVertical ? 'slide-x-transition' : 'slide-y-transition'\n \n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, 'tabItemContent' + (i + 1), {}, undefined, true)\n ]),\n _: 2\n }, 1032, [\"value\", \"reverse-transition\"]))\n }), 128))\n ]),\n _: 3\n }, 8, [\"modelValue\"])\n ]),\n _: 3\n }, 8, [\"modelValue\", \"class\", \"background-color\", \"color\", \"centered\", \"hide-slider\", \"grow\", \"vertical\", \"show-arrows\", \"align-with-title\"]))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: `${item}` + i\n }, [\n _createVNode(_component_v_slide_x_reverse_transition, {\n \"hide-on-leave\": true,\n mode: \"out-in\"\n }, {\n default: _withCtx(() => [\n (_ctx.onTab === i)\n ? _renderSlot(_ctx.$slots, 'tabContent' + (i + 1), { key: 0 }, undefined, true)\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1024)\n ]))\n }), 128))\n ]))\n}","\n import { defineComponent } from 'vue';\n\n export default defineComponent({\n name: 'MewTabs',\n props: {\n /**\n * Sets the color for active tab.\n * If nothing passed, titlePrimary will be used.\n */\n activeColor: {\n type: String,\n default: 'titlePrimary'\n },\n /**\n * Sets the color for the background of mew-tabs.\n * If nothing passed, transparent will be used.\n */\n background: {\n type: String,\n default: 'transparent'\n },\n /**\n * Displays arrows if tab items overflow container.\n */\n showArrows: {\n type: Boolean,\n default: false\n },\n /**\n * Sets the active tab.\n */\n activeTab: {\n type: Number,\n default: 0\n },\n /**\n * Sets the tabs as vertical.\n */\n hasUnderline: {\n type: Boolean,\n default: false\n },\n /**\n * Sets the tabs as vertical.\n */\n isVertical: {\n type: Boolean,\n default: false\n },\n /**\n * Sets the tabs to the center of the page.\n */\n isCentered: {\n type: Boolean,\n default: false\n },\n /**\n * Tab content\n */\n items: {\n type: Array,\n default: () => {\n return [];\n }\n },\n /**\n * Shows the tab as a block.\n */\n isBlock: {\n type: Boolean,\n default: false\n },\n /**\n * Allows tabs to take up the full-width of the page.\n */\n hasFullWidth: {\n type: Boolean,\n default: false\n },\n /**\n * Sets the font size to 14px (mew-body)\n */\n isSmall: {\n type: Boolean,\n default: false\n },\n compact: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n onTab: this.activeTab\n };\n },\n computed: {\n tabClasses() {\n const classes = ['mew-tabs'];\n if (this.hasUnderline) {\n classes.push('mew-tabs-underline');\n }\n if (this.isBlock) {\n classes.push('mew-tabs-block elevation-3');\n }\n return classes;\n }\n },\n watch: {\n activeTab(newVal: number) {\n this.onTab = newVal;\n },\n onTab(newVal: number) {\n this.$emit('onTab', newVal);\n }\n },\n mounted() {\n this.onTab = this.activeTab;\n }\n });\n ","import { render } from \"./MewTabs.vue?vue&type=template&id=5311767f&scoped=true&ts=true\"\nimport script from \"./MewTabs.vue?vue&type=script&lang=ts\"\nexport * from \"./MewTabs.vue?vue&type=script&lang=ts\"\n\nimport \"./MewTabs.vue?vue&type=style&index=0&id=5311767f&lang=scss\"\nimport \"./MewTabs.vue?vue&type=style&index=1&id=5311767f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5311767f\"]])\n\nexport default __exports__","import axios from \"axios\";\nimport { toNumber } from \"lodash\";\nimport { sha3 } from \"web3-utils\";\n// const API = \"https://qa.mewwallet.dev\";\nconst API = \"https://mainnet.mewwallet.dev\";\n\nconst supportedCrypto = [\"ETH\", \"BTC\", \"BCH\", \"MATIC\", \"USDT\", \"USDC\", \"DAI\", \"DOT\", \"KSM\", \"KDA\"];\n\nconst supportedFiat = [\"USD\", \"EUR\", \"JPY\", \"AUD\", \"CAD\", \"GBP\"];\n// const supportedFiat = [\n// \"USD\",\n// \"EUR\",\n// \"JPY\",\n// \"AUD\",\n// \"CAD\",\n// \"GBP\",\n// \"KRW\",\n// \"CHF\",\n// \"CZK\",\n// \"DKK\",\n// \"NOK\",\n// \"NZD\",\n// \"PLN\",\n// \"SEK\",\n// \"TRY\",\n// \"ZAR\",\n// \"HUF\",\n// ];\n\nconst currencySymbols: { [key: string]: string } = {\n USD: \"$\", // US Dollar\n RUB: \"₽\", // Russian Ruble\n EUR: \"€\", // Euro\n JPY: \"¥\", // Japanese Yen\n AUD: \"AU$\", // Australian dollar\n CAD: \"CA$\", // Canadian dollar\n GBP: \"£\", // British Pound Sterling\n};\n\nasync function getSimplexQuote(\n fiatCurrency: string,\n cryptoCurrency: string,\n requestedCurrency: string,\n requestedAmount: string,\n address = \"0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D\"\n) {\n const apiQuote = `${API}/purchase/simplex/quote`;\n\n return await axios\n .get(apiQuote, {\n params: {\n id: `WEB|${sha3(address)?.substring(0, 42)}`,\n fiatCurrency: fiatCurrency,\n cryptoCurrency: cryptoCurrency,\n requestedCurrency: requestedCurrency,\n requestedAmount: toNumber(requestedAmount),\n },\n })\n .then((response) => {\n return response.data;\n })\n .catch((e) => {\n throw e;\n });\n}\nconst filterData = (res: any) => {\n const { data } = res;\n if (Array.isArray(data)) return data.filter((i) => (i.name === \"SIMPLEX\" || i.name === \"MOONPAY\"));\n};\n\nasync function getCryptoPrices(\n cryptoCurrency?: \"ETH\" | \"BTC\" | \"BCH\" | \"LTC\" | \"DOGE\" | \"BNB\" | \"MATIC\" | \"USDT\" | \"USDC\" | \"DAI\" | \"DOT\" | \"KSM\" | \"KDA\"\n) {\n const apiQuote = `${API}/v4/purchase/providers/web`;\n if (cryptoCurrency)\n return await axios\n .get(apiQuote, {\n params: {\n iso: \"us\",\n cryptoCurrency,\n },\n })\n .then((response) => filterData(response))\n .catch((e) => {\n throw e;\n });\n return Promise.all(\n supportedCrypto.map((c) =>\n axios\n .get(apiQuote, {\n params: {\n iso: \"us\",\n cryptoCurrency: c,\n },\n })\n .then((response) => filterData(response))\n .catch((e) => {\n throw e;\n })\n )\n ).catch((e) => {\n throw e;\n });\n}\n\n/**\n * Moonpay\n */\nasync function getFiatRatesForBuy() {\n return axios\n .get(`${API}/v4/purchase/moonpay/quotes`, {\n headers: {\n 'Accept-Language': 'en-US'\n }\n })\n .then(res => res.data);\n}\n/**\n *\n * @param {String} symbol - Crypto Symbol ex. ETH\n * @returns\n */\nasync function getSupportedFiatToBuy(symbol: string) {\n return axios\n .get(`${API}/v4/purchase/providers/web?iso=us&cryptoCurrency=${symbol}`, {\n headers: {\n 'Accept-Language': 'en-US'\n }\n })\n .then(res => res.data);\n}\n/*\n * Get supported fiat to sell from Moonpay\n */\nasync function getSupportedFiatToSell(symbol: string) {\n return axios\n .get(`${API}/v3/sell/providers/web?iso=us&cryptoCurrency=${symbol}`, {\n headers: {\n 'Accept-Language': 'en-US'\n }\n })\n .then(res => res.data);\n}\n\nasync function getCryptoSellPrices(\n cryptoCurrency?: \"ETH\" | \"MATIC\" | \"BNB\" | \"USDT\" | \"USDC\"\n) {\n if (cryptoCurrency)\n return await getSupportedFiatToSell(cryptoCurrency)\n .then((response) => filterData(response))\n .catch((e) => {\n throw e;\n });\n const cryptos = [\"ETH\", \"BNB\", \"MATIC\", \"USDT\", \"USDC\", \"DAI\"];\n return Promise.all(\n cryptos.map((c) =>\n getSupportedFiatToSell(c)\n .catch((e) => {\n throw e;\n }))\n ).catch((e) => {\n throw e;\n });\n}\n\nexport {\n supportedCrypto,\n supportedFiat,\n currencySymbols,\n getSimplexQuote,\n getCryptoPrices,\n getFiatRatesForBuy,\n getSupportedFiatToBuy,\n getSupportedFiatToSell,\n getCryptoSellPrices\n};\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-830abb46\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"blockie-placeholder mr-1 selectHover\"\n}\nconst _hoisted_2 = [\"onClick\"]\nconst _hoisted_3 = { class: \"d-flex align-center justify-space-between\" }\nconst _hoisted_4 = {\n key: 1,\n class: \"d-flex align-center\"\n}\nconst _hoisted_5 = { class: \"mew-address\" }\nconst _hoisted_6 = { class: \"overline primary--text font-weight-medium ml-3 mr-3\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_mew_blockie = _resolveComponent(\"mew-blockie\")!\n const _component_mew_transform_hash = _resolveComponent(\"mew-transform-hash\")!\n const _component_v_combobox = _resolveComponent(\"v-combobox\")!\n\n return (_openBlock(), _createBlock(_component_v_combobox, {\n ref: \"mewAddressSelect\",\n modelValue: _ctx.addressValue,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event: any) => ((_ctx.addressValue) = $event)),\n _ctx.onInputChange\n ],\n class: \"address-select pa-0 rounded-lg\",\n color: \"primary\",\n label: _ctx.label,\n \"item-value\": \"address\",\n \"item-text\": \"address\",\n placeholder: _ctx.placeholder,\n disabled: _ctx.disabled,\n \"error-messages\": _ctx.errorMessages,\n hint: _ctx.hint || _ctx.resolvedAddr || '',\n \"persistent-hint\": _ctx.resolvedAddr.length > 0 || _ctx.hint.length > 0,\n rules: _ctx.rules,\n \"no-data-text\": _ctx.noDataText,\n \"menu-props\": { closeOnContentClick: true },\n variant: \"outlined\",\n \"onUpdate:searchInput\": _ctx.onChange\n }, {\n \"prepend-inner\": _withCtx(() => [\n (!_ctx.isValidAddress || !_ctx.blockieHash)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1))\n : _createCommentVNode(\"\", true),\n (_ctx.isValidAddress)\n ? (_openBlock(), _createBlock(_component_mew_blockie, {\n key: 1,\n class: \"mr-1\",\n address: _ctx.blockieHash,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, [\"address\"]))\n : _createCommentVNode(\"\", true)\n ]),\n item: _withCtx(({ item }) => [\n _createElementVNode(\"div\", {\n class: \"py-4 px-0 full-width d-flex align-center justify-space-between cursor-pointer\",\n onClick: ($event: any) => (_ctx.selectAddress(item))\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_mew_blockie, {\n class: \"mr-2 ml-2\",\n address: \n item.raw.resolvedAddr ? item.raw.resolvedAddr : item.raw.address\n ,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, [\"address\"]),\n (!item.raw.resolvedAddr || item.raw.resolvedAddr === '')\n ? (_openBlock(), _createBlock(_component_mew_transform_hash, {\n key: 0,\n hash: item.raw.address\n }, null, 8, [\"hash\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(item.raw.address), 1),\n _createElementVNode(\"span\", null, _toDisplayString(item.raw.address.slice(-4)), 1)\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(item.raw.nickname), 1)\n ], 8, _hoisted_2)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"label\", \"placeholder\", \"disabled\", \"error-messages\", \"hint\", \"persistent-hint\", \"rules\", \"no-data-text\", \"onUpdate:searchInput\", \"onUpdate:modelValue\"]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, vShow as _vShow, normalizeStyle as _normalizeStyle, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0413b8b6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"src\"]\nconst _hoisted_2 = {\n key: 0,\n class: \"inset-shadow\"\n}\nconst _hoisted_3 = [\"src\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _withDirectives(_createElementVNode(\"div\", {\n style: _normalizeStyle([{\"position\":\"relative\"}, `width: ${_ctx.width}; height: ${_ctx.height}`])\n }, [\n _createElementVNode(\"img\", {\n ref: \"blockie\",\n src: _ctx.blockieImg,\n alt: \"Blockie Image\",\n style: {\"display\":\"block\",\"border-radius\":\"50%\"}\n }, null, 8, _hoisted_1),\n (!_ctx.flat)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n : _createCommentVNode(\"\", true)\n ], 4), [\n [_vShow, _ctx.address]\n ]),\n (_ctx.currency)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n alt: \"icon\",\n class: \"currency-icon\",\n src: _ctx.currency\n }, null, 8, _hoisted_3))\n : _createCommentVNode(\"\", true)\n ]))\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\nconst randseed = new Array(4); // Xorshift: [x, y, z, w] 32 bit values\n\nfunction seedrand(seed: string) {\n for (let i = 0; i < randseed.length; i++) {\n randseed[i] = 0;\n }\n for (let j = 0; j < seed.length; j++) {\n randseed[j % 4] =\n (randseed[j % 4] << 5) - randseed[j % 4] + seed.charCodeAt(j);\n }\n}\n\nfunction rand() {\n // based on Java's String.hashCode(), expanded to 4 32bit values\n const t = randseed[0] ^ (randseed[0] << 11);\n\n randseed[0] = randseed[1];\n randseed[1] = randseed[2];\n randseed[2] = randseed[3];\n randseed[3] = randseed[3] ^ (randseed[3] >> 19) ^ t ^ (t >> 8);\n\n return (randseed[3] >>> 0) / ((1 << 31) >>> 0);\n}\n\nfunction createColor() {\n // saturation is the whole color spectrum\n const h = Math.floor(rand() * 360);\n // saturation goes from 40 to 100, it avoids greyish colors\n const s = rand() * 60 + 40 + '%';\n // lightness can be anything from 0 to 100, but probabilities are a bell curve around 50%\n const l = (rand() + rand() + rand() + rand()) * 25 + '%';\n\n const color = 'hsl(' + h + ',' + s + ',' + l + ')';\n return color;\n}\n\nfunction createImageData(size: number) {\n const width = size; // Only support square icons for now\n const height = size;\n\n const dataWidth = Math.ceil(width / 2);\n const mirrorWidth = width - dataWidth;\n\n const data = [];\n for (let y = 0; y < height; y++) {\n let row = [];\n for (let x = 0; x < dataWidth; x++) {\n // this makes foreground and background color to have a 43% (1/2.3) probability\n // spot color has 13% chance\n row[x] = Math.floor(rand() * 2.3);\n }\n const r = row.slice(0, mirrorWidth);\n r.reverse();\n row = row.concat(r);\n\n for (let i = 0; i < row.length; i++) {\n data.push(row[i]);\n }\n }\n\n return data;\n}\n\nfunction createCanvas(\n imageData: any,\n color: string,\n scale: number,\n bgcolor: string,\n spotcolor: string\n) {\n const width = Math.sqrt(imageData.length);\n const c = document.createElement('canvas');\n c.width = c.height = width * scale;\n const cc = c.getContext('2d');\n if (cc !== null) {\n cc.fillStyle = bgcolor;\n cc.fillRect(0, 0, c.width, c.height);\n cc.fillStyle = color;\n\n for (let i = 0; i < imageData.length; i++) {\n const row = Math.floor(i / width);\n const col = i % width;\n cc.fillStyle = imageData[i] === 1 ? color : spotcolor;\n if (imageData[i]) {\n cc.fillRect(col * scale, row * scale, scale, scale);\n }\n }\n }\n return c;\n}\n\nfunction createIcon(opts: any) {\n opts = opts || {};\n const size = opts.size || 8;\n const scale = opts.scale || 4;\n const seed =\n opts.seed || Math.floor(Math.random() * Math.pow(10, 16)).toString(16);\n seedrand(seed);\n const color = opts.color || createColor();\n const bgcolor = opts.bgcolor || createColor();\n const spotcolor = opts.spotcolor || createColor();\n const imageData = createImageData(size);\n const canvas = createCanvas(imageData, color, scale, bgcolor, spotcolor);\n\n return canvas;\n}\nexport default createIcon;\n","\nimport Blockies from '@/helpers/blockies';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'MewBlockie',\n props: {\n /**\n * Currency image url\n */\n currency: {\n type: String,\n default: '',\n },\n /**\n * Valid address\n */\n address: {\n type: String,\n default: '',\n },\n /**\n * Blockie width\n */\n width: {\n type: String,\n default: '64px',\n },\n /**\n * Blockie height\n */\n height: {\n type: String,\n default: '64px',\n },\n /**\n * Remove inset shadow\n */\n flat: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n scale: 16,\n size: 8,\n blockieImg: '',\n };\n },\n watch: {\n address() {\n this.createBlockie();\n },\n width() {\n this.createBlockie();\n },\n height() {\n this.createBlockie();\n },\n scale() {\n this.createBlockie();\n },\n size() {\n this.createBlockie();\n },\n },\n mounted() {\n this.createBlockie();\n },\n methods: {\n createBlockie() {\n this.blockieImg = Blockies({\n seed: this.address ? this.address.toLowerCase() : '',\n size: this.size,\n scale: this.scale,\n }).toDataURL();\n const blockieElem = this.$refs.blockie as HTMLImageElement;\n blockieElem.style.width = this.width;\n blockieElem.style.height = this.height;\n },\n },\n});\n","import { render } from \"./MewBlockie.vue?vue&type=template&id=0413b8b6&scoped=true&ts=true\"\nimport script from \"./MewBlockie.vue?vue&type=script&lang=ts\"\nexport * from \"./MewBlockie.vue?vue&type=script&lang=ts\"\n\nimport \"./MewBlockie.vue?vue&type=style&index=0&id=0413b8b6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0413b8b6\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7c3e7d09\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"firstPart\" }\nconst _hoisted_2 = { class: \"lastPart\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\n 'd-flex hash-container mew-address',\n _ctx.justifyStart ? 'justify-start' : 'justify-end',\n ])\n }, [\n _createElementVNode(\"span\", _hoisted_1, _toDisplayString(_ctx.start), 1),\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(_ctx.end), 1)\n ], 2))\n}","\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n name: 'MewTransformHash',\n props: {\n /**\n * Hash to truncate.\n */\n hash: {\n type: String,\n default: '',\n },\n /**\n * Adds justify start to parent div\n * instead of justify end\n */\n justifyStart: {\n type: Boolean,\n default: false,\n },\n },\n computed: {\n start() {\n const n = this.hash.length;\n return this.hash.slice(0, n - 4);\n },\n end() {\n const n = this.hash.length;\n return this.hash.slice(n - 4, n);\n },\n },\n});\n","import { render } from \"./MewTransformHash.vue?vue&type=template&id=7c3e7d09&scoped=true&ts=true\"\nimport script from \"./MewTransformHash.vue?vue&type=script&lang=ts\"\nexport * from \"./MewTransformHash.vue?vue&type=script&lang=ts\"\n\nimport \"./MewTransformHash.vue?vue&type=style&index=0&id=7c3e7d09&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7c3e7d09\"]])\n\nexport default __exports__","\nimport MewBlockie from \"@/components/MewBlockie/MewBlockie.vue\";\nimport MewTransformHash from \"../MewTransformHash/MewTransformHash.vue\";\nimport { defineComponent } from \"vue\";\n\n// data\nconst USER_INPUT_TYPES = {\n typed: \"TYPED\",\n selected: \"SELECTED\",\n};\n\nexport default defineComponent({\n name: \"MewAddressSelect\",\n components: {\n MewBlockie,\n MewTransformHash,\n },\n props: {\n /**\n * value passed\n */\n modelValue: {\n type: String,\n default: \"\",\n },\n /**\n * Text displayed under the input container.\n */\n hint: {\n type: String,\n default: \"\",\n },\n /**\n * For validating your input - accepts an array of functions that take\n * an input value as an argument and return either true / false or a\n * string with an error message.\n */\n rules: {\n type: Array,\n default: () => {\n return [];\n },\n },\n /**\n * The text to display if there is no data.\n */\n noDataText: {\n type: String,\n default: \"\",\n },\n /**\n * Resolved address for name.\n */\n resolvedAddr: {\n type: String,\n default: \"\",\n },\n /**\n * Disables the input.\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n /**\n * Returns if the address is valid or not.\n */\n isValidAddress: {\n type: Boolean,\n default: false,\n },\n /**\n * The input label.\n */\n label: {\n type: String,\n default: \"To Address\",\n },\n /**\n * The input placeholder.\n */\n placeholder: {\n type: String,\n default: \"Please enter an address\",\n },\n /**\n * Error messages to display when its an invalid value.\n */\n errorMessages: {\n type: [String, Array],\n default: \"\",\n },\n /**\n * Clear address\n */\n clearAddress: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n /**\n * The v-model value for the combobox.\n */\n addressValue: this.modelValue,\n /**\n * Indicates whether the user selected from dropdown or typed in the address\n */\n isTyped: USER_INPUT_TYPES.typed,\n };\n },\n computed: {\n /**\n * If the input item is a name (i.e, ens) and has a valid resolved address,\n * display the blockie for the resolved address otherwise display\n * the blockie for the regular address value.\n */\n blockieHash(): string {\n return this.resolvedAddr.length > 0\n ? this.resolvedAddr\n : this.addressValue;\n },\n },\n watch: {\n clearAddress() {\n this.clear();\n },\n modelValue(val) {\n this.addressValue = val;\n },\n },\n methods: {\n /**\n * Clears the v-model value.\n */\n clear() {\n this.addressValue = \"\";\n },\n /**\n * Sets the dropdown item to be the v-model value.\n */\n selectAddress(data: { value: any; raw: any }) {\n this.isTyped = USER_INPUT_TYPES.selected;\n const addressSelect = Object.assign(\n {},\n this.$refs.mewAddressSelect\n );\n this.addressValue = data.value.address;\n addressSelect.modelValue = this.addressValue;\n this.onChange(this.addressValue);\n },\n /**\n * Emits 'changed' when there is a v-model value change.\n */\n onChange(value: string) {\n this.$emit(\"changed\", value, this.isTyped);\n },\n /**\n * Sets the value for what the user types int\n */\n onInputChange(data: { address: string }) {\n this.isTyped = USER_INPUT_TYPES.typed;\n this.addressValue = data\n ? data.address\n ? data.address\n : data.toString()\n : \"\";\n this.onChange(this.addressValue);\n },\n },\n});\n","import { render } from \"./MewAddressSelect.vue?vue&type=template&id=830abb46&scoped=true&ts=true\"\nimport script from \"./MewAddressSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./MewAddressSelect.vue?vue&type=script&lang=ts\"\n\nimport \"./MewAddressSelect.vue?vue&type=style&index=0&id=830abb46&lang=scss&scoped=true\"\nimport \"./MewAddressSelect.vue?vue&type=style&index=1&id=830abb46&lang=scss\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-830abb46\"]])\n\nexport default __exports__","/*\nPrimary Attribution\nRichard Moore \nhttps://github.com/ethers-io\n\nNote, Richard is a god of ether gods. Follow and respect him, and use Ethers.io!\n*/\n\nimport { toBN } from 'web3-utils';\n\nconst zero = toBN(0);\nconst negative1 = toBN(-1);\n\n/**\n * Returns value of unit in Wei\n *\n * @method getValueOfUnit\n * @param {number} decimals the unit to convert to, default ether\n * @returns {BN} value of the unit (in Wei)\n * @throws error if the unit is not correct:w\n */\n\nconst getValueOfUnit = (decimals: number) => {\n return toBN(10).pow(toBN(decimals));\n};\n\nconst numberToString = (arg: any) => {\n if (typeof arg === 'string') {\n if (!arg.match(/^-?[0-9.]+$/)) {\n throw new Error(\n `while converting number to string, invalid number value '${arg}', should be a number matching (^-?[0-9.]+).`\n );\n }\n return arg;\n } else if (typeof arg === 'number') {\n return String(arg);\n } else if (\n typeof arg === 'object' &&\n arg.toString &&\n (arg.toTwos || arg.dividedToIntegerBy)\n ) {\n if (arg.toPrecision) {\n return String(arg.toPrecision());\n }\n return arg.toString(10);\n }\n throw new Error(\n `while converting number to string, invalid number value '${arg}' type ${typeof arg}.`\n );\n};\n\nconst fromBase = (weiInput: number | string, decimals: number, optionsInput?: { pad?: boolean, commify?: boolean }): string => {\n let wei = toBN(weiInput);\n const negative = wei.lt(zero);\n const base = getValueOfUnit(decimals);\n const baseLength = base.toString().length - 1 || 1;\n const options = optionsInput || {};\n\n if (negative) {\n wei = wei.mul(negative1);\n }\n\n let fraction: any = wei.mod(base).toString(10);\n\n while (fraction.length < baseLength) {\n fraction = `0${fraction}`;\n }\n if (!options.pad) {\n // eslint-disable-next-line\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n }\n\n let whole = wei.div(base).toString(10);\n\n if (options.commify) {\n whole = whole.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ','); // eslint-disable-line\n }\n\n let value = `${whole}${fraction == '0' ? '' : `.${fraction}`}`;\n\n if (negative) {\n value = `-${value}`;\n }\n\n return value;\n};\n\nconst toBase = (etherInput: number, decimals: number): string => {\n let ether = numberToString(etherInput);\n const base = getValueOfUnit(decimals);\n const baseLength = base.toString().length - 1 || 1;\n\n // Is it negative?\n const negative = ether.substring(0, 1) === '-';\n if (negative) {\n ether = ether.substring(1);\n }\n\n if (ether === '.') {\n throw new Error(\n `[ethjs-unit] while converting number ${etherInput} to wei, invalid value`\n );\n }\n\n // Split it into a whole and fractional part\n const comps = ether.split('.');\n if (comps.length > 2) {\n throw new Error(\n `[ethjs-unit] while converting number ${etherInput} to wei, too many decimal points`\n );\n }\n\n let whole = comps[0],\n fraction = comps[1];\n\n if (!whole) {\n whole = '0';\n }\n if (!fraction) {\n fraction = '0';\n }\n if (fraction.length > baseLength) {\n throw new Error(\n `[ethjs-unit] while converting number ${etherInput} to wei, too many decimal places`\n );\n }\n\n while (fraction.length < baseLength) {\n fraction += '0';\n }\n\n whole = toBN(whole);\n fraction = toBN(fraction);\n let wei = whole.mul(base).add(fraction);\n\n if (negative) {\n wei = wei.mul(negative1);\n }\n\n return wei.toString();\n};\n\nexport { fromBase, toBase };\n","import { isNull } from 'lodash';\nimport { isBN, toBN } from 'web3-utils';\nimport { fromBase, toBase } from './units';\n\n/**\n * Localizes numbers to its specified currency\n * @returns {string} converted number\n */\nexport const localizeCurrency = ({\n currency = 'USD',\n number = '0.00' as any,\n rate = 1,\n small = false,\n verySmall = false\n}) => {\n if (isNull(number)) {\n return convertNumber({ currency, options: {}, convertedPrice: 0.0 });\n }\n const options = number.tooltipText\n ? {\n notation: 'compact',\n minimumFractionDigits: 3,\n maximumFractionDigits: 4\n }\n : small\n ? {\n notation: 'compact',\n minimumFractionDigits: 5,\n maximumFractionDigits: 6\n }\n : {};\n\n rate = typeof rate === 'string' ? currencyToNumber(rate) : rate;\n number =\n typeof number === 'string'\n ? currencyToNumber(number)\n : number.tooltipText\n ? currencyToNumber(number.tooltipText)\n : isBN(number)\n ? currencyToNumber(number.toString())\n : number;\n if (isNaN(number)) {\n return convertNumber({ currency, options: {}, convertedPrice: 0.0 });\n }\n const decimals = number.toString().split('.')[1]?.length || 0;\n const convertedPrice = small\n ? priceConversion(number, decimals, rate).toFixed(6)\n : verySmall\n ? priceConversion(number, decimals, rate).toFixed(7)\n : priceConversion(number, decimals, rate);\n return convertNumber({ currency, options, convertedPrice: Number.parseFloat(convertedPrice.toString()) });\n};\n\nconst priceConversion = (num: number, decimals: number, rate: number): number => {\n return parseFloat(fromBase(toBN(toBase(num, decimals)).muln(rate).toString(), decimals))\n}\n\n/**\n * Converts string representing fiat to a float\n * @param {string} currency\n * @returns {Number}\n */\nexport const currencyToNumber = (currency: string) =>\n typeof currency === 'string'\n ? parseFloat(currency.replace(/[,$₽<\\s]/g, ''))\n : currency;\n\ninterface NumberObj {\n currency: string,\n options: any,\n convertedPrice: number,\n}\n\n/**\n * Converts number to a local currency\n * @returns {string} Converted Number\n */\nconst convertNumber = (numberObj: NumberObj) => {\n try {\n return new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: numberObj.currency,\n currencyDisplay: 'narrowSymbol',\n ...numberObj.options\n }).format(numberObj.convertedPrice);\n } catch (e) {\n if (e instanceof Error)\n throw new Error(e.message);\n }\n};","import BigNumber from 'bignumber.js';\nimport { fromWei, toBN } from 'web3-utils';\nimport { isNaN as lodashIsNaN } from 'lodash';\nimport { localizeCurrency } from './localization';\n\n/**\n * ---------------------------------\n * Number Format Helper.\n * Used to format numerical strings in the UI\n * ---------------------------------\n */\n\n/** FormatterNumber Object:\n * {\n * value: '< 0.0000001', //string\n * tooltipText: '0.0000000001' //string || undefined,\n * unit: 'eth' // string || undefined,\n * };\n */\n\n/**\n * ---------------------------------\n * Constants\n * ---------------------------------\n */\n const SmallNumberBreakpoint = 0.000001;\n const SmallFiatBreakpoint = 0.01;\n const TenThousand = 1e4;\n const OneMillion = 1e6;\n const OneBillion = 1e9;\n const TenBillion = 1e10;\n const OneTrillion = 1e12;\n const OneQuadrillion = 1e15;\n \n const FormattedNumberUnit = {\n ETH: 'ETH',\n GWEI: 'Gwei',\n WEI: 'wei',\n PERCENT: '%',\n USD: '$',\n B: 'B',\n T: 'T',\n Q: 'Q',\n M: 'M',\n FIAT: 'fiat'\n };\n \n /* Set the global formatting options */\n const fmt = {\n decimalSeparator: '.',\n groupSeparator: ',',\n groupSize: 3\n };\n BigNumber.config({ FORMAT: fmt });\n BigNumber.config({ ROUNDING_MODE: 1 }); // equivalent\n \n /**\n * ---------------------------------\n * CORE Functions\n * ---------------------------------\n */\n \n /**\n * GROUP I: Format number\n * Converts an integer value to a formatted string using BigNumber.js\n * @param {any} _value - number to convert takes BigNumber || string || number 1000\n * @return {string} formatter number as a string ie: '1,000'\n */\n \n const formatIntegerToString = (_value: any) => {\n return new BigNumber(_value).toFormat();\n };\n \n /**\n * GROUP II: Formatted integers\n * Converts an integer value to a FormattedNumber object, returns value in { billions, trillions, \"> 1Q\"} if > 1 million\n * @param _value BigNumber || string || number}\n * @return {object} FormattedNumber\n */\n const formatIntegerValue = (_value: BigNumber | string | number) => {\n const value = new BigNumber(_value);\n /* Case I: value >= 1,000,000,000,000,000 */\n if (value.isGreaterThanOrEqualTo(OneQuadrillion)) {\n return convertToQuadrillion(value);\n }\n \n /* Case II: value >= 1,000,000,000,000 */\n if (value.isGreaterThanOrEqualTo(OneTrillion)) {\n return convertToTrillions(value);\n }\n \n /* Case III: value >= 1,000,000,000 */\n if (value.isGreaterThanOrEqualTo(OneBillion)) {\n return convertToBillions(value);\n }\n \n /* Case IV: value >= 1,000,000 */\n if (value.isGreaterThanOrEqualTo(OneMillion)) {\n return convertToMillions(value);\n }\n \n /* Case V: value < 1,000,000,000 */\n return { value: value.toFormat(), tooltipText: value.toFormat() };\n };\n \n /**\n * GROUP III: Floating point values\n * Converts a floating point value to a FormattedNumber object. Returns formatted value, unless the value is less then 0.000001.\n * Show upto 6 decimal points or to the last decimal point. Ie: 1.3 should be shown as 1.3. Follows Group II (formatIntegerValue) if value is greater than 1 million.\n * Use cases: Token Balances / Quantities / Tx fee/ Tx amount\n * @param {any} _value number to convert takes BigNumber || string || number\n * @returns {object} FormattedNumber with value as formatted string, and tooltipText\n */\n function formatFloatingPointValue(_value: any) {\n const value = new BigNumber(_value);\n /**\n * Case I: value === 0\n * Return: \"0\"\n */\n if (value.isZero() || value.isNaN()) {\n return { value: '0', tooltipText: '0' };\n }\n \n /**\n * Case II: value >= 1,000,000\n * Return: formated integer value with tooltip\n */\n if (value.isGreaterThanOrEqualTo(OneMillion)) {\n return formatIntegerValue(value);\n }\n \n /**\n * Case III: value >= 10,000\n * Return: a number, rounded to 2 decimal points and tooltip with full value if > 2 decimal places\n */\n if (value.isGreaterThanOrEqualTo(TenThousand)) {\n return getRoundNumber(value, 2);\n }\n \n /**\n * Case IV: value >= 1\n * Return: a number, rounded to 4 decimal points and tooltip with full value if > 4 decimal places\n */\n if (value.isGreaterThanOrEqualTo(1)) {\n return getRoundNumber(value, 4);\n }\n \n /**\n * Case V: value >= 0.0000001\n * Return: a number, rounded up to 7 decimal places and tooltip with full value if > 7 decimal places\n */\n if (value.isGreaterThanOrEqualTo(SmallNumberBreakpoint)) {\n return getRoundNumber(value, 6);\n }\n \n /**\n * Case V: value < 0.000001\n * Return: string \"< 0.000001\" and tooltip with full value\n */\n return {\n value: `< ${SmallNumberBreakpoint}`,\n tooltipText: value.toFormat()\n };\n }\n \n /**\n * GROUP IV: Balance ETH Value\n * Converts a floating point WEI value to a FormattedNumber object. Returns formatted value in ETH, Gwei or wei.\n * Show upto 6 decimal points or to the last decimal point. Ie: 1.3 should be shown as 1.3. Follows Group II (formatIntegerValue) if value is greater than 1 million.\n * Use cases: Dashboard ETH balance / Swap & Send Transaction Balance /Access Wallet with Mnemonic type wallet, in address table\n * @param {any} _value MUST BE IN WEI number to convert takes BigNumber || string || number\n * @returns {object} FormattedNumber with value as formatted string, unit and tooltipText\n */\n const formatBalanceEthValue = (_value: any) => {\n const value = new BigNumber(_value);\n const ethValue = new BigNumber(fromWei(_value.toString()));\n \n /**\n * Case I: value === 0\n * Return: \"0 ETH\"\n */\n if (value.isZero()) {\n return { value: '0', unit: FormattedNumberUnit.ETH };\n }\n /**\n * Case II: value < 10,000 wei\n * Return: small values in WEI (no conversion) and tooltip with ETH value\n */\n if (value.isLessThan(TenThousand)) {\n return {\n value: value.toFormat(),\n unit: FormattedNumberUnit.WEI,\n tooltipText: `${ethValue.toFormat()}`\n };\n }\n /**\n * Case III: value < 10 Billion Wei OR value < 10 Gwei\n * Return: Gwei value\n */\n if (value.isLessThan(TenBillion)) {\n return {\n value: new BigNumber(fromWei(_value.toString(), 'gwei')).toFormat(),\n unit: FormattedNumberUnit.GWEI,\n tooltipText: `${ethValue.toFormat()}`\n };\n }\n /**\n * Case IV: 0.00000001 ETH <= x < 0.000001 ETH\n * Return: rounded number to 8 dps\n */\n if (value.isLessThan(OneTrillion)) {\n const formatted = getRoundNumber(ethValue, 8);\n return {\n value: formatted.value,\n unit: FormattedNumberUnit.ETH,\n tooltipText: formatted.tooltipText\n };\n }\n \n /**\n * Case V: x >= 0.000001 ETH\n * Return: formatFloatingPointValue\n */\n const formatted = formatFloatingPointValue(ethValue);\n return {\n value: formatted.value,\n unit: FormattedNumberUnit.ETH,\n tooltipText: formatted.tooltipText\n };\n };\n /**\n * GROUP V: Gwei (gas) values\n * Converts a floating point WEI value to a FormattedNumber object. Returns formatted value in ETH, Gwei or wei.\n * Show upto 6 decimal points or to the last decimal point. Ie: 1.3 should be shown as 1.3. Follows Group II (formatIntegerValue) if value is greater than 1 million.\n * Use cases: Token Balances / Quantities / Tx fee/ Tx amount\n * @param {any} _value MUST BE IN WEI number to convert takes BigNumber || string || number\n * @returns {object} FormattedNumber with value as formatted string, unit and tooltipText\n */\n const formatGasValue = (_value: any) => {\n const value = new BigNumber(_value);\n const gweiValue = new BigNumber(fromWei(_value.toString(), 'gwei'));\n const ethValue = new BigNumber(fromWei(_value.toString()));\n const unit = FormattedNumberUnit.GWEI;\n \n /**\n * Case I: value === 0\n * Return: \"0 Gwei\"\n */\n if (value.isZero()) {\n return { value: '0', unit };\n }\n \n /**\n * Case II: x < 0.00001 Gwei\n * Return: number in wei and show tooltip with Gwei value\n */\n if (value.isLessThan(TenThousand)) {\n return {\n value: value.toFormat(),\n unit: FormattedNumberUnit.WEI,\n tooltipText: `${ethValue.toFormat()}`\n };\n }\n \n /**\n * Case III: 0.00001 Gwei =< X < 1 mil Gwei\n * Return: number in Gwei\n */\n \n if (gweiValue.isLessThan(OneMillion)) {\n return {\n value: formatFloatingPointValue(gweiValue).value,\n unit: unit,\n tooltipText: `${ethValue.toFormat()}`\n };\n }\n \n /**\n * Case IV: x >= 1 mill\n * Return: number in eth and show tooltip with Gwei value\n */\n const formatted = formatFloatingPointValue(ethValue);\n return {\n value: formatted.value,\n unit: FormattedNumberUnit.ETH,\n tooltipText: `${formatted.tooltipText}`\n };\n };\n /**\n * GROUP VI: Percentage values\n * Converts a percentage value to a FormattedNumber\n * @param {any} _value number to convert takes string || number\n * @returns {object} FormattedNumber with value as formatted string, unit and tooltipText\n */\n const formatPercentageValue = (_value: any) => {\n /* Strip '%' if necessary */\n const value = new BigNumber(_value.toString().replaceAll('%', ''));\n const unit = FormattedNumberUnit.PERCENT;\n /**\n * Case I: value === 0\n * Return: \"0%\"\n */\n if (value.isZero()) {\n return { value: '0', unit };\n }\n \n const isNegative = value.isNegative(); // Record whether value is negative\n const absoluteValue = value.absoluteValue(); // Get Absolute value\n \n /**\n * Case II: |value| > 10000\n * Return: >10,000% or <-10000% and tooltip\n */\n if (absoluteValue.isGreaterThan(TenThousand)) {\n const result = isNegative ? '< -10,000%' : '> 10,000%';\n return {\n value: result,\n unit: unit,\n tooltipText: `${value.toFormat()}%`\n };\n }\n \n /**\n * Case III: |value| >= 1000\n * Return: whole number and tooltips if has decimal points\n */\n if (absoluteValue.isGreaterThanOrEqualTo(1000)) {\n const dps = value.decimalPlaces();\n return {\n value: `${value.toFormat(0)}%`,\n unit: unit,\n tooltipText: dps ? `${value.toFormat()}%` : undefined\n };\n }\n \n /**\n * Case IV: |value| >= 0.01\n * Return: rounded to 2 decimal points number and tooltip if > 2 decimal points\n */\n if (absoluteValue.isGreaterThanOrEqualTo(0.01)) {\n return { value: `${getRoundNumber(value, 2, true).value}%`, unit: unit };\n }\n \n /**\n * Case V: |value| >= 0.01\n * Return: rounded to 2 decimal points number and tooltip if > 2 decimal points\n */\n if (absoluteValue.isGreaterThanOrEqualTo(SmallNumberBreakpoint)) {\n return { value: `${getRoundNumber(value, 6).value}%`, unit: unit };\n }\n \n /**\n * Case VI: If |value| < 0.000001\n * Return: '>-0.000001' '<0.000001'r and tooltip\n */\n const result = isNegative ? '> -0.000001%' : '< 0.000001%';\n return { value: result, unit: unit, tooltipText: `${value.toFormat()}%` };\n };\n\n/**\n * GROUP VII: Fiat Values\n * Converts a fiat value to a FormattedNumber\n * Shows upto 6 decimal points or to the last decimal point on 0.000001 <= X < 0.01.\n * Shows 2 decimal points or to the last decimal point on 0.01 <= X < 1,000,000.\n * @param _value: BigNumber\n * @returns Object FormattedNumber with value as formatted string and tooltipText\n */\n const formatFiatValue = (\n _value: string,\n options = { locale: 'en-US', currency: 'USD', rate: 1 }\n ) => {\n const value = new BigNumber(_value);\n /**\n * Case I: value === 0\n * Return: \"$0.00\"\n */\n if (value === undefined || value.isZero() || value.isNaN()) {\n return { value: localizeCurrency({ number: _value, ...options }) };\n }\n \n /**\n * Case II: value >= 1,000,000\n * Return: formated integer value with tooltip\n */\n if (value.isGreaterThanOrEqualTo(OneMillion)) {\n return {\n value: localizeCurrency({ number: formatIntegerValue(value), ...options })\n };\n }\n \n /**\n * Case V: value > 0.04\n * Return: rounded number up to 2 decimal points, no tooltip\n */\n if (value.isGreaterThanOrEqualTo(SmallFiatBreakpoint)) {\n return {\n value: localizeCurrency({\n number: getRoundNumber(value, 2, true).value,\n ...options\n })\n };\n }\n \n /**\n * Case VI: 0.000001 <= value < 0.01\n * Return: rounded number up to 6 decimal points\", no tooltip\n */\n if (value.isGreaterThanOrEqualTo(SmallNumberBreakpoint)) {\n return {\n value: localizeCurrency({\n number: getRoundNumber(value, 6).value,\n small: true,\n ...options\n })\n };\n }\n \n /**\n * Case V: value < 0.0000001\n * Return: string \"< $0.0000001\" and tooltip with full value with tooltip\n */\n return {\n value: `< ${localizeCurrency({\n number: SmallNumberBreakpoint,\n verySmall: true,\n ...options\n })}`,\n tooltipText: value.toFormat()\n };\n };\n\n/**\n * ---------------------------------\n * Helper Functions\n * Do not export then to use in formatting strings\n * ---------------------------------\n */\n\n/**\n * Helper function. Converts a value to Millions in FormattedNumber object\n * @param {BigNumber} value - number to convert takes BigNumber || string || number 1000\n * @return {object} - FormatterNumber\n */\n const convertToMillions = (value: BigNumber) => {\n const result = value.dividedBy(OneMillion);\n return {\n value: `${getRoundNumber(result, 4).value}${FormattedNumberUnit.M}`,\n tooltipText: value.toFormat()\n };\n };\n \n /**\n * Helper function. Converts a value to Billions in FormattedNumber object\n * @param {BigNumber} value - number to convert takes BigNumber || string || number\n * @return {object} - FormatterNumber\n */\n const convertToBillions = (value: BigNumber) => {\n const result = value.dividedBy(OneBillion);\n return {\n value: `${getRoundNumber(result, 4).value}${FormattedNumberUnit.B}`,\n tooltipText: value.toFormat()\n };\n };\n /**\n * Helper function. Converts a value to Trillions in FormattedNumber object\n * @param {BigNumber} value - number to convert takes BigNumber || string || number\n * @return {object} - FormatterNumber\n */\n const convertToTrillions = (value: BigNumber) => {\n const result = value.dividedBy(OneTrillion);\n return {\n value: `${getRoundNumber(result, 4).value}${FormattedNumberUnit.T}`,\n tooltipText: value.toFormat()\n };\n };\n \n /**\n * Helper function. returns Quadrillion in FormattedNumber object\n * @param {BigNumber} value - number to convert takes BigNumber || string || number\n * @return {object} - FormatterNumber\n */\n const convertToQuadrillion = (value: BigNumber) => {\n return {\n value: '> 1Q',\n unit: FormattedNumberUnit.Q,\n tooltipText: value.toFormat()\n };\n };\n \n /**\n * Helper function. Rounds a value to specified decimal points and tooltip with full value if > more decimal points then round\n * @param {BigNumber} value - number to convert takes BigNumber || string || number\n * @param {number} round - how many decimal points to round the number\n * @param {boolean} hasTrailingZeros - set this to true, if you want to dispaly trailing zeros ie: desired result 12.3000 instead of 12.3\n * @return {object} - FormatterNumber\n */\n const getRoundNumber = (value: BigNumber, round: number, hasTrailingZeros = false) => {\n let dps = value.decimalPlaces();\n if (dps === null) dps = 0;\n return {\n value: hasTrailingZeros\n ? value.decimalPlaces(round).toFormat(round)\n : value.decimalPlaces(round).toFormat(),\n tooltipText: dps > round ? value.toFormat() : undefined\n };\n };\n \n /**\n * Handles edge cases for web3 util toBN\n * @param {Number|String} number\n * @return {import('bn.js')} BN from web3\n */\n \n const toBNSafe = (number: number | string) => {\n if (lodashIsNaN(number) || !number) number = 0;\n return toBN(new BigNumber(number).toFixed(0));\n };\n \n export {\n formatIntegerToString,\n formatIntegerValue,\n formatFloatingPointValue,\n formatFiatValue,\n formatBalanceEthValue,\n formatPercentageValue,\n formatGasValue,\n toBNSafe\n };","import { Network } from './types';\nexport const Networks = >[\n {\n name: 'ETH',\n name_long: 'Ethereum',\n chainID: 1,\n tokens: [],\n icon: getIcon('ETH'),\n currencyName: 'ETH',\n gasPriceMultiplier: 1,\n coingeckoID: 'ethereum',\n service: 'myetherwallet.com-ws',\n url: 'wss://nodes.mewapi.io/ws/eth',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n {\n name: 'BTC',\n name_long: 'Bitcoin',\n chainID: 1,\n tokens: [],\n icon: getIcon('BTC'),\n currencyName: 'BTC',\n gasPriceMultiplier: 1,\n coingeckoID: 'bitcoin',\n service: '',\n url: '',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n {\n name: 'BCH',\n name_long: 'Bitcoin Cash',\n chainID: 1,\n tokens: [],\n icon: getIcon('BCH'),\n currencyName: 'BCH',\n gasPriceMultiplier: 1,\n coingeckoID: 'bitcoin-cash',\n service: '',\n url: '',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n // {\n // name: 'BSC',\n // name_long: 'Binance Smart Chain',\n // chainID: 56,\n // tokens: [],\n // icon: getIcon('BNB'),\n // currencyName: 'BNB',\n // gasPriceMultiplier: 1,\n // coingeckoID: 'binancecoin',\n // service: 'myetherwallet.com-ws',\n // url: 'wss://nodes.mewapi.io/ws/bsc',\n // port: 443,\n // auth: false,\n // username: '',\n // password: '',\n // },\n {\n name: 'MATIC',\n name_long: 'Polygon (Matic)',\n chainID: 137,\n tokens: [],\n icon: getIcon('MATIC'),\n currencyName: 'MATIC',\n gasPriceMultiplier: 1.7,\n coingeckoID: 'matic-network',\n service: 'myetherwallet.com-ws',\n url: 'wss://nodes.mewapi.io/ws/matic',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n {\n name: 'DOT',\n name_long: 'Polkadot',\n chainID: 1,\n tokens: [],\n icon: getIcon('DOT'),\n currencyName: 'DOT',\n gasPriceMultiplier: 1,\n coingeckoID: 'polkadot',\n service: '',\n url: '',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n {\n name: 'KSM',\n name_long: 'Kusama',\n chainID: 1,\n tokens: [],\n icon: getIcon('KSM'),\n currencyName: 'KSM',\n gasPriceMultiplier: 1,\n coingeckoID: 'kusama',\n service: '',\n url: '',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n // {\n // name: 'LTC',\n // name_long: 'Litecoin',\n // chainID: 1,\n // tokens: [],\n // icon: getIcon('LTC'),\n // currencyName: 'LTC',\n // gasPriceMultiplier: 1,\n // coingeckoID: 'litecoin',\n // service: '',\n // url: '',\n // port: 443,\n // auth: false,\n // username: '',\n // password: '',\n // },\n // {\n // name: 'DOGE',\n // name_long: 'Dogecoin',\n // chainID: 1,\n // tokens: [],\n // icon: getIcon('DOGE'),\n // currencyName: 'DOGE',\n // gasPriceMultiplier: 1,\n // coingeckoID: 'dogecoin',\n // service: '',\n // url: '',\n // port: 443,\n // auth: false,\n // username: '',\n // password: '',\n // },\n {\n name: 'KDA',\n name_long: 'Kadena',\n chainID: 1,\n tokens: [],\n icon: getIcon('KDA'),\n currencyName: 'KDA',\n gasPriceMultiplier: 1,\n coingeckoID: 'kadena',\n service: '',\n url: '',\n port: 443,\n auth: false,\n username: '',\n password: '',\n },\n];\n\nfunction getIcon(currency: string) {\n return require(`@/assets/images/crypto/${currency}.svg`);\n}\n","class Crypto {\n decimals: number;\n img: string;\n name: string;\n subtext: string;\n value: string;\n symbol: string;\n network: string;\n\n constructor(\n name: string,\n subtext: string,\n network: string,\n decimals: number,\n img: string\n ) {\n this.decimals = decimals;\n this.img = img;\n this.name = name;\n this.subtext = subtext;\n this.value = name;\n this.symbol = name;\n this.network = network;\n }\n}\ninterface Fiat {\n name: string;\n value: string;\n img: string;\n}\n// Provider Quote Object\ninterface QuoteData {\n cryptoToFiat: string;\n selectedCryptoName: string;\n plusFeeF: string;\n includesFeeText: string;\n networkFeeText: string;\n dailyLimit: string;\n monthlyLimit: string;\n fiatAmount: string;\n}\ninterface SubmitData {\n simplex_quote: QuoteData;\n address: string;\n buy_obj: QuoteData; // Rename when done\n open_providers: number;\n selected_currency: Crypto;\n selected_fiat: Fiat;\n fiat_amount: string;\n disable_moonpay: boolean;\n}\n\ninterface SubmitSellData {\n address: string;\n selected_currency: Crypto;\n selected_fiat: Fiat;\n fiat_amount: string;\n}\ninterface Network {\n name: string;\n name_long: string;\n chainID: number;\n tokens: Array;\n icon: any;\n currencyName: string;\n gasPriceMultiplier: number;\n coingeckoID: string;\n service: string;\n url: string;\n port: number;\n auth: boolean;\n username: string;\n password: string;\n}\ninterface Data {\n conversion_rates: { [currency: string]: number };\n limits: { [currency: string]: { min: number; max: number } };\n prices: { [currency: string]: string };\n}\nexport { Crypto, Fiat, QuoteData, SubmitData, SubmitSellData, Network, Data };\n","//\n// PuchaseSimplexFeeModel\n// MEWmodels\n//\n// Created by Mikhail Nikanorov on 3/24/21.\n// Copyright © 2021 MyEtherWallet Inc. All rights reserved.\n//\n\nimport {\n FiatCurrencyConversionRate,\n PurchaseComponentsFeeDescription,\n PurchaseCryptoCurrency,\n PurchasePrice,\n} from './types';\nimport { BigNumber } from 'bignumber.js';\n\nconst _providerMinFee = 10.0;\nconst _providerPlainFee = 0.0;\nconst providerReducedPercentFee = 0.0175;\nconst providerPercentFee = 0.0525;\nlet networkFee: number;\n\nexport function providerMinFee(\n fiatConversionRate: FiatCurrencyConversionRate\n): number {\n return (\n (_providerMinFee * fiatConversionRate.rate) / fiatConversionRate.baseRate\n );\n}\n\nexport function providerPlainFee(\n fiatConversionRate: FiatCurrencyConversionRate\n): number {\n return (\n (_providerPlainFee * fiatConversionRate.rate) / fiatConversionRate.baseRate\n );\n}\n\n// MARK: - LifeCycle\n\nexport function init(NetworkFee: number | null) {\n networkFee = NetworkFee ?? 2.65;\n}\n\n// MARK: - PurchaseProviderFee\n\nexport function feeDescription(\n fiatConversionRate: FiatCurrencyConversionRate\n): PurchaseComponentsFeeDescription {\n const decimals = fiatConversionRate.fiatCurrency.decimals;\n const minFee = roundAmount(\n providerMinFee(fiatConversionRate),\n decimals,\n BigNumber.ROUND_CEIL\n );\n const networkFeeRounded = roundAmount(\n networkFee * fiatConversionRate.rate,\n decimals,\n BigNumber.ROUND_CEIL\n );\n return new PurchaseComponentsFeeDescription(\n providerPercentFee,\n minFee,\n networkFeeRounded\n );\n}\n\nexport function calculateCrypto(\n Amount: number,\n cryptoCurrency: PurchaseCryptoCurrency,\n price: PurchasePrice,\n fiatConversionRate: FiatCurrencyConversionRate\n) {\n if (price.price <= 0) {\n return 0;\n }\n const decimals = price.fiatCurrency.decimals;\n const amount = roundAmount(Amount, decimals, BigNumber.ROUND_FLOOR);\n const fee = roundAmount(\n fiatFee(amount, fiatConversionRate),\n decimals,\n BigNumber.ROUND_HALF_EVEN\n );\n const base = roundAmount(\n fiatBase(amount, fee),\n decimals,\n BigNumber.ROUND_FLOOR\n );\n\n if (base <= 0) {\n return 0;\n }\n\n const crypto = Math.max(base / price.price, 0);\n return roundAmount(crypto, cryptoCurrency.decimals, BigNumber.ROUND_FLOOR);\n}\n\nexport function calculateFiat(\n Amount: number,\n cryptoCurrency: PurchaseCryptoCurrency,\n price: PurchasePrice,\n fiatConversionRate: FiatCurrencyConversionRate\n) {\n const amount = roundAmount(\n Amount,\n cryptoCurrency.decimals,\n BigNumber.ROUND_FLOOR\n );\n const base = roundAmount(\n cryptoBase(amount, price.price),\n price.fiatCurrency.decimals,\n BigNumber.ROUND_FLOOR\n );\n\n const totalMin = cryptoTotal(true, base, fiatConversionRate);\n const totalMax = cryptoTotal(false, base, fiatConversionRate);\n\n return roundAmount(\n Math.max(totalMin, totalMax),\n price.fiatCurrency.decimals,\n BigNumber.ROUND_CEIL\n );\n}\n\nexport function calculateFiatFee(\n Amount: number,\n price: PurchasePrice,\n fiatConversionRate: FiatCurrencyConversionRate\n) {\n if (price.price <= 0) {\n return 0;\n }\n const decimals = price.fiatCurrency.decimals;\n const amount = roundAmount(Amount, decimals, BigNumber.ROUND_FLOOR);\n const fee = roundAmount(\n fiatFee(amount, fiatConversionRate),\n decimals,\n BigNumber.ROUND_HALF_EVEN\n );\n const base = roundAmount(\n fiatBase(amount, fee),\n decimals,\n BigNumber.ROUND_FLOOR\n );\n if (base <= 0) {\n return 0;\n }\n\n return amount - base;\n}\n\n// MARK: - Calculation\n\n// MARK: Fiat -> Crypto\n\nexport function fiatFee(\n amount: number,\n fiatConversionRate: FiatCurrencyConversionRate\n) {\n const convertedMinFee = providerMinFee(fiatConversionRate);\n const minFee =\n (amount - convertedMinFee) * providerReducedPercentFee + convertedMinFee;\n const calculatedFee = amount * providerPercentFee;\n return Math.max(minFee, calculatedFee);\n}\n\nfunction fiatBase(amount: number, fee: number) {\n return Math.max(amount - fee, 0);\n}\n\n// MARK: Crypto -> Fiat\n\nexport function cryptoTotal(\n min: boolean,\n amount: number,\n fiatConversionRate: FiatCurrencyConversionRate\n) {\n let total: number;\n if (min) {\n const convertedMinFee = providerMinFee(fiatConversionRate);\n total =\n (amount + (Number(1) - providerReducedPercentFee) * convertedMinFee) /\n (Number(1) - providerReducedPercentFee);\n } else {\n total = amount / (Number(1) - providerPercentFee);\n }\n return total;\n}\n\nfunction cryptoBase(amount: number, price: number): number {\n return amount * price;\n}\n/**\n *\n * @param amount Number to be formatted\n * @param decimalPlaces Decimal places to format to\n * @param roundingMode BigNumber RoundingMode to round number\n * @returns Rounded number\n */\nfunction roundAmount(\n amount: number,\n decimalPlaces: number,\n roundingMode: BigNumber.RoundingMode\n): number {\n return new BigNumber(amount)\n .decimalPlaces(decimalPlaces, roundingMode)\n .toNumber();\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, unref as _unref, isRef as _isRef, toDisplayString as _toDisplayString, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-37fcf657\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"pa-3 pa-sm-2 pa-md-2 components--buy-form\",\n ref: \"formDiv\"\n}\nconst _hoisted_2 = { class: \"mb-6 mt-6\" }\nconst _hoisted_3 = { class: \"d-flex align-center justify-space-between mb-3\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 textDark--text\" }, \" How much do you want to spend? \", -1))\nconst _hoisted_5 = {\n key: 0,\n class: \"ml-2 d-flex align-center\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"h3 font-weight-regular mr-1\" }, \"Loading\", -1))\nconst _hoisted_7 = { class: \"d-flex mt-2\" }\nconst _hoisted_8 = [\"src\", \"alt\"]\nconst _hoisted_9 = [\"onClick\"]\nconst _hoisted_10 = { class: \"d-flex align-center\" }\nconst _hoisted_11 = [\"src\", \"alt\"]\nconst _hoisted_12 = { class: \"text-capitalize ml-2 my-2 d-flex flex-column\" }\nconst _hoisted_13 = { class: \"mb-6\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 textDark--text mb-3\" }, \"You will get\", -1))\nconst _hoisted_15 = { class: \"d-flex mt-2\" }\nconst _hoisted_16 = [\"src\", \"alt\"]\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 textDark--text mb-3\" }, \" Where should we send your crypto? \", -1))\nconst _hoisted_18 = {\n key: 0,\n class: \"pt-2 text-center\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-white font-weight-bold\" }, \"BUY NOW\", -1))\nconst _hoisted_20 = {\n key: 1,\n class: \"text-center py-5\"\n}\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"text-center font-weight-bold mt-3\",\n style: {\"line-height\":\"1.4rem\"}\n}, \" Processing purchase.... \", -1))\n\nimport {\n computed,\n reactive,\n watch,\n onMounted,\n PropType,\n onUnmounted,\n ref,\n Ref,\n} from \"vue\";\nimport BigNumber from \"bignumber.js\";\nimport {\n supportedCrypto,\n supportedFiat,\n getCryptoPrices,\n currencySymbols,\n} from \"./prices\";\nimport { isObject, isNumber, isString, isEmpty } from \"lodash\";\nimport WAValidator from \"multicoin-address-validator\";\nimport { isHexStrict, isAddress, fromWei, toBN, isHex } from \"web3-utils\";\nimport { encodeAddress } from \"@polkadot/keyring\";\nimport MewAddressSelect from \"../MewAddressSelect/MewAddressSelect.vue\";\nimport {\n formatFiatValue,\n formatFloatingPointValue,\n} from \"@/helpers/numberFormatHelper\";\nimport { Networks } from \"./network/networks\";\nimport { Crypto, Data, Network, Fiat } from \"./network/types\";\nimport Web3 from \"web3\";\nimport { init, calculateFiatFee } from \"./models/purchaseSimplexFeeModel\";\nimport { fromBase, toBase } from \"@/helpers/units\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BuyForm',\n props: {\n cryptoSelected: {\n type: Object,\n default: () => ({}),\n },\n networkSelected: {\n type: Object as PropType,\n default: () => ({}),\n },\n fiatSelected: {\n type: Object as PropType,\n default: () => ({}),\n },\n fiatAmount: {\n type: String,\n default: \"0\",\n },\n},\n emits: [\n \"success\",\n \"selectedCurrency\",\n \"selectedFiat\",\n \"toAddress\",\n \"setQuotes\",\n \"selectedNetwork\",\n \"selectCurrency\",\n],\n setup(__props, { emit }) {\n\nconst props = __props\n\nconst defaultFiatValue = \"0\";\nlet gasPrice = \"0\";\nconst polkadot_chains = [\"DOT\", \"KSM\"];\nconst bitcoin_chains = [\"BTC\", \"BCH\", \"DOGE\", \"LTC\"];\nconst other_chains = [\"KDA\"];\n// eslint-disable-next-line no-undef\nlet priceTimer: NodeJS.Timer;\nlet fiatFilter = \"\";\n\nonMounted(async () => {\n form.address = \"\";\n\n // Get crypto Data\n await getPrices();\n if (!isEmpty(props.fiatSelected)) {\n form.cryptoSelected = props.cryptoSelected.name;\n form.fiatSelected = props.fiatSelected.name;\n form.fiatAmount = props.fiatAmount;\n fiatToCrypto();\n } else {\n // Load URL parameter value and verify crypto address\n loadUrlParameters();\n if (form.fiatAmount === \"0\") {\n cryptoToFiat();\n }\n }\n await fetchGasPrice();\n priceTimer = setInterval(getPrices, 1000 * 60 * 2);\n});\n\nonUnmounted(async () => {\n clearInterval(priceTimer);\n});\n\n// emits\n\n\n// props\n\n\n// data\n\n// non-reactive\nconst fiatItems: string[] = supportedFiat;\nconst filteredFiatItems: Ref = ref(fiatItems);\nconst updateFiatFilter = (value: string) => {\n fiatFilter = value;\n filteredFiatItems.value = fiatItems.filter((item) =>\n item.toLowerCase().includes(fiatFilter.toLowerCase())\n );\n};\n\nlet simplexData: { [key: string]: Data } = {\n ETH: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n MATIC: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n BNB: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n DOT: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n KSM: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n};\nlet moonpayData: { [key: string]: Data } = {\n ETH: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n MATIC: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n BNB: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n DOT: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n KSM: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n};\n// reactive\nconst form = reactive({\n fiatAmount: defaultFiatValue,\n fiatSelected: \"USD\",\n cryptoAmount: \"1\",\n cryptoSelected: \"ETH\",\n address: \"\",\n validAddress: false,\n addressErrorMsg: \"\",\n reCaptchaToken: \"\",\n addressError: false,\n});\nconst loading = reactive({\n data: false,\n showAlert: false,\n processingBuyForm: false,\n alertMessage: \"\",\n});\nconst dropdown = reactive({\n fiat: false,\n crypto: false,\n});\n\n// watchers\nwatch(\n () => form.cryptoSelected,\n () => {\n verifyAddress();\n fiatToCrypto();\n minMaxError();\n }\n);\n\nwatch(\n () => form.fiatSelected,\n () => {\n verifyAddress();\n cryptoToFiat();\n minMaxError();\n }\n);\n\nwatch(\n () => form.fiatAmount,\n () => {\n if (!loading.data) {\n minMaxError();\n }\n }\n);\nwatch(\n () => form.cryptoAmount,\n () => {\n if (!loading.data) {\n minMaxError();\n }\n }\n);\n\n// computed\nconst web3 = computed(() => {\n const supportedNodes: { [key: string]: string } = {\n ETH: \"ETH\",\n BSC: \"BSC\",\n MATIC: \"MATIC\",\n };\n const nodeType = supportedNodes[props.cryptoSelected.network];\n const node = Networks.find((network) => {\n return network.name === nodeType;\n });\n return new Web3(node ? node.url : \"\");\n});\n\n/**\n * Moonpay Fee calculations\n */\nconst includesFeeText = computed(() => {\n return `Includes ${percentFee.value} fee (${\n formatFiatValue(fromBase(minFee.value.toString(), 2), currencyConfig.value)\n .value\n } min)`;\n});\nconst networkFeeText = computed(() => {\n return `${form.cryptoSelected} network fee (for transfers to your wallet) ~${\n formatFiatValue(networkFeeToFiat.value.toString(), currencyConfig.value)\n .value\n }`;\n});\nconst dailyLimit = (isMoonpay = false) => {\n const simplexMax = isValidData(simplexData)\n ? simplexData[form.cryptoSelected].limits[form.fiatSelected].max\n : 0;\n const moonpayMax = isValidData(moonpayData)\n ? moonpayData[form.cryptoSelected].limits[form.fiatSelected].max\n : 0;\n const value = isMoonpay ? moonpayMax : simplexMax;\n return `Daily limit: ${\n formatFiatValue(value.toString(), currencyConfig.value).value\n }`;\n};\nconst monthlyLimit = () => {\n const value = BigNumber(fiatMultiplier.value).times(50000);\n return `Monthly limit: ${\n formatFiatValue(value.toString(), currencyConfig.value).value\n }`;\n};\nconst currencyConfig = computed(() => {\n const fiat = form.fiatSelected;\n const rate =\n moonpayData[form.cryptoSelected]?.conversion_rates[fiat] ||\n simplexData[form.cryptoSelected]?.conversion_rates[fiat];\n const currency = fiat;\n return { locale: \"en-US\", rate, currency };\n});\nconst fiatMultiplier = computed(() => {\n if (hasData()) {\n const selectedCurrencyPrice =\n moonpayData[form.cryptoSelected]?.conversion_rates[form.fiatSelected];\n return selectedCurrencyPrice\n ? BigNumber(selectedCurrencyPrice).toString()\n : toBN(1).toString();\n }\n return toBN(1).toString();\n});\nconst networkFee = computed(() => {\n return fromWei(networkFeeWei.value);\n});\nconst networkFeeWei = computed(() => {\n return toBN(gasPrice).muln(21000).toString();\n});\nconst priceOb = computed(() => {\n return isValidData(moonpayData)\n ? moonpayData[form.cryptoSelected].prices[form.fiatSelected]\n : simplexData[form.cryptoSelected].prices[form.fiatSelected];\n});\nconst networkPrice = computed(() => {\n return isValidData(moonpayData)\n ? moonpayData[props.networkSelected.currencyName].prices[form.fiatSelected]\n : simplexData[props.networkSelected.currencyName].prices[form.fiatSelected];\n});\nconst networkFeeToFiat = computed(() => {\n return fromWei(\n toBN(networkFeeWei.value).muln(parseFloat(networkPrice.value))\n );\n});\nconst minFee = computed(() => {\n return toBN(399); // Minimum 3.99 in respective currency\n});\nconst plusFee = computed(() => {\n const fiatAmount = toBN(toBase(parseFloat(form.fiatAmount), 2));\n const fee = isEUR.value\n ? fiatAmount.muln(0.007) // 0.7% SEPA fee\n : fiatAmount.muln(0.0325); // Standard 3.25% fee\n const withFee = fee.gt(minFee.value)\n ? fiatAmount.sub(fee)\n : fiatAmount.sub(fee).sub(minFee.value);\n return fromBase(\n withFee.subn(parseFloat(networkFeeToFiat.value)).toString(),\n 2\n );\n});\nconst plusFeeF = computed(() => {\n const isAvailable = isValidData(moonpayData);\n if (!isAvailable)\n return `${form.cryptoSelected} is not available for this provider`;\n const moonpayLimit =\n moonpayData[form.cryptoSelected]?.limits[form.fiatSelected];\n return moonpayLimit.max > Number.parseFloat(form.fiatAmount)\n ? formatFiatValue(plusFee.value, currencyConfig.value).value\n : `Value exceeds max: ${\n formatFiatValue(moonpayLimit.max.toString(), currencyConfig.value).value\n }`;\n});\nconst percentFee = computed(() => {\n return isEUR.value ? \"0.7%\" : \"3.25%\";\n});\nconst isEUR = computed(() => {\n return form.fiatSelected === \"EUR\" || form.fiatSelected === \"GBP\";\n});\n\nconst moonpayCryptoAmount = computed(() => {\n const moonpayAvailable = isValidData(moonpayData);\n return moonpayAvailable\n ? formatFloatingPointValue(\n BigNumber(plusFee.value).div(priceOb.value).toString()\n ).value\n : 0;\n});\n\n/**\n * Simplex Fee calculations\n */\nconst simplexAvailable = computed(() => isValidData(simplexData));\nconst fiatCurrency = computed(() => {\n return { decimals: form.fiatSelected === \"JPY\" ? 0 : 2 };\n});\nconst simplexPrice = computed(() => {\n return new BigNumber(\n simplexAvailable.value\n ? simplexData[form.cryptoSelected].prices[form.fiatSelected]\n : 0\n );\n});\nconst simplexFiatAmount = computed(() => {\n return simplexAvailable.value ? form.fiatAmount : \"0.00\";\n});\nconst simplexFiatFee = computed(() => {\n const { fiatSelected, cryptoSelected } = form;\n return simplexAvailable.value\n ? calculateFiatFee(\n Number.parseFloat(simplexFiatAmount.value),\n {\n price: simplexPrice.value.toNumber(),\n fiatCurrency: fiatCurrency.value,\n },\n {\n rate: simplexData[cryptoSelected].conversion_rates[fiatSelected],\n baseRate: simplexData[cryptoSelected].conversion_rates[\"USD\"],\n fiatCurrency: fiatCurrency.value,\n }\n )\n : 0;\n});\nconst simplexPlusFee = computed(() => {\n return BigNumber(simplexFiatAmount.value)\n .minus(simplexFiatFee.value)\n .toFixed(fiatCurrency.value.decimals);\n});\nconst simplexPlusFeeF = computed(() =>\n simplexAvailable.value\n ? formatFiatValue(simplexPlusFee.value, currencyConfig.value).value\n : `${form.cryptoSelected} is not available for this provider`\n);\nconst simplexIncludesFeeText = computed(() => {\n return `Includes 5.25% fee (${\n formatFiatValue(BigNumber(10.0).toString(), currencyConfig.value).value\n } min)`;\n});\nconst simplexCryptoAmount = computed(() => {\n const amount = BigNumber(simplexPlusFee.value || \"0\");\n return simplexAvailable.value\n ? formatFloatingPointValue(amount.dividedBy(simplexPrice.value).toString())\n .value\n : 0;\n});\n\n// Icons for selected token\nconst fiatIcon = computed(() => {\n return require(`@/assets/images/fiat/${form.fiatSelected}.svg`);\n});\nconst cryptoIcon = computed(() => {\n return require(`@/assets/images/crypto/${form.cryptoSelected}.svg`);\n});\n\n// methods\nconst getIcon = (currency: string, isFiat = true) => {\n return require(`@/assets/images/${\n isFiat ? \"fiat\" : \"crypto\"\n }/${currency}.svg`);\n};\n\nconst selectCurrency = (currency: string) => {\n form.fiatSelected = currency;\n dropdown.fiat = false;\n emit(\"selectedFiat\", form.fiatSelected);\n};\n\nconst isValidForm = computed(() => {\n return (\n minMax.value &&\n form.fiatSelected &&\n form.cryptoSelected &&\n form.address &&\n !form.addressError &&\n form.addressErrorMsg === \"\" &&\n loading.alertMessage === \"\" &&\n form.validAddress\n );\n});\n\nconst rules = [\n (e: any) => {\n if (isString(e) && e?.length >= 1) return true;\n if (!isNumber(e)) return \"Must be a valid number\";\n return true;\n },\n];\nconst isValidData = (data: { [key: string]: Data }) => {\n const { cryptoSelected, fiatSelected } = form;\n return !isEmpty(data[cryptoSelected]?.limits[fiatSelected]);\n};\nconst hasData = () => {\n return isValidData(simplexData) || isValidData(moonpayData);\n};\nconst min = computed(() => {\n const { cryptoSelected, fiatSelected } = form;\n if (!hasData()) return 0;\n const simplexLimit = simplexData[cryptoSelected]?.limits[fiatSelected];\n const moonpayLimit = moonpayData[cryptoSelected]?.limits[fiatSelected];\n if (!isValidData(moonpayData)) return simplexLimit.min;\n if (!isValidData(simplexData)) return moonpayLimit.min;\n return moonpayLimit.min < simplexLimit.min\n ? moonpayLimit.min\n : simplexLimit.min;\n});\nconst max = computed(() => {\n const { cryptoSelected, fiatSelected } = form;\n if (!hasData()) return 0;\n const simplexLimit = simplexData[cryptoSelected]?.limits[fiatSelected];\n const moonpayLimit = moonpayData[cryptoSelected]?.limits[fiatSelected];\n if (!isValidData(moonpayData)) return simplexLimit.max;\n if (!isValidData(simplexData)) return moonpayLimit.max;\n return moonpayLimit.max > simplexLimit.max\n ? moonpayLimit.max\n : simplexLimit.max;\n});\nconst minMax = computed(() => {\n const { fiatAmount } = form;\n if (!hasData()) return false;\n const limit = { min: min.value, max: max.value };\n const amount = new BigNumber(fiatAmount || 0);\n const valid =\n amount.gte(new BigNumber(limit.min)) &&\n amount.lte(new BigNumber(limit.max));\n return valid;\n});\n\nconst minMaxError = () => {\n const limit = { min: min.value, max: max.value };\n if (!minMax.value) {\n loading.showAlert = true;\n loading.alertMessage = `Fiat price must be between ${\n currencySymbols[form.fiatSelected]\n }${limit.min} and ${currencySymbols[form.fiatSelected]}${limit.max}`;\n return;\n }\n loading.showAlert = false;\n loading.alertMessage = \"\";\n};\nconst getPrices = async () => {\n try {\n loading.data = true;\n const data: any[] = (await getCryptoPrices()) || [];\n data.forEach((arr: any) => {\n arr.forEach((d: any) => {\n const tmp: Data = { conversion_rates: {}, limits: {}, prices: {} };\n\n d.conversion_rates.forEach(\n (r: any) => (tmp.conversion_rates[r.fiat_currency] = r.exchange_rate)\n );\n d.limits.forEach((l: any) => {\n if (l.type === \"WEB\") tmp.limits[l.fiat_currency] = l.limit;\n });\n d.prices.forEach((p: any) => (tmp.prices[p.fiat_currency] = p.price));\n const tokenName = d.crypto_currencies[0];\n const mainCoin = Networks.find(\n (item) => item.currencyName === tokenName\n );\n // Hard code names/decimals for now\n const tokensInfo: { [key: string]: any } = {\n USDT: { name: \"Tether\", decimals: 6 },\n USDC: { name: \"USD Coin\", decimals: 6 },\n DAI: { name: \"Dai Stablecoin\", decimals: 18 },\n };\n // If token name isnt a native network coin\n // assume the token is ERC-20(ETH)\n if (!mainCoin) {\n const foundToken = Networks[0].tokens.find(\n (item) => item.name === tokenName\n );\n if (!foundToken) {\n const tokenInfo = tokensInfo[tokenName];\n Networks[0].tokens.push(\n new Crypto(\n tokenName,\n tokenInfo.name,\n \"ETH\",\n tokenInfo.decimals,\n getIcon(tokenName, false)\n )\n );\n }\n }\n if (d.name === \"SIMPLEX\") simplexData[tokenName] = tmp;\n else if (d.name === \"MOONPAY\") moonpayData[tokenName] = tmp;\n });\n });\n loading.data = false;\n emit(\"setQuotes\", simplexData, moonpayData);\n } catch (e: any) {\n errorHandler(e);\n }\n};\n\nconst openTokenSelect = () => {\n emit(\n \"selectedCurrency\",\n {\n name: form.fiatSelected,\n value: form.fiatSelected,\n // eslint-disable-next-line\n img: require(`@/assets/images/fiat/${form.fiatSelected}.svg`),\n },\n form.fiatAmount\n );\n};\n\nconst kdaValidator = (address: string) => {\n const kPrefixed = address.substr(0, 2) === \"k:\";\n const checkHex = isHex(address.substring(2));\n return kPrefixed && checkHex;\n};\n\nconst addressValid = computed(() => {\n return other_chains.includes(form.cryptoSelected)\n ? form.cryptoSelected === \"KDA\"\n ? kdaValidator(form.address)\n : WAValidator.validate(form.address, form.cryptoSelected)\n : !polkadot_chains.includes(form.cryptoSelected)\n ? bitcoin_chains.includes(form.cryptoSelected)\n ? WAValidator.validate(form.address, form.cryptoSelected)\n : WAValidator.validate(form.address, form.cryptoSelected) &&\n validAddress(form.address)\n : isValidAddressPolkadotAddress(\n form.address,\n form.cryptoSelected === \"DOT\" ? 0 : 2\n );\n});\n\n// Best price for display\nconst bestPrice = computed(() => {\n const { fiatSelected, cryptoSelected } = form;\n const simplexPrice = new BigNumber(\n simplexData[cryptoSelected]?.prices[fiatSelected]\n );\n const moonpayPrice = new BigNumber(\n moonpayData[cryptoSelected]?.prices[fiatSelected]\n );\n if (moonpayPrice.isNaN()) return simplexPrice;\n if (simplexPrice.isNaN()) return moonpayPrice;\n return simplexPrice.lte(moonpayPrice) ? simplexPrice : moonpayPrice;\n});\n\nconst fiatToCrypto = () => {\n const price = bestPrice.value;\n const amount = new BigNumber(form.fiatAmount || \"0\");\n form.cryptoAmount = BigNumber(amount).div(price).toString();\n};\n\nconst cryptoToFiat = () => {\n const price = bestPrice.value;\n const amount = new BigNumber(form.cryptoAmount || \"0\");\n form.fiatAmount = amount.times(price).toFixed(2).toString();\n};\n\nconst loadUrlParameters = () => {\n const queryString = window.location.search;\n if (queryString) {\n const urlParams = new URLSearchParams(queryString);\n const queryCryptoAmount = urlParams.get(\"crypto_amount\");\n const queryFiat = urlParams.get(\"fiat\");\n const queryCrypto = urlParams.get(\"crypto\");\n const queryTo = urlParams.get(\"to\");\n\n // validate queries\n const isSupportedCrypto = supportedCrypto.find((cItem) => {\n if (cItem.toLowerCase() === queryCrypto?.toLowerCase()) {\n return queryCrypto;\n }\n });\n\n const isSupportedFiat = supportedCrypto.find((cItem) => {\n if (cItem.toLowerCase() === queryCrypto?.toLowerCase()) {\n return queryCrypto;\n }\n });\n\n const fiat = queryFiat && isSupportedFiat ? queryFiat.toUpperCase() : \"USD\";\n const crypto =\n queryCrypto && isSupportedCrypto ? queryCrypto.toUpperCase() : \"ETH\";\n form.fiatSelected = fiat;\n\n let tokensList;\n if (crypto !== props.networkSelected.name) {\n const network = Networks.find((network) => {\n return network.name === crypto;\n });\n if (!network) return;\n // generate token list\n let decimals = 18;\n\n if (network.name === \"DOT\") decimals = 10;\n else if (network.name === \"KSM\") decimals = 12;\n const mainCoin = new Crypto(\n network.currencyName,\n network.name_long,\n network.name,\n decimals,\n network.icon\n );\n tokensList = [mainCoin];\n if (form.fiatSelected === \"CAD\") return tokensList;\n if (network.tokens) tokensList = tokensList.concat(network.tokens);\n emit(\"selectedNetwork\", network);\n }\n const foundToken = tokensList\n ? tokensList.find((item) => {\n return item.symbol === crypto;\n })\n : undefined;\n if (foundToken) emit(\"selectCurrency\", foundToken);\n form.cryptoSelected = foundToken ? foundToken.symbol : crypto;\n form.address = queryTo ? queryTo : \"\";\n if (queryTo) {\n verifyAddress();\n }\n const queryCryptoAmountHolder = BigNumber(\n queryCryptoAmount ? queryCryptoAmount : \"1\"\n );\n const cryptoToFiat = BigNumber(\n queryCryptoAmountHolder.times(priceOb.value)\n ).lt(min.value)\n ? BigNumber(min.value).div(priceOb.value).times(2).toString()\n : queryCryptoAmount;\n form.cryptoAmount = cryptoToFiat;\n }\n};\n\nconst errorHandler = (e: any): void => {\n const value = toBN(form.fiatAmount).gt(toBN(0));\n if (value) {\n const isErrorObj = isObject(e.response.data.error);\n if (isErrorObj) {\n // eslint-disable-next-line\n const hasErr = e.response.data.error.hasOwnProperty(\"errors\");\n if (hasErr) {\n loading.alertMessage = e.response.data.error.errors[0].message;\n }\n } else {\n loading.alertMessage = e.response.data.error;\n }\n }\n};\n\nconst validAddress = (address: string) => {\n return address && isHexStrict(address) && isAddress(address);\n};\n\nconst isValidAddressPolkadotAddress = (\n address: string,\n cryptoPrefix: number\n) => {\n try {\n const encodedAddress = encodeAddress(address, cryptoPrefix);\n return address === encodedAddress;\n } catch (error) {\n return false;\n }\n};\n\nconst addressInput = (value: string): void => {\n form.address = value;\n verifyAddress();\n};\n\nconst verifyAddress = (): void => {\n const valid = addressValid.value;\n if (valid) {\n form.addressErrorMsg = \"\";\n form.addressError = false;\n form.validAddress = true;\n } else {\n if (!form.address) {\n form.addressErrorMsg = \"\";\n form.validAddress = false;\n } else {\n form.addressErrorMsg = `Please provide a valid ${form.cryptoSelected} address`;\n form.validAddress = false;\n }\n }\n};\n\nconst submitForm = (): void => {\n const { fiatSelected, cryptoSelected, address, fiatAmount } = form;\n const moonpayAvailable = isValidData(moonpayData);\n const moonpayOverMax = moonpayAvailable\n ? moonpayData[cryptoSelected].limits[fiatSelected].max <\n Number.parseFloat(fiatAmount)\n : true;\n\n const moonpayFiatAmount = moonpayAvailable ? fiatAmount : \"0.00\";\n emit(\"success\", {\n simplex_quote: {\n cryptoToFiat: simplexCryptoAmount.value,\n selectedCryptoName: cryptoSelected,\n plusFeeF: simplexPlusFeeF.value,\n includesFeeText: simplexIncludesFeeText,\n networkFeeText: networkFeeText,\n dailyLimit: dailyLimit(),\n monthlyLimit: monthlyLimit(),\n fiatAmount: simplexFiatAmount.value,\n },\n address: address,\n buy_obj: {\n cryptoToFiat: moonpayCryptoAmount,\n selectedCryptoName: cryptoSelected,\n plusFeeF: plusFeeF,\n includesFeeText: includesFeeText,\n networkFeeText: networkFeeText,\n dailyLimit: dailyLimit(true),\n monthlyLimit: monthlyLimit(),\n fiatAmount: moonpayFiatAmount,\n },\n open_providers: 2,\n selected_currency: props.cryptoSelected,\n selected_fiat: {\n name: fiatSelected,\n value: fiatSelected,\n // eslint-disable-next-line\n img: require(`@/assets/images/fiat/${fiatSelected}.svg`),\n },\n fiat_amount: fiatAmount,\n disable_moonpay: !moonpayAvailable || moonpayOverMax,\n });\n};\n\nconst fetchGasPrice = async (): Promise => {\n if (\n polkadot_chains.includes(form.cryptoSelected) ||\n bitcoin_chains.includes(form.cryptoSelected) ||\n other_chains.includes(form.cryptoSelected)\n ) {\n gasPrice = \"0\";\n return;\n }\n gasPrice = await web3.value.eth.getGasPrice();\n const price = isValidData(simplexData)\n ? simplexData[form.cryptoSelected].prices[form.fiatSelected]\n : moonpayData[form.cryptoSelected].prices[form.fiatSelected];\n init(parseFloat(networkFee.value) * parseFloat(price));\n};\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_progress_circular = _resolveComponent(\"v-progress-circular\")!\n const _component_v_text_field = _resolveComponent(\"v-text-field\")!\n const _component_v_select = _resolveComponent(\"v-select\")!\n const _component_v_icon = _resolveComponent(\"v-icon\")!\n const _component_v_btn = _resolveComponent(\"v-btn\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n (loading.data)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _hoisted_6,\n _createVNode(_component_v_progress_circular, {\n size: 11,\n width: 2,\n indeterminate: \"\"\n })\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_v_text_field, {\n class: \"no-right-border\",\n onInput: fiatToCrypto,\n type: \"number\",\n modelValue: form.fiatAmount,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((form.fiatAmount) = $event)),\n modelModifiers: { number: true },\n required: \"\",\n variant: \"outlined\",\n \"error-messages\": loading.alertMessage,\n disabled: loading.data,\n rules: rules\n }, null, 8, [\"modelValue\", \"error-messages\", \"disabled\"]),\n _createVNode(_component_v_select, {\n style: {\"max-width\":\"120px\"},\n class: \"rounded-right no-left-border buy-input\",\n modelValue: form.fiatSelected,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((form.fiatSelected) = $event)),\n items: filteredFiatItems.value,\n disabled: loading.data,\n \"menu-props\": { closeOnContentClick: true },\n \"base-color\": \"primary\",\n \"return-object\": \"\",\n variant: \"outlined\"\n }, {\n \"prepend-inner\": _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"currency-icon mr-1\",\n src: _unref(fiatIcon),\n alt: form.fiatSelected,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_8)\n ]),\n \"prepend-item\": _withCtx(() => [\n _createVNode(_component_v_text_field, {\n modelValue: _unref(fiatFilter),\n \"onUpdate:modelValue\": [\n _cache[1] || (_cache[1] = ($event: any) => (_isRef(fiatFilter) ? (fiatFilter).value = $event : fiatFilter = $event)),\n updateFiatFilter\n ],\n variant: \"outlined\",\n class: \"px-2\",\n \"prepend-inner-icon\": \"mdi-magnify\",\n autofocus: true,\n density: \"compact\",\n placeholder: \"Search\"\n }, null, 8, [\"modelValue\"])\n ]),\n item: _withCtx((data) => [\n _createElementVNode(\"div\", {\n class: \"d-flex align-center justify-space-between full-width cursor-pointer\",\n onClick: ($event: any) => (selectCurrency(data.item.value))\n }, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"img\", {\n class: \"currency-icon mr-1 ml-3\",\n src: getIcon(data.item.value),\n alt: data.item.value,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_11),\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(data.item.value), 1)\n ])\n ], 8, _hoisted_9)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"items\", \"disabled\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _hoisted_14,\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(_component_v_text_field, {\n class: \"no-right-border\",\n onInput: cryptoToFiat,\n type: \"number\",\n modelValue: form.cryptoAmount,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((form.cryptoAmount) = $event)),\n modelModifiers: { number: true },\n required: \"\",\n variant: \"outlined\",\n rounded: \"left\",\n rules: rules,\n disabled: loading.data\n }, null, 8, [\"modelValue\", \"disabled\"]),\n _createVNode(_component_v_btn, {\n modelValue: form.cryptoSelected,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((form.cryptoSelected) = $event)),\n rounded: \"right\",\n variant: \"outlined\",\n class: \"no-left-border custom-btn\",\n \"append-icon\": \"mdi-menu-down\",\n disabled: loading.data,\n onClick: openTokenSelect\n }, {\n prepend: _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"currency-icon mr-1 padding--2\",\n src: _unref(cryptoIcon),\n alt: form.cryptoSelected,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_16)\n ]),\n append: _withCtx(() => [\n _createVNode(_component_v_icon, {\n color: \"grey-2\",\n size: \"large\"\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(form.cryptoSelected), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"disabled\"])\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _hoisted_17,\n _createVNode(MewAddressSelect, {\n ref: \"addressSelect\",\n modelValue: form.address,\n \"error-messages\": form.addressErrorMsg,\n autofocus: false,\n label: \"\",\n \"is-valid-address\": form.validAddress,\n placeholder: \"Enter Crypto Address\",\n onKeyup: verifyAddress,\n onChanged: addressInput\n }, null, 8, [\"modelValue\", \"error-messages\", \"is-valid-address\"])\n ]),\n (!loading.processingBuyForm)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_v_btn, {\n flat: \"\",\n rounded: \"pill\",\n disabled: !_unref(isValidForm),\n \"min-height\": \"60px\",\n width: \"360px\",\n onClick: submitForm,\n class: \"buy-button\"\n }, {\n default: _withCtx(() => [\n _hoisted_19\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n _createVNode(_component_v_progress_circular, {\n size: 70,\n width: 7,\n indeterminate: \"\",\n color: \"#05c0a5\"\n }),\n _hoisted_21\n ]))\n ], 512))\n}\n}\n\n})","import script from \"./BuyForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./BuyForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./BuyForm.vue?vue&type=style&index=0&id=37fcf657&lang=scss&scoped=true\"\nimport \"./BuyForm.vue?vue&type=style&index=1&id=37fcf657&lang=scss\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37fcf657\"]])\n\nexport default __exports__","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, mergeProps as _mergeProps, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6d7572c2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"d-flex align-center textDark--text mb-10\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-2\" }, \"Select provider\", -1))\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"section-block pa-5 mb-6\" }\nconst _hoisted_5 = [\"src\"]\nconst _hoisted_6 = {\n key: 0,\n class: \"mb-3\"\n}\nconst _hoisted_7 = { class: \"d-flex mb-1 align-center justify-space-between\" }\nconst _hoisted_8 = { class: \"d-flex align-center\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"mr-1 textDark--text\"\n}\nconst _hoisted_10 = {\n key: 1,\n class: \"mr-1 text-red\"\n}\nconst _hoisted_11 = { class: \"elevated-box pa-3\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_17 = { class: \"d-flex align-center mb-1\" }\nconst _hoisted_18 = [\"src\"]\nconst _hoisted_19 = [\"src\"]\nconst _hoisted_20 = [\"src\"]\nconst _hoisted_21 = [\"src\"]\nconst _hoisted_22 = { class: \"mew-label mb-5\" }\nconst _hoisted_23 = { class: \"section-block pa-5\" }\nconst _hoisted_24 = {\n key: 0,\n class: \"mb-3\"\n}\nconst _hoisted_25 = { class: \"d-flex mb-1 align-center justify-space-between\" }\nconst _hoisted_26 = { class: \"d-flex mew-heading-3\" }\nconst _hoisted_27 = { class: \"mew-heading-3 pl-1\" }\nconst _hoisted_28 = { class: \"d-flex align-center\" }\nconst _hoisted_29 = { class: \"mr-1\" }\nconst _hoisted_30 = { class: \"elevated-box pa-3\" }\nconst _hoisted_31 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_32 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_33 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_34 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_35 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_36 = {\n key: 1,\n class: \"mb-3\"\n}\nconst _hoisted_37 = { class: \"d-flex align-center justify-space-between\" }\nconst _hoisted_38 = { class: \"d-flex align-start mb-1\" }\nconst _hoisted_39 = [\"src\"]\nconst _hoisted_40 = [\"src\"]\nconst _hoisted_41 = [\"src\"]\nconst _hoisted_42 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-label mb-5\" }, \"Visa, Mastercard\", -1))\nconst _hoisted_43 = {\n key: 1,\n class: \"text-center py-5\"\n}\nconst _hoisted_44 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"text-center font-weight-bold mt-3\",\n style: {\"line-height\":\"1.4rem\"}\n}, \" Processing purchase.... \", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_v_icon = _resolveComponent(\"v-icon\")!\n const _component_v_tooltip = _resolveComponent(\"v-tooltip\")!\n const _component_v_btn = _resolveComponent(\"v-btn\")!\n const _component_v_progress_circular = _resolveComponent(\"v-progress-circular\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_v_icon, {\n color: \"textDark\",\n class: \"cursor-pointer\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('close')))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" mdi-arrow-left mr-4 \")\n ]),\n _: 1\n }),\n _hoisted_2\n ]),\n (!_ctx.processingBuy)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"img\", {\n class: \"provider-logo\",\n src: _ctx.moonpayLogo,\n alt: \"Moonpay\",\n height: \"28\"\n }, null, 8, _hoisted_5),\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"d-flex mew-heading-3\", _ctx.hideMoonpay ? 'text-red' : ''])\n }, [\n _createTextVNode(_toDisplayString(_ctx.buyObj.cryptoToFiat) + \" \", 1),\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"mew-heading-3 pl-1\", _ctx.hideMoonpay ? 'text-red' : ''])\n }, _toDisplayString(_ctx.selectedCryptoName), 3)\n ], 2)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (!_ctx.hideMoonpay)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, \" ≈ \" + _toDisplayString(_ctx.buyObj.plusFeeF), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, _toDisplayString(_ctx.buyObj.plusFeeF), 1)),\n (!_ctx.hideMoonpay)\n ? (_openBlock(), _createBlock(_component_v_tooltip, {\n key: 2,\n location: \"bottom\"\n }, {\n activator: _withCtx(({ props }) => [\n _createVNode(_component_v_icon, _mergeProps(props, {\n color: \"grey-lighten-1\",\n size: \"x-small\",\n class: \"cursor-pointer\"\n }), {\n default: _withCtx(() => [\n _createTextVNode(\" mdi-information \")\n ]),\n _: 2\n }, 1040)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.buyObj.includesFeeText) + \" \", 1),\n _hoisted_12,\n _hoisted_13,\n _createTextVNode(\" \" + _toDisplayString(_ctx.buyObj.networkFeeText) + \" \", 1),\n _hoisted_14,\n _hoisted_15,\n _createTextVNode(\" \" + _toDisplayString(_ctx.buyObj.dailyLimit) + \" \", 1),\n _hoisted_16,\n _createTextVNode(\" \" + _toDisplayString(_ctx.buyObj.monthlyLimit), 1)\n ])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"img\", {\n src: _ctx.visaIcon,\n alt: \"Visa\",\n height: \"24\",\n class: \"mr-2\"\n }, null, 8, _hoisted_18),\n _createElementVNode(\"img\", {\n src: _ctx.masterIcon,\n alt: \"Master\",\n height: \"24\",\n class: \"mr-2\"\n }, null, 8, _hoisted_19),\n _createElementVNode(\"img\", {\n src: _ctx.applePayIcon,\n alt: \"ApplePay\",\n height: \"24\",\n class: \"mr-2\"\n }, null, 8, _hoisted_20),\n (_ctx.isEUR)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _ctx.bankIcon,\n alt: \"Bank\",\n height: \"24\"\n }, null, 8, _hoisted_21))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_22, _toDisplayString(_ctx.paymentOptionString), 1),\n _createElementVNode(\"div\", null, [\n _createVNode(_component_v_btn, {\n size: \"large\",\n class: \"grey-light greyPrimary--text\",\n width: \"100%\",\n variant: \"flat\",\n disabled: _ctx.hideMoonpay || _ctx.loading,\n onClick: _ctx.buy\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.moonpayBtnTitle), 1)\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_23, [\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"div\", _hoisted_26, [\n _createTextVNode(_toDisplayString(_ctx.simplexQuote.cryptoToFiat) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_27, _toDisplayString(_ctx.selectedCryptoName), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_28, [\n _createElementVNode(\"div\", _hoisted_29, \"≈ \" + _toDisplayString(_ctx.simplexQuote.plusFeeF), 1),\n _createVNode(_component_v_tooltip, { location: \"bottom\" }, {\n activator: _withCtx(({ props }) => [\n _createVNode(_component_v_icon, _mergeProps(props, {\n color: \"grey-lighten-1\",\n size: \"x-small\",\n class: \"cursor-pointer\"\n }), {\n default: _withCtx(() => [\n _createTextVNode(\" mdi-information \")\n ]),\n _: 2\n }, 1040)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_30, [\n _createTextVNode(_toDisplayString(_ctx.simplexQuote.includesFeeText) + \" \", 1),\n _hoisted_31,\n _hoisted_32,\n _createTextVNode(\" \" + _toDisplayString(_ctx.simplexQuote.networkFeeText) + \" \", 1),\n _hoisted_33,\n _hoisted_34,\n _createTextVNode(\" \" + _toDisplayString(_ctx.simplexQuote.dailyLimit) + \" \", 1),\n _hoisted_35,\n _createTextVNode(\" \" + _toDisplayString(_ctx.simplexQuote.monthlyLimit), 1)\n ])\n ]),\n _: 1\n })\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_36)),\n _createElementVNode(\"div\", _hoisted_37, [\n _createElementVNode(\"div\", _hoisted_38, [\n _createElementVNode(\"img\", {\n src: _ctx.visaIcon,\n alt: \"Visa\",\n height: \"24\",\n class: \"mr-2\"\n }, null, 8, _hoisted_39),\n _createElementVNode(\"img\", {\n src: _ctx.masterIcon,\n alt: \"Master\",\n height: \"24\",\n class: \"mr-2\"\n }, null, 8, _hoisted_40)\n ]),\n _createElementVNode(\"img\", {\n class: \"provider-logo\",\n src: _ctx.simplexLogo,\n alt: \"Simplex\",\n height: \"28\"\n }, null, 8, _hoisted_41)\n ]),\n _hoisted_42,\n _createElementVNode(\"div\", null, [\n _createVNode(_component_v_btn, {\n disabled: _ctx.loading,\n size: \"large\",\n class: \"grey-light greyPrimary--text\",\n width: \"100%\",\n variant: \"flat\",\n onClick: _ctx.openSimplex\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.simplexBtnTitle), 1)\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"])\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_43, [\n _createVNode(_component_v_progress_circular, {\n size: 70,\n width: 7,\n indeterminate: \"\",\n color: \"#05c0a5\"\n }),\n _hoisted_44\n ]))\n ]))\n}","import axios from \"axios\";\nimport { getSimplexQuote } from \"./prices\";\nimport { sha3 } from \"web3-utils\";\nconst API = \"https://mainnet.mewwallet.dev\";\nconst apiOrder = \"https://mainnet.mewwallet.dev/purchase/simplex/order\";\n\n// ===================================================================================================\n// Get the quote confirmed by Simplex\n// ===================================================================================================\nasync function confirmSimplexOrder(paymentId: string, address: string) {\n return await axios\n .get(apiOrder, {\n params: {\n paymentId: paymentId,\n address: address,\n },\n })\n .then((response) => {\n return response.data;\n })\n .catch((e) => {\n return e;\n });\n}\n\nasync function submitForm(form: any) {\n const id = `WEB|${sha3(form[\"destination_wallet[address]\"])?.substring(\n 0,\n 42\n )}`;\n const url = `${API}/v2/purchase/simplex/order?id=${id}&fiatCurrency=${form[\"fiat_total_amount[currency]\"]}&requestedCurrency=${form[\"fiat_total_amount[currency]\"]}&requestedAmount=${form[\"fiat_total_amount[amount]\"]}&address=${form[\"destination_wallet[address]\"]}&cryptoCurrency=${form[\"destination_wallet[currency]\"]}`;\n window.location.href = encodeURI(url);\n}\n\n// ===================================================================================================\n// Execute Simplex payment\n// ===================================================================================================\nasync function executeSimplexPayment(\n fiatCurrency: string,\n cryptoCurrency: string,\n requestedCurrency: string,\n requestedAmount: string,\n address: string\n) {\n // =====================================================\n // (1) Get quote for crypto amount\n // =====================================================\n let responseQuote = null;\n try {\n responseQuote = await getSimplexQuote(\n fiatCurrency,\n cryptoCurrency,\n requestedCurrency,\n requestedAmount,\n address\n );\n } catch (e: any) {\n throw new Error(e);\n }\n\n // =====================================================\n // (2) Get the quote confirmed by Simplex\n // =====================================================\n const responseOrder = await confirmSimplexOrder(\n responseQuote.payment_id,\n address\n );\n\n // Submit payment form data and goto Simplex payment page.\n await submitForm(responseOrder.form);\n\n // Manual form submission for development only\n return responseOrder.form;\n}\n\n/*\n ** MoonPay\n */\nasync function executeMoonpayBuy(tokenSymbol: string, fiatCurrency: string, amount: string, address: string) {\n const hash = sha3(address);\n const id = `WEB|${hash?.substring(0, 42)}`;\n const q = window.location.search;\n const platform = q.includes('platform=enkrypt') ? 'enkrypt' : 'web';\n return new Promise(resolve => {\n let link = `${API}/v3/purchase/moonpay/order?address=${address}&id=${id}&cryptoCurrency=${tokenSymbol}&fiatCurrency=${fiatCurrency}&platform=${platform}`;\n if (amount) {\n link += `&requestedAmount=${amount}`;\n }\n const parsedUrl = encodeURI(link);\n // eslint-disable-next-line\n window.location.href = parsedUrl;\n resolve();\n });\n}\n\nasync function executeMoonpaySell(tokenSymbol: string, amount: string, address: string) {\n const hash = sha3(address);\n const id = `WEB|${hash?.substring(0, 42)}`;\n\n const q = window.location.search;\n const platform = q.includes('platform=enkrypt') ? 'enkrypt' : 'web';\n return new Promise(resolve => {\n const parsedUrl = encodeURI(\n `${API}/v3/sell/moonpay/order?address=${address}&id=${id}&cryptoCurrency=${tokenSymbol}&requestedAmount=${amount}&platform=${platform}`\n );\n // eslint-disable-next-line\n window.location.href = parsedUrl;\n resolve();\n });\n}\n\nexport { executeSimplexPayment, executeMoonpaySell, executeMoonpayBuy };\n","\nimport MultiCoinValidator from \"multicoin-address-validator\";\nimport { executeSimplexPayment, executeMoonpayBuy } from \"./order\";\nimport { defineComponent, inject } from \"vue\";\n\nexport default defineComponent({\n name: \"BuyProviders\",\n props: {\n orderHandler: {\n type: Object,\n default: () => ({}),\n },\n close: {\n type: Function,\n default: () => ({}),\n },\n onlySimplex: {\n type: Boolean,\n default: false,\n },\n selectedFiat: {\n type: Object,\n default: () => ({}),\n },\n selectedCurrency: {\n type: Object,\n default: () => ({}),\n },\n buyObj: {\n type: Object,\n default: () => ({}),\n },\n simplexQuote: {\n type: Object,\n default: () => ({}),\n },\n toAddress: {\n type: String,\n default: \"\",\n },\n },\n setup() {\n const amplitude: any = inject(\"$amplitude\");\n return { amplitude };\n },\n data() {\n return {\n loading: false,\n processingBuy: false,\n };\n },\n computed: {\n selectedFiatName() {\n return this.selectedFiat.name;\n },\n actualAddress() {\n return this.toAddress;\n },\n selectedCryptoName() {\n return this.selectedCurrency.symbol;\n },\n isEUR() {\n return this.selectedFiatName === \"EUR\" || this.selectedFiatName === \"GBP\";\n },\n hideMoonpay() {\n return this.onlySimplex;\n },\n simplexBtnTitle() {\n return \"BUY WITH SIMPLEX\";\n },\n moonpayBtnTitle() {\n return \"BUY WITH MOONPAY\";\n },\n paymentOptionString() {\n return `Visa, Mastercard, Apple Pay${this.isEUR ? \", Bank account\" : \"\"}`;\n },\n visaIcon() {\n return require(\"@/assets/images/icon-visa.svg\");\n },\n masterIcon() {\n return require(\"@/assets/images/icon-master.svg\");\n },\n bankIcon() {\n return require(\"@/assets/images/icon-bank.svg\");\n },\n applePayIcon() {\n return require(\"@/assets/images/icon-apple-pay.svg\");\n },\n simplexLogo() {\n return require(\"@/assets/images/icon-simplex.svg\");\n },\n moonpayLogo() {\n return require(\"@/assets/images/icon-moonpay.svg\");\n },\n },\n methods: {\n isValidToAddress(address: string) {\n return MultiCoinValidator.validate(address, this.selectedCurrency.symbol);\n },\n // Simplex buy\n openSimplex() {\n this.processingBuy = true;\n this.amplitude.track(`CCBuySellBuyWithSimplex`);\n executeSimplexPayment(\n this.selectedFiatName,\n this.selectedCryptoName,\n this.selectedFiatName,\n this.simplexQuote.fiatAmount,\n this.actualAddress\n )\n .then(() => {\n this.reset(true);\n this.close();\n this.$emit(\"reset\");\n this.amplitude.track(`CCBuySellBuyWithSimplexSuccess`);\n })\n .catch(() => {\n this.reset();\n this.close();\n this.$emit(\"reset\");\n this.amplitude.track(`CCBuySellBuyWithSimplexFailed`);\n });\n },\n currencyFormatter(value: number) {\n const locale = \"en-US\";\n return new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency: this.selectedFiatName,\n }).format(value);\n },\n reset(isPurchasing = false) {\n this.loading = true;\n this.processingBuy = isPurchasing;\n },\n // Moonpay buy\n buy() {\n this.processingBuy = true;\n this.amplitude.track(`CCBuySellBuyWithMoonpay`);\n executeMoonpayBuy(\n this.selectedCryptoName,\n this.selectedFiatName,\n this.buyObj.fiatAmount,\n this.actualAddress\n )\n .then(() => {\n this.reset(true);\n this.close();\n this.$emit(\"reset\");\n this.amplitude.track(`CCBuySellBuyWithMoonpaySuccess`);\n })\n .catch(() => {\n this.reset();\n this.close();\n this.$emit(\"reset\");\n this.amplitude.track(`CCBuySellBuyWithMoonpayFailed`);\n });\n },\n },\n});\n","import { render } from \"./BuyProviders.vue?vue&type=template&id=6d7572c2&scoped=true&ts=true\"\nimport script from \"./BuyProviders.vue?vue&type=script&lang=ts\"\nexport * from \"./BuyProviders.vue?vue&type=script&lang=ts\"\n\nimport \"./BuyProviders.vue?vue&type=style&index=0&id=6d7572c2&lang=scss&scoped=true\"\nimport \"./BuyProviders.vue?vue&type=style&index=1&id=6d7572c2&lang=scss\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6d7572c2\"]])\n\nexport default __exports__","import { createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b4df45c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"d-flex align-center textDark--text mb-10\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-2\" }, \"Select Token\", -1))\nconst _hoisted_3 = { class: \"d-flex mt-2\" }\nconst _hoisted_4 = [\"src\", \"alt\"]\nconst _hoisted_5 = { class: \"network-selected\" }\nconst _hoisted_6 = { class: \"px-8 pt-6\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 mb-4\" }, \"Select Network\", -1))\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = { class: \"d-flex align-center\" }\nconst _hoisted_10 = [\"src\", \"alt\"]\nconst _hoisted_11 = { class: \"ml-2 my-2 d-flex flex-column\" }\nconst _hoisted_12 = { class: \"d-flex\" }\nconst _hoisted_13 = { class: \"d-flex\" }\nconst _hoisted_14 = [\"src\", \"alt\"]\nconst _hoisted_15 = { class: \"text-capitalize text--bold\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_v_icon = _resolveComponent(\"v-icon\")!\n const _component_v_text_field = _resolveComponent(\"v-text-field\")!\n const _component_v_select = _resolveComponent(\"v-select\")!\n const _component_v_list_item_title = _resolveComponent(\"v-list-item-title\")!\n const _component_v_list_item = _resolveComponent(\"v-list-item\")!\n const _component_v_list = _resolveComponent(\"v-list\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_v_icon, {\n color: \"textDark\",\n class: \"cursor-pointer\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('close')))\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" mdi-arrow-left mr-4 \")\n ]),\n _: 1\n }),\n _hoisted_2\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_v_select, {\n class: \"full-width\",\n modelValue: _ctx.networkSelected,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.networkSelected) = $event)),\n label: \"Network\",\n items: _ctx.filteredNetworkList,\n \"menu-props\": { closeOnContentClick: true },\n \"return-object\": \"\",\n variant: \"outlined\"\n }, {\n selection: _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"network-icon mr-5 pa-1\",\n src: _ctx.networkSelected.icon,\n alt: _ctx.networkSelected.name,\n width: \"28px\",\n height: \"28px\"\n }, null, 8, _hoisted_4),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.networkSelected.name_long), 1)\n ]),\n \"prepend-item\": _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_v_text_field, {\n modelValue: _ctx.networkSearchInput,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.networkSearchInput) = $event)),\n variant: \"outlined\",\n class: \"mr-1\",\n \"prepend-inner-icon\": \"mdi-magnify\",\n placeholder: \"Search\",\n autofocus: true\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n item: _withCtx((data) => [\n _createElementVNode(\"div\", {\n class: \"d-flex align-center justify-space-between full-width cursor-pointer px-8 pb-6\",\n onClick: ($event: any) => (_ctx.selectNetwork(data.item.value))\n }, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"img\", {\n class: \"currency-icon padding--2 mr-1 ml-3\",\n src: data.item.value.icon,\n alt: data.item.value.name,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_10),\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(data.item.value.name_long), 1)\n ])\n ], 8, _hoisted_8)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"items\"])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(_component_v_text_field, {\n modelValue: _ctx.searchInput,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.searchInput) = $event)),\n variant: \"outlined\",\n class: \"mr-1\",\n \"prepend-inner-icon\": \"mdi-magnify\",\n placeholder: \"Search\",\n autofocus: true\n }, null, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_v_list, {\n lines: \"one\",\n class: \"full-width\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.filteredTokenList, (item, i) => {\n return (_openBlock(), _createBlock(_component_v_list_item, {\n key: i,\n value: item,\n \"base-color\": \"primary\",\n onClick: ($event: any) => (_ctx.selectCurrency(item, true))\n }, {\n prepend: _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"currency-icon no-border mr-3\",\n src: item.img,\n alt: item.name,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_14)\n ]),\n append: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.tokenPrice(item.name)), 1)\n ]),\n default: _withCtx(() => [\n _createVNode(_component_v_list_item_title, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(item.name), 1),\n _createElementVNode(\"span\", null, _toDisplayString(` - ${item.subtext}`), 1)\n ])\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1032, [\"value\", \"onClick\"]))\n }), 128))\n ]),\n _: 1\n })\n ])\n ])\n ]))\n}","class Crypto {\n decimals: number;\n img: string;\n name: string;\n subtext: string;\n value: string;\n symbol: string;\n network: string;\n\n constructor(name: string, subtext: string, network: string, decimals: number, img: string) {\n this.decimals = decimals;\n this.img = img;\n this.name = name;\n this.subtext = subtext;\n this.value = name;\n this.symbol = name;\n this.network = network;\n }\n}\ninterface Fiat {\n name: string\n value: string,\n img: string\n}\n// Provider Quote Object\ninterface QuoteData {\n cryptoToFiat: string,\n selectedCryptoName: string,\n plusFeeF: string,\n includesFeeText: string,\n networkFeeText: string,\n dailyLimit: string,\n monthlyLimit: string,\n fiatAmount: string\n}\ninterface SubmitData {\n simplex_quote: QuoteData,\n address: string,\n buy_obj: QuoteData, // Rename when done\n open_providers: number,\n selected_currency: Crypto,\n selected_fiat: Fiat,\n disable_moonpay: boolean\n}\ninterface Network {\n name: string,\n name_long: string,\n chainID: number,\n tokens: Array,\n icon: any,\n currencyName: string,\n gasPriceMultiplier: number,\n coingeckoID: string,\n service: string,\n url: string,\n port: number,\n auth: boolean,\n username: string,\n password: string\n}\ninterface Data {\n conversion_rates: { [currency: string]: number };\n limits: { [currency: string]: { min: number; max: number } };\n prices: { [currency: string]: string };\n}\n\ninterface ConversionRates {\n exchange_rate: string;\n fiat_currency: string;\n}\n\ninterface limits_limit {\n max: string;\n min: string;\n}\ninterface Limits {\n crypto_currency: string;\n type: string;\n limit: limits_limit;\n}\n\ninterface prices {\n crypto_currency: string;\n fiat_currency: string;\n price: string;\n}\n\ninterface PriceItem {\n ach: boolean;\n conversion_rates: Array;\n crypto_currencies: Array;\n fiat_currencies: Array;\n prices: Array;\n limits: Array;\n name: string;\n}\nexport { Crypto, Fiat, QuoteData, SubmitData, Network, Data, PriceItem }","\nimport { defineComponent, PropType } from \"vue\";\nimport { Crypto, Network, Data, Fiat } from \"../types\";\nimport { Networks } from \"../network/networks\";\nimport { formatFiatValue } from \"@/helpers/numberFormatHelper\";\n\nexport default defineComponent({\n name: \"TokenSelect\",\n props: {\n close: {\n type: Function,\n default: () => ({}),\n },\n selectedNetwork: {\n type: Object as PropType,\n default: () => ({}),\n },\n selectedCurrency: {\n type: Object as PropType,\n default: () => ({}),\n },\n moonpayData: {\n type: Object as PropType<{ [key: string]: Data }>,\n default: () => ({}),\n },\n simplexData: {\n type: Object as PropType<{ [key: string]: Data }>,\n default: () => ({}),\n },\n fiatSelected: {\n type: Object as PropType,\n default: () => ({}),\n },\n isSell: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n networks: Networks,\n networkSelected: {} as Network,\n cryptoSelected: {} as Crypto,\n networkDropdown: false,\n cryptoDropdown: false,\n searchInput: \"\",\n networkSearchInput: \"\",\n };\n },\n computed: {\n cryptoIcon() {\n return require(`@/assets/images/crypto/${this.cryptoSelected.name}.svg`);\n },\n tokensList() {\n let decimals = 18;\n if (this.networkSelected.name === \"DOT\") decimals = 10;\n else if (this.networkSelected.name === \"KSM\") decimals = 12;\n const mainCoin = new Crypto(\n this.networkSelected.currencyName,\n this.networkSelected.name_long,\n this.networkSelected.name,\n decimals,\n this.networkSelected.icon\n );\n let tokensList = [mainCoin];\n if (this.fiatName === \"CAD\") return tokensList;\n if (this.networkSelected.tokens)\n tokensList = tokensList.concat(this.networkSelected.tokens);\n return tokensList;\n },\n filteredTokenList() {\n const filterText = this.searchInput.toLowerCase();\n return this.tokensList.filter((token) => {\n const tokenSymbol = token.name.toLowerCase();\n const tokenName = token.subtext.toLowerCase();\n if (\n this.hasValidPrices(token.name) &&\n (tokenSymbol.includes(filterText) || tokenName.includes(filterText))\n )\n return token;\n });\n },\n fiatName() {\n return this.fiatSelected.name;\n },\n networkList() {\n return this.isSell\n ? this.networks.filter(\n (network) => network.name !== \"DOT\" && network.name !== \"KSM\"\n )\n : this.networks;\n },\n filteredNetworkList() {\n const filter = this.networkSearchInput.toLowerCase();\n return this.networkList.filter(\n (network) =>\n network.name.toLowerCase().includes(filter) ||\n network.name_long.toLowerCase().includes(filter) ||\n network.currencyName.toLowerCase().includes(filter)\n );\n },\n },\n beforeMount() {\n this.networks = Networks;\n this.networkSelected = this.selectedNetwork;\n this.cryptoSelected = this.selectedCurrency;\n },\n watch: {\n networkSelected() {\n this.selectCurrency(this.tokensList[0]);\n this.$emit(\"selectedNetwork\", this.networkSelected);\n },\n },\n methods: {\n selectCurrency(currency: Crypto, emit = false) {\n this.cryptoSelected = currency;\n this.cryptoDropdown = false;\n if (emit) this.$emit(\"selectCurrency\", this.cryptoSelected);\n },\n selectNetwork(network: Network) {\n this.networkSelected = network;\n this.networkDropdown = false;\n },\n tokenPrice(token: string) {\n const simplexPrice = parseFloat(\n this.simplexData[token]?.prices[this.fiatName]\n );\n const moonpayPrice = parseFloat(\n this.moonpayData[token]?.prices[this.fiatName]\n );\n const currencyConfig = {\n locale: \"en-US\",\n rate: 1,\n currency: this.fiatName,\n };\n if (isNaN(moonpayPrice))\n return formatFiatValue(simplexPrice.toFixed(2), currencyConfig).value;\n if (isNaN(simplexPrice))\n return formatFiatValue(moonpayPrice.toFixed(2), currencyConfig).value;\n const price = simplexPrice <= moonpayPrice ? simplexPrice : moonpayPrice;\n return formatFiatValue(price.toFixed(2), currencyConfig).value;\n },\n hasValidPrices(token: string) {\n let price = this.tokenPrice(token);\n price = price?.substring(1, price.length);\n return price !== \"0.00\";\n },\n },\n});\n","import { render } from \"./TokenSelect.vue?vue&type=template&id=3b4df45c&scoped=true&ts=true\"\nimport script from \"./TokenSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./TokenSelect.vue?vue&type=script&lang=ts\"\n\nimport \"./TokenSelect.vue?vue&type=style&index=0&id=3b4df45c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3b4df45c\"]])\n\nexport default __exports__","import { AbiItem, AbiType } from 'web3-utils';\n\nconst abi: AbiItem[] = [\n {\n constant: true,\n inputs: [],\n name: 'name',\n outputs: [\n {\n name: '',\n type: 'string'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function' as AbiType\n },\n {\n constant: true,\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n name: '',\n type: 'uint8'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function' as AbiType\n },\n {\n constant: true,\n inputs: [],\n name: 'symbol',\n outputs: [\n {\n name: '',\n type: 'string'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function' as AbiType\n },\n {\n constant: true,\n inputs: [\n {\n name: '_owner',\n type: 'address'\n }\n ],\n name: 'balanceOf',\n outputs: [\n {\n name: 'balance',\n type: 'uint256'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function' as AbiType\n }\n ];\n\nexport { abi };","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, unref as _unref, withCtx as _withCtx, isRef as _isRef, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-16eba3c0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"pa-3 pa-sm-2 pa-md-2 components--sell-form\",\n ref: \"formDiv\"\n}\nconst _hoisted_2 = { class: \"mb-6 mt-6\" }\nconst _hoisted_3 = { class: \"d-flex justify-space-between mb-3\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 textDark--text\" }, \" How much do you want to sell? \", -1))\nconst _hoisted_5 = {\n key: 0,\n class: \"text-mew\"\n}\nconst _hoisted_6 = { class: \"d-flex mt-2\" }\nconst _hoisted_7 = [\"src\", \"alt\"]\nconst _hoisted_8 = { class: \"mb-6\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 textDark--text mb-3\" }, \"You will get\", -1))\nconst _hoisted_10 = { class: \"d-flex mt-2\" }\nconst _hoisted_11 = [\"src\", \"alt\"]\nconst _hoisted_12 = [\"onClick\"]\nconst _hoisted_13 = { class: \"d-flex align-center\" }\nconst _hoisted_14 = [\"src\", \"alt\"]\nconst _hoisted_15 = { class: \"text-capitalize ml-2 my-2 d-flex flex-column\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-sm-flex align-center justify-space-between mb-2\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"mew-heading-4 mr-2\" }, \" What wallet are you sending your crypto from? \")\n], -1))\nconst _hoisted_17 = { class: \"text-gray mt-3 mb-6\" }\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_20 = { class: \"text-bolder\" }\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-gray\" }, \"Network Fee:\", -1))\nconst _hoisted_22 = {\n class: \"text-gray\",\n style: {\"float\":\"right\"}\n}\nconst _hoisted_23 = {\n key: 0,\n class: \"pt-2 text-center\"\n}\nconst _hoisted_24 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-white font-weight-bold\" }, \"Sell With Moonpay\", -1))\nconst _hoisted_25 = {\n key: 1,\n class: \"text-center py-5\"\n}\nconst _hoisted_26 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"text-center font-weight-bold mt-3\",\n style: {\"line-height\":\"1.4rem\"}\n}, \" Processing purchase.... \", -1))\n\nimport {\n computed,\n reactive,\n watch,\n onMounted,\n PropType,\n onUnmounted,\n ref,\n Ref,\n inject,\n} from \"vue\";\nimport { supportedFiat, getCryptoSellPrices } from \"./prices\";\nimport { executeMoonpaySell } from \"./order\";\nimport { isObject, isNumber, isString, isEmpty } from \"lodash\";\nimport WAValidator from \"multicoin-address-validator\";\nimport { isHexStrict, isAddress, fromWei, toBN } from \"web3-utils\";\nimport { encodeAddress } from \"@polkadot/keyring\";\nimport MewAddressSelect from \"../MewAddressSelect/MewAddressSelect.vue\";\nimport { Networks } from \"./network/networks\";\nimport { Crypto, Data, Network, Fiat } from \"./network/types\";\nimport Web3 from \"web3\";\nimport { formatFloatingPointValue } from \"@/helpers/numberFormatHelper\";\nimport { abi } from \"./handler/abiERC20\";\nimport { fromBase, toBase } from \"@/helpers/units\";\nimport { PriceItem } from \"./types\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SellForm',\n props: {\n cryptoSelected: {\n type: Object as PropType,\n default: () => ({}),\n },\n networkSelected: {\n type: Object as PropType,\n default: () => ({}),\n },\n fiatSelected: {\n type: Object as PropType,\n default: () => ({}),\n },\n fiatAmount: {\n type: String,\n default: \"0\",\n },\n},\n emits: [\n \"success\",\n \"selectedCurrency\",\n \"selectedFiat\",\n \"toAddress\",\n \"setQuotes\",\n],\n setup(__props, { emit }) {\n\nconst props = __props\n\nconst amplitude: any = inject(\"$amplitude\");\n\nconst defaultFiatValue = \"0\";\nconst polkdadot_chains = [\"DOT\", \"KSM\"];\nlet gasPrice = ref(\"0\");\n// eslint-disable-next-line no-undef\nlet priceTimer: NodeJS.Timer, gasTimer: NodeJS.Timer;\nlet fiatFilter = \"\";\n// Hard code names/decimals for now\nconst tokensInfo: { [key: string]: any } = {\n USDT: {\n name: \"Tether\",\n decimals: 6,\n contract: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n },\n USDC: {\n name: \"USD Coin\",\n decimals: 6,\n contract: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n },\n DAI: { name: \"Dai Stablecoin\", decimals: 18, contract: \"\" },\n};\n\nlet moonpayData: { [key: string]: Data } = {\n ETH: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n MATIC: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n BNB: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n DOT: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n KSM: {\n conversion_rates: {},\n limits: {},\n prices: {},\n },\n};\n\nconst addressBook = [\n {\n address: \"0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D\",\n currency: \"ETH\",\n nickname: \"MEW Donations\",\n resolvedAddr: \"0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D\",\n },\n];\n\n\n\n\n\nonMounted(async () => {\n form.address = \"\";\n\n // Load URL parameter value and verify crypto address\n loadUrlParameters();\n verifyAddress();\n\n // Get crypto Data\n await getPrices();\n await fetchGasPrice();\n if (!isEmpty(props.fiatSelected)) {\n form.cryptoSelected = props.cryptoSelected.name;\n form.fiatSelected = props.fiatSelected.name;\n form.fiatAmount = props.fiatAmount;\n fiatToCrypto();\n } else cryptoToFiat();\n getBalance();\n priceTimer = setInterval(getPrices, 1000 * 60 * 2);\n gasTimer = setInterval(fetchGasPrice, 1000 * 60 * 2);\n filteredFiatItems.value = Object.getOwnPropertyNames(\n moonpayData[\"ETH\"]?.prices\n );\n});\n\nonUnmounted(async () => {\n clearInterval(priceTimer);\n clearInterval(gasTimer);\n});\n\n// reactive\nconst fiatItems: string[] = supportedFiat;\nconst filteredFiatItems: Ref = ref(fiatItems);\nconst updateFiatFilter = (value: string) => {\n fiatFilter = value;\n const items = Object.getOwnPropertyNames(moonpayData[\"ETH\"]?.prices);\n filteredFiatItems.value = items.filter((item) =>\n item.toLowerCase().includes(fiatFilter.toLowerCase())\n );\n};\n\n// reactive\nconst form = reactive({\n fiatAmount: defaultFiatValue,\n fiatSelected: \"USD\",\n cryptoAmount: \"1\",\n cryptoSelected: \"ETH\",\n address: \"\",\n validAddress: false,\n addressErrorMsg: \"\",\n reCaptchaToken: \"\",\n addressError: false,\n balance: \"\",\n balanceWei: \"\",\n balanceETH: \"\",\n balanceError: false,\n balanceErrorMsg: \"\",\n});\nconst loading = reactive({\n data: false,\n showAlert: false,\n processingBuyForm: false,\n alertMessage: \"\",\n});\nconst dropdown = reactive({\n fiat: false,\n crypto: false,\n});\n\nconst web3 = computed(() => {\n const supportedNodes: { [key: string]: any } = {\n ETH: \"ETH\",\n BSC: \"BSC\",\n MATIC: \"MATIC\",\n };\n const nodeType = supportedNodes[props.cryptoSelected.network];\n const node = Networks.find((network) => {\n return network.name === nodeType;\n });\n return new Web3(node ? node.url : \"\");\n});\n\n// watchers\nwatch(\n () => form.cryptoSelected,\n () => {\n verifyAddress();\n fiatToCrypto();\n fetchGasPrice();\n checkBalance();\n }\n);\n\nwatch(\n () => form.fiatSelected,\n () => {\n verifyAddress();\n cryptoToFiat();\n }\n);\n\nwatch(\n () => form.fiatAmount,\n () => {\n fetchGasPrice();\n if (!loading.data) {\n checkBalance();\n }\n }\n);\nwatch(\n () => form.cryptoAmount,\n () => {\n fetchGasPrice();\n if (!loading.data) {\n checkBalance();\n }\n }\n);\n\nwatch(\n () => form.address,\n () => {\n verifyAddress();\n fetchGasPrice();\n if (!loading.data) {\n getBalance();\n }\n }\n);\n\n// Computed Icons for selected token\nconst fiatIcon = computed(() => {\n return require(`@/assets/images/fiat/${form.fiatSelected}.svg`);\n});\nconst cryptoIcon = computed(() => {\n return require(`@/assets/images/crypto/${form.cryptoSelected}.svg`);\n});\n\nconst networkFee = computed(() => {\n return toBN(gasPrice.value).muln(21000);\n});\nconst networkFeeF = computed(() => {\n return formatFloatingPointValue(fromWei(networkFee.value.toString())).value;\n});\n\n// methods\nconst getIcon = (currency: string, isFiat = true) => {\n return require(`@/assets/images/${\n isFiat ? \"fiat\" : \"crypto\"\n }/${currency}.svg`);\n};\n\nconst selectCurrency = (currency: string, isFiat = true) => {\n if (isFiat) {\n form.fiatSelected = currency;\n dropdown.fiat = false;\n } else {\n form.cryptoSelected = currency;\n dropdown.crypto = false;\n }\n};\n\nconst hasData = () => {\n const { cryptoSelected } = form;\n return !isEmpty(moonpayData[cryptoSelected]?.limits[cryptoSelected]);\n};\n\nconst isValidForm = computed(() => {\n return (\n minMax.value &&\n form.fiatSelected &&\n form.cryptoSelected &&\n form.address &&\n !form.addressError &&\n form.addressErrorMsg === \"\" &&\n loading.alertMessage === \"\" &&\n form.validAddress &&\n form.balanceErrorMsg === \"\"\n );\n});\n\nconst rules = [\n (e: any) => {\n if (isString(e) && e?.length >= 1) return true;\n if (!isNumber(e)) return \"Must be a valid number\";\n return true;\n },\n];\n\nconst minMax = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { cryptoSelected, cryptoAmount, address } = form; // wont update without address\n const validData = hasData();\n if (!validData) return false;\n const limit = moonpayData[cryptoSelected].limits[cryptoSelected];\n const decimals = props.cryptoSelected.decimals;\n const amount = toBN(toBase(parseFloat(cryptoAmount || \"0\"), decimals));\n const valid =\n amount.gte(toBN(toBase(limit.min, decimals))) &&\n amount.lte(toBN(toBase(limit.max, decimals)));\n return valid;\n});\n\nconst getPrices = async () => {\n try {\n loading.data = true;\n const data: any[] = (await getCryptoSellPrices()) || [];\n data.forEach((arr: any) => {\n arr.forEach((d: PriceItem) => {\n if (isObject(d)) {\n const tmp: Data = { conversion_rates: {}, limits: {}, prices: {} };\n\n d.conversion_rates.forEach(\n (r: any) =>\n (tmp.conversion_rates[r.fiat_currency] = r.exchange_rate)\n );\n d.limits.forEach((l: any) => {\n if (l.type === \"WEB\") tmp.limits[l.crypto_currency] = l.limit;\n });\n d.prices.forEach((p: any) => (tmp.prices[p.fiat_currency] = p.price));\n const tokenName = d.crypto_currencies[0];\n const mainCoin = Networks.find(\n (item) => item.currencyName === tokenName\n );\n // If token name isnt a native network coin\n // assume the token is ERC-20(ETH)\n if (!mainCoin) {\n const foundToken = Networks[0].tokens.find(\n (item) => item.name === tokenName\n );\n if (!foundToken) {\n const tokenInfo = tokensInfo[tokenName];\n Networks[0].tokens.push(\n new Crypto(\n tokenName,\n tokenInfo.name,\n \"ETH\",\n tokenInfo.decimals,\n getIcon(tokenName, false)\n )\n );\n }\n }\n moonpayData[tokenName] = tmp;\n }\n });\n });\n loading.data = false;\n emit(\"setQuotes\", moonpayData);\n } catch (e: any) {\n errorHandler(e);\n }\n};\n\nconst getBalance = async () => {\n if (!form.validAddress) return \"0\";\n const isMainCoin =\n props.networkSelected.currencyName === props.cryptoSelected.symbol;\n const balance = form.address ? await getETHBalance() : \"0\";\n if (isMainCoin) {\n form.balanceWei = balance;\n form.balance = fromWei(balance);\n } else await getTokenBalance(props.cryptoSelected.symbol);\n\n checkBalance();\n return balance;\n};\nconst getETHBalance = async () => {\n if (!form.validAddress) return \"0\";\n const balance = form.address\n ? await web3.value.eth.getBalance(form.address, \"latest\")\n : \"0\";\n form.balanceETH = balance;\n return balance;\n};\n\nconst displayBalance = () => {\n if (!form.balance) return \"0\";\n\n return formatFloatingPointValue(form.balance).value;\n};\nconst userBalance = () => {\n if (!form.balanceWei) return toBN(0);\n\n return toBN(form.balanceWei);\n};\n\nconst hasEnoughCrypto = () => {\n if (!form.balanceWei || form.balanceWei === \"0\") return false;\n const isMainCoin =\n props.networkSelected.currencyName === props.cryptoSelected.symbol;\n return isMainCoin\n ? totalWithFee.value.lte(toBN(form.balanceETH))\n : networkFee.value.lte(toBN(form.balanceETH));\n};\n\nconst totalWithFee = computed(() => {\n if (subtotalSell.value === toBN(0)) return networkFee.value;\n return subtotalSell.value.add(networkFee.value);\n});\nconst subtotalSell = computed(() => {\n if (!form.balance || form.balance === \"0\") return toBN(0);\n const amount = toBase(\n parseFloat(form.cryptoAmount),\n props.cryptoSelected.decimals\n );\n return toBN(amount);\n});\n\nconst checkBalance = () => {\n const validData = hasData();\n if (validData) {\n // MinMax check\n const limit = moonpayData[form.cryptoSelected].limits[form.cryptoSelected];\n if (!minMax.value) {\n const decimals = props.cryptoSelected.decimals;\n const amount = toBN(\n toBase(parseFloat(form.cryptoAmount || \"0\"), decimals)\n );\n const min = toBN(toBase(limit.min, decimals));\n const max = toBN(toBase(limit.max, decimals));\n if (amount.lt(min))\n form.balanceErrorMsg = `Minimum is ${limit.min} ${form.cryptoSelected}`;\n else if (amount.gt(max))\n form.balanceErrorMsg = `Maximum is ${limit.max} ${form.cryptoSelected}`;\n form.balanceError = true;\n return;\n }\n }\n\n // User balance check\n if (form.validAddress) {\n const balance = userBalance();\n if (subtotalSell.value.gt(balance)) {\n form.balanceErrorMsg = `You do not have enough ${props.cryptoSelected.name} to sell`;\n return;\n }\n if (!hasEnoughCrypto()) {\n form.balanceErrorMsg = `You do not have enough ${props.networkSelected.currencyName} to pay for network fees`;\n return;\n }\n }\n form.balanceErrorMsg = \"\";\n form.balanceError = false;\n};\n\nconst fiatToCrypto = () => {\n const { fiatSelected, fiatAmount, cryptoSelected } = form;\n const decimals = props.cryptoSelected.decimals;\n const price = parseFloat(moonpayData[cryptoSelected].prices[fiatSelected]);\n const amount = parseFloat(fiatAmount || \"0\");\n const cryptoAmount = amount / price;\n // Make sure decimal amount is valid\n const decimalAmount = cryptoAmount.toString().split(\".\")[1]?.length || 0;\n form.cryptoAmount =\n decimalAmount > decimals\n ? cryptoAmount.toFixed(decimals)\n : cryptoAmount.toString();\n};\n\nconst cryptoToFiat = () => {\n const price = parseFloat(\n moonpayData[form.cryptoSelected].prices[form.fiatSelected]\n );\n const amount = parseFloat(form.cryptoAmount || \"0\");\n const fiatAmount = amount * price;\n form.fiatAmount = fiatAmount.toFixed(2);\n};\n\nconst loadUrlParameters = () => {\n const queryString = window.location.search;\n if (queryString) {\n const urlParams = new URLSearchParams(queryString);\n const queryCryptoAmount = urlParams.get(\"crypto_amount\");\n const queryFiat = urlParams.get(\"fiat\");\n const queryCrypto = urlParams.get(\"crypto\");\n const queryTo = urlParams.get(\"to\");\n form.fiatSelected = queryFiat ? queryFiat : \"USD\";\n form.fiatAmount = queryCryptoAmount ? queryCryptoAmount : \"100\";\n form.cryptoSelected = queryCrypto ? queryCrypto : \"ETH\";\n form.cryptoAmount = queryCryptoAmount ? queryCryptoAmount : \"1\";\n form.address = queryTo ? queryTo : \"\";\n }\n};\n\nconst errorHandler = (e: any): void => {\n const value = parseFloat(form.fiatAmount) > 0;\n if (value) {\n const isErrorObj = isObject(e.response.data.error);\n if (isErrorObj) {\n // eslint-disable-next-line\n const hasErr = e.response.data.error.hasOwnProperty(\"errors\");\n if (hasErr) {\n loading.alertMessage = e.response.data.error.errors[0].message;\n }\n } else {\n loading.alertMessage = e.response.data.error;\n }\n }\n};\n\nconst validAddress = (address: string) => {\n return address && isHexStrict(address) && isAddress(address);\n};\n\nconst isValidAddressPolkadotAddress = (\n address: string,\n cryptoPrefix: number\n) => {\n try {\n const encodedAddress = encodeAddress(address, cryptoPrefix);\n return address === encodedAddress;\n } catch (error) {\n return false;\n }\n};\n\nconst addressInput = (value: string): void => {\n form.address = value;\n verifyAddress();\n};\n\nconst verifyAddress = (): void => {\n const polkdadot_chains = [\"DOT\", \"KSM\"];\n const valid = !polkdadot_chains.includes(form.cryptoSelected)\n ? WAValidator.validate(form.address, form.cryptoSelected) &&\n validAddress(form.address)\n : isValidAddressPolkadotAddress(\n form.address,\n form.cryptoSelected === \"DOT\" ? 0 : 2\n );\n if (valid) {\n form.addressErrorMsg = \"\";\n form.addressError = false;\n form.validAddress = true;\n } else {\n if (!form.address) {\n form.addressErrorMsg = \"\";\n form.validAddress = false;\n } else {\n form.addressErrorMsg = `Please provide a valid ${form.cryptoSelected} address`;\n form.validAddress = false;\n }\n }\n};\n\nconst submitForm = (): void => {\n loading.processingBuyForm = true;\n amplitude.track(\"CCBuySellSellWithMoonpay\");\n executeMoonpaySell(form.cryptoSelected, form.cryptoAmount, form.address);\n};\n\nconst openTokenSelect = () => {\n emit(\n \"selectedCurrency\",\n {\n name: form.fiatSelected,\n value: form.fiatSelected,\n // eslint-disable-next-line\n img: require(`@/assets/images/fiat/${form.fiatSelected}.svg`),\n },\n form.fiatAmount\n );\n};\n\nconst fetchGasPrice = async (): Promise => {\n if (polkdadot_chains.includes(form.cryptoSelected)) {\n gasPrice.value = \"0\";\n return;\n }\n gasPrice.value = await web3.value.eth.getGasPrice();\n};\n\nconst getTokenBalance = async (tokenName: string) => {\n // if (!isValidAddress(contract)) return;\n const newContract = new web3.value.eth.Contract(\n abi as any,\n tokensInfo[tokenName].contract\n );\n const bal = await newContract.methods\n .balanceOf(form.address)\n .call()\n .catch((e: Error) => console.error(e));\n form.balanceWei = bal.toString();\n form.balance = fromBase(form.balanceWei, tokensInfo[tokenName].decimals);\n};\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_text_field = _resolveComponent(\"v-text-field\")!\n const _component_v_icon = _resolveComponent(\"v-icon\")!\n const _component_v_btn = _resolveComponent(\"v-btn\")!\n const _component_v_select = _resolveComponent(\"v-select\")!\n const _component_v_progress_circular = _resolveComponent(\"v-progress-circular\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n (!loading.data)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, \" Balance: \" + _toDisplayString(displayBalance()), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_v_text_field, {\n onInput: cryptoToFiat,\n type: \"number\",\n modelValue: form.cryptoAmount,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((form.cryptoAmount) = $event)),\n modelModifiers: { number: true },\n required: \"\",\n variant: \"outlined\",\n rounded: \"left\",\n rules: rules,\n disabled: loading.data,\n \"error-messages\": form.balanceErrorMsg,\n error: form.balanceError,\n class: \"no-right-border\"\n }, null, 8, [\"modelValue\", \"disabled\", \"error-messages\", \"error\"]),\n _createVNode(_component_v_btn, {\n modelValue: form.cryptoSelected,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((form.cryptoSelected) = $event)),\n rounded: \"right\",\n variant: \"outlined\",\n class: \"no-left-border custom-btn\",\n onClick: openTokenSelect,\n \"append-icon\": \"mdi-menu-down\",\n disabled: loading.data\n }, {\n prepend: _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"currency-icon mr-1 padding--2\",\n src: _unref(cryptoIcon),\n alt: form.cryptoSelected,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_7)\n ]),\n append: _withCtx(() => [\n _createVNode(_component_v_icon, {\n color: \"grey-2\",\n size: \"large\"\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(form.cryptoSelected), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"disabled\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(_component_v_text_field, {\n onInput: fiatToCrypto,\n type: \"number\",\n modelValue: form.fiatAmount,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((form.fiatAmount) = $event)),\n modelModifiers: { number: true },\n required: \"\",\n variant: \"outlined\",\n rounded: \"left\",\n rules: rules,\n \"error-messages\": loading.alertMessage,\n disabled: loading.data,\n class: \"no-right-border\"\n }, null, 8, [\"modelValue\", \"error-messages\", \"disabled\"]),\n _createVNode(_component_v_select, {\n style: {\"max-width\":\"120px\"},\n class: \"rounded-right no-left-border\",\n modelValue: form.fiatSelected,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((form.fiatSelected) = $event)),\n items: filteredFiatItems.value,\n disabled: loading.data,\n \"menu-props\": { closeOnContentClick: true },\n \"base-color\": \"primary\",\n \"return-object\": \"\",\n variant: \"outlined\"\n }, {\n \"prepend-inner\": _withCtx(() => [\n _createElementVNode(\"img\", {\n class: \"currency-icon mr-1\",\n src: _unref(fiatIcon),\n alt: form.fiatSelected,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_11)\n ]),\n \"prepend-item\": _withCtx(() => [\n _createVNode(_component_v_text_field, {\n modelValue: _unref(fiatFilter),\n \"onUpdate:modelValue\": [\n _cache[3] || (_cache[3] = ($event: any) => (_isRef(fiatFilter) ? (fiatFilter).value = $event : fiatFilter = $event)),\n updateFiatFilter\n ],\n variant: \"outlined\",\n class: \"px-2\",\n \"prepend-inner-icon\": \"mdi-magnify\",\n density: \"compact\",\n placeholder: \"Search\",\n autofocus: true\n }, null, 8, [\"modelValue\"])\n ]),\n item: _withCtx((data) => [\n _createElementVNode(\"div\", {\n class: \"d-flex align-center justify-space-between full-width cursor-pointer\",\n onClick: ($event: any) => (selectCurrency(data.item.value))\n }, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"img\", {\n class: \"currency-icon padding--2 mr-1 ml-3\",\n src: getIcon(data.item.value),\n alt: data.item.value,\n width: \"25px\",\n height: \"25px\"\n }, null, 8, _hoisted_14),\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(data.item.value), 1)\n ])\n ], 8, _hoisted_12)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"items\", \"disabled\"])\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _hoisted_16,\n _createVNode(MewAddressSelect, {\n ref: \"addressSelect\",\n \"model-value\": form.address,\n \"error-messages\": form.addressErrorMsg,\n autofocus: false,\n label: \"\",\n items: addressBook,\n \"is-valid-address\": form.validAddress,\n placeholder: \"Enter Crypto Address\",\n onKeyup: verifyAddress,\n onChanged: addressInput\n }, null, 8, [\"model-value\", \"error-messages\", \"is-valid-address\"])\n ]),\n _createElementVNode(\"div\", _hoisted_17, [\n _createTextVNode(\" After submitting your sell order, you will have to send your crypto to MoonPay. Make sure to have enough currency in your wallet to cover network transaction fees. \"),\n _hoisted_18,\n _hoisted_19,\n _createElementVNode(\"div\", _hoisted_20, [\n _hoisted_21,\n _createElementVNode(\"span\", _hoisted_22, \"~\" + _toDisplayString(_unref(networkFeeF)) + \" \" + _toDisplayString(props.networkSelected.currencyName), 1)\n ])\n ]),\n (!loading.processingBuyForm)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_23, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_v_btn, {\n flat: \"\",\n rounded: \"pill\",\n disabled: !_unref(isValidForm),\n \"min-height\": \"60px\",\n width: \"360px\",\n onClick: submitForm,\n class: \"sell-button\"\n }, {\n default: _withCtx(() => [\n _hoisted_24\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_25, [\n _createVNode(_component_v_progress_circular, {\n size: 70,\n width: 7,\n indeterminate: \"\",\n color: \"#05c0a5\"\n }),\n _hoisted_26\n ]))\n ], 512))\n}\n}\n\n})","import script from \"./SellForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SellForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./SellForm.vue?vue&type=style&index=0&id=16eba3c0&lang=scss&scoped=true\"\nimport \"./SellForm.vue?vue&type=style&index=1&id=16eba3c0&lang=scss\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-16eba3c0\"]])\n\nexport default __exports__","\nimport { isEmpty } from \"lodash\";\n\nimport { defineComponent, inject } from \"vue\";\nimport MewTabs from \"../MewTabs/MewTabs.vue\";\nimport BuyForm from \"./BuyForm.vue\";\nimport BuyProviders from \"./BuyProviders.vue\";\nimport TokenSelect from \"./components/TokenSelect.vue\";\nimport SellForm from \"./SellForm.vue\";\nimport {\n Fiat,\n Crypto,\n QuoteData,\n SubmitData,\n SubmitSellData,\n Network,\n Data,\n} from \"./network/types\";\nimport { Networks } from \"./network/networks\";\n\nexport default defineComponent({\n name: \"OrderForm\",\n components: {\n MewTabs,\n BuyForm,\n SellForm,\n BuyProviders,\n TokenSelect,\n },\n props: {\n // Removing breaks the page for some reason\n open: Boolean,\n },\n setup() {\n const amplitude: any = inject(\"$amplitude\");\n return { amplitude };\n },\n data() {\n return {\n activeTab: 0,\n orderHandler: {},\n selectedNetwork: {} as Network,\n selectedCurrency: {} as Crypto,\n selectedFiat: {} as Fiat,\n fiatAmount: \"0\",\n onlySimplex: false,\n buyObj: {} as QuoteData,\n step: 0,\n simplexQuote: {} as QuoteData,\n toAddress: \"\",\n moonpayData: {} as { [key: string]: Data },\n simplexData: {} as { [key: string]: Data },\n };\n },\n computed: {\n defaultCurrency(): Crypto {\n if (\n isEmpty(this.selectedCurrency) ||\n (this.activeTab === 1 && !this.supportedSell)\n ) {\n return {\n decimals: 18,\n img: require(\"@/assets/images/crypto/ETH.svg\"),\n name: \"ETH\",\n subtext: \"Ethereum\",\n value: \"ETH\",\n symbol: \"ETH\",\n network: \"ETH\",\n };\n }\n return this.selectedCurrency;\n },\n defaultNetwork(): Network {\n if (\n isEmpty(this.selectedNetwork) ||\n (this.activeTab === 1 && !this.supportedSell)\n ) {\n return Networks[0];\n }\n return this.selectedNetwork;\n },\n supportedSell() {\n return (\n this.selectedCurrency.symbol !== \"DOT\" &&\n this.selectedCurrency.symbol !== \"KSM\"\n );\n },\n leftBtn() {\n return {\n method: this.close,\n };\n },\n tabItems() {\n return [\"Buy\", \"Sell\"];\n },\n isSell() {\n return this.activeTab === 1;\n },\n },\n beforeMount() {\n this.selectedNetwork = this.defaultNetwork;\n this.selectedCurrency = this.defaultCurrency;\n },\n methods: {\n onTab(val: number) {\n this.selectedCurrency = {} as Crypto;\n this.selectedCurrency = this.defaultCurrency;\n this.selectedNetwork = {} as Network;\n this.selectedNetwork = this.defaultNetwork;\n this.activeTab = val;\n this.amplitude.track(`CCBuySell${val === 0 ? \"BuyTab\" : \"SellTab\"}`);\n },\n close() {\n this.step = 0;\n this.onlySimplex = false;\n },\n setNetwork(network: Network) {\n this.selectedNetwork = network;\n },\n setSelectedCurrency(e: Crypto) {\n this.selectedCurrency = e;\n this.step = 0;\n },\n setSelectedFiat(e: Fiat) {\n this.selectedFiat = e;\n },\n openProviders(val: number) {\n this.step = val;\n },\n openTokenSelect(selectedFiat: Fiat, fiatAmount: string) {\n this.step = 1;\n this.selectedFiat = selectedFiat;\n this.fiatAmount = fiatAmount;\n this.amplitude.track(\n `CCBuySell${this.activeTab === 0 ? \"BuyInput\" : \"SellInput\"}`\n );\n },\n setBuyObj(val: QuoteData) {\n this.buyObj = val;\n },\n setSimplexQuote(val: QuoteData) {\n this.simplexQuote = val;\n },\n setToAddress(val: string) {\n this.toAddress = val;\n },\n setQuotes(\n simplexQuote: { [key: string]: Data },\n moonpayQuote: { [key: string]: Data }\n ) {\n this.simplexData = simplexQuote;\n this.moonpayData = moonpayQuote;\n },\n reset() {\n this.selectedCurrency = this.defaultCurrency;\n this.selectedFiat = {\n name: \"USD\",\n value: \"USD\",\n // eslint-disable-next-line\n img: require(`@/assets/images/fiat/USD.svg`),\n };\n this.onlySimplex = false;\n },\n disableMoonpay(val: boolean) {\n this.onlySimplex = val;\n },\n buySuccess(data: SubmitData) {\n this.setSimplexQuote(data.simplex_quote);\n this.setToAddress(data.address);\n this.setBuyObj(data.buy_obj);\n this.setSelectedCurrency(data.selected_currency);\n this.openProviders(data.open_providers);\n this.setSelectedFiat(data.selected_fiat);\n this.fiatAmount = data.fiat_amount;\n this.disableMoonpay(data.disable_moonpay);\n },\n sellSuccess(data: SubmitSellData) {\n this.setToAddress(data.address);\n this.setSelectedCurrency(data.selected_currency);\n this.setSelectedFiat(data.selected_fiat);\n this.fiatAmount = data.fiat_amount;\n },\n },\n});\n","import { render } from \"./OrderForm.vue?vue&type=template&id=5c7fe0a9&scoped=true&ts=true\"\nimport script from \"./OrderForm.vue?vue&type=script&lang=ts\"\nexport * from \"./OrderForm.vue?vue&type=script&lang=ts\"\n\nimport \"./OrderForm.vue?vue&type=style&index=0&id=5c7fe0a9&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5c7fe0a9\"]])\n\nexport default __exports__","\n\n\n\n\n","import script from \"./BuyBanner.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./BuyBanner.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./BuyBanner.vue?vue&type=style&index=0&id=3c3c19dd&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3c3c19dd\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-610a7521\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h1\", { class: \"mb-9\" }, [\n /*#__PURE__*/_createTextVNode(\" Increased buy limits \"),\n /*#__PURE__*/_createElementVNode(\"br\"),\n /*#__PURE__*/_createTextVNode(\" so you can do more with crypto \")\n], -1))\nconst _hoisted_2 = { class: \"elevated-box-small elevation-5 pa-10\" }\nconst _hoisted_3 = { class: \"heading-2 description-text mb-2\" }\nconst _hoisted_4 = { class: \"font-weight-medium description-title\" }\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'PromoComponent',\n setup(__props) {\n\nconst promo1 = [\n {\n title: \"For your first transaction\",\n description:\n \"If you are buying coins very first time, you can buy up to $20,000 worth of coins.\",\n amount: \"$50 to $20,000\",\n rate: \"for first buy\",\n },\n {\n title: \"Daily limit\",\n description: \"You can buy up to $20,000 worth of coins daily.\",\n amount: \"Up to $20,000\",\n rate: \"/day\",\n },\n {\n title: \"Monthly limit\",\n description: \"You can buy up to $50,000 worth of coins monthly.\",\n amount: \"Up to $50,000\",\n rate: \"/month\",\n },\n];\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_col = _resolveComponent(\"v-col\")!\n const _component_v_row = _resolveComponent(\"v-row\")!\n const _component_v_container = _resolveComponent(\"v-container\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"component--promo dropShadow\",\n style: _normalizeStyle(_ctx.$vuetify.display.lgAndUp ? 'padding: 150px 0' : 'padding: 100px 0')\n }, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_v_container, null, {\n default: _withCtx(() => [\n _hoisted_1,\n _createVNode(_component_v_row, null, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(promo1, (p1, key1) => {\n return _createVNode(_component_v_col, {\n cols: \"12\",\n md: \"4\",\n key: key1\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(p1.amount), 1),\n _createElementVNode(\"h2\", _hoisted_4, _toDisplayString(p1.title), 1)\n ])\n ]),\n _: 2\n }, 1024)\n }), 64))\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ])\n ], 4))\n}\n}\n\n})","import script from \"./PromoComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PromoComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PromoComponent.vue?vue&type=style&index=0&id=610a7521&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-610a7521\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-05ed6bbe\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"promo--bottom py-15\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h1\", { class: \"mb-9 text-white\" }, \"Why millions of users choose us\", -1))\nconst _hoisted_3 = { class: \"d-flex align-center pb-8\" }\nconst _hoisted_4 = [\"src\"]\nconst _hoisted_5 = { class: \"heading-3 mb-1 text-white\" }\nconst _hoisted_6 = {\n key: 0,\n style: {\"max-width\":\"350px\",\"color\":\"#9ba1ae\"},\n class: \"heading-5\"\n}\nconst _hoisted_7 = {\n key: 1,\n class: \"text-gray heading-5\",\n style: {\"max-width\":\"350px\"}\n}\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", { href: \"mailto:support@simplex.com\" }, \"support@mew.com\", -1))\n\nimport iconFee from \"@/assets/images/promo/icon-fee.png\";\nimport iconFeeBlue from \"@/assets/images/promo/icon-fee-blue.png\";\nimport iconFeeMew from \"@/assets/images/promo/icon-fee-mew.png\";\nimport iconQuick from \"@/assets/images/promo/icon-quick.png\";\nimport iconQuickBlue from \"@/assets/images/promo/icon-quick-blue.png\";\nimport iconQuickMew from \"@/assets/images/promo/icon-quick-mew.png\";\nimport iconVerification from \"@/assets/images/promo/icon-verification.png\";\nimport iconVerificationBlue from \"@/assets/images/promo/icon-verification-blue.png\";\nimport iconVerificationMew from \"@/assets/images/promo/icon-verification-mew.png\";\nimport iconSupport from \"@/assets/images/promo/icon-support.png\";\nimport iconSupportBlue from \"@/assets/images/promo/icon-support-blue.png\";\nimport iconSupportMew from \"@/assets/images/promo/icon-support-mew.png\";\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'PromoComponentThisIsWhy',\n setup(__props) {\n\nconst isEthVm = window.location.search.includes(\"platform=ethvm\");\nconst isEnkrypt = window.location.search.includes(\"platform=enkrypt\");\n\nconst promo2 = [\n {\n icon: isEthVm ? iconFeeBlue : isEnkrypt ? iconFee : iconFeeMew,\n title: \"Low fees\",\n description:\n \"Get the most crypto for your fiat with limited fees from the provider and MEW\",\n },\n {\n icon: isEthVm ? iconQuickBlue : isEnkrypt ? iconQuick : iconQuickMew,\n title: \"Quick transactions\",\n description: \"Get crypto in your wallet in minutes\",\n },\n {\n icon: isEthVm\n ? iconVerificationBlue\n : isEnkrypt\n ? iconVerification\n : iconVerificationMew,\n title: \"Easy verification\",\n description: \"Payment is processed in a few short steps\",\n },\n {\n icon: isEthVm ? iconSupportBlue : isEnkrypt ? iconSupport : iconSupportMew,\n title: \"Human support\",\n description: `Reach out to ${\n isEthVm ? \"support@ethvm.com\" : \"support@enkrypt.com\"\n } with any questions`,\n },\n];\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_col = _resolveComponent(\"v-col\")!\n const _component_v_row = _resolveComponent(\"v-row\")!\n const _component_v_container = _resolveComponent(\"v-container\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_v_container, null, {\n default: _withCtx(() => [\n _hoisted_2,\n _createVNode(_component_v_row, null, {\n default: _withCtx(() => [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(promo2, (p2, key2) => {\n return _createVNode(_component_v_col, {\n cols: \"12\",\n md: \"6\",\n sm: \"6\",\n key: key2,\n class: _normalizeClass(['justify-left', 'd-flex'])\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"img\", {\n class: \"mr-4\",\n src: p2.icon,\n alt: \"Promo\"\n }, null, 8, _hoisted_4),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(p2.title), 1),\n (p2.description)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _toDisplayString(p2.description), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createTextVNode(\" Feel free to contact \"),\n _hoisted_8,\n _createTextVNode(\" should you have questions. \")\n ]))\n ])\n ])\n ]),\n _: 2\n }, 1024)\n }), 64))\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./PromoComponentThisIsWhy.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PromoComponentThisIsWhy.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PromoComponentThisIsWhy.vue?vue&type=style&index=0&id=05ed6bbe&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-05ed6bbe\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-72a78744\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"background-image pt-15\" }\n\nimport { inject } from \"vue\";\n\nimport HeaderComponent from \"@/components/Header/HeaderComponent.vue\";\nimport FooterComponent from \"@/components/Footer/FooterComponent.vue\";\nimport OrderForm from \"@/components/OrderForm/OrderForm.vue\";\nimport BuyFormBanner from \"@/components/BuyNowBanner/BuyBanner.vue\";\nimport PromoComponent from \"@/components/Promo/PromoComponent.vue\";\nimport PromoComponentThisIsWhy from \"@/components/Promo/PromoComponentThisIsWhy.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'LandingPage',\n setup(__props) {\n\nconst amplitude: any = inject(\"$amplitude\");\n\nconst VIEWED_CC_SWAP = \"CCSwapShown\";\n\nconst isEthVm = window.location.search.includes(\"platform=ethvm\");\nconst isEnkrypt = window.location.search.includes(\"platform=enkrypt\");\n\nif (isEthVm) {\n amplitude.track(`${VIEWED_CC_SWAP}EthVM`);\n}\nif (isEnkrypt) {\n amplitude.track(`${VIEWED_CC_SWAP}Enkrypt`);\n}\nif (!isEthVm && !isEnkrypt) {\n amplitude.track(`${VIEWED_CC_SWAP}Web`);\n}\n\nreturn (_ctx: any,_cache: any) => {\n const _component_v_col = _resolveComponent(\"v-col\")!\n const _component_v_row = _resolveComponent(\"v-row\")!\n const _component_v_container = _resolveComponent(\"v-container\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"component--landing-page-old-design\", [_ctx.$vuetify.display.mdAndUp ? 'background-lg' : 'background-sm']])\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_v_container, null, {\n default: _withCtx(() => [\n _createVNode(_component_v_row, null, {\n default: _withCtx(() => [\n _createVNode(_component_v_col, {\n cols: \"12\",\n md: \"5\",\n lg: \"7\"\n }, {\n default: _withCtx(() => [\n _createVNode(HeaderComponent)\n ]),\n _: 1\n }),\n _createVNode(_component_v_col, {\n cols: \"12\",\n md: \"7\",\n lg: \"5\"\n }, {\n default: _withCtx(() => [\n _createVNode(OrderForm)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(PromoComponent)\n ]),\n _createVNode(PromoComponentThisIsWhy),\n _createVNode(BuyFormBanner),\n _createVNode(FooterComponent)\n ], 2))\n}\n}\n\n})","import script from \"./LandingPage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LandingPage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LandingPage.vue?vue&type=style&index=0&id=72a78744&lang=scss\"\nimport \"./LandingPage.vue?vue&type=style&index=1&id=72a78744&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72a78744\"]])\n\nexport default __exports__","import { createRouter, createWebHistory } from \"vue-router\";\nimport LandingPage from \"@/layouts/LandingPage.vue\";\nconst router = createRouter({\n history: createWebHistory(),\n routes: [\n {\n path: \"/\",\n name: \"home\",\n component: LandingPage,\n },\n ],\n});\n\nexport default router;\n","import { createStore } from \"vuex\";\n\nexport default createStore({\n state: {},\n getters: {},\n mutations: {},\n actions: {},\n modules: {},\n});\n","import { createVuetify } from 'vuetify';\nimport * as components from 'vuetify/components';\nimport * as directives from 'vuetify/directives';\nimport '@mdi/font/css/materialdesignicons.css';\nimport 'vuetify/styles';\n\nconst COLORS = {\n // Enkrypt\n white: '#FFFFFF',\n purple: '#7B61FF',\n mew: '#05c0a5',\n gray: '#8799ab',\n 'black-1': '#202030',\n 'black': '#000',\n // EthVM\n blue: '#0065FF',\n navy: '#1A2C5C',\n 'purple-linear-1': '#C549FF',\n 'purple-linear-2': '#704BFF',\n // Shared colors\n 'grey-1': '#1B1B1B',\n 'dark-blue': '#1A2C5C',\n 'dark-blue-2': '#1D2342',\n 'grey-2': '#797982'\n\n};\n\nconst enkryptTheme = {\n dark: false,\n colors: {\n purple: COLORS.purple,\n mew: COLORS.mew,\n gray: COLORS.gray,\n 'promo--bottom': COLORS['grey-1'],\n 'buynow--banner': COLORS.purple,\n 'buynow--banner-btn-text': COLORS.purple,\n 'buynow--banner-btn': COLORS.white,\n 'btn-linear-1': COLORS['purple-linear-1'],\n 'btn-linear-2': COLORS['purple-linear-2'],\n 'btn-get-wallet': COLORS.purple,\n 'promo-border': COLORS.purple,\n 'promo-header-text': COLORS['grey-1'],\n 'background-fill': COLORS.white,\n 'background-gradient': COLORS.purple,\n black: COLORS['black-1'],\n white: COLORS.white,\n blue: COLORS.blue,\n navy: COLORS.navy,\n 'grey-1': COLORS['grey-1'],\n 'grey-2': COLORS['grey-2']\n },\n};\n\nconst ethvmTheme = {\n dark: false,\n colors: {\n blue: COLORS.blue,\n navy: COLORS.navy,\n mew: COLORS.mew,\n black: COLORS['black-1'],\n 'promo--bottom': COLORS['black'],\n 'buynow--banner': COLORS['dark-blue'],\n 'buynow--banner-btn-text': COLORS.white,\n 'buynow--banner-btn': COLORS.blue,\n 'btn-linear-1': COLORS.blue,\n 'btn-linear-2': COLORS.blue,\n 'btn-get-wallet': COLORS.blue,\n 'promo-border': COLORS.blue,\n 'promo-header-text': COLORS.white,\n 'background-fill': COLORS['dark-blue-2'],\n 'background-gradient': COLORS.blue,\n white: COLORS.white,\n 'grey-1': COLORS['grey-1'],\n 'grey-2': COLORS['grey-2']\n },\n};\nconst mewTheme = {\n dark: false,\n colors: {\n blue: COLORS.blue,\n navy: COLORS.navy,\n mew: COLORS.mew,\n black: COLORS['black-1'],\n 'promo--bottom': COLORS['dark-blue-2'],\n 'buynow--banner': COLORS.mew,\n 'buynow--banner-btn-text': COLORS.mew,\n 'buynow--banner-btn': COLORS.white,\n 'btn-linear-1': COLORS.mew,\n 'btn-linear-2': COLORS.mew,\n 'btn-get-wallet': COLORS.mew,\n 'promo-border': COLORS.mew,\n 'promo-header-text': COLORS.black,\n 'background-fill': COLORS.white,\n 'background-gradient': COLORS.mew,\n white: COLORS.white,\n 'grey-1': COLORS['grey-1'],\n 'grey-2': COLORS['grey-2']\n },\n};\n\nconst q = window.location.search;\nconst defaultTheme = q.includes('platform=ethvm') ? 'ethvmTheme' : q.includes('platform=enkrypt') ? 'enkryptTheme' : 'mewTheme';\n\nexport default createVuetify({\n components,\n directives,\n options: { customProperties: true },\n theme: {\n defaultTheme: defaultTheme,\n themes: {\n enkryptTheme,\n ethvmTheme,\n mewTheme\n },\n },\n});\n","/**\n * plugins/webfontloader.js\n *\n * webfontloader documentation: https://github.com/typekit/webfontloader\n */\n\nexport async function loadFonts() {\n const webFontLoader = await import(\n /* webpackChunkName: \"webfontloader\" */ \"webfontloader\"\n );\n\n webFontLoader.load({\n google: {\n families: [\"Roboto:100,300,400,500,700,900&display=swap\"],\n },\n });\n}\n","import { createApp, h } from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport store from \"./store\";\nimport vuetify from \"./plugins/vuetify\";\nimport { loadFonts } from \"./plugins/webfontloader\";\nimport * as amplitude from '@amplitude/analytics-browser';\n\n\namplitude.init(\n \"f90fa07c6624d9c3273268b866fc8788733e4dbac6feb32a420949e8bd45331f\",\n {\n instanceName:\n process.env.NODE_ENV === \"production\" ? \"mew-web-prod\" : \"mew-web-dev\",\n optOut: false,\n serverUrl:\n process.env.NODE_ENV === \"production\"\n ? \"https://analytics-web.mewwallet.dev/record\"\n : \"https://analytics-web-development.mewwallet.dev/record\",\n appVersion: \"0.0.1\",\n trackingOptions: {\n ipAddress: false,\n },\n identityStorage: \"none\",\n logLevel: amplitude.Types.LogLevel.None,\n defaultTracking: {\n formInteractions: false,\n pageViews: false\n }\n },\n);\n\n\nloadFonts();\n\ncreateApp({\n render: () => h(App),\n})\n .use(router)\n .use(store)\n .use(vuetify)\n .provide(\"$amplitude\", amplitude)\n .mount(\"#app\");\n","var map = {\n\t\"./BCH.svg\": 27599,\n\t\"./BNB.svg\": 1265,\n\t\"./BTC.svg\": 3090,\n\t\"./DAI.svg\": 27646,\n\t\"./DOGE.svg\": 97579,\n\t\"./DOT.svg\": 42095,\n\t\"./ETH.svg\": 55694,\n\t\"./KDA.svg\": 58095,\n\t\"./KSM.svg\": 88160,\n\t\"./LTC.svg\": 30230,\n\t\"./MATIC.svg\": 12466,\n\t\"./USDC.svg\": 90311,\n\t\"./USDT.svg\": 38792\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 67604;","var map = {\n\t\"./AUD.svg\": 5614,\n\t\"./CAD.svg\": 58082,\n\t\"./EUR.svg\": 54596,\n\t\"./GBP.svg\": 81569,\n\t\"./JPY.svg\": 51071,\n\t\"./RUB.svg\": 53715,\n\t\"./USD.svg\": 96576\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 33222;","var map = {\n\t\"./crypto/BCH.svg\": 27599,\n\t\"./crypto/BNB.svg\": 1265,\n\t\"./crypto/BTC.svg\": 3090,\n\t\"./crypto/DAI.svg\": 27646,\n\t\"./crypto/DOGE.svg\": 97579,\n\t\"./crypto/DOT.svg\": 42095,\n\t\"./crypto/ETH.svg\": 55694,\n\t\"./crypto/KDA.svg\": 58095,\n\t\"./crypto/KSM.svg\": 88160,\n\t\"./crypto/LTC.svg\": 30230,\n\t\"./crypto/MATIC.svg\": 12466,\n\t\"./crypto/USDC.svg\": 90311,\n\t\"./crypto/USDT.svg\": 38792,\n\t\"./fiat/AUD.svg\": 5614,\n\t\"./fiat/CAD.svg\": 58082,\n\t\"./fiat/EUR.svg\": 54596,\n\t\"./fiat/GBP.svg\": 81569,\n\t\"./fiat/JPY.svg\": 51071,\n\t\"./fiat/RUB.svg\": 53715,\n\t\"./fiat/USD.svg\": 96576\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 8295;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + \"webfontloader\" + \".\" + \"07803e14\" + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"mew-ccswap:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmew_ccswap\"] = self[\"webpackChunkmew_ccswap\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(4149); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_ctx","_cache","$props","$setup","$data","$options","_component_router_view","_resolveComponent","_openBlock","_createBlock","_component_v_app","default","_withCtx","_createVNode","_component_v_main","_","defineComponent","name","__exports__","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","class","_hoisted_2","_hoisted_3","style","_hoisted_4","_createElementVNode","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_defineComponent","__name","setup","__props","isEthVm","window","location","search","includes","isEnkrypt","_createElementBlock","src","_unref","ethvmLogo","enkryptDarkLogo","mewLogo","alt","height","_normalizeStyle","$vuetify","display","smAndUp","simplexLight","simplex","moonpayWhite","moonpay","visa","applePay","master","_createTextVNode","href","target","presentDate","Date","getFullYear","_component_v_container","mewIconLight","_toDisplayString","_component_v_btn","size","color","key","_component_buy_form","_component_sell_form","_component_MewTabs","_component_TokenSelect","_component_BuyProviders","step","items","tabItems","activeTab","onOnTab","onTab","tabContent1","selectedCurrency","selectedFiat","selectedNetwork","fiatAmount","onSetQuotes","setQuotes","onSelectedCurrency","openTokenSelect","onSuccess","buySuccess","onSelectedNetwork","setNetwork","onSelectCurrency","setSelectedCurrency","tabContent2","sellSuccess","_createCommentVNode","_normalizeClass","moonpayData","simplexData","isSell","onClose","close","onlySimplex","buyObj","simplexQuote","toAddress","compact","_component_v_chip_group","modelValue","$event","mandatory","column","_Fragment","_renderList","mobileItem","mobileItemKey","_component_v_chip","outlined","_renderSlot","$slots","undefined","_component_v_tabs","tabClasses","background","activeColor","centered","isCentered","isBlock","isVertical","grow","hasFullWidth","vertical","showArrows","item","i","_component_v_tab","isSmall","ripple","_component_v_window","_component_v_window_item","value","_component_v_slide_x_reverse_transition","mode","props","type","String","Boolean","Number","hasUnderline","Array","data","this","computed","classes","push","watch","newVal","$emit","mounted","API","supportedCrypto","supportedFiat","currencySymbols","USD","RUB","EUR","JPY","AUD","CAD","GBP","async","getSimplexQuote","fiatCurrency","cryptoCurrency","requestedCurrency","requestedAmount","address","apiQuote","axios","params","id","sha3","substring","toNumber","then","response","catch","e","filterData","res","isArray","filter","getCryptoPrices","iso","Promise","all","map","c","getSupportedFiatToSell","symbol","headers","getCryptoSellPrices","cryptos","_component_mew_blockie","_component_mew_transform_hash","_component_v_combobox","ref","addressValue","onInputChange","label","placeholder","disabled","errorMessages","hint","resolvedAddr","length","rules","noDataText","closeOnContentClick","variant","onChange","isValidAddress","blockieHash","width","onClick","selectAddress","raw","slice","hash","nickname","_withDirectives","blockieImg","flat","_vShow","currency","randseed","seedrand","seed","j","charCodeAt","rand","t","createColor","h","Math","floor","s","l","createImageData","dataWidth","ceil","mirrorWidth","y","row","x","r","reverse","concat","createCanvas","imageData","scale","bgcolor","spotcolor","sqrt","document","createElement","cc","getContext","fillStyle","fillRect","col","createIcon","opts","random","pow","toString","canvas","createBlockie","methods","Blockies","toLowerCase","toDataURL","blockieElem","$refs","blockie","justifyStart","start","end","USER_INPUT_TYPES","typed","selected","components","MewBlockie","MewTransformHash","clearAddress","isTyped","clear","val","addressSelect","Object","assign","mewAddressSelect","zero","toBN","negative1","getValueOfUnit","decimals","numberToString","arg","match","Error","toTwos","dividedToIntegerBy","toPrecision","fromBase","weiInput","optionsInput","wei","negative","lt","base","baseLength","options","mul","fraction","mod","pad","whole","div","commify","replace","toBase","etherInput","ether","comps","split","add","localizeCurrency","number","rate","small","verySmall","isNull","convertNumber","convertedPrice","tooltipText","notation","minimumFractionDigits","maximumFractionDigits","currencyToNumber","isBN","isNaN","priceConversion","toFixed","parseFloat","num","muln","numberObj","Intl","NumberFormat","currencyDisplay","format","message","SmallNumberBreakpoint","SmallFiatBreakpoint","TenThousand","OneMillion","OneBillion","OneTrillion","OneQuadrillion","FormattedNumberUnit","ETH","GWEI","WEI","PERCENT","B","T","Q","M","FIAT","fmt","decimalSeparator","groupSeparator","groupSize","BigNumber","FORMAT","ROUNDING_MODE","formatIntegerValue","_value","isGreaterThanOrEqualTo","convertToQuadrillion","convertToTrillions","convertToBillions","convertToMillions","toFormat","formatFloatingPointValue","isZero","getRoundNumber","formatFiatValue","locale","result","dividedBy","unit","round","hasTrailingZeros","dps","decimalPlaces","Networks","name_long","chainID","tokens","icon","getIcon","currencyName","gasPriceMultiplier","coingeckoID","service","url","port","auth","username","password","require","Crypto","constructor","subtext","network","img","_providerMinFee","providerReducedPercentFee","providerPercentFee","networkFee","providerMinFee","fiatConversionRate","baseRate","init","NetworkFee","calculateFiatFee","Amount","price","amount","roundAmount","fee","fiatFee","fiatBase","convertedMinFee","minFee","calculatedFee","max","roundingMode","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","cryptoSelected","networkSelected","fiatSelected","emits","emit","defaultFiatValue","gasPrice","polkadot_chains","bitcoin_chains","other_chains","priceTimer","fiatFilter","onMounted","form","getPrices","isEmpty","loadUrlParameters","cryptoToFiat","fiatToCrypto","fetchGasPrice","setInterval","onUnmounted","clearInterval","fiatItems","filteredFiatItems","updateFiatFilter","conversion_rates","limits","prices","MATIC","BNB","DOT","KSM","reactive","cryptoAmount","validAddress","addressErrorMsg","reCaptchaToken","addressError","loading","showAlert","processingBuyForm","alertMessage","dropdown","fiat","crypto","verifyAddress","minMaxError","web3","supportedNodes","BSC","nodeType","node","find","Web3","includesFeeText","percentFee","currencyConfig","networkFeeText","networkFeeToFiat","dailyLimit","isMoonpay","simplexMax","isValidData","moonpayMax","monthlyLimit","fiatMultiplier","times","hasData","selectedCurrencyPrice","fromWei","networkFeeWei","priceOb","networkPrice","plusFee","isEUR","withFee","gt","sub","subn","plusFeeF","isAvailable","moonpayLimit","moonpayCryptoAmount","moonpayAvailable","simplexAvailable","simplexPrice","simplexFiatAmount","simplexFiatFee","simplexPlusFee","minus","simplexPlusFeeF","simplexIncludesFeeText","simplexCryptoAmount","fiatIcon","cryptoIcon","isFiat","selectCurrency","isValidForm","minMax","isString","isNumber","min","simplexLimit","limit","valid","gte","lte","forEach","arr","d","tmp","fiat_currency","exchange_rate","p","tokenName","crypto_currencies","mainCoin","tokensInfo","USDT","USDC","DAI","foundToken","tokenInfo","errorHandler","kdaValidator","kPrefixed","substr","checkHex","isHex","addressValid","WAValidator","isValidAddressPolkadotAddress","bestPrice","moonpayPrice","queryString","urlParams","URLSearchParams","queryCryptoAmount","get","queryFiat","queryCrypto","queryTo","isSupportedCrypto","cItem","isSupportedFiat","toUpperCase","tokensList","queryCryptoAmountHolder","isErrorObj","isObject","error","hasErr","hasOwnProperty","errors","isHexStrict","isAddress","cryptoPrefix","encodedAddress","encodeAddress","addressInput","submitForm","moonpayOverMax","moonpayFiatAmount","simplex_quote","selectedCryptoName","buy_obj","open_providers","selected_currency","selected_fiat","fiat_amount","disable_moonpay","eth","getGasPrice","_component_v_progress_circular","indeterminate","_component_v_text_field","onInput","modelModifiers","required","_component_v_select","_isRef","autofocus","density","rounded","prepend","append","_component_v_icon","MewAddressSelect","onKeyup","onChanged","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","processingBuy","moonpayLogo","hideMoonpay","_component_v_tooltip","activator","_mergeProps","visaIcon","masterIcon","applePayIcon","bankIcon","paymentOptionString","buy","moonpayBtnTitle","simplexLogo","openSimplex","simplexBtnTitle","apiOrder","confirmSimplexOrder","paymentId","encodeURI","executeSimplexPayment","responseQuote","responseOrder","payment_id","executeMoonpayBuy","tokenSymbol","q","platform","resolve","link","parsedUrl","executeMoonpaySell","orderHandler","Function","amplitude","inject","selectedFiatName","actualAddress","isValidToAddress","MultiCoinValidator","track","reset","currencyFormatter","isPurchasing","filteredNetworkList","selection","networkSearchInput","selectNetwork","searchInput","_component_v_list","lines","filteredTokenList","_component_v_list_item","tokenPrice","_component_v_list_item_title","networks","networkDropdown","cryptoDropdown","fiatName","filterText","token","hasValidPrices","networkList","beforeMount","abi","constant","inputs","outputs","payable","stateMutability","polkdadot_chains","gasTimer","contract","addressBook","getBalance","getOwnPropertyNames","balance","balanceWei","balanceETH","balanceError","balanceErrorMsg","checkBalance","networkFeeF","validData","crypto_currency","isMainCoin","getETHBalance","getTokenBalance","displayBalance","userBalance","hasEnoughCrypto","totalWithFee","subtotalSell","decimalAmount","newContract","Contract","bal","balanceOf","call","console","MewTabs","BuyForm","SellForm","BuyProviders","TokenSelect","open","defaultCurrency","supportedSell","defaultNetwork","leftBtn","method","setSelectedFiat","openProviders","setBuyObj","setSimplexQuote","setToAddress","moonpayQuote","disableMoonpay","scrollTop","scrollTo","promo1","title","description","lgAndUp","_component_v_row","p1","key1","_component_v_col","cols","md","promo2","iconFeeBlue","iconFee","iconFeeMew","iconQuickBlue","iconQuick","iconQuickMew","iconVerificationBlue","iconVerification","iconVerificationMew","iconSupportBlue","iconSupport","iconSupportMew","p2","key2","sm","VIEWED_CC_SWAP","mdAndUp","lg","HeaderComponent","OrderForm","PromoComponent","PromoComponentThisIsWhy","BuyFormBanner","FooterComponent","router","createRouter","history","createWebHistory","routes","path","component","LandingPage","createStore","state","getters","mutations","actions","modules","COLORS","white","purple","mew","gray","blue","navy","enkryptTheme","dark","colors","black","ethvmTheme","mewTheme","defaultTheme","createVuetify","directives","customProperties","theme","themes","loadFonts","webFontLoader","load","google","families","instanceName","optOut","serverUrl","appVersion","trackingOptions","ipAddress","identityStorage","logLevel","defaultTracking","formInteractions","pageViews","createApp","App","use","store","vuetify","provide","mount","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","keys","module","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","m","amdO","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","splice","getter","__esModule","a","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","ns","create","def","current","indexOf","definition","defineProperty","enumerable","f","chunkId","reduce","promises","u","miniCssF","g","globalThis","prop","prototype","inProgress","dataWebpackPrefix","done","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","setAttribute","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","installedChunks","installedChunkData","promise","reject","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/service-worker.js b/service-worker.js index 9a917f14..94791b26 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1,2 +1,2 @@ -if(!self.define){let i,l={};const n=(n,e)=>(n=new URL(n+".js",e).href,l[n]||new Promise((l=>{if("document"in self){const i=document.createElement("script");i.src=n,i.onload=l,document.head.appendChild(i)}else i=n,importScripts(n),l()})).then((()=>{let i=l[n];if(!i)throw new Error(`Module ${n} didn’t register its module`);return i})));self.define=(e,s)=>{const r=i||("document"in self?document.currentScript.src:"")||location.href;if(l[r])return;let o={};const u=i=>n(i,r),c={module:{uri:r},exports:o,require:u};l[r]=Promise.all(e.map((i=>c[i]||u(i)))).then((i=>(s(...i),o)))}}define(["./workbox-db5fc017"],(function(i){"use strict";i.setCacheNameDetails({prefix:"mew-ccswap"}),self.addEventListener("message",(i=>{i.data&&"SKIP_WAITING"===i.data.type&&self.skipWaiting()})),i.precacheAndRoute([{url:"CNAME",revision:"293ec3c0cc1cb7584d810146d19fb538"},{url:"css/app.dde902eb.css",revision:null},{url:"css/chunk-vendors.05255881.css",revision:null},{url:"fonts/materialdesignicons-webfont.21f691f0.ttf",revision:null},{url:"fonts/materialdesignicons-webfont.54b0f60d.woff2",revision:null},{url:"fonts/materialdesignicons-webfont.5d875350.eot",revision:null},{url:"fonts/materialdesignicons-webfont.d671cbf6.woff",revision:null},{url:"img/AUD.013b3cd5.svg",revision:null},{url:"img/BCH.ede80552.svg",revision:null},{url:"img/BNB.612b5f42.svg",revision:null},{url:"img/BTC.ab086363.svg",revision:null},{url:"img/CAD.59f15cea.svg",revision:null},{url:"img/DAI.e32e3c9f.svg",revision:null},{url:"img/DOGE.a3a33acc.svg",revision:null},{url:"img/DOT.d1fb1977.svg",revision:null},{url:"img/ETH.0e8cfec5.svg",revision:null},{url:"img/EUR.fe1f1b75.svg",revision:null},{url:"img/GBP.90f28af4.svg",revision:null},{url:"img/JPY.8b7cb3b4.svg",revision:null},{url:"img/KDA.4bec5697.svg",revision:null},{url:"img/KSM.2237c7d6.svg",revision:null},{url:"img/LTC.947ccebc.svg",revision:null},{url:"img/MATIC.b6283cd4.svg",revision:null},{url:"img/RUB.85ae75af.svg",revision:null},{url:"img/USD.b98eb5c8.svg",revision:null},{url:"img/USDC.74c6aa75.svg",revision:null},{url:"img/USDT.dcef1ab2.svg",revision:null},{url:"img/icon-apple-pay.8729e08b.svg",revision:null},{url:"img/icon-bank.69ca9b2e.svg",revision:null},{url:"img/icon-enkrypt-logo-dark.fbd22524.svg",revision:null},{url:"img/icon-ethvm-logo.e575d2d1.svg",revision:null},{url:"img/icon-master.e13b09eb.svg",revision:null},{url:"img/icon-mew-logo-dark.49ceaae5.svg",revision:null},{url:"img/icon-mew-logo-light.b7102cfa.svg",revision:null},{url:"img/icon-moonpay-white.0dac1d0d.svg",revision:null},{url:"img/icon-moonpay.a8303886.svg",revision:null},{url:"img/icon-simplex-light.de776b97.svg",revision:null},{url:"img/icon-simplex.36f689db.svg",revision:null},{url:"img/icon-visa.a210c6d6.svg",revision:null},{url:"index.html",revision:"01581ef3f94ef379739774e19a832806"},{url:"js/app.c48c9920.js",revision:null},{url:"js/webfontloader.07803e14.js",revision:null},{url:"manifest.json",revision:"7c751befb47bc5c62ec67788a6fbb7cc"},{url:"robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"}],{})})); +if(!self.define){let i,l={};const n=(n,e)=>(n=new URL(n+".js",e).href,l[n]||new Promise((l=>{if("document"in self){const i=document.createElement("script");i.src=n,i.onload=l,document.head.appendChild(i)}else i=n,importScripts(n),l()})).then((()=>{let i=l[n];if(!i)throw new Error(`Module ${n} didn’t register its module`);return i})));self.define=(e,s)=>{const r=i||("document"in self?document.currentScript.src:"")||location.href;if(l[r])return;let o={};const u=i=>n(i,r),c={module:{uri:r},exports:o,require:u};l[r]=Promise.all(e.map((i=>c[i]||u(i)))).then((i=>(s(...i),o)))}}define(["./workbox-db5fc017"],(function(i){"use strict";i.setCacheNameDetails({prefix:"mew-ccswap"}),self.addEventListener("message",(i=>{i.data&&"SKIP_WAITING"===i.data.type&&self.skipWaiting()})),i.precacheAndRoute([{url:"CNAME",revision:"293ec3c0cc1cb7584d810146d19fb538"},{url:"css/app.574f9220.css",revision:null},{url:"css/chunk-vendors.05255881.css",revision:null},{url:"fonts/materialdesignicons-webfont.21f691f0.ttf",revision:null},{url:"fonts/materialdesignicons-webfont.54b0f60d.woff2",revision:null},{url:"fonts/materialdesignicons-webfont.5d875350.eot",revision:null},{url:"fonts/materialdesignicons-webfont.d671cbf6.woff",revision:null},{url:"img/AUD.013b3cd5.svg",revision:null},{url:"img/BCH.ede80552.svg",revision:null},{url:"img/BNB.612b5f42.svg",revision:null},{url:"img/BTC.ab086363.svg",revision:null},{url:"img/CAD.59f15cea.svg",revision:null},{url:"img/DAI.e32e3c9f.svg",revision:null},{url:"img/DOGE.a3a33acc.svg",revision:null},{url:"img/DOT.d1fb1977.svg",revision:null},{url:"img/ETH.0e8cfec5.svg",revision:null},{url:"img/EUR.fe1f1b75.svg",revision:null},{url:"img/GBP.90f28af4.svg",revision:null},{url:"img/JPY.8b7cb3b4.svg",revision:null},{url:"img/KDA.4bec5697.svg",revision:null},{url:"img/KSM.2237c7d6.svg",revision:null},{url:"img/LTC.947ccebc.svg",revision:null},{url:"img/MATIC.b6283cd4.svg",revision:null},{url:"img/RUB.85ae75af.svg",revision:null},{url:"img/USD.b98eb5c8.svg",revision:null},{url:"img/USDC.74c6aa75.svg",revision:null},{url:"img/USDT.dcef1ab2.svg",revision:null},{url:"img/icon-apple-pay.8729e08b.svg",revision:null},{url:"img/icon-bank.69ca9b2e.svg",revision:null},{url:"img/icon-enkrypt-logo-dark.fbd22524.svg",revision:null},{url:"img/icon-ethvm-logo.e575d2d1.svg",revision:null},{url:"img/icon-master.e13b09eb.svg",revision:null},{url:"img/icon-mew-logo-dark.49ceaae5.svg",revision:null},{url:"img/icon-mew-logo-light.b7102cfa.svg",revision:null},{url:"img/icon-moonpay-white.0dac1d0d.svg",revision:null},{url:"img/icon-moonpay.a8303886.svg",revision:null},{url:"img/icon-simplex-light.de776b97.svg",revision:null},{url:"img/icon-simplex.36f689db.svg",revision:null},{url:"img/icon-visa.a210c6d6.svg",revision:null},{url:"index.html",revision:"ec5a4e8b14aca6fe902016cf607f2767"},{url:"js/app.830821ea.js",revision:null},{url:"js/webfontloader.07803e14.js",revision:null},{url:"manifest.json",revision:"7c751befb47bc5c62ec67788a6fbb7cc"},{url:"robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"}],{})})); //# sourceMappingURL=service-worker.js.map diff --git a/service-worker.js.map b/service-worker.js.map index 98688d20..7a46a36e 100644 --- a/service-worker.js.map +++ b/service-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"service-worker.js","sources":["../../../../../private/var/folders/j9/cwbzv3wn3n99fd13llcjmxt00000gn/T/9ef6c42cd7f60b743c6df6022aa55ae8/service-worker.js"],"sourcesContent":["import {setCacheNameDetails as workbox_core_setCacheNameDetails} from '/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/workbox-core/setCacheNameDetails.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\nworkbox_core_setCacheNameDetails({prefix: \"mew-ccswap\"});\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"CNAME\",\n \"revision\": \"293ec3c0cc1cb7584d810146d19fb538\"\n },\n {\n \"url\": \"css/app.dde902eb.css\",\n \"revision\": null\n },\n {\n \"url\": \"css/chunk-vendors.05255881.css\",\n \"revision\": null\n },\n {\n \"url\": \"fonts/materialdesignicons-webfont.21f691f0.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"fonts/materialdesignicons-webfont.54b0f60d.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"fonts/materialdesignicons-webfont.5d875350.eot\",\n \"revision\": null\n },\n {\n \"url\": \"fonts/materialdesignicons-webfont.d671cbf6.woff\",\n \"revision\": null\n },\n {\n \"url\": \"img/AUD.013b3cd5.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/BCH.ede80552.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/BNB.612b5f42.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/BTC.ab086363.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/CAD.59f15cea.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/DAI.e32e3c9f.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/DOGE.a3a33acc.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/DOT.d1fb1977.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/ETH.0e8cfec5.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/EUR.fe1f1b75.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/GBP.90f28af4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/JPY.8b7cb3b4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/KDA.4bec5697.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/KSM.2237c7d6.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/LTC.947ccebc.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/MATIC.b6283cd4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/RUB.85ae75af.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/USD.b98eb5c8.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/USDC.74c6aa75.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/USDT.dcef1ab2.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-apple-pay.8729e08b.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-bank.69ca9b2e.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-enkrypt-logo-dark.fbd22524.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-ethvm-logo.e575d2d1.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-master.e13b09eb.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-mew-logo-dark.49ceaae5.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-mew-logo-light.b7102cfa.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-moonpay-white.0dac1d0d.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-moonpay.a8303886.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-simplex-light.de776b97.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-simplex.36f689db.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-visa.a210c6d6.svg\",\n \"revision\": null\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"01581ef3f94ef379739774e19a832806\"\n },\n {\n \"url\": \"js/app.c48c9920.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/webfontloader.07803e14.js\",\n \"revision\": null\n },\n {\n \"url\": \"manifest.json\",\n \"revision\": \"7c751befb47bc5c62ec67788a6fbb7cc\"\n },\n {\n \"url\": \"robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,eAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,QACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,iDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,iDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,wBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,yBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,wBACPC,SAAY,MAEd,CACED,IAAO,wBACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,qCAEb,CAAA"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../private/var/folders/j9/cwbzv3wn3n99fd13llcjmxt00000gn/T/9270b023ffe866328464e929e2a3589c/service-worker.js"],"sourcesContent":["import {setCacheNameDetails as workbox_core_setCacheNameDetails} from '/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/workbox-core/setCacheNameDetails.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/Users/yelpadillo/workspace/work/mew-ccswap/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\nworkbox_core_setCacheNameDetails({prefix: \"mew-ccswap\"});\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"CNAME\",\n \"revision\": \"293ec3c0cc1cb7584d810146d19fb538\"\n },\n {\n \"url\": \"css/app.574f9220.css\",\n \"revision\": null\n },\n {\n \"url\": \"css/chunk-vendors.05255881.css\",\n \"revision\": null\n },\n {\n \"url\": \"fonts/materialdesignicons-webfont.21f691f0.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"fonts/materialdesignicons-webfont.54b0f60d.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"fonts/materialdesignicons-webfont.5d875350.eot\",\n \"revision\": null\n },\n {\n \"url\": \"fonts/materialdesignicons-webfont.d671cbf6.woff\",\n \"revision\": null\n },\n {\n \"url\": \"img/AUD.013b3cd5.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/BCH.ede80552.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/BNB.612b5f42.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/BTC.ab086363.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/CAD.59f15cea.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/DAI.e32e3c9f.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/DOGE.a3a33acc.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/DOT.d1fb1977.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/ETH.0e8cfec5.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/EUR.fe1f1b75.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/GBP.90f28af4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/JPY.8b7cb3b4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/KDA.4bec5697.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/KSM.2237c7d6.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/LTC.947ccebc.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/MATIC.b6283cd4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/RUB.85ae75af.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/USD.b98eb5c8.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/USDC.74c6aa75.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/USDT.dcef1ab2.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-apple-pay.8729e08b.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-bank.69ca9b2e.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-enkrypt-logo-dark.fbd22524.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-ethvm-logo.e575d2d1.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-master.e13b09eb.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-mew-logo-dark.49ceaae5.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-mew-logo-light.b7102cfa.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-moonpay-white.0dac1d0d.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-moonpay.a8303886.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-simplex-light.de776b97.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-simplex.36f689db.svg\",\n \"revision\": null\n },\n {\n \"url\": \"img/icon-visa.a210c6d6.svg\",\n \"revision\": null\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"ec5a4e8b14aca6fe902016cf607f2767\"\n },\n {\n \"url\": \"js/app.830821ea.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/webfontloader.07803e14.js\",\n \"revision\": null\n },\n {\n \"url\": \"manifest.json\",\n \"revision\": \"7c751befb47bc5c62ec67788a6fbb7cc\"\n },\n {\n \"url\": \"robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,eAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,QACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,iDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,iDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,wBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,yBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,uBACPC,SAAY,MAEd,CACED,IAAO,wBACPC,SAAY,MAEd,CACED,IAAO,wBACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,qCAEb,CAAA"} \ No newline at end of file