Skip to content

Commit

Permalink
Merge branch 'refactor/LW-10281-dApp-connector-screens-activity-detai…
Browse files Browse the repository at this point in the history
…ls' of github.com:input-output-hk/lace into refactor/LW-10281-dApp-connector-screens-activity-details
  • Loading branch information
tommayeliog committed May 8, 2024
2 parents c27f9bf + 33f3b24 commit 14c5c22
Show file tree
Hide file tree
Showing 21 changed files with 86 additions and 64 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/e2e-tests-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ env:
RUN: ${{ github.run_number }}
DISPLAY: ':99.0'
NODE_OPTIONS: --max-old-space-size=16384
BRANCH: ${{ github.ref_name }}

jobs:
tests:
Expand Down Expand Up @@ -77,6 +78,7 @@ jobs:
working-directory: './packages/e2e-tests/reports/allure/results'
run: |
echo "
branch=${BRANCH}
env=${NETWORK}
browser=${BROWSER}
tags=${TAGS}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/e2e-tests-win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ env:
BROWSER: ${{ github.event.inputs.browser || 'edge' }}
NETWORK: ${{ github.event.inputs.network || 'preprod' }}
RUN: ${{ github.run_number }}
BRANCH: ${{ github.ref_name }}

jobs:
build-extension-linux:
Expand Down Expand Up @@ -123,6 +124,7 @@ jobs:
working-directory: ./packages/e2e-tests/reports/allure/results
run: |
echo "
branch=${BRANCH}
env=${NETWORK}
browser=${BROWSER}
tags=${TAGS}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/smoke-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ env:
BROWSER: 'chrome'
RUN: ${{ github.run_number }}
DISPLAY: ':99.0'
BRANCH: ${{ github.ref_name }}

jobs:
smokeTests:
Expand Down Expand Up @@ -52,6 +53,7 @@ jobs:
working-directory: ./packages/e2e-tests/reports/allure/results
run: |
echo "
branch=${BRANCH}
browser=${BROWSER}
tags=${TAGS}
platform=Linux
Expand Down
6 changes: 3 additions & 3 deletions apps/browser-extension-wallet/.env.defaults
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,9 @@ CEXPLORER_URL_PREPROD=https://preprod.cexplorer.io
CEXPLORER_URL_SANCHONET=https://sancho.cexplorer.io

# ADA Handle URLs
ADA_HANDLE_URL_MAINNET=https://api.handle.me
ADA_HANDLE_URL_PREVIEW=https://preview.api.handle.me
ADA_HANDLE_URL_PREPROD=https://preprod.api.handle.me
ADA_HANDLE_URL_MAINNET=https://dev-mainnet.lw.iog.io/
ADA_HANDLE_URL_PREPROD=https://dev-preprod.lw.iog.io/
ADA_HANDLE_URL_PREVIEW=https://dev-preview.lw.iog.io/
ADA_HANDLE_URL_SANCHONET=

# Manifest.json
Expand Down
8 changes: 4 additions & 4 deletions apps/browser-extension-wallet/.env.developerpreview
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ SAVED_PRICE_DURATION_IN_MINUTES=720
# Feature Flags
USE_PASSWORD_VERIFICATION=false
USE_DAPP_CONNECTOR=true
USE_TREZOR_HW=true
USE_TREZOR_HW=false
USE_TOKEN_PRICING=true
USE_NFT_FOLDERS=true
USE_MULTI_CURRENCY=true
Expand Down Expand Up @@ -74,9 +74,9 @@ CEXPLORER_URL_PREPROD=https://preprod.cexplorer.io
CEXPLORER_URL_SANCHONET=https://sancho.cexplorer.io

# ADA Handle URLs
ADA_HANDLE_URL_MAINNET=https://api.handle.me
ADA_HANDLE_URL_PREVIEW=https://preview.api.handle.me
ADA_HANDLE_URL_PREPROD=https://preprod.api.handle.me
ADA_HANDLE_URL_MAINNET=https://dev-mainnet.lw.iog.io
ADA_HANDLE_URL_PREVIEW=https://dev-preview.lw.iog.io
ADA_HANDLE_URL_PREPROD=https://dev-preprod.lw.iog.io
ADA_HANDLE_URL_SANCHONET=

# Manifest.json
Expand Down
6 changes: 3 additions & 3 deletions apps/browser-extension-wallet/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ CEXPLORER_URL_PREPROD=https://preprod.cexplorer.io
CEXPLORER_URL_SANCHONET=https://sancho.cexplorer.io

