diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 7d5d7da3d..000000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["NomicFoundation.hardhat-solidity"] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 081bd174f..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - // See: https://github.com/prettier/prettier/issues/12209 - "[mdx]": { - "editor.formatOnSave": false - }, - "[solidity]": { - "editor.defaultFormatter": "NomicFoundation.hardhat-solidity" - }, - "solidity.formatter": "forge" -} diff --git a/packages/bridge-ui/src/App.svelte b/packages/bridge-ui/src/App.svelte index 5f976b9ed..ab4da1cc7 100644 --- a/packages/bridge-ui/src/App.svelte +++ b/packages/bridge-ui/src/App.svelte @@ -1,11 +1,14 @@ diff --git a/packages/bridge-ui/src/components/icons/AXS.svelte b/packages/bridge-ui/src/components/icons/AXS.svelte new file mode 100644 index 000000000..a719d7686 --- /dev/null +++ b/packages/bridge-ui/src/components/icons/AXS.svelte @@ -0,0 +1,24 @@ + + + + + + + diff --git a/packages/bridge-ui/src/i18n.ts b/packages/bridge-ui/src/i18n.ts index a1c873601..d4a3a013e 100644 --- a/packages/bridge-ui/src/i18n.ts +++ b/packages/bridge-ui/src/i18n.ts @@ -1,57 +1,6 @@ -import { _, dictionary, locale } from 'svelte-i18n'; +import { _, locale } from 'svelte-i18n'; function setupI18n({ withLocale: _locale } = { withLocale: 'en' }) { - dictionary.set({ - en: { - home: { - title: 'Taiko Bridge', - selectToken: 'Select Token', - to: 'To', - bridge: 'Bridge', - approve: 'Approve', - }, - bridgeForm: { - fieldLabel: 'Amount', - maxLabel: 'Max', - balance: 'Balance', - processingFeeLabel: 'Processing Fee', - bridge: 'Bridge', - approve: 'Approve', - }, - nav: { - connect: 'Connect Wallet', - }, - transaction: { - pending: 'Pending', - claim: 'Claim', - retry: 'Retry', - release: 'Release', - claimed: 'Claimed', - released: 'Released', - failed: 'Failed', - }, - toast: { - transactionSent: 'Transaction sent', - transactionCompleted: 'Transaction completed!', - errorWrongNetwork: - 'You are connected to the wrong chain in your wallet', - errorSendingTransaction: 'Error sending transaction', - errorDisconnecting: 'Could not disconnect', - errorInsufficientBalance: 'Insufficient ETH balance', - errorCheckingAllowance: 'Error checking allowance', - fundsClaimed: 'Funds claimed successfully!', - fundsReleased: 'Funds released successfully!', - }, - switchChainModal: { - title: 'Not on the right network', - subtitle: 'Your current network is not supported. Please select one:', - }, - connectModal: { - title: 'Connect Wallet', - }, - }, - }); - locale.set(_locale); } diff --git a/packages/bridge-ui/src/i18nLocal.ts b/packages/bridge-ui/src/i18nLocal.ts new file mode 100644 index 000000000..0150ab64b --- /dev/null +++ b/packages/bridge-ui/src/i18nLocal.ts @@ -0,0 +1,55 @@ + +export const locales: any = { + en: "English", + de: "Deutsch", + nl: "Nederlands", + tr: "Türkçe", + zh_CN: "简体中文", + zh_TW: "繁体中文", + ko: "한국어", + ro: "Română", + es: "Español", + fr: "Français", + it: "Italiano", + ja: "日本語", + ru: "Русский", + pt: "Portugués", + id: "Indonesio", + vi: "Tiếng Việt", +}; + + +export const browserLangToLocaleKey = { + 'en': 'en', + 'en-US': 'en', + 'en-GB': 'en', + 'de': 'de', + 'de-DE': 'de', + 'nl': 'nl', + 'nl-NL': 'nl', + 'tr': 'tr', + 'tr-TR': 'tr', + 'zh-CN': 'zh_CN', + 'zh-TW': 'zh_TW', + 'ko': 'ko', + 'ko-KR': 'ko', + 'ro': 'ro', + 'ro-RO': 'ro', + 'es': 'es', + 'es-ES': 'es', + 'fr': 'fr', + 'fr-FR': 'fr', + 'it': 'it', + 'it-IT': 'it', + 'ja': 'ja', + 'ja-JP': 'ja', + 'ru': 'ru', + 'ru-RU': 'ru', + 'pt': 'pt', + 'pt-PT': 'pt', + 'pt-BR': 'pt', + 'id': 'id', + 'id-ID': 'id', + 'vi': 'vi', + 'vi-VN': 'vi' +} diff --git a/packages/bridge-ui/src/locales/de.json b/packages/bridge-ui/src/locales/de.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/packages/bridge-ui/src/locales/de.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/bridge-ui/src/locales/en.json b/packages/bridge-ui/src/locales/en.json new file mode 100644 index 000000000..3e18271b2 --- /dev/null +++ b/packages/bridge-ui/src/locales/en.json @@ -0,0 +1,66 @@ +{ + "home": { + "title": "Wannsee Bridge", + "selectToken": "Select Token", + "to": "To", + "bridge": "Bridge", + "approve": "Approve" + }, + "buttton": { + "add": "Add", + "confirm": "Confirm" + }, + "bridgeForm": { + "fieldLabel": "Amount", + "maxLabel": "Max", + "balance": "Balance", + "processingFeeLabel": "Processing Fee", + "bridge": "Bridge", + "approve": "Approve", + "approved": "Approved", + "approving": "Approving…", + "bridging": "Bridging…", + "approveToken": "Approve token", + "notFetchToken": "Could not fetch token details.", + "invalidAddress": "Invalid token address.", + "enterAddress": "Enter valid ERC20 Address", + "tokenAreadyAdd": "Tokens already added", + "memo": "Memo", + "enterMemo": "Enter memo here…", + "mxcLimit": "Max limit reached", + "memoDesc": "You can attach an arbitrary message to your bridge transaction by using a memo — it will slightly increase gas costs.", + "errorComp": "Error computing", + "selectNoneDesc": "Selecting None means that you'll require MXC on the receiving chain in order to claim the bridged token. Please, come back later to manually claim.", + "notShowMessage": "Do not show this message again" + }, + "nav": { + "connect": "Connect Wallet" + }, + "transaction": { + "pending": "Pending", + "claim": "Claim", + "retry": "Retry", + "release": "Release", + "claimed": "Claimed", + "released": "Released", + "failed": "Failed" + }, + "toast": { + "transactionSent": "Transaction sent", + "transactionCompleted": "Transaction completed!", + "errorWrongNetwork": "You are connected to the wrong chain in your wallet", + "errorSendingTransaction": "Error sending transaction", + "errorDisconnecting": "Could not disconnect", + "errorInsufficientBalance": "Insufficient ETH balance", + "errorCheckingAllowance": "Error checking allowance", + "fundsClaimed": "Funds claimed successfully!", + "fundsReleased": "Funds released successfully!" + }, + "switchChainModal": { + "title": "Not on the right network", + "subtitle": "Your current network is not supported. Please select one:" + }, + "connectModal": { + "title": "Connect Wallet" + } +} \ No newline at end of file diff --git a/packages/bridge-ui/src/locales/es.json b/packages/bridge-ui/src/locales/es.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/packages/bridge-ui/src/locales/es.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/bridge-ui/src/locales/fr.json b/packages/bridge-ui/src/locales/fr.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/packages/bridge-ui/src/locales/fr.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/bridge-ui/src/locales/id.json b/packages/bridge-ui/src/locales/id.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/packages/bridge-ui/src/locales/id.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/bridge-ui/src/locales/it.json b/packages/bridge-ui/src/locales/it.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/packages/bridge-ui/src/locales/it.json @@ -0,0 +1 @@ +{} diff --git a/packages/bridge-ui/src/locales/ja.json b/packages/bridge-ui/src/locales/ja.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/packages/bridge-ui/src/locales/ja.json @@ -0,0 +1 @@ +{} diff --git a/packages/bridge-ui/src/locales/ko.json b/packages/bridge-ui/src/locales/ko.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/packages/bridge-ui/src/locales/ko.json @@ -0,0 +1 @@ +{} diff --git a/packages/bridge-ui/src/locales/nl.json b/packages/bridge-ui/src/locales/nl.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/packages/bridge-ui/src/locales/nl.json @@ -0,0 +1 @@ +{} diff --git a/packages/bridge-ui/src/locales/pt.json b/packages/bridge-ui/src/locales/pt.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/packages/bridge-ui/src/locales/pt.json @@ -0,0 +1 @@ +{} diff --git a/packages/bridge-ui/src/locales/ro.json b/packages/bridge-ui/src/locales/ro.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/packages/bridge-ui/src/locales/ro.json @@ -0,0 +1 @@ +{} diff --git a/packages/bridge-ui/src/locales/ru.json b/packages/bridge-ui/src/locales/ru.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/packages/bridge-ui/src/locales/ru.json @@ -0,0 +1 @@ +{} diff --git a/packages/bridge-ui/src/locales/tr.json b/packages/bridge-ui/src/locales/tr.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/packages/bridge-ui/src/locales/tr.json @@ -0,0 +1 @@ +{} diff --git a/packages/bridge-ui/src/locales/vi.json b/packages/bridge-ui/src/locales/vi.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/packages/bridge-ui/src/locales/vi.json @@ -0,0 +1 @@ +{} diff --git a/packages/bridge-ui/src/locales/zh_CN.json b/packages/bridge-ui/src/locales/zh_CN.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/packages/bridge-ui/src/locales/zh_CN.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/bridge-ui/src/locales/zh_TW.json b/packages/bridge-ui/src/locales/zh_TW.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/packages/bridge-ui/src/locales/zh_TW.json @@ -0,0 +1 @@ +{} diff --git a/packages/bridge-ui/src/pages/home/Home.svelte b/packages/bridge-ui/src/pages/home/Home.svelte index aa52538d4..e6a595cbd 100644 --- a/packages/bridge-ui/src/pages/home/Home.svelte +++ b/packages/bridge-ui/src/pages/home/Home.svelte @@ -17,7 +17,11 @@ import { BridgeType } from '../../domain/bridge'; import { ethers, Contract, type Signer, BigNumber } from 'ethers'; - import { L1MXCCROSSTOKEN, L1MXCTOKEN, ISTESTNET } from '../../constants/envVars'; + import { + L1MXCCROSSTOKEN, + L1MXCTOKEN, + ISTESTNET, + } from '../../constants/envVars'; import TooltipModal from '../../components/TooltipModal.svelte'; import Button from '../../components/Button.svelte'; import MXCCrossTokenAbi from '../../constants/abis/MXCCrossToken'; @@ -34,8 +38,10 @@ warningToast, } from '../../components/NotificationToast.svelte'; - const is_testnet = ISTESTNET == "1" - console.log(is_testnet) + import { _ } from 'svelte-i18n'; + import { get } from 'svelte/store'; + + const isTestnet = ISTESTNET == '1'; enum LogLevel { DEBUG = 'DEBUG', @@ -46,41 +52,38 @@ } ethers.utils.Logger.setLogLevel(LogLevel.OFF); - const parseEther = ethers.utils.parseEther - const formatEther = ethers.utils.formatEther - + const parseEther = ethers.utils.parseEther; + const formatEther = ethers.utils.formatEther; let address: string = ''; let tooltipOpen: boolean = false; let showClose: boolean = false; - let mxcCrossVal: BigNumber = parseEther("0"); + let mxcCrossVal: BigNumber = parseEther('0'); let isApprove: boolean = false; let loadingClaim: boolean = false; let loadingApprove: boolean = false; - async function approve() { - loadingApprove = true + loadingApprove = true; try { - const MXCCrossToken = new Contract(L1MXCCROSSTOKEN, MXCCrossTokenAbi, $signer); - - const tx = await MXCCrossToken.approve( - L1MXCTOKEN, - mxcCrossVal + const MXCCrossToken = new Contract( + L1MXCCROSSTOKEN, + MXCCrossTokenAbi, + $signer, ); + const tx = await MXCCrossToken.approve(L1MXCTOKEN, mxcCrossVal); + successToast('Transaction sent to approve tokens transfer.'); - isApprove = false + isApprove = false; await pendingTransactions.add(tx, $signer); - successToast( - `Tokens transfer approved!
`, - ); + successToast(`Tokens transfer approved!
`); } catch (error) { console.error(error); - isApprove = true + isApprove = true; const headerError = 'Failed to approve
'; if (error.cause?.status === 0) { - console.log(111) + console.log(111); const explorerUrl = `${$srcChain.explorerUrl}/tx/${error.cause.transactionHash}`; const htmlLink = `here`; errorToast( @@ -95,24 +98,19 @@ errorToast(`${headerError}Try again later.`); } } - loadingApprove = false + loadingApprove = false; } async function claim() { - loadingClaim = true + loadingClaim = true; const MXCToken = new Contract(L1MXCTOKEN, MXCTokenAbi, $signer); try { - const tx = await MXCToken.exchange( - address, - mxcCrossVal - ); + const tx = await MXCToken.exchange(address, mxcCrossVal); successToast('Transaction sent to exchange tokens transfer.'); await pendingTransactions.add(tx, $signer); - successToast( - `Tokens exchange completed!
`, - ); - tooltipOpen = false; + successToast(`Tokens exchange completed!
`); + tooltipOpen = false; } catch (error) { console.error(error); const headerError = 'Failed to exchange
'; @@ -131,35 +129,39 @@ errorToast(`${headerError}Try again later.`); } } - loadingClaim = false + loadingClaim = false; } async function checkMxcCross() { // console.log(L1MXCCROSSTOKEN,$signer) - try { - const MXCCrossToken = new Contract(L1MXCCROSSTOKEN, MXCCrossTokenAbi, $signer); - mxcCrossVal = await MXCCrossToken.balanceOf(address) - let allowance = await MXCCrossToken.allowance(address,L1MXCTOKEN); - if(mxcCrossVal.gt(0)) { - tooltipOpen = true - }else { - tooltipOpen = false + try { + const MXCCrossToken = new Contract( + L1MXCCROSSTOKEN, + MXCCrossTokenAbi, + $signer, + ); + mxcCrossVal = await MXCCrossToken.balanceOf(address); + let allowance = await MXCCrossToken.allowance(address, L1MXCTOKEN); + if (mxcCrossVal.gt(0)) { + tooltipOpen = true; + } else { + tooltipOpen = false; } - if(mxcCrossVal.gt(allowance)) { - isApprove = true - }else { - isApprove = false + if (mxcCrossVal.gt(allowance)) { + isApprove = true; + } else { + isApprove = false; } - } catch (e) { - console.error(e); - } - } + } catch (e) { + console.error(e); + } + } $: setAddress($signer).catch((e) => console.error(e)); async function setAddress(signer: Signer) { try { address = await signer.getAddress(); - await checkMxcCross() + await checkMxcCross(); } catch (error) {} } @@ -168,11 +170,9 @@ const tabsRoute = [ { name: 'bridge', href: '/' }, { name: 'transactions', href: '/transactions' }, - // { name: 'faucet', href: '/faucet' }, + { name: 'faucet', href: '/faucet' }, { name: 'stake', href: '/stake' }, - // Add more tabs if needed - ]; - + ] async function setBridge() { // in l1, set the BridgeType.ERC20 @@ -181,7 +181,7 @@ $: activeTab = $location === '/' ? tabsRoute[0].name : $location.replace('/', ''); - + $: if ($srcChain && $srcChain.id === L1_CHAIN_ID) { setBridge(); } @@ -190,23 +190,24 @@
+ {@const tab1 = tabsRoute[0]} {@const tab2 = tabsRoute[1]} {@const tab3 = tabsRoute[2]} - + {@const tab4 = tabsRoute[3]} Bridge @@ -218,10 +219,11 @@ () {/if} - + {#if isTestnet} + Faucet + {/if} {#if $srcChain && $srcChain.id == L1_CHAIN_ID} - - Stake + Stake {/if} @@ -240,29 +242,32 @@
- + - - + - +

- The current bridge is incompatible with L1 MXC. Please click "Claim" to transform your L1 MXC into the latest version of L2 MXC, which will then allow you to seamlessly bridge to L3 zkEVM. + The current bridge is incompatible with L1 MXC. Please click "Claim" to + transform your L1 MXC into the latest version of L2 MXC, which will then + allow you to seamlessly bridge to L3 zkEVM.

{#if loadingApprove} {/if} @@ -287,7 +291,8 @@ {#if loadingClaim} {/if} diff --git a/packages/bridge-ui/src/store/modalLanguage.ts b/packages/bridge-ui/src/store/modalLanguage.ts new file mode 100644 index 000000000..7d9ce50ce --- /dev/null +++ b/packages/bridge-ui/src/store/modalLanguage.ts @@ -0,0 +1,3 @@ +import { writable } from 'svelte/store'; + +export const isLanguageModalOpen = writable(false); diff --git a/packages/bridge-ui/src/styles/app.css b/packages/bridge-ui/src/styles/app.css index 68a72ee33..ecf1279c3 100644 --- a/packages/bridge-ui/src/styles/app.css +++ b/packages/bridge-ui/src/styles/app.css @@ -4,6 +4,8 @@ @import './override.css'; @import './logo.css'; +@import './common.css'; +@import './lanuageModal.css'; [data-theme='dark'] .switch-to-dark-mode { display: none; @@ -12,3 +14,20 @@ [data-theme='light'] .switch-to-light-mode { display: none; } + +.connect-button, +.connect-button:hover { + background-color: #f43178; +} + +button.border-accent { + border: 1px solid #6300ff; +} + +button.action-button { + background-color: #6300ff; +} + +button[disabled].action-button { + background-color: #5b5b5b38; +} diff --git a/packages/bridge-ui/src/styles/common.css b/packages/bridge-ui/src/styles/common.css new file mode 100644 index 000000000..ba26bed20 --- /dev/null +++ b/packages/bridge-ui/src/styles/common.css @@ -0,0 +1,226 @@ +.dividerline { + border-bottom: 1px solid #ffffff29; +} + +.circle-marker { + text-align: center; + line-height: 10px; +} + +/*换行省略*/ +.break_ellipsis { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/*多行省略*/ +.break_ellipsis_more { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; +} + +.usn { + user-select: none; +} + +.tlc { + text-align: center; +} +.tll { + text-align: left; +} +.tlr { + text-align: right; +} + +/*换行*/ +.wbb { + word-break: break-all; +} + +.bbox { + box-sizing: border-box; +} + +.csp { + cursor: pointer; +} + +/* color S*/ +.c000 { + color: #000; +} +.c333 { + color: #333; +} +.c666 { + color: #666; +} +.c999 { + color: #999; +} +.c_white { + color: #fff; +} +.c_red { + color: #ff0101; +} +.c_gray { + color: #9fa4b9; +} +/* color E */ + +/* width S */ +.w100 { + width: 100%; +} +.w14 { + width: 14px; +} +.w16 { + width: 16px; +} +.w18 { + width: 18px; +} +/* width E */ + +/* padding S*/ +.pd5 { + padding: 5px; +} +.pd10 { + padding: 10px; +} +.pd15 { + padding: 15px; +} +/* padding E*/ + +/* margin S */ +.mr10 { + margin-right: 10px; +} +.mt5 { + margin-top: 5px; +} +.mt8 { + margin-top: 8px; +} +.mt10 { + margin-top: 10px; +} +/* margin E */ + +/* font size S */ +.fs10 { + font-size: 10px; +} +.fs11 { + font-size: 11px; +} +.fs12 { + font-size: 12px; +} +.fs13 { + font-size: 13px; +} +.fs14 { + font-size: 14px; +} +.fs15 { + font-size: 15px; +} +.fs16 { + font-size: 16px; +} +.fs17 { + font-size: 17px; +} +.fs18 { + font-size: 18px; +} +.fs20 { + font-size: 20px; +} +.fs21 { + font-size: 21px; +} +.fs24 { + font-size: 24px; +} +.fs30 { + font-size: 30px; +} +.fw400 { + font-weight: 400; +} +.fw500 { + font-weight: 500; +} +.fw600 { + font-weight: 600; +} +.fwb { + font-weight: bold; +} +/* font size E */ + +/* flex S */ +.flex { + display: flex; +} +.flexbox { + display: flex; + align-items: center; +} +.flex1 { + flex: 1; +} +.flex_c { + display: flex; + align-items: center; + justify-content: center; +} +.flex_s { + display: flex; + justify-content: space-between; +} +.flex_cs { + display: flex; + align-items: center; +} +.flex_sc { + display: flex; + justify-content: space-between; + align-items: center; +} +.flex_ec { + display: flex; + align-items: center; + justify-content: flex-end; +} +.flex_wrap { + display: flex; + flex-wrap: wrap; +} +.flex_wrap_sb { + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} +.flex_y_js { + display: flex; + flex-direction: column; + justify-content: center; +} +.flex_css { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} +/* flex E */ diff --git a/packages/bridge-ui/src/styles/lanuageModal.css b/packages/bridge-ui/src/styles/lanuageModal.css new file mode 100644 index 000000000..0d2a6fabd --- /dev/null +++ b/packages/bridge-ui/src/styles/lanuageModal.css @@ -0,0 +1,46 @@ +.language_modal { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + z-index: 100; + background: #000000e6; + display: flex; + align-items: center; + justify-content: center; +} +.language_modal .inner { + width: 320px; + background-color: #16182e; + border-radius: 4px; +} +.language_modal .Modal-header-wrapper { + margin: 10px 15px; +} +.language_modal .Modal-title-bar { + align-items: center; + display: flex; + justify-content: space-between; +} +.language_modal .Modal-title { + font-size: 15px; + line-height: 1; + text-align: left; +} +.language_modal .Modal-close-button { + text-align: right; + position: relative; +} +.language_modal .languagebox { + padding: 15px; + grid-gap: 1rem; + display: grid; + grid-template-columns: repeat(2, 1fr); +} +.language_modal .menu-item { + border: 1px solid #ffffff29; + cursor: pointer; + justify-content: space-between; + padding: 5px 8px; +} diff --git a/packages/bridge-ui/src/styles/override.css b/packages/bridge-ui/src/styles/override.css index f3a501d72..cd943fe51 100644 --- a/packages/bridge-ui/src/styles/override.css +++ b/packages/bridge-ui/src/styles/override.css @@ -1,5 +1,9 @@ /* Remove Arrows/Spinners */ +html, body, :root { + background-color: #2a0f69; +} + /* Chrome, Safari, Edge, Opera */ input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { diff --git a/packages/bridge-ui/src/wagmi/client.ts b/packages/bridge-ui/src/wagmi/client.ts index 51cf21bdd..6f90138c9 100644 --- a/packages/bridge-ui/src/wagmi/client.ts +++ b/packages/bridge-ui/src/wagmi/client.ts @@ -4,6 +4,7 @@ import { MetaMaskConnector } from '@wagmi/core/connectors/metaMask'; import { WalletConnectConnector } from '@wagmi/core/connectors/walletConnect'; import { jsonRpcProvider } from '@wagmi/core/providers/jsonRpc'; import { publicProvider } from '@wagmi/core/providers/public'; +import { InjectedConnector } from '@wagmi/connectors/injected' import { L1_CHAIN_ID, @@ -69,6 +70,11 @@ export const client = createClient({ autoConnect: true, provider, connectors: [ + new InjectedConnector({ + options: { + name: 'AXS Wallet', + }, + }), new MetaMaskConnector({ chains }), new CoinbaseWalletConnector({ chains, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c1b68944a..ef2c865f0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + importers: .: @@ -27,6 +31,9 @@ importers: '@sveltestack/svelte-query': specifier: ^1.6.0 version: 1.6.0 + '@upstash/redis': + specifier: ^1.21.0 + version: 1.21.0 '@wagmi/connectors': specifier: ^0.1.1 version: 0.1.1(@babel/core@7.20.2)(@wagmi/core@0.8.4)(debug@4.3.4)(ethers@5.7.2)(typescript@4.9.3) @@ -48,6 +55,9 @@ importers: identicon.js: specifier: ^2.3.3 version: 2.3.3 + request-ip: + specifier: ^3.3.0 + version: 3.3.0 svelte-i18n: specifier: ^3.5.1 version: 3.5.2(svelte@3.53.1) @@ -58,6 +68,12 @@ importers: '@babel/preset-env': specifier: ^7.16.0 version: 7.20.2(@babel/core@7.20.2) + '@rollup/plugin-commonjs': + specifier: ^24.0.1 + version: 24.0.1(rollup@2.79.1) + '@rollup/plugin-node-resolve': + specifier: ^15.0.2 + version: 15.0.2(rollup@2.79.1) '@sveltejs/vite-plugin-svelte': specifier: ^1.0.1 version: 1.3.1(svelte@3.53.1)(vite@3.2.4) @@ -193,9 +209,6 @@ importers: vite: specifier: ^3.0.0 version: 3.2.4 - vite-plugin-static-copy: - specifier: ^0.12.0 - version: 0.12.0(vite@3.2.4) packages/eventindexer: {} @@ -349,10 +362,10 @@ importers: version: 1.6.0 '@wagmi/connectors': specifier: ^0.1.1 - version: 0.1.1(@babel/core@7.20.2)(@wagmi/core@0.8.4)(debug@4.3.4)(ethers@5.7.2)(typescript@4.9.3) + version: 0.1.1(@babel/core@7.20.2)(@wagmi/core@0.8.4)(ethers@5.7.2)(typescript@4.9.5) '@wagmi/core': specifier: ^0.8.0 - version: 0.8.4(@babel/core@7.20.2)(@coinbase/wallet-sdk@3.6.3)(debug@4.3.4)(ethers@5.7.2)(react@18.2.0)(typescript@4.9.3) + version: 0.8.4(@babel/core@7.20.2)(@coinbase/wallet-sdk@3.6.3)(ethers@5.7.2)(react@18.2.0)(typescript@4.9.5) axios: specifier: ^1.2.0 version: 1.2.0(debug@4.3.4) @@ -467,7 +480,7 @@ importers: version: 2.2.0 ts-jest: specifier: ^27.0.7 - version: 27.1.5(@babel/core@7.20.2)(@types/jest@27.5.2)(babel-jest@27.5.1)(esbuild@0.15.13)(jest@27.5.1)(typescript@4.9.3) + version: 27.1.5(@babel/core@7.20.2)(@types/jest@27.5.2)(babel-jest@27.5.1)(jest@27.5.1)(typescript@4.9.5) ts-jest-mock-import-meta: specifier: ^0.12.0 version: 0.12.0(ts-jest@27.1.5) @@ -503,10 +516,10 @@ importers: version: 1.6.0 '@wagmi/connectors': specifier: ^0.1.1 - version: 0.1.1(@babel/core@7.20.2)(@wagmi/core@0.8.4)(debug@4.3.4)(ethers@5.7.2)(typescript@4.9.3) + version: 0.1.1(@babel/core@7.20.2)(@wagmi/core@0.8.4)(ethers@5.7.2)(typescript@4.9.3) '@wagmi/core': specifier: ^0.8.0 - version: 0.8.4(@babel/core@7.20.2)(@coinbase/wallet-sdk@3.6.3)(debug@4.3.4)(ethers@5.7.2)(react@18.2.0)(typescript@4.9.3) + version: 0.8.4(@babel/core@7.20.2)(@coinbase/wallet-sdk@3.6.3)(ethers@5.7.2)(react@18.2.0)(typescript@4.9.3) axios: specifier: ^1.2.0 version: 1.2.0(debug@4.3.4) @@ -3719,6 +3732,24 @@ packages: - supports-color dev: true + /@rollup/plugin-commonjs@24.0.1(rollup@2.79.1): + resolution: {integrity: sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.4(rollup@2.79.1) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.27.0 + rollup: 2.79.1 + dev: true + /@rollup/plugin-inject@4.0.4(rollup@2.79.1): resolution: {integrity: sha512-4pbcU4J/nS+zuHk+c+OL3WtmEQhqxlZ9uqfjQMQDOHOPld7PsCd8k5LWs8h5wjwJN7MgnAn768F2sDxEP4eNFQ==} peerDependencies: @@ -3730,6 +3761,24 @@ packages: rollup: 2.79.1 dev: true + /@rollup/plugin-node-resolve@15.0.2(rollup@2.79.1): + resolution: {integrity: sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.4(rollup@2.79.1) + '@types/resolve': 1.20.2 + deepmerge: 4.2.2 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.1 + rollup: 2.79.1 + dev: true + /@rollup/pluginutils@3.1.0(rollup@2.79.1): resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} @@ -3742,6 +3791,21 @@ packages: rollup: 2.79.1 dev: true + /@rollup/pluginutils@5.0.4(rollup@2.79.1): + resolution: {integrity: sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.0 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 2.79.1 + dev: true + /@scure/base@1.1.1: resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==} dev: true @@ -4049,7 +4113,7 @@ packages: /@types/acorn@4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 0.0.50 dev: false /@types/async-eventemitter@0.2.1: @@ -4143,7 +4207,7 @@ packages: /@types/estree-jsx@1.0.0: resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 0.0.50 dev: false /@types/estree@0.0.39: @@ -4152,7 +4216,6 @@ packages: /@types/estree@0.0.50: resolution: {integrity: sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==} - dev: true /@types/estree@0.0.51: resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} @@ -4368,6 +4431,10 @@ packages: '@types/node': 18.15.1 dev: true + /@types/resolve@1.20.2: + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + dev: true + /@types/responselike@1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: @@ -4793,6 +4860,14 @@ packages: eslint-visitor-keys: 3.4.0 dev: true + /@upstash/redis@1.21.0: + resolution: {integrity: sha512-c6M+cl0LOgGK/7Gp6ooMkIZ1IDAJs8zFR+REPkoSkAq38o7CWFX5FYwYEqGZ6wJpUGBuEOr/7hTmippXGgL25A==} + dependencies: + isomorphic-fetch: 3.0.0 + transitivePeerDependencies: + - encoding + dev: false + /@vue/compiler-sfc@2.7.14: resolution: {integrity: sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==} dependencies: @@ -4966,6 +5041,58 @@ packages: - typescript - utf-8-validate + /@wagmi/connectors@0.1.1(@babel/core@7.20.2)(@wagmi/core@0.8.4)(ethers@5.7.2)(typescript@4.9.3): + resolution: {integrity: sha512-W9w73o9HCYzuBsDHuujwBT/nGGIu5qLBSqVqslXf/S1Q9OiWoudmuIs3opuYqxgw5MpWbMqhq6QaxA7Qcd6NrA==} + peerDependencies: + '@wagmi/core': 0.8.x + ethers: ^5.0.0 + peerDependenciesMeta: + '@wagmi/core': + optional: true + dependencies: + '@coinbase/wallet-sdk': 3.6.3(@babel/core@7.20.2) + '@ledgerhq/connect-kit-loader': 1.0.1 + '@wagmi/core': 0.8.4(@babel/core@7.20.2)(@coinbase/wallet-sdk@3.6.3)(ethers@5.7.2)(react@18.2.0)(typescript@4.9.3) + '@walletconnect/ethereum-provider': 1.8.0(debug@4.3.4) + abitype: 0.1.8(typescript@4.9.3) + ethers: 5.7.2 + eventemitter3: 4.0.7 + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - debug + - encoding + - supports-color + - typescript + - utf-8-validate + dev: false + + /@wagmi/connectors@0.1.1(@babel/core@7.20.2)(@wagmi/core@0.8.4)(ethers@5.7.2)(typescript@4.9.5): + resolution: {integrity: sha512-W9w73o9HCYzuBsDHuujwBT/nGGIu5qLBSqVqslXf/S1Q9OiWoudmuIs3opuYqxgw5MpWbMqhq6QaxA7Qcd6NrA==} + peerDependencies: + '@wagmi/core': 0.8.x + ethers: ^5.0.0 + peerDependenciesMeta: + '@wagmi/core': + optional: true + dependencies: + '@coinbase/wallet-sdk': 3.6.3(@babel/core@7.20.2) + '@ledgerhq/connect-kit-loader': 1.0.1 + '@wagmi/core': 0.8.4(@babel/core@7.20.2)(@coinbase/wallet-sdk@3.6.3)(ethers@5.7.2)(react@18.2.0)(typescript@4.9.5) + '@walletconnect/ethereum-provider': 1.8.0(debug@4.3.4) + abitype: 0.1.8(typescript@4.9.5) + ethers: 5.7.2 + eventemitter3: 4.0.7 + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - debug + - encoding + - supports-color + - typescript + - utf-8-validate + dev: false + /@wagmi/core@0.8.4(@babel/core@7.20.2)(@coinbase/wallet-sdk@3.6.3)(debug@4.3.4)(ethers@5.7.2)(react@18.2.0)(typescript@4.9.3): resolution: {integrity: sha512-orFRGOei+ixH8fIU9DitjKFSnv7sEv4j0A32gin2aADLuyBsAqG7xD+5LzfVD8EarHzU98Mk9d4hmmIkMg8bXw==} peerDependencies: @@ -4997,6 +5124,70 @@ packages: - utf-8-validate - zod + /@wagmi/core@0.8.4(@babel/core@7.20.2)(@coinbase/wallet-sdk@3.6.3)(ethers@5.7.2)(react@18.2.0)(typescript@4.9.3): + resolution: {integrity: sha512-orFRGOei+ixH8fIU9DitjKFSnv7sEv4j0A32gin2aADLuyBsAqG7xD+5LzfVD8EarHzU98Mk9d4hmmIkMg8bXw==} + peerDependencies: + '@coinbase/wallet-sdk': '>=3.6.0' + '@walletconnect/ethereum-provider': '>=1.7.5' + ethers: '>=5.5.1' + peerDependenciesMeta: + '@coinbase/wallet-sdk': + optional: true + '@walletconnect/ethereum-provider': + optional: true + dependencies: + '@coinbase/wallet-sdk': 3.6.3(@babel/core@7.20.2) + '@wagmi/chains': 0.1.3 + '@wagmi/connectors': 0.1.1(@babel/core@7.20.2)(@wagmi/core@0.8.4)(ethers@5.7.2)(typescript@4.9.3) + abitype: 0.2.5(typescript@4.9.3) + ethers: 5.7.2 + eventemitter3: 4.0.7 + zustand: 4.1.4(react@18.2.0) + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - debug + - encoding + - immer + - react + - supports-color + - typescript + - utf-8-validate + - zod + dev: false + + /@wagmi/core@0.8.4(@babel/core@7.20.2)(@coinbase/wallet-sdk@3.6.3)(ethers@5.7.2)(react@18.2.0)(typescript@4.9.5): + resolution: {integrity: sha512-orFRGOei+ixH8fIU9DitjKFSnv7sEv4j0A32gin2aADLuyBsAqG7xD+5LzfVD8EarHzU98Mk9d4hmmIkMg8bXw==} + peerDependencies: + '@coinbase/wallet-sdk': '>=3.6.0' + '@walletconnect/ethereum-provider': '>=1.7.5' + ethers: '>=5.5.1' + peerDependenciesMeta: + '@coinbase/wallet-sdk': + optional: true + '@walletconnect/ethereum-provider': + optional: true + dependencies: + '@coinbase/wallet-sdk': 3.6.3(@babel/core@7.20.2) + '@wagmi/chains': 0.1.3 + '@wagmi/connectors': 0.1.1(@babel/core@7.20.2)(@wagmi/core@0.8.4)(ethers@5.7.2)(typescript@4.9.5) + abitype: 0.2.5(typescript@4.9.5) + ethers: 5.7.2 + eventemitter3: 4.0.7 + zustand: 4.1.4(react@18.2.0) + transitivePeerDependencies: + - '@babel/core' + - bufferutil + - debug + - encoding + - immer + - react + - supports-color + - typescript + - utf-8-validate + - zod + dev: false + /@walletconnect/browser-utils@1.8.0: resolution: {integrity: sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A==} dependencies: @@ -5331,6 +5522,15 @@ packages: dependencies: typescript: 4.9.3 + /abitype@0.1.8(typescript@4.9.5): + resolution: {integrity: sha512-2pde0KepTzdfu19ZrzYTYVIWo69+6UbBCY4B1RDiwWgo2XZtFSJhF6C+XThuRXbbZ823J0Rw1Y5cP0NXYVcCdQ==} + engines: {pnpm: '>=7'} + peerDependencies: + typescript: '>=4.7.4' + dependencies: + typescript: 4.9.5 + dev: false + /abitype@0.2.5(typescript@4.9.3): resolution: {integrity: sha512-t1iiokWYpkrziu4WL2Gb6YdGvaP9ZKs7WnA39TI8TsW2E99GVRgDPW/xOKhzoCdyxOYt550CNYEFluCwGaFHaA==} engines: {pnpm: '>=7'} @@ -5343,6 +5543,19 @@ packages: dependencies: typescript: 4.9.3 + /abitype@0.2.5(typescript@4.9.5): + resolution: {integrity: sha512-t1iiokWYpkrziu4WL2Gb6YdGvaP9ZKs7WnA39TI8TsW2E99GVRgDPW/xOKhzoCdyxOYt550CNYEFluCwGaFHaA==} + engines: {pnpm: '>=7'} + peerDependencies: + typescript: '>=4.7.4' + zod: '>=3.19.1' + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 4.9.5 + dev: false + /abitype@0.8.1(typescript@4.9.3)(zod@3.21.4): resolution: {integrity: sha512-n8Di6AWb3i7HnEkBvecU6pG0a5nj5YwMvdAIwPLsQK95ulRy/XS113s/RXvSfTX1iOQJYFrEO3/q4SMWu7OwTA==} peerDependencies: @@ -7030,6 +7243,11 @@ packages: dependencies: node-gyp-build: 4.5.0 + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + /bundle-require@3.1.2(esbuild@0.15.13): resolution: {integrity: sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7711,6 +7929,10 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} + /commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + dev: true + /compare-versions@5.0.1: resolution: {integrity: sha512-v8Au3l0b+Nwkp4G142JcgJFh1/TUhdxut7wzD1Nq1dyp5oa3tXaqb03EXOAB6jS4gMlalkjAUPZBMiAfKUixHQ==} dev: true @@ -8153,7 +8375,7 @@ packages: postcss-modules-values: 4.0.0(postcss@8.4.21) postcss-value-parser: 4.2.0 semver: 7.3.8 - webpack: 5.75.0(esbuild@0.15.13) + webpack: 5.75.0 dev: true /css-select@4.3.0: @@ -11454,7 +11676,7 @@ packages: vue-loader: 15.10.1(css-loader@6.7.2)(lodash@4.17.21)(vue-template-compiler@2.7.14)(webpack@5.75.0) vue-router: 3.6.5(vue@2.7.14) vue-template-compiler: 2.7.14 - webpack: 5.75.0(esbuild@0.15.13) + webpack: 5.75.0 transitivePeerDependencies: - '@swc/core' - '@vue/compiler-sfc' @@ -11878,7 +12100,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.75.0(esbuild@0.15.13) + webpack: 5.75.0 dev: true /htmlparser2@6.1.0: @@ -12250,6 +12472,13 @@ packages: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: true + /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -12401,6 +12630,10 @@ packages: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} dev: true + /is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + dev: true + /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} @@ -12469,10 +12702,16 @@ packages: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} dev: false + /is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + dependencies: + '@types/estree': 0.0.50 + dev: true + /is-reference@3.0.1: resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 0.0.50 dev: false /is-regex@1.1.4: @@ -12606,6 +12845,15 @@ packages: engines: {node: '>=0.10.0'} dev: true + /isomorphic-fetch@3.0.0: + resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} + dependencies: + node-fetch: 2.6.7 + whatwg-fetch: 3.6.18 + transitivePeerDependencies: + - encoding + dev: false + /isomorphic-ws@4.0.1(ws@7.5.9): resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} peerDependencies: @@ -14143,6 +14391,13 @@ packages: sourcemap-codec: 1.4.8 dev: true + /magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -16561,7 +16816,7 @@ packages: klona: 2.0.5 postcss: 8.4.21 semver: 7.3.8 - webpack: 5.75.0(esbuild@0.15.13) + webpack: 5.75.0 dev: true /postcss-modules-extract-imports@3.0.0(postcss@8.4.21): @@ -17446,6 +17701,10 @@ packages: resolve-from: 3.0.0 dev: true + /request-ip@3.3.0: + resolution: {integrity: sha512-cA6Xh6e0fDBBBwH77SLJaJPBmD3nWVAcF9/XAcsrIHdjhFzFiB5aNQFytdjCGPezU3ROwrR11IddKAM08vohxA==} + dev: false + /request-promise-core@1.1.4(request@2.88.2): resolution: {integrity: sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==} engines: {node: '>=0.10.0'} @@ -19317,6 +19576,30 @@ packages: webpack: 5.75.0(esbuild@0.15.13) dev: true + /terser-webpack-plugin@5.3.6(webpack@5.75.0): + resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + jest-worker: 27.5.1 + schema-utils: 3.1.1 + serialize-javascript: 6.0.0 + terser: 5.15.1 + webpack: 5.75.0 + dev: true + /terser@5.15.1: resolution: {integrity: sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==} engines: {node: '>=10'} @@ -19640,6 +19923,42 @@ packages: yargs-parser: 20.2.4 dev: true + /ts-jest@27.1.5(@babel/core@7.20.2)(@types/jest@27.5.2)(babel-jest@27.5.1)(jest@27.5.1)(typescript@4.9.5): + resolution: {integrity: sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@types/jest': ^27.0.0 + babel-jest: '>=27.0.0 <28' + esbuild: '*' + jest: ^27.0.0 + typescript: '>=3.8 <5.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/jest': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + '@babel/core': 7.20.2 + '@types/jest': 27.5.2 + babel-jest: 27.5.1(@babel/core@7.20.2) + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + jest: 27.5.1 + jest-util: 27.5.1 + json5: 2.2.1 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.3.8 + typescript: 4.9.5 + yargs-parser: 20.2.4 + dev: true + /ts-loader@9.4.1(typescript@4.9.3)(webpack@5.75.0): resolution: {integrity: sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw==} engines: {node: '>=12.0.0'} @@ -19667,7 +19986,7 @@ packages: micromatch: 4.0.5 semver: 7.3.8 typescript: 4.9.5 - webpack: 5.75.0(esbuild@0.15.13) + webpack: 5.75.0 dev: true /ts-node@10.9.1(@types/node@12.20.55)(typescript@4.9.5): @@ -19888,7 +20207,6 @@ packages: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true - dev: true /typewise-core@1.2.0: resolution: {integrity: sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==} @@ -20456,7 +20774,7 @@ packages: vue-hot-reload-api: 2.3.4 vue-style-loader: 4.1.3 vue-template-compiler: 2.7.14 - webpack: 5.75.0(esbuild@0.15.13) + webpack: 5.75.0 transitivePeerDependencies: - arc-templates - atpl @@ -20939,6 +21257,46 @@ packages: engines: {node: '>=10.13.0'} dev: true + /webpack@5.75.0: + resolution: {integrity: sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.8.2 + acorn-import-assertions: 1.8.0(acorn@8.8.2) + browserslist: 4.21.5 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.12.0 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.1.1 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.6(webpack@5.75.0) + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + /webpack@5.75.0(esbuild@0.15.13): resolution: {integrity: sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==} engines: {node: '>=10.13.0'} @@ -21003,6 +21361,10 @@ packages: resolution: {integrity: sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==} dev: true + /whatwg-fetch@3.6.18: + resolution: {integrity: sha512-ltN7j66EneWn5TFDO4L9inYC1D+Czsxlrw2SalgjMmEMkLfA5SIZxEFdE6QtHFiiM6Q7WL32c7AkI3w6yxM84Q==} + dev: false + /whatwg-mimetype@2.3.0: resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} dev: true