From f9d9d31834af72595fcf2bae1713477a3c12158d Mon Sep 17 00:00:00 2001 From: Ezra Sowden-Guzman Date: Thu, 4 Jan 2024 16:58:34 -0500 Subject: [PATCH 01/20] move auth option around --- src/pages/home/EVMLoginButtons.vue | 45 ++++++++++++++---------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/src/pages/home/EVMLoginButtons.vue b/src/pages/home/EVMLoginButtons.vue index c833b229..ea3f8345 100644 --- a/src/pages/home/EVMLoginButtons.vue +++ b/src/pages/home/EVMLoginButtons.vue @@ -178,45 +178,45 @@ export default defineComponent({
From d215403b8144d38fd02a7579ca26918a9aa34903 Mon Sep 17 00:00:00 2001 From: Ezra Sowden-Guzman Date: Thu, 4 Jan 2024 17:15:56 -0500 Subject: [PATCH 02/20] update fathom tracking, add brave tracking --- src/antelope/chains/EVMChainSettings.ts | 2 +- src/antelope/chains/NativeChainSettings.ts | 2 +- src/antelope/chains/chain-constants.ts | 24 ++++++------ .../chains/evm/telos-evm-testnet/index.ts | 9 ++--- src/antelope/chains/evm/telos-evm/index.ts | 9 ++--- src/antelope/types/ChainSettings.ts | 2 +- .../authenticators/InjectedProviderAuth.ts | 39 +++++++++---------- .../wallets/authenticators/OreIdAuth.ts | 28 +++++-------- .../authenticators/WalletConnectAuth.ts | 38 +++++++----------- 9 files changed, 64 insertions(+), 89 deletions(-) diff --git a/src/antelope/chains/EVMChainSettings.ts b/src/antelope/chains/EVMChainSettings.ts index 3f5e974b..514534af 100644 --- a/src/antelope/chains/EVMChainSettings.ts +++ b/src/antelope/chains/EVMChainSettings.ts @@ -294,7 +294,7 @@ export default abstract class EVMChainSettings implements ChainSettings { abstract getSystemTokens(): TokenClass[]; abstract getIndexerApiEndpoint(): string; abstract hasIndexerSupport(): boolean; - abstract trackAnalyticsEvent(params: Record): void; + abstract trackAnalyticsEvent(eventName: string): void; async getApy(): Promise { const response = await this.api.get('apy/evm'); diff --git a/src/antelope/chains/NativeChainSettings.ts b/src/antelope/chains/NativeChainSettings.ts index d5b05ed2..8c71c31a 100644 --- a/src/antelope/chains/NativeChainSettings.ts +++ b/src/antelope/chains/NativeChainSettings.ts @@ -149,7 +149,7 @@ export default abstract class NativeChainSettings implements ChainSettings { abstract getMapDisplay(): boolean; abstract getTheme(): Theme; abstract getFiltersSupported(prop: string): boolean; - abstract trackAnalyticsEvent(params: Record): void; + abstract trackAnalyticsEvent(eventName: string): void; /** * Retrieves the list of IDs for the important tokens. diff --git a/src/antelope/chains/chain-constants.ts b/src/antelope/chains/chain-constants.ts index f77fabd8..53f0cd56 100644 --- a/src/antelope/chains/chain-constants.ts +++ b/src/antelope/chains/chain-constants.ts @@ -3,17 +3,19 @@ import { NETWORK as telosTestnetEvmNetwork } from 'src/antelope/chains/evm/telos export const TELOS_CHAIN_IDS = ['40', '41']; export const TELOS_NETWORK_NAMES = [telosEvmNetwork, telosTestnetEvmNetwork]; -export const TELOS_ANALYTICS_EVENT_IDS = { - loginStarted: 'JXIYBP1S', - loginSuccessful: 'HIP11SFR', - loginSuccessfulMetamask: 'ABGMND23', - loginFailedMetamask: 'ZFGE6TFS', - loginSuccessfulSafepal: 'LKCBKDU2', - loginFailedSafepal: '6PSIWGNV', - loginSuccessfulOreId: 'MSXMDDNK', - loginFailedOreId: 'UFX3JYRJ', - loginFailedWalletConnect: '9V4IV1BV', - loginSuccessfulWalletConnect: '2EG2OR3H', +export const TELOS_ANALYTICS_EVENT_NAMES = { + loginStarted: 'Login Started', + loginSuccessful: 'Login Successful', + loginSuccessfulMetamask: 'Login Successful - Metamask', + loginFailedMetamask: 'Login Failed - Metamask', + loginSuccessfulSafepal: 'Login Successful - Safepal', + loginFailedSafepal: 'Login Failed - Safepal', + loginSuccessfulOreId: 'Login Successful - OreId', + loginFailedOreId: 'Login Failed - OreId', + loginFailedWalletConnect: 'Login Failed - WalletConnect', + loginSuccessfulWalletConnect: 'Login Successful - WalletConnect', + loginSuccessfulBrave: 'Login Successful - Brave', + loginFailedBrave: 'Login Failed - Brave', }; export const ZERO_ADDRESS = '0x'.concat('0'.repeat(40)); diff --git a/src/antelope/chains/evm/telos-evm-testnet/index.ts b/src/antelope/chains/evm/telos-evm-testnet/index.ts index 9f029730..52fd2b9b 100644 --- a/src/antelope/chains/evm/telos-evm-testnet/index.ts +++ b/src/antelope/chains/evm/telos-evm-testnet/index.ts @@ -59,7 +59,7 @@ const NETWORK_EVM_ENDPOINT = 'https://testnet.telos.net'; const INDEXER_ENDPOINT = 'https://api.testnet.teloscan.io'; const CONTRACTS_BUCKET = 'https://verified-evm-contracts-testnet.s3.amazonaws.com'; -declare const fathom: { trackGoal: (eventId: string, value: 0) => void }; +declare const fathom: { trackEvent: (eventName: string) => void }; export default class TelosEVMTestnet extends EVMChainSettings { isTestnet() { @@ -164,13 +164,12 @@ export default class TelosEVMTestnet extends EVMChainSettings { return true; } - trackAnalyticsEvent(params: Record): void { + trackAnalyticsEvent(eventName: string): void { if (typeof fathom === 'undefined') { - console.warn(`Failed to track event with ID ${params.id}: Fathom Analytics not loaded`); + console.warn(`Failed to track event with name '${eventName}': Fathom Analytics not loaded`); return; } - const id = params.id as string; - fathom.trackGoal(id, 0); + fathom.trackEvent(eventName); } } diff --git a/src/antelope/chains/evm/telos-evm/index.ts b/src/antelope/chains/evm/telos-evm/index.ts index 91b1a853..a0e455f9 100644 --- a/src/antelope/chains/evm/telos-evm/index.ts +++ b/src/antelope/chains/evm/telos-evm/index.ts @@ -59,7 +59,7 @@ const NETWORK_EVM_ENDPOINT = 'https://mainnet.telos.net'; const INDEXER_ENDPOINT = 'https://api.teloscan.io'; const CONTRACTS_BUCKET = 'https://verified-evm-contracts.s3.amazonaws.com'; -declare const fathom: { trackGoal: (eventId: string, value: 0) => void }; +declare const fathom: { trackEvent: (eventName: string) => void }; export default class TelosEVMTestnet extends EVMChainSettings { getNetwork(): string { @@ -160,13 +160,12 @@ export default class TelosEVMTestnet extends EVMChainSettings { return true; } - trackAnalyticsEvent(params: Record): void { + trackAnalyticsEvent(eventName: string): void { if (typeof fathom === 'undefined') { - console.warn(`Failed to track event with ID ${params.id}: Fathom Analytics not loaded`); + console.warn(`Failed to track event with name '${eventName}': Fathom Analytics not loaded`); return; } - const id = params.id as string; - fathom.trackGoal(id, 0); + fathom.trackEvent(eventName); } } diff --git a/src/antelope/types/ChainSettings.ts b/src/antelope/types/ChainSettings.ts index 36a08146..62c33e7f 100644 --- a/src/antelope/types/ChainSettings.ts +++ b/src/antelope/types/ChainSettings.ts @@ -26,6 +26,6 @@ export interface ChainSettings { getSystemTokens(): TokenClass[]; getNftsForAccount(address: string, filter: IndexerAccountNftsFilter): Promise; getNftsForCollection(contract: string, filter: IndexerCollectionNftsFilter): Promise; - trackAnalyticsEvent(params: Record): void; + trackAnalyticsEvent(eventName: string): void; getApy(): Promise; } diff --git a/src/antelope/wallets/authenticators/InjectedProviderAuth.ts b/src/antelope/wallets/authenticators/InjectedProviderAuth.ts index 4439ec14..8c90380f 100644 --- a/src/antelope/wallets/authenticators/InjectedProviderAuth.ts +++ b/src/antelope/wallets/authenticators/InjectedProviderAuth.ts @@ -12,8 +12,9 @@ import { addressString, } from 'src/antelope/types'; import { EVMAuthenticator } from 'src/antelope/wallets'; -import { TELOS_NETWORK_NAMES, TELOS_ANALYTICS_EVENT_IDS } from 'src/antelope/chains/chain-constants'; +import { TELOS_NETWORK_NAMES, TELOS_ANALYTICS_EVENT_NAMES } from 'src/antelope/chains/chain-constants'; import { MetamaskAuthName, SafePalAuthName } from 'src/antelope/wallets'; +import { BraveAuthName } from 'src/antelope/wallets/authenticators/BraveAuth'; export abstract class InjectedProviderAuth extends EVMAuthenticator { onReady = new BehaviorSubject(false); @@ -32,31 +33,27 @@ export abstract class InjectedProviderAuth extends EVMAuthenticator { useFeedbackStore().setLoading(`${this.getName()}.login`); this.trace('login', 'trackAnalyticsEvent -> login started'); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginStarted }, - ); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginStarted); const response = await super.login(network).then((res) => { if (TELOS_NETWORK_NAMES.includes(network)) { - let successfulLoginEventId = ''; + let successfulLoginEventName = ''; if (authName === MetamaskAuthName) { - successfulLoginEventId = TELOS_ANALYTICS_EVENT_IDS.loginSuccessfulMetamask; + successfulLoginEventName = TELOS_ANALYTICS_EVENT_NAMES.loginSuccessfulMetamask; } else if (authName === SafePalAuthName) { - successfulLoginEventId = TELOS_ANALYTICS_EVENT_IDS.loginSuccessfulSafepal; + successfulLoginEventName = TELOS_ANALYTICS_EVENT_NAMES.loginSuccessfulSafepal; + } else if (authName === BraveAuthName) { + successfulLoginEventName = TELOS_ANALYTICS_EVENT_NAMES.loginSuccessfulBrave; } - if (successfulLoginEventId) { - this.trace('login', 'trackAnalyticsEvent -> login succeeded', authName, successfulLoginEventId); - chainSettings.trackAnalyticsEvent( - { id: successfulLoginEventId }, - ); + if (successfulLoginEventName) { + this.trace('login', 'trackAnalyticsEvent -> login succeeded', authName, successfulLoginEventName); + chainSettings.trackAnalyticsEvent(successfulLoginEventName); } - this.trace('login', 'trackAnalyticsEvent -> generic login succeeded', TELOS_ANALYTICS_EVENT_IDS.loginSuccessful); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginSuccessful }, - ); + this.trace('login', 'trackAnalyticsEvent -> generic login succeeded', authName, TELOS_ANALYTICS_EVENT_NAMES.loginSuccessful); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginSuccessful); } return res; @@ -69,16 +66,16 @@ export abstract class InjectedProviderAuth extends EVMAuthenticator { let failedLoginEventId = ''; if (authName === MetamaskAuthName) { - failedLoginEventId = TELOS_ANALYTICS_EVENT_IDS.loginFailedMetamask; + failedLoginEventId = TELOS_ANALYTICS_EVENT_NAMES.loginFailedMetamask; } else if (authName === SafePalAuthName) { - failedLoginEventId = TELOS_ANALYTICS_EVENT_IDS.loginFailedSafepal; + failedLoginEventId = TELOS_ANALYTICS_EVENT_NAMES.loginFailedSafepal; + } else if (authName === BraveAuthName) { + failedLoginEventId = TELOS_ANALYTICS_EVENT_NAMES.loginFailedBrave; } if (failedLoginEventId) { this.trace('login', 'trackAnalyticsEvent -> login failed', authName, failedLoginEventId); - chainSettings.trackAnalyticsEvent( - { id: failedLoginEventId }, - ); + chainSettings.trackAnalyticsEvent(failedLoginEventId); } } }).finally(() => { diff --git a/src/antelope/wallets/authenticators/OreIdAuth.ts b/src/antelope/wallets/authenticators/OreIdAuth.ts index 15dff203..3dc365a9 100644 --- a/src/antelope/wallets/authenticators/OreIdAuth.ts +++ b/src/antelope/wallets/authenticators/OreIdAuth.ts @@ -14,7 +14,7 @@ import { import { useFeedbackStore } from 'src/antelope/stores/feedback'; import { useChainStore } from 'src/antelope/stores/chain'; import { RpcEndpoint } from 'universal-authenticator-library'; -import { TELOS_ANALYTICS_EVENT_IDS } from 'src/antelope/chains/chain-constants'; +import { TELOS_ANALYTICS_EVENT_NAMES } from 'src/antelope/chains/chain-constants'; const name = 'OreId'; export const OreIdAuthName = name; @@ -64,14 +64,10 @@ export class OreIdAuth extends EVMAuthenticator { this.trace('login', network); const chainSettings = this.getChainSettings(); const trackSuccessfulLogin = () => { - this.trace('login', 'trackAnalyticsEvent -> generic login succeeded', TELOS_ANALYTICS_EVENT_IDS.loginSuccessful); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginSuccessful }, - ); - this.trace('login', 'trackAnalyticsEvent -> login succeeded', this.getName(), TELOS_ANALYTICS_EVENT_IDS.loginSuccessfulOreId); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginSuccessfulOreId }, - ); + this.trace('login', 'trackAnalyticsEvent -> generic login succeeded', TELOS_ANALYTICS_EVENT_NAMES.loginSuccessful); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginSuccessful); + this.trace('login', 'trackAnalyticsEvent -> login succeeded', this.getName(), TELOS_ANALYTICS_EVENT_NAMES.loginSuccessfulOreId); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginSuccessfulOreId); }; useFeedbackStore().setLoading(`${this.getName()}.login`); @@ -93,18 +89,14 @@ export class OreIdAuth extends EVMAuthenticator { this.trace('login', 'userChainAccount', this.userChainAccount); // track the login start for auto-login procceess this.trace('login', 'trackAnalyticsEvent -> login started'); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginStarted }, - ); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginStarted); // then track the successful login trackSuccessfulLogin(); return chainAccount; } this.trace('login', 'trackAnalyticsEvent -> login started'); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginStarted }, - ); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginStarted); // launch the login flow await oreId.popup.auth({ provider: this.provider as AuthProvider }); @@ -118,10 +110,8 @@ export class OreIdAuth extends EVMAuthenticator { const appName = this.options.appName; const networkName = useChainStore().getNetworkSettings(network).getDisplay(); - this.trace('login', 'trackAnalyticsEvent -> login failed', this.getName(), TELOS_ANALYTICS_EVENT_IDS.loginFailedOreId); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginFailedOreId }, - ); + this.trace('login', 'trackAnalyticsEvent -> login failed', this.getName(), TELOS_ANALYTICS_EVENT_NAMES.loginFailedOreId); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginFailedOreId); throw new AntelopeError('antelope.wallets.error_oreid_no_chain_account', { networkName, diff --git a/src/antelope/wallets/authenticators/WalletConnectAuth.ts b/src/antelope/wallets/authenticators/WalletConnectAuth.ts index 5010b55c..5bdb6de7 100644 --- a/src/antelope/wallets/authenticators/WalletConnectAuth.ts +++ b/src/antelope/wallets/authenticators/WalletConnectAuth.ts @@ -17,7 +17,7 @@ import { } from '@web3modal/ethereum'; import { Web3Modal, Web3ModalConfig } from '@web3modal/html'; import { BigNumber, ethers } from 'ethers'; -import { TELOS_ANALYTICS_EVENT_IDS } from 'src/antelope/chains/chain-constants'; +import { TELOS_ANALYTICS_EVENT_NAMES } from 'src/antelope/chains/chain-constants'; import { useChainStore } from 'src/antelope/stores/chain'; import { useContractStore } from 'src/antelope/stores/contract'; import { useFeedbackStore } from 'src/antelope/stores/feedback'; @@ -106,19 +106,15 @@ export class WalletConnectAuth extends EVMAuthenticator { 'login', 'trackAnalyticsEvent -> login successful', 'WalletConnect', - TELOS_ANALYTICS_EVENT_IDS.loginSuccessfulWalletConnect, - ); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginSuccessfulWalletConnect }, + TELOS_ANALYTICS_EVENT_NAMES.loginSuccessfulWalletConnect, ); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginSuccessfulWalletConnect); this.trace( 'login', 'trackAnalyticsEvent -> generic login successful', - TELOS_ANALYTICS_EVENT_IDS.loginSuccessful, - ); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginSuccessful }, + TELOS_ANALYTICS_EVENT_NAMES.loginSuccessful, ); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginSuccessful); return address; } catch (e) { @@ -128,12 +124,10 @@ export class WalletConnectAuth extends EVMAuthenticator { 'walletConnectLogin', 'trackAnalyticsEvent -> login failed', 'WalletConnect', - TELOS_ANALYTICS_EVENT_IDS.loginFailedWalletConnect, + TELOS_ANALYTICS_EVENT_NAMES.loginFailedWalletConnect, ); const chainSettings = this.getChainSettings(); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginFailedWalletConnect }, - ); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginFailedWalletConnect); throw new AntelopeError('antelope.evm.error_login'); } finally { useFeedbackStore().unsetLoading(`${this.getName()}.login`); @@ -152,11 +146,9 @@ export class WalletConnectAuth extends EVMAuthenticator { 'login', 'trackAnalyticsEvent -> login started', 'WalletConnect', - TELOS_ANALYTICS_EVENT_IDS.loginStarted, - ); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginStarted }, + TELOS_ANALYTICS_EVENT_NAMES.loginStarted, ); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginStarted); return this.walletConnectLogin(network); } else { return new Promise(async (resolve) => { @@ -170,11 +162,9 @@ export class WalletConnectAuth extends EVMAuthenticator { 'login', 'trackAnalyticsEvent -> login started', 'WalletConnect', - TELOS_ANALYTICS_EVENT_IDS.loginStarted, - ); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginStarted }, + TELOS_ANALYTICS_EVENT_NAMES.loginStarted, ); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginStarted); } if (newState.open === false) { @@ -185,11 +175,9 @@ export class WalletConnectAuth extends EVMAuthenticator { 'login', 'trackAnalyticsEvent -> login failed', 'WalletConnect', - TELOS_ANALYTICS_EVENT_IDS.loginFailedWalletConnect, - ); - chainSettings.trackAnalyticsEvent( - { id: TELOS_ANALYTICS_EVENT_IDS.loginFailedWalletConnect }, + TELOS_ANALYTICS_EVENT_NAMES.loginFailedWalletConnect, ); + chainSettings.trackAnalyticsEvent(TELOS_ANALYTICS_EVENT_NAMES.loginFailedWalletConnect); } // this prevents multiple subscribers from being attached to the web3Modal From bfe14280a11151406bb81ec2730cd08a2351fedf Mon Sep 17 00:00:00 2001 From: Ezra Sowden-Guzman Date: Thu, 4 Jan 2024 17:34:03 -0500 Subject: [PATCH 03/20] fix brave import --- src/antelope/wallets/authenticators/InjectedProviderAuth.ts | 3 +-- src/antelope/wallets/index.ts | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/antelope/wallets/authenticators/InjectedProviderAuth.ts b/src/antelope/wallets/authenticators/InjectedProviderAuth.ts index 8c90380f..94026a18 100644 --- a/src/antelope/wallets/authenticators/InjectedProviderAuth.ts +++ b/src/antelope/wallets/authenticators/InjectedProviderAuth.ts @@ -13,8 +13,7 @@ import { } from 'src/antelope/types'; import { EVMAuthenticator } from 'src/antelope/wallets'; import { TELOS_NETWORK_NAMES, TELOS_ANALYTICS_EVENT_NAMES } from 'src/antelope/chains/chain-constants'; -import { MetamaskAuthName, SafePalAuthName } from 'src/antelope/wallets'; -import { BraveAuthName } from 'src/antelope/wallets/authenticators/BraveAuth'; +import { BraveAuthName, MetamaskAuthName, SafePalAuthName } from 'src/antelope/wallets'; export abstract class InjectedProviderAuth extends EVMAuthenticator { onReady = new BehaviorSubject(false); diff --git a/src/antelope/wallets/index.ts b/src/antelope/wallets/index.ts index d09b2caf..3f42a76e 100644 --- a/src/antelope/wallets/index.ts +++ b/src/antelope/wallets/index.ts @@ -4,4 +4,5 @@ export * from 'src/antelope/wallets/authenticators/MetamaskAuth'; export * from 'src/antelope/wallets/authenticators/OreIdAuth'; export * from 'src/antelope/wallets/authenticators/WalletConnectAuth'; export * from 'src/antelope/wallets/authenticators/SafePalAuth'; +export * from 'src/antelope/wallets/authenticators/BraveAuth'; export * from 'src/antelope/wallets/AntelopeWallets'; From 4b28a89629e3969d89949d5af995d3bedff1d738 Mon Sep 17 00:00:00 2001 From: Ezra Sowden-Guzman Date: Thu, 4 Jan 2024 18:04:30 -0500 Subject: [PATCH 04/20] update home page styling --- src/pages/home/HomePage.vue | 45 +++++++++++++------------------------ 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/src/pages/home/HomePage.vue b/src/pages/home/HomePage.vue index 275e38fd..c9ca155d 100644 --- a/src/pages/home/HomePage.vue +++ b/src/pages/home/HomePage.vue @@ -137,8 +137,8 @@ onMounted(() => { .c-home { position: relative; background: var(--site-gradient); - min-height: 100vh; - display: flex; + width: 100%; + padding-top: 64px; &__page-container { // override inline style of unknown origin (do not delete) @@ -146,32 +146,28 @@ onMounted(() => { } &__container { - flex-grow: 1; - display: flex; - flex-direction: column; - padding-top: 32px; - align-items: stretch; - justify-content: space-between; + min-height: calc(100svh - 64px); + position: relative; + padding-bottom: 88px; } &__logo-container { - flex-grow: 1; - align-self: center; display: flex; - flex-direction: column; - justify-content: space-evenly; + justify-content: center; + align-items: center; + margin-bottom: 48px; } &__logo { - width: 220px; + width: 180px; } &__button-container { - align-self: center; border-radius: 4px; padding: 24px; background-color: rgba(white, 0.1); max-width: 320px; + margin: 0 auto 48px; } &__network-toggle-container { @@ -216,7 +212,6 @@ onMounted(() => { justify-content: center; gap: 4px; - margin-top: 24px; color: white; } @@ -230,26 +225,18 @@ onMounted(() => { } } - // guarantees wallet connect on top of footer &__footer { - position: relative; + position: absolute; + bottom: 0; } + &__connect-wallet { z-index: $z-index--connect-wallet-popup; } - @media only screen and (max-height: 850px) { - .c-home { - &__container{ - min-height: unset; - } - &__logo{ - margin-top: unset; - margin-bottom: 2rem; - } - &__button-container{ - margin-top: 2rem; - } + @include md-and-up { + &__logo-container { + margin-bottom: 128px; } } } From 5a534c9a64145f92662714ad055f2453de53fa28 Mon Sep 17 00:00:00 2001 From: Ezra Sowden-Guzman Date: Thu, 4 Jan 2024 18:26:19 -0500 Subject: [PATCH 05/20] update native login buttons styling --- src/pages/home/NativeLoginButton.vue | 78 ++++++++++++++++++---------- 1 file changed, 51 insertions(+), 27 deletions(-) diff --git a/src/pages/home/NativeLoginButton.vue b/src/pages/home/NativeLoginButton.vue index a5d3b8f8..33016431 100644 --- a/src/pages/home/NativeLoginButton.vue +++ b/src/pages/home/NativeLoginButton.vue @@ -230,36 +230,32 @@ export default defineComponent({ - + + From 29f573c649494c27e4ccfdf44f4129587a85f039 Mon Sep 17 00:00:00 2001 From: donnyquixotic Date: Mon, 8 Jan 2024 13:50:34 -0600 Subject: [PATCH 19/20] fix: update evm address message, notification style --- src/antelope/config/index.ts | 9 +++++++++ src/boot/antelope.ts | 1 + src/boot/errorHandling.js | 13 +++++++++++++ src/i18n/en-us/index.js | 3 ++- src/pages/native/balance/WithdrawEVM.vue | 2 +- 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/antelope/config/index.ts b/src/antelope/config/index.ts index 7bb5fe95..ed88bd52 100644 --- a/src/antelope/config/index.ts +++ b/src/antelope/config/index.ts @@ -40,6 +40,7 @@ export class AntelopeConfig { private __notify_success_copy_handler: () => void = alert; private __notify_failure_message_handler: (message: string, payload?: AntelopeErrorPayload) => void = alert; private __notify_failure_action_handler: (message: string, payload?: AntelopeErrorPayload) => void = alert; + private __notify_warning_action_handler: (message: string, payload?: AntelopeErrorPayload) => void = alert; private __notify_disconnected_handler: () => void = alert; private __notify_neutral_message_handler: (message: string) => (() => void) = () => (() => void 0); private __notify_remember_info_handler: (title: string, message: string | ComplexMessage[], payload: string, key: string) => (() => void) = () => (() => void 0); @@ -158,6 +159,10 @@ export class AntelopeConfig { return this.__notify_failure_action_handler; } + get notifyWarningWithAction() { + return this.__notify_warning_action_handler; + } + get notifyDisconnectedHandler() { return this.__notify_disconnected_handler; } @@ -228,6 +233,10 @@ export class AntelopeConfig { this.__notify_failure_action_handler = handler; } + public setNotifyWarningWithAction(handler: (message: string, payload?: AntelopeErrorPayload) => void) { + this.__notify_warning_action_handler = handler; + } + public setNotifyDisconnectedHandler(handler: () => void) { this.__notify_disconnected_handler = handler; } diff --git a/src/boot/antelope.ts b/src/boot/antelope.ts index bec36a4b..a42b2106 100644 --- a/src/boot/antelope.ts +++ b/src/boot/antelope.ts @@ -34,6 +34,7 @@ export default boot(({ app }) => { ant.config.setNotifySuccessCopyHandler(app.config.globalProperties.$notifySuccessCopy); ant.config.setNotifyFailureMessage(app.config.globalProperties.$notifyFailure); ant.config.setNotifyFailureWithAction(app.config.globalProperties.$notifyFailureWithAction); + ant.config.setNotifyWarningWithAction(app.config.globalProperties.$notifyWarningWithAction); ant.config.setNotifyDisconnectedHandler(app.config.globalProperties.$notifyDisconnected); ant.config.setNotifyNeutralMessageHandler(app.config.globalProperties.$notifyNeutralMessage); ant.config.setNotifyRememberInfoHandler(app.config.globalProperties.$notifyRememberInfo); diff --git a/src/boot/errorHandling.js b/src/boot/errorHandling.js index 79ae3957..c2c714c9 100644 --- a/src/boot/errorHandling.js +++ b/src/boot/errorHandling.js @@ -67,6 +67,7 @@ const crossIcon = require('src/assets/icon--cross.svg'); const infoIcon = require('src/assets/icon--info.svg'); const checkIcon = require('src/assets/icon--check.svg'); const discoIcon = require('src/assets/icon--disconnected.svg'); +const warningIcon = require('src/assets/icon--warning.svg'); const html = `
@@ -257,6 +258,16 @@ const notifyFailureWithAction = function(message, payload) { ); }; +const notifyWarningWithAction = function(message, payload) { + return notifyMessage.bind(this)( + 'error', + warningIcon, + this.$t('notification.warning_title').toUpperCase(), + message, + new NotificationAction(payload), + ); +}; + const notifyDisconnected = function() { return notifyMessage.bind(this)( 'error', @@ -331,6 +342,7 @@ export default boot(({ app, store }) => { app.config.globalProperties.$notifySuccessCopy = notifySuccessCopy.bind(store); app.config.globalProperties.$notifyFailure = notifyFailure.bind(store); app.config.globalProperties.$notifyFailureWithAction = notifyFailureWithAction.bind(store); + app.config.globalProperties.$notifyWarningWithAction = notifyWarningWithAction.bind(store); app.config.globalProperties.$notifyDisconnected = notifyDisconnected.bind(store); app.config.globalProperties.$notifyNeutralMessage = notifyNeutralMessage.bind(store); app.config.globalProperties.$notifyRememberInfo = notifyRememberInfo.bind(store); @@ -339,6 +351,7 @@ export default boot(({ app, store }) => { store['$notifySuccessCopy'] = app.config.globalProperties.$notifySuccessCopy; store['$notifyFailure'] = app.config.globalProperties.$notifyFailure; store['$notifyFailureWithAction'] = app.config.globalProperties.$notifyFailureWithAction; + store['$notifyWarningWithAction'] = app.config.globalProperties.$notifyWarningWithAction; store['$notifyDisconnected'] = app.config.globalProperties.$notifyDisconnected; store['$notifyNeutralMessage'] = app.config.globalProperties.$notifyNeutralMessage; store['$notifyRememberInfo'] = app.config.globalProperties.$notifyRememberInfo; diff --git a/src/i18n/en-us/index.js b/src/i18n/en-us/index.js index d771724f..a8802bc9 100644 --- a/src/i18n/en-us/index.js +++ b/src/i18n/en-us/index.js @@ -345,6 +345,7 @@ export default { neutral_message_updating_erc20_allowance: 'Updating {symbol} allowance for {spender}', neutral_message_updating_nft_allowance: 'Updating {tokenText} allowance for {operator}', dont_show_message_again: 'Don\'t show me this message again', + warning_title: 'Warning!', }, resources: { title: 'Network Resources', @@ -488,7 +489,7 @@ export default { dont_send_to_exchanges: 'DO NOT SEND TO EXCHANGE ADDRESS (e.g. KuCoin, Gate.io etc.). THIS ' + 'WILL RESULT IN A LOSS OF FUNDS. RATHER SEND TO YOUR OWN METAMASK ' + 'ADDRESS THEN TRANSFER TO THE EXCHANGE ADDRESS.', - evm_address_disclaimer: 'THIS ADDRESS IS ONLY FOR SENDING \'TLOS\' ON THE TELOS EVM. DO NOT SEND ANY OTHER TOKEN TO THIS ADDRESS. DO NOT SEND ANY TOKEN FROM ANOTHER NETWORK. THERE ARE NO PRIVATE KEYS AND FUNDS WILL BE LOST FOREVER. IF YOU HAVE ANY QUESTIONS, PLEASE ASK IN COMMUNITY CHAT BEFORE PROCEEDING.', + evm_address_disclaimer: 'THIS ADDRESS IS ONLY FOR SENDING \'TLOS\' ON THE TELOS EVM. DO NOT SEND ANY OTHER TOKEN TO THIS ADDRESS. DO NOT SEND ANY TOKEN FROM ANOTHER NETWORK. THERE ARE NO PRIVATE KEYS AND FUNDS WILL BE LOST FOREVER.', evm_disclaimer_confirmation: 'I Understand', create_evm_for: 'Create EVM address for {account}', created_evm_for: 'EVM address created for {account}', diff --git a/src/pages/native/balance/WithdrawEVM.vue b/src/pages/native/balance/WithdrawEVM.vue index 933f780a..5548caee 100644 --- a/src/pages/native/balance/WithdrawEVM.vue +++ b/src/pages/native/balance/WithdrawEVM.vue @@ -37,7 +37,7 @@ export default { }, displayEvmAddress() { - this.ant.config.notifyFailureWithAction(this.$t('components.evm_address_disclaimer'), { + this.ant.config.notifyWarningWithAction(this.$t('components.evm_address_disclaimer'), { label: this.ant.config.localizationHandler(this.$t('components.evm_disclaimer_confirmation')), handler: () => { // user confirms they understand the single use-case for the generated evm address From 6caf3141d38a8d430cf37b6bc31a1d4ee4210c97 Mon Sep 17 00:00:00 2001 From: donnyquixotic Date: Mon, 8 Jan 2024 14:16:21 -0600 Subject: [PATCH 20/20] fix: disabled withdraw state, address not found message --- src/i18n/en-us/index.js | 1 + src/pages/native/balance/DepositEVM.vue | 1 - src/pages/native/balance/WithdrawEVM.vue | 10 ++++++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/i18n/en-us/index.js b/src/i18n/en-us/index.js index a8802bc9..2f0e3cf7 100644 --- a/src/i18n/en-us/index.js +++ b/src/i18n/en-us/index.js @@ -489,6 +489,7 @@ export default { dont_send_to_exchanges: 'DO NOT SEND TO EXCHANGE ADDRESS (e.g. KuCoin, Gate.io etc.). THIS ' + 'WILL RESULT IN A LOSS OF FUNDS. RATHER SEND TO YOUR OWN METAMASK ' + 'ADDRESS THEN TRANSFER TO THE EXCHANGE ADDRESS.', + evm_address_not_found: 'No linked Telos EVM address found, click below to generate one.', evm_address_disclaimer: 'THIS ADDRESS IS ONLY FOR SENDING \'TLOS\' ON THE TELOS EVM. DO NOT SEND ANY OTHER TOKEN TO THIS ADDRESS. DO NOT SEND ANY TOKEN FROM ANOTHER NETWORK. THERE ARE NO PRIVATE KEYS AND FUNDS WILL BE LOST FOREVER.', evm_disclaimer_confirmation: 'I Understand', create_evm_for: 'Create EVM address for {account}', diff --git a/src/pages/native/balance/DepositEVM.vue b/src/pages/native/balance/DepositEVM.vue index 7c3818af..d3f7cd1d 100644 --- a/src/pages/native/balance/DepositEVM.vue +++ b/src/pages/native/balance/DepositEVM.vue @@ -1,6 +1,5 @@ @@ -167,8 +167,10 @@ export default {
- {{$t('components.address_not_exist')}} + {{$t('components.evm_address_not_found')}}
+
+
-
Max: {{ evmTLOSBalance }}
+
Max: {{ evmTLOSBalance || '0' }}