# ADA Handle URLs
ADA_HANDLE_URL_MAINNET=https://api.handle.me
ADA_HANDLE_URL_PREVIEW=https://preview.api.handle.me
ADA_HANDLE_URL_PREPROD=https://preprod.api.handle.me
ADA_HANDLE_URL_MAINNET=https://dev-mainnet.lw.iog.io
ADA_HANDLE_URL_PREVIEW=https://dev-preview.lw.iog.io
ADA_HANDLE_URL_PREPROD=https://dev-preprod.lw.iog.io
ADA_HANDLE_URL_SANCHONET=

# Manifest.json
Expand Down
1 change: 0 additions & 1 deletion apps/browser-extension-wallet/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
"@cardano-sdk/wallet": "0.37.3",
"@cardano-sdk/web-extension": "0.27.3",
"@emurgo/cip14-js": "~3.0.1",
"@koralabs/handles-public-api-interfaces": "^1.6.6",
"@lace/cardano": "0.1.0",
"@lace/common": "0.1.0",
"@lace/core": "0.1.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Wallet } from '@lace/cardano';
export const ADA_HANDLE_POLICY_ID = Wallet.ADA_HANDLE_POLICY_ID;
export const isAdaHandleEnabled = process.env.USE_ADA_HANDLE === 'true';
export const HANDLE_SERVER_URLS: Record<Exclude<Cardano.NetworkMagics, Cardano.NetworkMagics.Sanchonet>, string> = {
[Cardano.NetworkMagics.Mainnet]: 'https://api.handle.me',
[Cardano.NetworkMagics.Preprod]: 'https://preprod.api.handle.me',
[Cardano.NetworkMagics.Preview]: 'https://preview.api.handle.me'
[Cardano.NetworkMagics.Mainnet]: process.env.ADA_HANDLE_URL_MAINNET,
[Cardano.NetworkMagics.Preprod]: process.env.ADA_HANDLE_URL_PREPROD,
[Cardano.NetworkMagics.Preview]: process.env.ADA_HANDLE_URL_PREVIEW
};
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,13 @@ export const SignTransaction = (): React.ReactElement => {
return !password;
}, [request, password]);

const onCancel = () => {
analytics.sendEventToPostHog(PostHogAction.SendTransactionConfirmationCancelClick, {
[TX_CREATION_TYPE_KEY]: TxCreationType.External
});
setPreviousView();
};

