diff --git a/package.json b/package.json index 81130c019..caed45b6f 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ }, "dependencies": { "@astar-network/astar-sdk-core": "^0.2.8", - "@astar-network/astar-ui": "^0.0.138", + "@astar-network/astar-ui": "^0.0.140", "@astar-network/metamask-astar-adapter": "^0.5.4", "@astar-network/metamask-astar-types": "^0.6.1", "@ethersproject/bignumber": "^5.5.0", diff --git a/src/assets/img/chain/astar-logo-white.svg b/src/assets/img/chain/astar-logo-white.svg new file mode 100644 index 000000000..a3ed47fd4 --- /dev/null +++ b/src/assets/img/chain/astar-logo-white.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/chain/astar-zkevm-logo-white.svg b/src/assets/img/chain/astar-zkevm-logo-white.svg new file mode 100644 index 000000000..65b14c1b0 --- /dev/null +++ b/src/assets/img/chain/astar-zkevm-logo-white.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/assets/Assets.vue b/src/components/assets/Assets.vue index d896c9ea6..34f9e2e1e 100644 --- a/src/components/assets/Assets.vue +++ b/src/components/assets/Assets.vue @@ -10,8 +10,8 @@ :is-loading-xcm-assets-amount="isLoadingXcmAssetsAmount" /> - - + +
@@ -199,6 +199,7 @@ export default defineComponent({ isLoading, bg, isDappStakingV3, + isZkEvm, }; }, }); diff --git a/src/components/assets/NativeAssetList.vue b/src/components/assets/NativeAssetList.vue index 2fc803d56..ffd7f6b8d 100644 --- a/src/components/assets/NativeAssetList.vue +++ b/src/components/assets/NativeAssetList.vue @@ -264,28 +264,27 @@
diff --git a/src/components/header/modals/Ads.vue b/src/components/header/modals/Ads.vue new file mode 100644 index 000000000..5904d69cf --- /dev/null +++ b/src/components/header/modals/Ads.vue @@ -0,0 +1,32 @@ + + + + diff --git a/src/components/header/modals/ModalAccountUnification.vue b/src/components/header/modals/ModalAccountUnification.vue index c649331e8..877c78ad7 100644 --- a/src/components/header/modals/ModalAccountUnification.vue +++ b/src/components/header/modals/ModalAccountUnification.vue @@ -316,5 +316,5 @@ export default defineComponent({ diff --git a/src/components/header/modals/ModalNetwork.vue b/src/components/header/modals/ModalNetwork.vue deleted file mode 100644 index a7bb0d329..000000000 --- a/src/components/header/modals/ModalNetwork.vue +++ /dev/null @@ -1,488 +0,0 @@ - - - - diff --git a/src/components/header/modals/ModalNetworkWallet.vue b/src/components/header/modals/ModalNetworkWallet.vue new file mode 100644 index 000000000..59d0733ad --- /dev/null +++ b/src/components/header/modals/ModalNetworkWallet.vue @@ -0,0 +1,456 @@ + + + + diff --git a/src/components/header/modals/NetworkWalletTab.vue b/src/components/header/modals/NetworkWalletTab.vue new file mode 100644 index 000000000..3d2c3db9c --- /dev/null +++ b/src/components/header/modals/NetworkWalletTab.vue @@ -0,0 +1,50 @@ + + + + diff --git a/src/components/header/modals/ModalAccount.vue b/src/components/header/modals/SelectAccount.vue similarity index 64% rename from src/components/header/modals/ModalAccount.vue rename to src/components/header/modals/SelectAccount.vue index e13918391..b3513c2ca 100644 --- a/src/components/header/modals/ModalAccount.vue +++ b/src/components/header/modals/SelectAccount.vue @@ -1,183 +1,166 @@ diff --git a/src/components/header/modals/ModalPolkasafe.vue b/src/components/header/modals/SelectMultisigAccount.vue similarity index 85% rename from src/components/header/modals/ModalPolkasafe.vue rename to src/components/header/modals/SelectMultisigAccount.vue index ace571217..5041706aa 100644 --- a/src/components/header/modals/ModalPolkasafe.vue +++ b/src/components/header/modals/SelectMultisigAccount.vue @@ -1,34 +1,35 @@ diff --git a/src/components/header/modals/SelectNetwork.vue b/src/components/header/modals/SelectNetwork.vue new file mode 100644 index 000000000..c16d9b573 --- /dev/null +++ b/src/components/header/modals/SelectNetwork.vue @@ -0,0 +1,288 @@ + + + + diff --git a/src/components/header/modals/SelectSignatory.vue b/src/components/header/modals/SelectSignatory.vue index 6efaf4162..a6393a2b7 100644 --- a/src/components/header/modals/SelectSignatory.vue +++ b/src/components/header/modals/SelectSignatory.vue @@ -8,11 +8,6 @@ {{ selectedSignatory ? selectedSignatory.name : 'Select Multisig Signatory' }}
-
    @@ -173,6 +168,9 @@ export default defineComponent({ } .body--dark { + .box__row--wallet { + border: 1px solid $navy-3; + } .box--wallet-option { background: $gray-6; box-shadow: 0px 6px 8px rgba(0, 0, 0, 0.5); diff --git a/src/components/header/modals/ModalConnectWallet.vue b/src/components/header/modals/SelectWallet.vue similarity index 80% rename from src/components/header/modals/ModalConnectWallet.vue rename to src/components/header/modals/SelectWallet.vue index f65941756..c52084e8c 100644 --- a/src/components/header/modals/ModalConnectWallet.vue +++ b/src/components/header/modals/SelectWallet.vue @@ -1,15 +1,15 @@ diff --git a/src/components/header/modals/SelectedWallet.vue b/src/components/header/modals/SelectedWallet.vue index 0734ea410..69c58737f 100644 --- a/src/components/header/modals/SelectedWallet.vue +++ b/src/components/header/modals/SelectedWallet.vue @@ -69,7 +69,7 @@ export default defineComponent({ .body--dark { .box__row--wallet { - border: 1px solid $gray-3; + border: 1px solid $navy-1; color: $gray-1; } } diff --git a/src/components/header/modals/UnifiedAccount.vue b/src/components/header/modals/UnifiedAccount.vue index fe694fff9..303695469 100644 --- a/src/components/header/modals/UnifiedAccount.vue +++ b/src/components/header/modals/UnifiedAccount.vue @@ -27,6 +27,7 @@ :show-balance-value="false" :show-balance="false" :get-balance="getBalance" + :is-unified-account="true" />
@@ -38,13 +39,14 @@ :show-balance-value="false" :show-balance="false" :get-balance="getBalance" + :is-unified-account="true" />
diff --git a/src/components/header/styles/ads.scss b/src/components/header/styles/ads.scss new file mode 100644 index 000000000..fd6e36fc5 --- /dev/null +++ b/src/components/header/styles/ads.scss @@ -0,0 +1,42 @@ +@import 'src/css/quasar.variables.scss'; + +.wrapper--ads { + margin-top: 32px; + @media (min-width: $lg) { + margin-top: 0px; + } +} + +.card--welcome { + height: 130px; + padding-top: 24px; + padding-left: 24px; + border-radius: 16px; + gap: 10px; + background: $navy-2; + display: flex; + flex-direction: column; + row-gap: 14px; + background-repeat: no-repeat; + background-size: 180px; + font-size: 14px; + font-weight: 600; + color: $gray-0; + background-position: top -10px right -32px; +} + +.card--welcome-bg-astar { + background-image: url('assets/img/chain/astar.png'); +} + +.card--welcome-bg-shiden { + background-image: url('assets/img/chain/shiden.png'); +} + +.row--card-text { + max-width: 200px; + text-align: left; +} + +.body--dark { +} diff --git a/src/components/header/styles/modal-network-wallet.scss b/src/components/header/styles/modal-network-wallet.scss new file mode 100644 index 000000000..3cf126680 --- /dev/null +++ b/src/components/header/styles/modal-network-wallet.scss @@ -0,0 +1,363 @@ +@import 'src/css/quasar.variables.scss'; +@import 'src/css/utils.scss'; + +.wrapper--modal-network-tab { + display: flex; + flex-direction: column; + justify-content: center; + padding-top: 24px; +} + +.row--tab { + margin-top: -30px; + margin-bottom: 24px; +} + +.button--action { + width: 100%; + height: 48px; + border: 1px solid rgba(31, 47, 95, 1); + font-weight: 600; + margin-top: 32px; + cursor: pointer; +} + +.button--action-disabled { + background: linear-gradient(0deg, #081029, #081029), linear-gradient(0deg, #1f2f5f, #1f2f5f); + cursor: not-allowed; +} + +.container--network-ads { + display: flex; + flex-direction: column; + @media (min-width: $lg) { + display: grid; + grid-template-columns: 440px auto; + column-gap: 40px; + } +} + +.row--action-buttons { + display: flex; + justify-content: space-between; + column-gap: 16px; +} + +.card--astar { + width: 212px; + height: 140px; + border-radius: 16px; + box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.08); + border: 1px solid $gray-0; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + column-gap: 8px; + row-gap: 8px; + position: relative; + @media (min-width: $lg) { + flex-direction: row; + } +} + +.line--bottom-bg { + position: absolute; + width: 95%; + height: 5px; + border-radius: 0 0 16px 16px / 0 0 6px 6px; + bottom: 0; +} + +.bottom--l1 { + background: linear-gradient(270deg, #ff94cd 26.04%, #e6007a 100%); +} + +.bottom--zkevm { + background: linear-gradient(270deg, #703ac2 26.04%, #226dff 100%); +} + +.container--other-networks { + border-radius: 16px; + box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.08); + border: 1px solid $gray-0; + padding: 12px 16px; + display: flex; + flex-direction: column; + align-items: flex-start; +} + +.img--astar { + width: 32px; + height: 32px; +} + +.img--network-logo { + width: 24px; + height: 24px; +} + +.row--astars { + display: flex; + column-gap: 8px; + width: 100%; + margin-bottom: 24px; + justify-content: space-around; + @media (min-width: $sm) { + column-gap: 0px; + } + @media (min-width: $lg) { + justify-content: space-between; + } +} + +.row--title-other { + margin-bottom: 20px; +} + +.row--testnets { + display: flex; + column-gap: 8px; + display: grid; + grid-template-columns: 1fr 1fr; + width: 100%; + margin-bottom: 20px; +} + +.row--shiden { + width: 100%; + margin-bottom: 8px; +} + +.row--network { + background: $gray-0; + display: flex; + column-gap: 14px; + align-items: center; + padding: 10px 16px; + border-radius: 8px; + width: 100%; +} + +.text--network { + font-weight: 600; + font-size: 12px; + color: $navy-1; + @media (min-width: $sm) { + font-size: 14px; + } +} + +.text--endpoint { + font-weight: 600; + font-size: 12px; + color: $navy-1; +} + +.container--advanced { + margin-bottom: 12px; + width: 100%; +} + +.row--title-advanced { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; +} + +.container--endpoints { + margin-top: 20px; +} + +.title--endpoint { + margin-bottom: 10px; +} + +.row--custom-endpoints { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: 8px; + margin-top: 8px; +} + +.box--endpoints { + background: $gray-0; + border-radius: 8px; + padding: 16px; + display: flex; + flex-direction: column; + align-items: flex-start; +} + +.radio--endpoint { +} + +.border--active { + border: 1px solid $astar-blue !important; +} + +.box--light-client-warning { + display: none; + @media (min-width: $sm) { + display: flex; + flex-direction: column; + row-gap: 8px; + margin-top: 24px; + } +} + +.ul--warnings { + list-style: disc; + text-align: left; + padding-left: 24px; +} + +.text--download { + display: block; + text-decoration: underline; + color: $astar-blue; +} + +.column--network-option { + display: flex; + align-items: center; + column-gap: 8px; + cursor: pointer; +} + +.input--endpoint[type='radio'] { + width: 16px; + height: 16px; + margin-right: 4px; + box-shadow: 0 0 0 1.5px white; + &:checked { + border: 3px solid $gray-5; + background-color: white; + } +} + +.box-input--endpoint { + border: 0px solid transparent; +} + +.input--endpoint[type='radio'] { + width: 16px; + height: 16px; + border-radius: 50%; + box-shadow: 0 0 0 2px white; + -webkit-appearance: none; + cursor: pointer; + display: flex; + align-items: center; + &:checked { + border: 1px solid white; + background-color: $gray-4; + } +} + +.class-radio--custom-network { + height: 120px; +} + +.column--options { + display: flex; + flex-direction: column; + row-gap: 9.6px; +} + +.ip-input { + width: 100%; + height: 48px; + text-align: center; + margin-top: 10px; + border-radius: 6px; + border: 1px solid $navy-1; + padding: 0 16px; + text-align: left; + font-weight: 400; + font-size: 14px; + color: $navy-1; +} + +.ip-input:focus { + outline: none; +} + +.icon--expand { + color: $astar-blue; + width: 24px; + height: 24px; + cursor: pointer; + transition: all 0.4s ease 0s; + border-radius: 100%; + display: flex; + justify-content: center; + align-items: center; + svg { + width: 18px; + height: 18px; + } + &:hover { + color: white; + background-color: $astar-blue; + } +} + +.expand-container { + overflow: hidden; + width: 100%; +} + +#network-expand { + overflow: hidden; + margin-top: -100%; + transition: all 0.3s; +} + +#network-expand-close { + overflow: hidden; + margin-top: -200%; + transition: all 1s; +} + +#network-expand.network-expanded { + margin-top: 0; +} + +#network-expand-close.network-expanded { + margin-top: 0; +} + +.body--dark { + .text--network, + .text--endpoint { + color: $gray-1; + } + .icon--expand { + color: $gray-1; + } + .input--endpoint[type='radio'] { + box-shadow: 0 0 0 1.5px white; + &:checked { + border: 3px solid $gray-5; + background-color: white; + } + } + .ip-input { + background: $body-bg-dark; + border: 1px solid $gray-3; + color: $gray-1; + } + .row--network { + background: rgba(31, 47, 95, 1); + } + .box--endpoints { + background: $navy-3; + } + .card--astar, + .container--other-networks { + box-shadow: 0px 3px 8px 0px rgba(0, 0, 0, 0.8); + border: 1px solid $navy-3; + } +} diff --git a/src/components/header/styles/modal-network.scss b/src/components/header/styles/modal-network.scss deleted file mode 100644 index b8950cab6..000000000 --- a/src/components/header/styles/modal-network.scss +++ /dev/null @@ -1,181 +0,0 @@ -@import 'src/css/quasar.variables.scss'; -@import 'src/css/utils.scss'; - -.wrapper--modal-network { - display: flex; - flex-direction: column; - justify-content: center; - padding-top: 24px; - padding-bottom: 100px; -} - -.list--network { - overflow-y: auto; -} - -.class-radio { - display: flex; - align-items: center; - border-radius: 6px; - min-height: rem(56); - font-weight: 700; - font-size: 16px; - line-height: 18px; - color: $navy-1; - margin: 0 auto; - padding: 16px; -} -.class-radio-off { - cursor: pointer; - border: 1px solid transparent; - transition: all 0.3s ease 0s; - border: 1px solid $navy-1; -} - -.class-radio-off:hover { - border: 1px solid $astar-blue; -} - -.class-radio-on { - border: 2px solid $astar-blue; -} - -.box-input--endpoint { - border-radius: 50%; - border: 4px solid $gray-4; -} - -.input--endpoint[type='radio'] { - width: rem(10); - height: rem(10); - border-radius: 50%; - box-shadow: 0 0 0 2px white; - -webkit-appearance: none; - cursor: pointer; - display: flex; - align-items: center; - &:checked { - border: 1px solid white; - background-color: $gray-4; - } -} - -.wrapper--select-network { - position: relative; - flex-grow: 1; -} - -.wrapper--network-detail { - flex: 1 1 0%; - text-align: left; - - .box--radio-network { - display: flex; - padding-left: rem(8); - align-items: center; - } - .box--display-name { - margin-left: rem(8); - } -} - -.class-radio--custom-network { - height: 120px; -} - -.ip-input { - width: 98%; - height: 48px; - text-align: center; - margin-top: 16px; - margin-left: 8px; - border-radius: 6px; - border: 1px solid $navy-1; - padding: 0 16px; - text-align: left; - font-weight: 400; - font-size: 14px; - color: $navy-1; -} - -.ip-input:focus { - outline: none; -} - -.wrapper__row--button { - display: flex; - justify-content: center; - margin-bottom: 16px; -} - -.btn--connect { - width: 100%; - font-size: 20px; - font-weight: 600; - border-radius: 30px; - height: 52px; - margin-top: 24px; -} - -.box--endpoints { - padding-left: 8px; - margin-top: 16px; - display: flex; - column-gap: 24px; -} - -.column--options { - display: flex; - flex-direction: column; - row-gap: 9.6px; -} - -.column--network-option { - display: flex; - align-items: center; - column-gap: 8px; - cursor: pointer; -} - -.button--network-column { - width: 100%; - margin-top: 16px; -} - -.body--dark { - .class-radio { - color: #fff; - } - - .class-radio-off { - border: 1px solid $gray-3; - } - - .ip--network { - box-shadow: 0 0 0 0.5px white; - - &:checked { - border: 3px solid $gray-5; - } - } - - .ip-input { - background: $body-bg-dark; - border: 1px solid $gray-3; - color: $gray-1; - } - - .box-input--endpoint { - border: 0px solid transparent; - } - - .input--endpoint[type='radio'] { - width: rem(16); - height: rem(16); - box-shadow: 0 0 0 1.5px white; - &:checked { - border: 3px solid $gray-5; - background-color: white; - } - } -} diff --git a/src/components/header/styles/network-wallet-tab.scss b/src/components/header/styles/network-wallet-tab.scss new file mode 100644 index 000000000..a1f872dd9 --- /dev/null +++ b/src/components/header/styles/network-wallet-tab.scss @@ -0,0 +1,55 @@ +@import 'src/css/quasar.variables.scss'; + +.box--tab { + display: flex; + justify-content: center; + height: 38px; + width: 240px; +} + +.selected-tab { + color: $navy-1; + border-bottom: 3px solid $blue; + transition: all 0.3s ease 0s; + width: 100px; + font-weight: 700; +} + +.unselected-tab { + cursor: pointer; + border-bottom: 1px solid transparent; + transition: all 0.3s ease 0s; + width: 100px; +} + +.text--title-tab { + font-size: 20px; + font-weight: 800px; + color: rgba(89, 99, 129, 1); +} + +.text--title-tab-selected { + font-size: 20px; + font-weight: 800px; +} + +.row--tab { + display: flex; + width: 260px; + @media (min-width: $md) { + width: 300px; + justify-content: center; + justify-content: flex-start; + } +} + +.row--mode-tab { + display: flex; + column-gap: 16px; +} + +.body--dark { + .text--title-tab-selected { + color: $gray-1; + } +} diff --git a/src/components/header/styles/modal-account.scss b/src/components/header/styles/select-account.scss similarity index 85% rename from src/components/header/styles/modal-account.scss rename to src/components/header/styles/select-account.scss index dbb4cd797..d8f03b584 100644 --- a/src/components/header/styles/modal-account.scss +++ b/src/components/header/styles/select-account.scss @@ -1,9 +1,26 @@ @import 'src/css/quasar.variables.scss'; @import 'src/css/utils.scss'; -.wrapper--select-network { - position: relative; - flex-grow: 1; +.row--back { + text-align: left; + color: $gray-4; + font-weight: 500; + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 24px; + @media (min-width: $lg) { + margin-top: -10px; + } +} +.button--back { + border: 1px solid $gray-4; + border-radius: 100%; + &:hover { + transition: all 0.3s ease 0s; + color: $astar-blue; + border: 1px solid $astar-blue; + } } .list--account { @@ -20,6 +37,7 @@ .text--is-ledger { font-weight: 600; + font-size: 13px; color: $gray-5; } @@ -60,7 +78,6 @@ display: flex; flex-direction: column; justify-content: center; - padding-top: 24px; } .class-radio { @@ -72,7 +89,7 @@ line-height: 18px; color: $gray-5; margin: 0 auto; - padding: 24px 16px; + padding: 24px; cursor: pointer; } @@ -95,8 +112,8 @@ } .radio-btn { - width: 18px !important; - margin-right: 18px !important; + width: 16px !important; + margin-right: 16px !important; } .icons { @@ -110,7 +127,7 @@ column-gap: 24px; @media (min-width: $sm) { display: grid; - grid-template-columns: 220px auto; + grid-template-columns: 170px auto; } } @@ -247,12 +264,21 @@ margin-top: 24px; } +.wrapper--select-signatory { + margin-bottom: 24px; + width: 100%; +} + .body--dark { .class-radio { color: #fff; } .class-radio-off { - border: 1px solid $gray-3; + border: 1px solid $navy-3; + } + + .row--back { + color: $gray-3; } .text--is-ledger { diff --git a/src/components/header/styles/modal-connect-wallet.scss b/src/components/header/styles/select-wallet.scss similarity index 79% rename from src/components/header/styles/modal-connect-wallet.scss rename to src/components/header/styles/select-wallet.scss index 6e1d7204b..a0d5c89b8 100644 --- a/src/components/header/styles/modal-connect-wallet.scss +++ b/src/components/header/styles/select-wallet.scss @@ -4,15 +4,12 @@ display: flex; flex-direction: column; justify-content: center; - padding-top: 38px; - padding-bottom: 20px; row-gap: 32px; } .title--account-type { - font-weight: 800; - font-size: 16px; - line-height: 16px; + font-weight: 600; + font-size: 14px; color: $gray-5; text-align: left; margin-bottom: 16px; @@ -22,31 +19,34 @@ } .wrapper--wallets { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 10px; + display: flex; + flex-wrap: wrap; + gap: 8px; + padding: 8px; + @media (min-width: $sm) { + padding: 0px; + } } .box__row--wallet { - width: 100%; + width: 78px; + height: 88px; + font-weight: 600; + font-size: 12px; display: flex; flex-direction: column; - row-gap: 12px; align-items: center; - border-radius: 6px; - font-weight: 600; - font-size: 14px; + justify-content: center; + row-gap: 8px; + border-radius: 16px; color: $gray-5; cursor: pointer; - padding: 16px; - padding-left: 24px; - margin: 0 auto; - border: 1px solid $navy-1; + box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.08); + border: 1px solid rgba(230, 233, 238, 1); - @media (min-width: 500px) { - flex-direction: row; - font-size: 16px; - column-gap: 8px; + @media (min-width: $sm) { + width: 104px; + height: 104px; } &:hover { @@ -150,6 +150,7 @@ } .box__row--wallet { color: $gray-1; - border: 1px solid $gray-3; + border: 1px solid $navy-3; + box-shadow: 0px 3px 8px 0px rgba(0, 0, 0, 0.8); } } diff --git a/src/components/sidenav/SidebarDesktop.vue b/src/components/sidenav/SidebarDesktop.vue index f379ff317..6792e9158 100644 --- a/src/components/sidenav/SidebarDesktop.vue +++ b/src/components/sidenav/SidebarDesktop.vue @@ -60,6 +60,7 @@ { const { SELECTED_ADDRESS, IS_LEDGER } = LOCAL_STORAGE; - const modalConnectWallet = ref(false); const modalAccountSelect = ref(false); const modalPolkasafeSelect = ref(false); const modalAccountUnificationSelect = ref(false); @@ -71,27 +70,21 @@ export const useConnectWallet = () => { } }); - const setCloseModal = (): void => { - modalName.value = ''; - }; - const openSelectModal = (): void => { modalName.value = WalletModalOption.SelectWallet; return; }; + const setModalPolkasafeSelect = (result: boolean): void => { + modalPolkasafeSelect.value = result; + }; + const openPolkasafeModal = (): void => { modalName.value = WalletModalOption.Polkasafe; modalPolkasafeSelect.value = true; return; }; - const openAccountUnificationModal = (): void => { - modalName.value = WalletModalOption.AccountUnification; - modalAccountUnificationSelect.value = true; - return; - }; - const initializeWalletAccount = () => { const account = localStorage.getItem(SELECTED_ADDRESS); if (!account) { @@ -106,9 +99,11 @@ export const useConnectWallet = () => { const loadEvmWallet = async ({ ss58, currentWallet, + isSetupNetwork, }: { ss58?: string; currentWallet: SupportWallet; + isSetupNetwork: boolean; }): Promise => { const setCurrentEcdsaAccount = (address: string) => { const ethereumAddr = checkSumEvmAddress(address); @@ -140,7 +135,7 @@ export const useConnectWallet = () => { // Memo: Do not change the network for the Bridge page if (currentRouter.value.name !== 'Bridge') { - await setupNetwork({ network: chainId, provider }); + isSetupNetwork && (await setupNetwork({ network: chainId, provider })); } // If SubWallet return empty evm accounts, it required to switch to evm network and will request accounts again. @@ -158,7 +153,7 @@ export const useConnectWallet = () => { } }; - const setEvmWallet = async (wallet: SupportWallet): Promise => { + const setEvmWallet = async (wallet: SupportWallet, isSetupNetwork = true): Promise => { selectedWallet.value = wallet; let isEvmWalletAvailable = false; @@ -181,7 +176,7 @@ export const useConnectWallet = () => { } const ss58 = currentEcdsaAccount.value.ss58 ?? ''; - await loadEvmWallet({ ss58, currentWallet: wallet }); + await loadEvmWallet({ ss58, currentWallet: wallet, isSetupNetwork }); }; const setWallet = (wallet: SupportWallet): void => { @@ -229,11 +224,16 @@ export const useConnectWallet = () => { return; } if (hasProperty(supportEvmWalletObj, wallet)) { - setEvmWallet(wallet); + // Memo: no need to switch network before the page is refreshed + setEvmWallet(wallet, false); return; } }; + const setModalAccountSelect = (result: boolean): void => { + modalAccountSelect.value = result; + }; + const selectLoginWallet = async (): Promise => { const lookupWallet = castMobileSource(modalName.value); if (SubstrateWallets.find((it) => it === lookupWallet)) { @@ -267,7 +267,12 @@ export const useConnectWallet = () => { const address = localStorage.getItem(SELECTED_ADDRESS); const wallet = localStorage.getItem(LOCAL_STORAGE.SELECTED_WALLET); - if (currentRouter.value === undefined || !address || !isConnectedNetwork.value) { + if ( + currentRouter.value === undefined || + !address || + !isConnectedNetwork.value || + currentAccount.value + ) { return; } @@ -288,10 +293,6 @@ export const useConnectWallet = () => { } }; - const changeAccount = async (): Promise => { - modalAccountSelect.value = true; - }; - watchEffect(() => { initializeWalletAccount(); }); @@ -351,17 +352,9 @@ export const useConnectWallet = () => { watch([currentNetworkChain], handleCheckLedgerEnvironment); - // Memo: triggered after users (who haven't connected to wallet) have clicked 'Connect Wallet' button on dApp staking page - window.addEventListener(WalletModalOption.SelectWallet, openSelectModal); - - onUnmounted(() => { - window.removeEventListener(WalletModalOption.SelectWallet, openSelectModal); - }); - return { WalletModalOption, currentNetworkStatus, - modalConnectWallet, currentAccount, currentAccountName, modalName, @@ -373,12 +366,11 @@ export const useConnectWallet = () => { isEthWallet, modalAccountUnificationSelect, openSelectModal, - setCloseModal, setWalletModal, disconnectAccount, - changeAccount, connectEthereumWallet, openPolkasafeModal, - openAccountUnificationModal, + setModalAccountSelect, + setModalPolkasafeSelect, }; }; diff --git a/src/i18n/en-US/index.ts b/src/i18n/en-US/index.ts index a9e500b99..7a4a25bfe 100644 --- a/src/i18n/en-US/index.ts +++ b/src/i18n/en-US/index.ts @@ -149,19 +149,36 @@ export default { comingsoon: 'Something ink!redible coming soon', }, drawer: { + network: 'Network', + wallet: 'Wallet', endpoint: 'Endpoint', viaEndpoint: 'via {value}', - lightClientWarning: 'Connecting via Light client is in beta. Use at your own risk.', + lightClientWarning: 'Light client is in beta. Use at your own risk.', shibuyaTakes20mins: 'It might take more than 20 mins to connect to Shibuya via Light client', takeLongerTimeToConnect: 'It might take a longer time to load data from chains', takeLongerTimeToSend: 'It might take a longer time or fail in sending transactions', zkNetworkTip: 'Please connect to EVM wallets first', + astarL1: 'Astar (L1)', + astarZkL2: 'Astar zkEVM(L2)', + shidenNetwork: 'Shiden Network', + astarTestnet: 'Astar Testnet', + zkTestnet: 'zkEVM Testnet', + advanced: 'Advanced', + localNetwork: 'Local Network', + customNetwork: 'Custom Network', + otherNetworks: 'Other networks', + selectWallet: 'Select Wallet', + changeNetwork: 'Change Network', + welcomeCard: { + title: 'Welcome to {network} Network', + text: 'Select a Network and Connect Your Wallet!', + }, }, wallet: { connectWallet: 'Connect Wallet', select: 'Please select a wallet to connect to this portal', - nativeAccount: 'Native Accounts', - evmAccount: 'EVM Accounts', + nativeWallets: 'Native Wallets', + evmWallets: 'EVM Wallets', multisigAccount: 'Multisig Accounts', accountUnification: 'Account Unification', math: { @@ -237,6 +254,7 @@ export default { "You'll need to install {value} to continue. Once you have it installed, go ahead and refresh this page.", install: 'Install', learn: 'Learn', + installSubstrateConnect: 'Install Substrate-connect', }, topMetric: { build2earn: 'Build2Earn', diff --git a/src/i18n/es/index.ts b/src/i18n/es/index.ts index 6b0f6950e..350ed2165 100644 --- a/src/i18n/es/index.ts +++ b/src/i18n/es/index.ts @@ -157,8 +157,8 @@ export default { wallet: { connectWallet: 'Conectar billetera', select: 'Por favor, selecciona una billetera para conectarse a este Portal', - nativeAccount: 'Cuentas nativas', - evmAccount: 'Cuentas EVM', + nativeWallets: 'Cuentas nativas', + evmWallets: 'Cuentas EVM', multisigAccount: 'Cuentas multisig', accountUnification: 'Unificación de cuentas', math: { diff --git a/src/i18n/fr/index.ts b/src/i18n/fr/index.ts index b699f5f80..c073756ad 100644 --- a/src/i18n/fr/index.ts +++ b/src/i18n/fr/index.ts @@ -160,8 +160,8 @@ export default { wallet: { connectWallet: 'Connecter le portefeuille', select: 'Veuillez sélectionner un portefeuille pour vous connecter à ce portail', - nativeAccount: 'Comptes natifs', - evmAccount: 'Comptes EVM', + nativeWallets: 'Comptes natifs', + evmWallets: 'Comptes EVM', multisigAccount: 'Comptes multi-signatures', accountUnification: "Unification d'un compte", math: { diff --git a/src/i18n/it/index.ts b/src/i18n/it/index.ts index 4d249d641..649493b85 100644 --- a/src/i18n/it/index.ts +++ b/src/i18n/it/index.ts @@ -113,8 +113,8 @@ export default { wallet: { connectWallet: 'Connetti wallet', select: 'Seleziona un wallet per connetterti al portale', - nativeAccount: 'Account Nativi', - evmAccount: 'Account EVM', + nativeWallets: 'Account Nativi', + evmWallets: 'Account EVM', math: { supportsNetwork: 'Math Wallet supporta solo la rete Shiden', switchNetwork: diff --git a/src/i18n/ja/index.ts b/src/i18n/ja/index.ts index 52d602d17..19289a5d2 100644 --- a/src/i18n/ja/index.ts +++ b/src/i18n/ja/index.ts @@ -157,8 +157,8 @@ export default { wallet: { connectWallet: 'ウォレットを接続', select: 'このポータルに接続するウォレットを選択してください。', - nativeAccount: 'Native アカウント', - evmAccount: 'EVM アカウント', + nativeWallets: 'Native アカウント', + evmWallets: 'EVM アカウント', multisigAccount: 'マルチシグ アカウント', accountUnification: 'Account Unification', math: { diff --git a/src/i18n/kr/index.ts b/src/i18n/kr/index.ts index 6a5672fe3..498766dec 100644 --- a/src/i18n/kr/index.ts +++ b/src/i18n/kr/index.ts @@ -112,8 +112,8 @@ export default { wallet: { connectWallet: '지갑 연결', select: '포털 연결을 위한 지갑을 선택해 주십시오', - nativeAccount: '네이티브 계정', - evmAccount: 'EVM 계정', + nativeWallets: '네이티브 계정', + evmWallets: 'EVM 계정', math: { supportsNetwork: '매쓰 월렛은 샤이든 네트워크만 지원합니다', switchNetwork: diff --git a/src/i18n/pt/index.ts b/src/i18n/pt/index.ts index 8743a7801..e9b478373 100644 --- a/src/i18n/pt/index.ts +++ b/src/i18n/pt/index.ts @@ -149,8 +149,8 @@ export default { wallet: { connectWallet: 'Conectar Carteira', select: 'Selecione uma carteira para se conectar ao portal', - nativeAccount: 'Contas Nativas', - evmAccount: 'Contas EVM', + nativeWallets: 'Contas Nativas', + evmWallets: 'Contas EVM', multisigAccount: 'Contas Multisig', accountUnification: 'Conta Unificada', math: { diff --git a/tests/assets-transactions-evm.spec.ts b/tests/assets-transactions-evm.spec.ts index 816bb2fad..4a9506793 100644 --- a/tests/assets-transactions-evm.spec.ts +++ b/tests/assets-transactions-evm.spec.ts @@ -34,8 +34,8 @@ test.afterAll(async () => { test.beforeEach(async ({ page, context }: { page: Page; context: BrowserContext }) => { await page.goto('/astar/assets'); await clickDisclaimerButton(page); - const closeButton = page.getByText('Polkadot.js'); - await closeButton.click(); + const walletTab = page.getByTestId('select-wallet-tab'); + await walletTab.click(); await closePolkadotWelcomePopup(context); await createAccount(page, ALICE_ACCOUNT_SEED, ALICE_ACCOUNT_NAME); diff --git a/tests/chopsticks/moonbeam.yml b/tests/chopsticks/moonbeam.yml index 2a46cbc5e..cd80a9107 100644 --- a/tests/chopsticks/moonbeam.yml +++ b/tests/chopsticks/moonbeam.yml @@ -1,5 +1,6 @@ endpoint: wss://wss.api.moonbeam.network mock-signature-host: true +allow-unresolved-imports: true block: ${env.MOONBEAM_BLOCK_NUMBER} db: ./db.sqlite port: 9945 @@ -7,21 +8,16 @@ port: 9945 import-storage: System: Account: - - - - - - "0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac" + - - - '0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac' - providers: 1 data: - free: "100000000000000000000000" + free: '100000000000000000000000' TechCommitteeCollective: - Members: ["0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac"] + Members: ['0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac'] CouncilCollective: - Members: ["0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac"] + Members: ['0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac'] TreasuryCouncilCollective: - Members: ["0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac"] + Members: ['0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac'] AuthorFilter: EligibleRatio: 100 EligibleCount: 100 - - - diff --git a/tests/chopsticks/polkadot.yml b/tests/chopsticks/polkadot.yml index d61b19239..d145c98fe 100644 --- a/tests/chopsticks/polkadot.yml +++ b/tests/chopsticks/polkadot.yml @@ -1,4 +1,6 @@ -endpoint: wss://rpc.polkadot.io +endpoint: + - wss://rpc.ibp.network/polkadot + - wss://polkadot-rpc.dwell mock-signature-host: true block: ${env.POLKADOT_BLOCK_NUMBER} db: ./db.sqlite @@ -8,22 +10,10 @@ port: 9950 import-storage: System: Account: - - - - - - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY + - - - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY - providers: 1 data: free: '10000000000000000000' - Council: - Members: [5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY] - PhragmenElection: - Members: - - who: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY - stake: 1000000000000 - deposit: 1000000000000 - TechnicalCommittee: - Members: [5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY] - TechnicalMembership: - Members: [5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY] + ParasDisputes: $removePrefix: ['disputes'] # those can makes block building super slow diff --git a/tests/common.ts b/tests/common.ts index aca178c0c..cf9e70086 100644 --- a/tests/common.ts +++ b/tests/common.ts @@ -1,6 +1,7 @@ import { BrowserContext, Page } from '@playwright/test'; import { getWindow } from './fixtures'; import { NODE_ENDPOINT } from './common-api'; +import { wait } from '@astar-network/astar-sdk-core'; export const ALICE_ACCOUNT_SEED = 'bottom drive obey lake curtain smoke basket hold race lonely fit walk//Alice'; @@ -26,15 +27,19 @@ export const createAccount = async (page: Page, seed: string, name: string): Pro }; export const connectToNetwork = async (page: Page): Promise => { - await page.locator('.btn--network').click(); + await page.locator('.icon--expand').click(); await page.getByText('Custom Network').click(); - await page.getByPlaceholder('IP Address / Domain').click(); - await page.getByPlaceholder('IP Address / Domain').fill(NODE_ENDPOINT); - await page.getByRole('button', { name: 'Connect', exact: true }).click(); + await page.locator('.ip-input').click(); + await page.locator('.ip-input').fill(NODE_ENDPOINT); + await page.getByRole('button', { name: 'Change Network', exact: true }).click(); + // Memo: to wait for page reloading + await page.waitForNavigation(); }; export const selectAccount = async (page: Page, accountName: string): Promise => { - await page.getByText('Polkadot.js').click(); + const walletTab = page.getByTestId('select-wallet-tab'); + await walletTab.click(); + await page.getByTestId('Polkadot.js').click(); await page.getByText(`${accountName} (extension)`).click(); await page.getByRole('button', { name: 'Connect', exact: true }).click(); }; @@ -58,14 +63,9 @@ export const selectMultisigAccount = async ( ): Promise => { // Memo: wallet name is defined in PolkaSafe portal const walletName = 'Test multisig'; - await page.locator('.btn--account').click(); - // Todo: update Astar-UI to add a class name at the back button on the modal - await page - .locator( - '.wrapper--modal-drawer > .animate__animated > .modal-content > .row-title-close > .column-right-buttons > div > svg' - ) - .first() - .click(); + await page.getByTestId('btn-account').click(); + const walletTab = page.getByTestId('select-wallet-tab'); + await walletTab.click(); await page.getByText('PolkaSafe').click(); await page.locator('.row--input').click(); await page.getByText('Bob').click(); diff --git a/tests/test_specs/assets-transactions.spec.ts b/tests/test_specs/assets-transactions.spec.ts index 38cd4e7eb..9e515f2cd 100644 --- a/tests/test_specs/assets-transactions.spec.ts +++ b/tests/test_specs/assets-transactions.spec.ts @@ -19,6 +19,7 @@ import { } from '../common'; import { ApiPromise } from '@polkadot/api'; import { chainDecimals, getApi, getBalance } from '../common-api'; +import { wait } from '@astar-network/astar-sdk-core'; let api: ApiPromise; test.beforeAll(async () => { @@ -33,8 +34,10 @@ test.beforeEach(async ({ page, context }: { page: Page; context: BrowserContext // TODO consider moving this into beforeAll await page.goto('/astar/assets'); await clickDisclaimerButton(page); - const closeButton = page.getByText('Polkadot.js'); - await closeButton.click(); + const walletTab = page.getByTestId('select-wallet-tab'); + await walletTab.click(); + const polkadotJsButton = page.getByText('Polkadot.js'); + await polkadotJsButton.click(); await closePolkadotWelcomePopup(context); await createAccount(page, ALICE_ACCOUNT_SEED, ALICE_ACCOUNT_NAME); @@ -142,9 +145,6 @@ test.describe('account panel', () => { page: Page; }) => { await page.goto('/astar/assets/transfer?token=astr&from=astar&to=acala&mode=xcm'); - await connectToNetwork(page); - await selectAccount(page, ALICE_ACCOUNT_NAME); - const baseTransferAmount = BigInt(5); const lowerTransferAmount = BigInt(3); const aliceBalanceBeforeTransaction = await getBalance(ALICE_ADDRESS); diff --git a/tests/test_specs/assets.spec.ts b/tests/test_specs/assets.spec.ts index d09e05147..44d50068d 100644 --- a/tests/test_specs/assets.spec.ts +++ b/tests/test_specs/assets.spec.ts @@ -14,6 +14,7 @@ import { } from '../common'; import { getApi } from '../common-api'; import { test } from '../fixtures'; +import { wait } from '@astar-network/astar-sdk-core'; let api: ApiPromise; test.beforeAll(async () => { @@ -28,8 +29,11 @@ test.beforeEach(async ({ page, context }) => { // TODO consider moving this into beforeAll await page.goto('/astar/assets'); await clickDisclaimerButton(page); - const closeButton = page.getByText('Polkadot.js'); - await closeButton.click(); + const walletTab = page.getByTestId('select-wallet-tab'); + await walletTab.click(); + + const polkadotJsButton = page.getByTestId('Polkadot.js'); + await polkadotJsButton.click(); await closePolkadotWelcomePopup(context); await createAccount(page, ALICE_ACCOUNT_SEED, ALICE_ACCOUNT_NAME); diff --git a/tests/test_specs/dappstaking-register.spec.ts b/tests/test_specs/dappstaking-register.spec.ts index 7b832cdda..e0676800f 100644 --- a/tests/test_specs/dappstaking-register.spec.ts +++ b/tests/test_specs/dappstaking-register.spec.ts @@ -11,6 +11,7 @@ import { } from '../common'; import { ApiPromise } from '@polkadot/api'; import { getApi } from '../common-api'; +import { wait } from '@astar-network/astar-sdk-core'; let api: ApiPromise; test.beforeAll(async () => { @@ -26,9 +27,10 @@ test.beforeEach(async ({ page, context }: { page: Page; context: BrowserContext // Close disclaimer popup await clickDisclaimerButton(page); - - const polkadotButton = page.getByText('Polkadot.js'); - await polkadotButton.click(); + const walletTab = page.getByTestId('select-wallet-tab'); + await walletTab.click(); + const polkadotJsButton = page.getByText('Polkadot.js'); + await polkadotJsButton.click(); await closePolkadotWelcomePopup(context); await createAccount(page, BOB_ACCOUNT_SEED, BOB_ACCOUNT_NAME); diff --git a/tests/test_specs/dappstaking-transactions.spec.ts b/tests/test_specs/dappstaking-transactions.spec.ts index dba46f15b..54fe05352 100644 --- a/tests/test_specs/dappstaking-transactions.spec.ts +++ b/tests/test_specs/dappstaking-transactions.spec.ts @@ -22,6 +22,7 @@ import { setRewardDestination, } from '../common-api'; import { ethers } from 'ethers'; +import { wait } from '@astar-network/astar-sdk-core'; // Memo: Astar Core Contributors const TEST_DAPP_ADDRESS = '0xa602d021da61ec4cc44dedbd4e3090a05c97a435'; @@ -54,8 +55,10 @@ test.beforeEach(async ({ page, context }) => { // Close disclaimer popup await clickDisclaimerButton(page); - const closeButton = page.getByText('Polkadot.js'); - await closeButton.click(); + const walletTab = page.getByTestId('select-wallet-tab'); + await walletTab.click(); + const polkadotJsButton = page.getByText('Polkadot.js'); + await polkadotJsButton.click(); await closePolkadotWelcomePopup(context); await createAccount(page, ALICE_ACCOUNT_SEED, ALICE_ACCOUNT_NAME); diff --git a/tests/test_specs/dashboard.spec.ts b/tests/test_specs/dashboard.spec.ts index a6d328579..688f19cb8 100644 --- a/tests/test_specs/dashboard.spec.ts +++ b/tests/test_specs/dashboard.spec.ts @@ -7,8 +7,10 @@ import { clickDisclaimerButton } from 'src/modules/playwright'; test.beforeEach(async ({ page }) => { await page.goto('/astar/dashboard'); await clickDisclaimerButton(page); - const closeButton = page.getByText('Polkadot.js'); - await closeButton.click(); + const walletTab = page.getByTestId('select-wallet-tab'); + await walletTab.click(); + const polkadotJsButton = page.getByText('Polkadot.js'); + await polkadotJsButton.click(); }); test.describe('on dashboard screen', () => { diff --git a/tests/test_specs/header.spec.ts b/tests/test_specs/header.spec.ts index d87a22f5d..1a4a345c8 100644 --- a/tests/test_specs/header.spec.ts +++ b/tests/test_specs/header.spec.ts @@ -15,6 +15,8 @@ test.describe('init screen', () => { }); test('has wallet installation UI', async ({ page }) => { await clickDisclaimerButton(page); + const walletTab = page.getByTestId('select-wallet-tab'); + await walletTab.click(); const clover = page.locator('text=Clover'); await clover.click(); const boxNoExtension = page.locator('.box--no-extension'); diff --git a/tests/test_specs/reserve-transfer-asset-xcm.spec.ts b/tests/test_specs/reserve-transfer-asset-xcm.spec.ts index 4ad81ca22..138e4e0d4 100644 --- a/tests/test_specs/reserve-transfer-asset-xcm.spec.ts +++ b/tests/test_specs/reserve-transfer-asset-xcm.spec.ts @@ -13,6 +13,7 @@ import { } from '../common'; import { ApiPromise } from '@polkadot/api'; import { chainDecimals, getApi, getBalance, roundUpAndTruncateBigInt } from '../common-api'; +import { wait } from '@astar-network/astar-sdk-core'; let api: ApiPromise; test.beforeAll(async () => { @@ -27,14 +28,18 @@ test.beforeEach(async ({ page, context }) => { // TODO consider moving this into beforeAll await page.goto('/astar/assets'); await clickDisclaimerButton(page); - const closeButton = page.getByText('Polkadot.js'); - await closeButton.click(); + const walletTab = page.getByTestId('select-wallet-tab'); + await walletTab.click(); + const polkadotJsButton = page.getByText('Polkadot.js'); + await polkadotJsButton.click(); await closePolkadotWelcomePopup(context); await createAccount(page, ALICE_ACCOUNT_SEED, ALICE_ACCOUNT_NAME); await page.goto('/astar/assets'); await connectToNetwork(page); await selectAccount(page, ALICE_ACCOUNT_NAME); + // Memo: wait for the page to be reloaded + await page.waitForNavigation(); }); test.describe('Test case: XCM006', () => { diff --git a/tests/test_specs/sidebar.spec.ts b/tests/test_specs/sidebar.spec.ts index b1cdce04d..dc627e4e9 100644 --- a/tests/test_specs/sidebar.spec.ts +++ b/tests/test_specs/sidebar.spec.ts @@ -7,7 +7,7 @@ test.beforeEach(async ({ page }) => { test.describe('init screen', () => { test('click the dapp staking page', async ({ page }) => { - const dappStakingButton = page.locator('a:has-text("dApp Staking")'); + const dappStakingButton = page.getByTestId('dapp-staking'); await dappStakingButton.click(); await expect(page).toHaveURL('astar/dapp-staking/discover'); }); diff --git a/tsconfig.json b/tsconfig.json index 00c8e0ea2..5be03d1c0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,5 +6,5 @@ "experimentalDecorators": true, "jsx": "preserve" }, - "exclude": ["**/node_modules/**", "**/tests/polkadot_wallet/**", "**/tests/metamask_wallet/**", "**/src-pwa/**", "**/src-ssr/**", "**/rpc-tests/**", "**/playwright-report/**", "**/dist/**", "**/.quasar/**", "**/.github/**"] + "exclude": ["**/node_modules/**", "**/.quasar/**", "**/dist/**", "**/playwright-report/**", "**/rpc-tests/**", "**/src-pwa/**", "**/src-ssr/**", "**/test-results/**", "**/tests/polkadot_wallet/**", "**/tests/metamask_wallet/**"] } diff --git a/yarn.lock b/yarn.lock index 8e07adabe..32020bfb4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42,10 +42,10 @@ ethers "^5.6.9" web3 "^1.7.3" -"@astar-network/astar-ui@^0.0.138": - version "0.0.138" - resolved "https://registry.yarnpkg.com/@astar-network/astar-ui/-/astar-ui-0.0.138.tgz#63450a4ae72d1a31b148d796e404255d71cec797" - integrity sha512-5v0zYXUd8PCHb5dX7t1ZraG5gSZHgUoshY2J4RMmrlGRvnAyH5bCKbmQsJS1s5O6gnepFrXnr3ezBWvNkwIWIw== +"@astar-network/astar-ui@^0.0.140": + version "0.0.140" + resolved "https://registry.yarnpkg.com/@astar-network/astar-ui/-/astar-ui-0.0.140.tgz#e127a8358bd4b692eb323c8e38653d208dcd311a" + integrity sha512-cwcoUNnbLfGnUBN/ku84pXZCi9Ob3xFdQmbMa9oveZCys0+b7Kik3FM7NOylraTPdYNa+oYFv+GV5reCGC6V/Q== dependencies: "@iconify-prerendered/vue-ic" "^0.21.1672653513" vue "^3.2.23" @@ -527,16 +527,16 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9" integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ== -"@babel/parser@^7.20.15", "@babel/parser@^7.21.3": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55" - integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ== - "@babel/parser@^7.22.15", "@babel/parser@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== +"@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" @@ -4458,13 +4458,14 @@ estree-walker "^2.0.2" source-map "^0.6.1" -"@vue/compiler-core@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128" - integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== +"@vue/compiler-core@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.15.tgz#be20d1bbe19626052500b48969302cb6f396d36e" + integrity sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw== dependencies: - "@babel/parser" "^7.21.3" - "@vue/shared" "3.3.4" + "@babel/parser" "^7.23.6" + "@vue/shared" "3.4.15" + entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.0.2" @@ -4484,13 +4485,13 @@ "@vue/compiler-core" "3.2.37" "@vue/shared" "3.2.37" -"@vue/compiler-dom@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151" - integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== +"@vue/compiler-dom@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz#753f5ed55f78d33dff04701fad4d76ff0cf81ee5" + integrity sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ== dependencies: - "@vue/compiler-core" "3.3.4" - "@vue/shared" "3.3.4" + "@vue/compiler-core" "3.4.15" + "@vue/shared" "3.4.15" "@vue/compiler-sfc@3.2.37": version "3.2.37" @@ -4508,20 +4509,19 @@ postcss "^8.1.10" source-map "^0.6.1" -"@vue/compiler-sfc@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df" - integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== - dependencies: - "@babel/parser" "^7.20.15" - "@vue/compiler-core" "3.3.4" - "@vue/compiler-dom" "3.3.4" - "@vue/compiler-ssr" "3.3.4" - "@vue/reactivity-transform" "3.3.4" - "@vue/shared" "3.3.4" +"@vue/compiler-sfc@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz#4e5811e681955fcec886cebbec483f6ae463a64b" + integrity sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA== + dependencies: + "@babel/parser" "^7.23.6" + "@vue/compiler-core" "3.4.15" + "@vue/compiler-dom" "3.4.15" + "@vue/compiler-ssr" "3.4.15" + "@vue/shared" "3.4.15" estree-walker "^2.0.2" - magic-string "^0.30.0" - postcss "^8.1.10" + magic-string "^0.30.5" + postcss "^8.4.33" source-map-js "^1.0.2" "@vue/compiler-sfc@^3.0.0": @@ -4556,13 +4556,13 @@ "@vue/compiler-dom" "3.2.37" "@vue/shared" "3.2.37" -"@vue/compiler-ssr@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777" - integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== +"@vue/compiler-ssr@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz#a910a5b89ba4f0a776e40b63d69bdae2f50616cf" + integrity sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw== dependencies: - "@vue/compiler-dom" "3.3.4" - "@vue/shared" "3.3.4" + "@vue/compiler-dom" "3.4.15" + "@vue/shared" "3.4.15" "@vue/devtools-api@^6.0.0-beta.11": version "6.0.0-beta.20.1" @@ -4585,17 +4585,6 @@ estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity-transform@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929" - integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== - dependencies: - "@babel/parser" "^7.20.15" - "@vue/compiler-core" "3.3.4" - "@vue/shared" "3.3.4" - estree-walker "^2.0.2" - magic-string "^0.30.0" - "@vue/reactivity@3.2.37": version "3.2.37" resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.37.tgz#5bc3847ac58828e2b78526e08219e0a1089f8848" @@ -4603,12 +4592,12 @@ dependencies: "@vue/shared" "3.2.37" -"@vue/reactivity@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253" - integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ== +"@vue/reactivity@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.15.tgz#ad9d9b83f5398d2e8660ad5cfc0f171e7679a9a1" + integrity sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w== dependencies: - "@vue/shared" "3.3.4" + "@vue/shared" "3.4.15" "@vue/ref-transform@3.2.22": version "3.2.22" @@ -4629,13 +4618,13 @@ "@vue/reactivity" "3.2.37" "@vue/shared" "3.2.37" -"@vue/runtime-core@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1" - integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA== +"@vue/runtime-core@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.15.tgz#f81e2fd2108ea41a6d5c61c2462b11dfb754fdf0" + integrity sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw== dependencies: - "@vue/reactivity" "3.3.4" - "@vue/shared" "3.3.4" + "@vue/reactivity" "3.4.15" + "@vue/shared" "3.4.15" "@vue/runtime-dom@3.2.37": version "3.2.37" @@ -4646,14 +4635,14 @@ "@vue/shared" "3.2.37" csstype "^2.6.8" -"@vue/runtime-dom@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566" - integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ== +"@vue/runtime-dom@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz#108ef86aa7334ead5d6b9c56a7d93679e1e45406" + integrity sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw== dependencies: - "@vue/runtime-core" "3.3.4" - "@vue/shared" "3.3.4" - csstype "^3.1.1" + "@vue/runtime-core" "3.4.15" + "@vue/shared" "3.4.15" + csstype "^3.1.3" "@vue/server-renderer@3.2.37": version "3.2.37" @@ -4663,13 +4652,13 @@ "@vue/compiler-ssr" "3.2.37" "@vue/shared" "3.2.37" -"@vue/server-renderer@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c" - integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ== +"@vue/server-renderer@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.15.tgz#34438f998e6f6370fac78883a75efe136631957f" + integrity sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw== dependencies: - "@vue/compiler-ssr" "3.3.4" - "@vue/shared" "3.3.4" + "@vue/compiler-ssr" "3.4.15" + "@vue/shared" "3.4.15" "@vue/shared@3.2.22": version "3.2.22" @@ -4681,10 +4670,10 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.37.tgz#8e6adc3f2759af52f0e85863dfb0b711ecc5c702" integrity sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw== -"@vue/shared@3.3.4": - version "3.3.4" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" - integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== +"@vue/shared@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.15.tgz#e7d2ea050c667480cb5e1a6df2ac13bcd03a8f30" + integrity sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g== "@vue/vue3-jest@^29.0.0": version "29.2.4" @@ -7000,10 +6989,10 @@ csstype@^2.6.8: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda" integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA== -csstype@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== +csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== d@1, d@^1.0.1: version "1.0.1" @@ -7551,7 +7540,7 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.4.0: +entities@^4.4.0, entities@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== @@ -11339,10 +11328,10 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" -magic-string@^0.30.0: - version "0.30.2" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.2.tgz#dcf04aad3d0d1314bc743d076c50feb29b3c7aca" - integrity sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug== +magic-string@^0.30.5: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -12003,6 +11992,11 @@ nanoid@^3.3.6: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -13484,6 +13478,15 @@ postcss@^8.4.17, postcss@^8.4.19, postcss@^8.4.4, postcss@^8.4.6: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.33: + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + prebuild-install@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" @@ -16306,15 +16309,15 @@ vue@^3.0.0: "@vue/shared" "3.2.37" vue@^3.2.23: - version "3.3.4" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6" - integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw== - dependencies: - "@vue/compiler-dom" "3.3.4" - "@vue/compiler-sfc" "3.3.4" - "@vue/runtime-dom" "3.3.4" - "@vue/server-renderer" "3.3.4" - "@vue/shared" "3.3.4" + version "3.4.15" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.15.tgz#91f979844ffca9239dff622ba4c79c5d5524b88c" + integrity sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ== + dependencies: + "@vue/compiler-dom" "3.4.15" + "@vue/compiler-sfc" "3.4.15" + "@vue/runtime-dom" "3.4.15" + "@vue/server-renderer" "3.4.15" + "@vue/shared" "3.4.15" vuex@^4.0.1: version "4.0.2"