From ba55301cc84c2d1beb920b431072cbdf6f9490c8 Mon Sep 17 00:00:00 2001 From: Bobo Date: Tue, 24 Oct 2023 12:40:59 +0200 Subject: [PATCH] Account unification - avatar selection (#975) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * useNft hook * Select and display NFT avatar * Read avatar url * Avatar selection done * Removed Bluez url * Code cleanup and refactoring * Show avatar on unification overview * Fix for provider not set or invalid error (#970) * Fix for provider not set or invalid error * Don't use gas station on Shibuya * fix: disabled transaction speed ui for Shibuya EVM (#971) --------- Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> * Lockdrop logic removed (#954) * Lockdrop logic removed * more lockdrop removed (#957) * fix: fetch dApps staking data after changing accounts (#955) * fix: fetch staked dapps data for EVM wallets * fix: clean up * fix: position for page column * Account unification (#925) * Unification service skeleton * Started with unify account implementation * Unifiy account implemented - not working * It works * Error handling * Mapped accounts getter functions * Set identity logic (#931) * Create and update identity * Update identity works * NFT metadata fetch * Account unification batch call * Comment * Native asset transfer support for unified accounts (#938) * Native token transfer * Use unified SS50 for dApps staking * getIdentity fix * Update NFT repo to use Token API endpoints * Update test call * feat: added AccountUnification modal (#935) * feat: added AccountUnification modal * Add UI modals for account unification * refactor: ModalConnectWallet * Remove the wallet connect section on the user account modal * Add type * Add NFT select modal * Add unify accounts icon button on the asset page * Add dark theme, replace tailwind css to pure css * remove body tag from style * Replace rem to px * Add styles for mobile screens * Add static texts * Adjust styles * Update help * feat: implemented logic in the ‘account unification’ modal (#936) * feat: load the evm account from metamask * feat: checks the staking info * refactor: clean up * feat: added close modal in step 2 * feat: removed account name input * rollback: account name * feat: added XC20 tokens which are required to transfer to unified account * feat: updated 'accountName' logic * feat: added jazzicon in Step 3 * adjust class naming rule * clean up * test: refactor useAccountUnification.ts * fix: allow AU on local node * test: refactor useAccountUnification.ts (2) * test: refactor useAccountUnification.ts (3) * Fix media query * Use i18n * Add help texts using i18n --------- Co-authored-by: Ayumi Takahashi * Fix for reading staking data from UA (#942) * Fix for reading staking data from UA * Removed unnecessary store read * Account unification call refactoring * Adjust the checkbox position * UA logic integration (#943) * Basic integration implemented * Disable submit button on action * Rename from Step to AuStep * use i18n * add the emojis to i18 file * feat: transfer XC20 tokens to the unified SS58 account (#944) * feat: transfer XC20 tokens to unified SS58 account * feat: transfer XC20 tokens to unified SS58 account (2) * feat: added XCM tokens on shibuya * feat: added XCM tokens on shibuya (2) * refactor: clean up * fix: updated receiving faucet account * Accounts - show UA name and modal (#948) * fix: account unification modals (#953) * fix: connect MetaMask after users click connect button * fix: updated words * feat: added a check input for sending submit transaction * fix: words * fix: getMappedNativeAddress and getMappedEvmAddress functions * Fix for breaking changes on Shibuya (#958) * Moonfit added (#937) (#939) * Uplift to the latest Quasar version (#940) * feat: updated XCM with equilibrium to V3 (#946) * fix: let space wrap and height grow for cards in banner (#947) * let space wrap and height grow * minimum width added, aligned bottom * Remove lockdrop (#951) * hotfix: update the hotfix branch (#920) * fix: rollback * fix: update ci yml files * Lockdrop switch removed * Removed toggleEvmWalletSchema --------- Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> * fix: fetch dApps staking data after changing accounts (#955) * fix: fetch staked dapps data for EVM wallets * fix: clean up * fix: position for page column * Methods naming fix top match the latest runtime upgrade --------- Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> Co-authored-by: Gregory Luneau * Display unification costs (#959) * Display unification costs * Limit account length * fix: updated sending ERC20 tokens logic and displaying the destination balance for EVM address (considering deducting staked amount) * fix: odd space issue * Display and edit unified account (#963) * Display unified account details * Edit unified account * Cleanup * Update src/components/header/modals/account-unification/AuStep3.vue Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> --------- Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> --------- Co-authored-by: impelcrypto Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> Co-authored-by: Ayumi Takahashi Co-authored-by: Gregory Luneau * Fix for provider not set or invalid error (#970) * Fix for provider not set or invalid error * Don't use gas station on Shibuya * fix: disabled transaction speed ui for Shibuya EVM (#971) --------- Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> --------- Co-authored-by: Gregory Luneau Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> Co-authored-by: impelcrypto Co-authored-by: Ayumi Takahashi * feat: Add Metamask Astar Snap to native wallet options (#933) * add snap to native wallet options * Compilation errors fix * Fix for compilation errors fix * snap utils * no extra line * inject * extension listed * 3rd time is the charm * feat: updated UI logic for the MetaMask snap (#941) * fix: connect to metamask snap smoothly * fix: allow the snap only on Shibuya, moved snapUtils to the snap module * fix: updated loading animation * fix: display accounts after users add Astar and Polkadot Snap (#949) * fix: enable MetaMask snap only in dev mode (#952) * remove console logs * remove unused code * remove unused ethereum provider * Update ModalConnectWallet.vue * Update useAccount.ts * fix: enable snap in staging * fix: build error * using astar npm * correct snapId --------- Co-authored-by: Bobo Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> Co-authored-by: impelcrypto * Lockdrop logic removed (#954) * Lockdrop logic removed * more lockdrop removed (#957) * fix: fetch dApps staking data after changing accounts (#955) * fix: fetch staked dapps data for EVM wallets * fix: clean up * fix: position for page column * Account unification (#925) * Unification service skeleton * Started with unify account implementation * Unifiy account implemented - not working * It works * Error handling * Mapped accounts getter functions * Set identity logic (#931) * Create and update identity * Update identity works * NFT metadata fetch * Account unification batch call * Comment * Native asset transfer support for unified accounts (#938) * Native token transfer * Use unified SS50 for dApps staking * getIdentity fix * Update NFT repo to use Token API endpoints * Update test call * feat: added AccountUnification modal (#935) * feat: added AccountUnification modal * Add UI modals for account unification * refactor: ModalConnectWallet * Remove the wallet connect section on the user account modal * Add type * Add NFT select modal * Add unify accounts icon button on the asset page * Add dark theme, replace tailwind css to pure css * remove body tag from style * Replace rem to px * Add styles for mobile screens * Add static texts * Adjust styles * Update help * feat: implemented logic in the ‘account unification’ modal (#936) * feat: load the evm account from metamask * feat: checks the staking info * refactor: clean up * feat: added close modal in step 2 * feat: removed account name input * rollback: account name * feat: added XC20 tokens which are required to transfer to unified account * feat: updated 'accountName' logic * feat: added jazzicon in Step 3 * adjust class naming rule * clean up * test: refactor useAccountUnification.ts * fix: allow AU on local node * test: refactor useAccountUnification.ts (2) * test: refactor useAccountUnification.ts (3) * Fix media query * Use i18n * Add help texts using i18n --------- Co-authored-by: Ayumi Takahashi * Fix for reading staking data from UA (#942) * Fix for reading staking data from UA * Removed unnecessary store read * Account unification call refactoring * Adjust the checkbox position * UA logic integration (#943) * Basic integration implemented * Disable submit button on action * Rename from Step to AuStep * use i18n * add the emojis to i18 file * feat: transfer XC20 tokens to the unified SS58 account (#944) * feat: transfer XC20 tokens to unified SS58 account * feat: transfer XC20 tokens to unified SS58 account (2) * feat: added XCM tokens on shibuya * feat: added XCM tokens on shibuya (2) * refactor: clean up * fix: updated receiving faucet account * Accounts - show UA name and modal (#948) * fix: account unification modals (#953) * fix: connect MetaMask after users click connect button * fix: updated words * feat: added a check input for sending submit transaction * fix: words * fix: getMappedNativeAddress and getMappedEvmAddress functions * Fix for breaking changes on Shibuya (#958) * Moonfit added (#937) (#939) * Uplift to the latest Quasar version (#940) * feat: updated XCM with equilibrium to V3 (#946) * fix: let space wrap and height grow for cards in banner (#947) * let space wrap and height grow * minimum width added, aligned bottom * Remove lockdrop (#951) * hotfix: update the hotfix branch (#920) * fix: rollback * fix: update ci yml files * Lockdrop switch removed * Removed toggleEvmWalletSchema --------- Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> * fix: fetch dApps staking data after changing accounts (#955) * fix: fetch staked dapps data for EVM wallets * fix: clean up * fix: position for page column * Methods naming fix top match the latest runtime upgrade --------- Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> Co-authored-by: Gregory Luneau * Display unification costs (#959) * Display unification costs * Limit account length * fix: updated sending ERC20 tokens logic and displaying the destination balance for EVM address (considering deducting staked amount) * fix: odd space issue * Display and edit unified account (#963) * Display unified account details * Edit unified account * Cleanup * Update src/components/header/modals/account-unification/AuStep3.vue Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> --------- Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> --------- Co-authored-by: impelcrypto Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> Co-authored-by: Ayumi Takahashi Co-authored-by: Gregory Luneau * Fix for provider not set or invalid error (#970) * Fix for provider not set or invalid error * Don't use gas station on Shibuya * fix: disabled transaction speed ui for Shibuya EVM (#971) --------- Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> --------- Co-authored-by: Gregory Luneau Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> Co-authored-by: impelcrypto Co-authored-by: Ayumi Takahashi * feat: Add Metamask Astar Snap to native wallet options (#933) * add snap to native wallet options * Compilation errors fix * Fix for compilation errors fix * snap utils * no extra line * inject * extension listed * 3rd time is the charm * feat: updated UI logic for the MetaMask snap (#941) * fix: connect to metamask snap smoothly * fix: allow the snap only on Shibuya, moved snapUtils to the snap module * fix: updated loading animation * fix: display accounts after users add Astar and Polkadot Snap (#949) * fix: enable MetaMask snap only in dev mode (#952) * remove console logs * remove unused code * remove unused ethereum provider * Update ModalConnectWallet.vue * Update useAccount.ts * fix: enable snap in staging * fix: build error * using astar npm * correct snapId --------- Co-authored-by: Bobo Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> Co-authored-by: impelcrypto * Merge * Removed unused variables * Enum for unification steps * Bug fix for avatar broken image --------- Co-authored-by: impelcrypto <92044428+impelcrypto@users.noreply.github.com> Co-authored-by: Gregory Luneau Co-authored-by: impelcrypto Co-authored-by: Ayumi Takahashi --- src/components/assets/Account.vue | 11 +- .../header/modals/ModalAccountUnification.vue | 131 +++++++++++++----- .../modals/account-unification/AuIcon.vue | 32 +++++ .../modals/account-unification/AuStep1Evm.vue | 2 +- .../account-unification/AuStep1Native.vue | 2 +- .../modals/account-unification/AuStep2.vue | 2 +- .../modals/account-unification/AuStep3.vue | 36 +++-- .../modals/account-unification/AuStep5.vue | 17 ++- .../modals/account-unification/SelectNft.vue | 60 +++++--- .../account-unification/UserAccount.vue | 19 +-- .../styles/modal-account-unification.scss | 21 +-- src/hooks/useAccount.ts | 28 +++- src/hooks/useNft.ts | 38 +++++ src/hooks/wallet/useAccountUnification.ts | 35 ++++- src/i18n/en-US/index.ts | 5 +- src/store/general/state.ts | 3 + src/v2/models/Identity.ts | 8 ++ .../implementations/IdentityRepository.ts | 5 +- .../implementations/NftRepository.ts | 2 - src/v2/services/IIdentityService.ts | 5 + .../AccountUnificationService.ts | 26 +--- .../implementations/IdentityService.ts | 20 ++- 22 files changed, 375 insertions(+), 133 deletions(-) create mode 100644 src/components/header/modals/account-unification/AuIcon.vue create mode 100644 src/hooks/useNft.ts diff --git a/src/components/assets/Account.vue b/src/components/assets/Account.vue index 3528a3623..7877d7f2d 100644 --- a/src/components/assets/Account.vue +++ b/src/components/assets/Account.vue @@ -3,8 +3,13 @@