return (
<Layout title={undefined}>
<div className={styles.passwordContainer}>
Expand All @@ -82,12 +89,7 @@ export const SignTransaction = (): React.ReactElement => {
>
{t('dapp.confirm.btn.confirm')}
</Button>
<Button
onClick={setPreviousView}
color="secondary"
className={styles.actionBtn}
data-testid="sign-transaction-cancel"
>
<Button onClick={onCancel} color="secondary" className={styles.actionBtn} data-testid="sign-transaction-cancel">
{t('dapp.confirm.btn.cancel')}
</Button>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export const ConfirmTransaction = (): React.ReactElement => {
fetchTxType();
}, [req]);

const onConfirm = () => {
const onConfirmTransaction = () => {
analytics.sendEventToPostHog(PostHogAction.SendTransactionSummaryConfirmClick, {
[TX_CREATION_TYPE_KEY]: TxCreationType.External
});
Expand Down Expand Up @@ -85,6 +85,13 @@ export const ConfirmTransaction = (): React.ReactElement => {
};
}, [setSignTxRequest, setDappInfo]);

const onCancelTransaction = () => {
analytics.sendEventToPostHog(PostHogAction.SendTransactionSummaryCancelClick, {
[TX_CREATION_TYPE_KEY]: TxCreationType.External
});
disallowSignTx(true);
};

useOnBeforeUnload(disallowSignTx);

return (
Expand All @@ -97,7 +104,7 @@ export const ConfirmTransaction = (): React.ReactElement => {
{!confirmTransactionError && (
<div className={styles.actions}>
<Button
onClick={onConfirm}
onClick={onConfirmTransaction}
loading={isHardwareWallet && isConfirmingTx}
data-testid="dapp-transaction-confirm"
className={styles.actionBtn}
Expand All @@ -109,7 +116,7 @@ export const ConfirmTransaction = (): React.ReactElement => {
<Button
color="secondary"
data-testid="dapp-transaction-cancel"
onClick={() => disallowSignTx(true)}
onClick={onCancelTransaction}
className={styles.actionBtn}
>
{t('dapp.confirm.btn.cancel')}
Expand Down
14 changes: 8 additions & 6 deletions apps/browser-extension-wallet/src/hooks/useHandleResolver.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
import { useMemo } from 'react';
import { useWalletStore } from '@src/stores';
import { KoraLabsHandleProvider } from '@cardano-sdk/cardano-services-client';
import { ADA_HANDLE_POLICY_ID, HANDLE_SERVER_URLS } from '@src/features/ada-handle/config';
import { handleHttpProvider } from '@cardano-sdk/cardano-services-client';
import { HandleProvider } from '@cardano-sdk/core';
import { HANDLE_SERVER_URLS } from '@src/features/ada-handle/config';
import { logger } from '@lib/wallet-api-ui';

export const useHandleResolver = (): KoraLabsHandleProvider => {
export const useHandleResolver = (): HandleProvider => {
const {
currentChain: { networkMagic }
} = useWalletStore();

return useMemo(() => {
const serverUrl = HANDLE_SERVER_URLS[networkMagic as keyof typeof HANDLE_SERVER_URLS];
return new KoraLabsHandleProvider({
serverUrl,
policyId: ADA_HANDLE_POLICY_ID
return handleHttpProvider({
baseUrl: serverUrl,
logger
});
}, [networkMagic]);
};
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ import { runtime, storage as webStorage } from 'webextension-polyfill';
import { of, combineLatest, map, EMPTY } from 'rxjs';
import { getProviders } from './config';
import { DEFAULT_LOOK_AHEAD_SEARCH, HDSequentialDiscovery, createPersonalWallet, storage } from '@cardano-sdk/wallet';
import { KoraLabsHandleProvider } from '@cardano-sdk/cardano-services-client';
import axiosFetchAdapter from '@vespaiach/axios-fetch-adapter';
import { handleHttpProvider } from '@cardano-sdk/cardano-services-client';
import {
AnyWallet,
StoresFactory,
Expand All @@ -21,9 +20,10 @@ import {
walletRepositoryProperties
} from '@cardano-sdk/web-extension';
import { Wallet } from '@lace/cardano';
import { ADA_HANDLE_POLICY_ID, HANDLE_SERVER_URLS } from '@src/features/ada-handle/config';
import { HANDLE_SERVER_URLS } from '@src/features/ada-handle/config';
import { Cardano, NotImplementedError } from '@cardano-sdk/core';
import { cacheActivatedWalletAddressSubscription } from './cache-wallets-address';
import axiosFetchAdapter from '@vespaiach/axios-fetch-adapter';

const logger = console;

Expand Down Expand Up @@ -76,17 +76,17 @@ const walletFactory: WalletFactory<Wallet.WalletMetadata, Wallet.AccountMetadata
logger,
...providers,
stores,
handleProvider: new KoraLabsHandleProvider({
serverUrl:
handleProvider: handleHttpProvider({
adapter: axiosFetchAdapter,
baseUrl:
HANDLE_SERVER_URLS[
// TODO: remove exclude to support sanchonet
Cardano.ChainIds[chainName].networkMagic as Exclude<
Cardano.NetworkMagics,
Cardano.NetworkMagics.Sanchonet
>
],
adapter: axiosFetchAdapter,
policyId: ADA_HANDLE_POLICY_ID
logger
}),
addressDiscovery: new HDSequentialDiscovery(providers.chainHistoryProvider, DEFAULT_LOOK_AHEAD_SEARCH),
witnesser,
Expand Down
17 changes: 7 additions & 10 deletions apps/browser-extension-wallet/src/utils/validators/address-book.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export const verifyHandle = async (
): Promise<ValidationResult & { handles?: HandleResolution[] }> => {
try {
const resolvedHandles = await handleResolver.resolveHandles({ handles: [value.slice(1).toLowerCase()] });
if (resolvedHandles.length === 0 || resolvedHandles === null) {
if (!resolvedHandles[0]) {
return { valid: false };
}
return { valid: true, handles: resolvedHandles };
Expand Down Expand Up @@ -95,12 +95,10 @@ export const validateWalletHandle = async ({ value, handleResolver }: validateWa
}

const response = await verifyHandle(value, handleResolver);
const handles = response.handles;

if (!handles) {
if (!response.valid) {
throw new Error(i18n.t('general.errors.incorrectHandle'));
}

return '';
};

Expand All @@ -118,21 +116,20 @@ export const ensureHandleOwnerHasntChanged = async ({
}

const { handle, cardanoAddress } = handleResolution;
const response = await handleResolver.resolveHandles({ handles: [handle] });
const newHandleResolution = response[0];
const resolvedHandle = await handleResolver.resolveHandles({ handles: [handle] });

if (!newHandleResolution) {
if (!resolvedHandle[0]) {
throw new CustomError(i18n.t('general.errors.incorrectHandle'), false);
}

if (!Cardano.util.addressesShareAnyKey(cardanoAddress, newHandleResolution.cardanoAddress)) {
if (!Cardano.util.addressesShareAnyKey(cardanoAddress, resolvedHandle[0].cardanoAddress)) {
throw new CustomConflictError({
message: `${i18n.t('general.errors.handleConflict', {
receivedAddress: cardanoAddress,
actualAddress: newHandleResolution.cardanoAddress
actualAddress: resolvedHandle[0].cardanoAddress
})}`,
expectedAddress: cardanoAddress,
actualAddress: newHandleResolution.cardanoAddress
actualAddress: resolvedHandle[0].cardanoAddress
});
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -251,17 +251,17 @@ export const WalletSetupWizard = ({
mnemonic={mnemonic}
mnemonicStage={currentSetupMnemonicStage}
onStageChange={(nextStage) => {
if (nextStage === 'writedown') {
if (nextStage === 'input') {
setCurrentSetupMnemonicStage(nextStage);
void sendAnalytics(postHogOnboardingActions.create.SAVE_RECOVERY_PHRASE_NEXT_CLICK);
} else {
setIsResetMnemonicModalOpen(true);
return;
}
setCurrentSetupMnemonicStage(nextStage);
void sendAnalytics(postHogOnboardingActions.create.SAVE_RECOVERY_PHRASE_NEXT_CLICK);
}}
onBack={onCancel}
onNext={() => {
void sendAnalytics(postHogOnboardingActions.create.ENTER_RECOVERY_PHRASE_NEXT_CLICK);
moveForward();
void sendAnalytics(postHogOnboardingActions.create.ENTER_RECOVERY_PHRASE_NEXT_CLICK);
}}
renderVideoPopupContent={({ onClose }) => (
<MnemonicVideoPopupContent
Expand Down
2 changes: 2 additions & 0 deletions packages/common/src/analytics/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,9 @@ export enum PostHogAction {
SendClick = 'send | send | click',
SendTransactionDataReviewTransactionClick = 'send | transaction data | review transaction | click',
SendTransactionSummaryConfirmClick = 'send | transaction summary | confirm | click',
SendTransactionSummaryCancelClick = 'send | transaction summary | cancel | click',
SendTransactionConfirmationConfirmClick = 'send | transaction confirmation | confirm | click',
SendTransactionConfirmationCancelClick = 'send | transaction confirmation | cancel | click',
SendTransactionConfirmed = 'send | transaction confirmed',
SendAllDoneView = 'send | all done | view',
SendAllDoneViewTransactionClick = 'send | all done | view transaction | click',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export const RewardsDetails = ({
<span
className={styles.ada}
data-testid="rewards-received-detail-ada"
>{`${rewards.totalAmount} ${coinSymbol}`}</span>
>{`${rewards.totalAmount} ${coinSymbol}`}</span>{' '}
<span className={styles.fiat} data-testid="rewars-received-detail-fiat">{`${amountTransformer(
rewards.totalAmount
)}`}</span>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ export const TransactionDetails = ({
<div className={styles.title}>{label}</div>
<div className={styles.detail}>
<div className={styles.amount}>
<span className={styles.ada}>{`${value} ${coinSymbol}`}</span>
<span className={styles.ada}>{`${value} ${coinSymbol}`}</span>{' '}
<span className={styles.fiat}>{amountTransformer(value)}</span>
</div>
</div>
Expand Down Expand Up @@ -250,7 +250,7 @@ export const TransactionDetails = ({
<span
className={styles.ada}
data-testid="tx-sent-detail-ada"
>{`${summary.amount} ${coinSymbol}`}</span>
>{`${summary.amount} ${coinSymbol}`}</span>{' '}
<span className={styles.fiat} data-testid="tx-sent-detail-fiat">{`${amountTransformer(
summary.amount
)}`}</span>
Expand Down
3 changes: 2 additions & 1 deletion packages/e2e-tests/src/assert/drawerCommonExtendedAssert.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ class DrawerCommonExtendedAssert {
}

async assertSeeDrawer(shouldSee: boolean) {
const visibilityMessage = shouldSee ? 'see' : 'not see';
await new CommonDrawerElements().drawerBody.waitForClickable({
reverse: !shouldSee,
timeout: 2000,
timeoutMsg: 'expected to not see drawer in 2s'
timeoutMsg: `expected to ${visibilityMessage} drawer in 2s`
});
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class TransactionSummaryPage extends CommonDrawerElements {
private BUNDLE_ROW_TITLE = '//span[@data-testid="bundle-summary-title"]';
private RECIPIENT_ADDRESS_LABEL = '//p[@data-testid="output-summary-recipient-title-label"]';
private RECIPIENT_ADDRESS_VALUE = '//span[@data-testid="output-summary-recipient-address"]';
private SENDING_TITLE = '//p[@data-testid="output-summary-sending-title-label"]';
private SENDING_TITLE = '//span[@data-testid="output-summary-sending-title-label"]';
private ASSET_INFO_CONTAINER = '//div[@data-testid="asset-info"]';
private ASSET_INFO_VALUE = '//span[@data-testid="asset-info-amount"]';
private ASSET_INFO_FIAT = '//span[@data-testid="asset-info-amount-fiat"]';
Expand Down

0 comments on commit 14c5c22

Please sign in to comment.