Skip to content

Commit 603b620

Browse files
feat(extension): shared wallets feature flags are now controlled via posthog (#1448)
1 parent 81aaebd commit 603b620

File tree

21 files changed

+151
-131
lines changed

21 files changed

+151
-131
lines changed

.github/actions/build/app/action.yml

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,8 @@ inputs:
1515
description: 'Build developer preview of Lace'
1616
required: false
1717
default: 'false'
18-
POSTHOG_PRODUCTION_TOKEN_MAINNET:
19-
description: 'Post hog production mainnet token'
20-
required: false
21-
default: ''
22-
POSTHOG_PRODUCTION_TOKEN_PREPROD:
23-
description: 'Post hog production preprod token'
24-
required: false
25-
default: ''
26-
POSTHOG_PRODUCTION_TOKEN_PREVIEW:
27-
description: 'Post hog production preview token'
18+
POSTHOG_PRODUCTION_TOKEN:
19+
description: 'Post hog production token'
2820
required: false
2921
default: ''
3022
PRODUCTION_MODE_TRACKING:
@@ -52,9 +44,7 @@ runs:
5244
env:
5345
LACE_EXTENSION_KEY: ${{ inputs.LACE_EXTENSION_KEY }}
5446
BUILD_DEV_PREVIEW: ${{ inputs.BUILD_DEV_PREVIEW }}
55-
POSTHOG_PRODUCTION_TOKEN_MAINNET: ${{ inputs.POSTHOG_PRODUCTION_TOKEN_MAINNET }}
56-
POSTHOG_PRODUCTION_TOKEN_PREPROD: ${{ inputs.POSTHOG_PRODUCTION_TOKEN_PREPROD }}
57-
POSTHOG_PRODUCTION_TOKEN_PREVIEW: ${{ inputs.POSTHOG_PRODUCTION_TOKEN_PREVIEW }}
47+
POSTHOG_PRODUCTION_TOKEN: ${{ inputs.POSTHOG_PRODUCTION_TOKEN }}
5848
PRODUCTION_MODE_TRACKING: ${{ inputs.PRODUCTION_MODE_TRACKING }}
5949
BANXA_LACE_URL: ${{ inputs.BANXA_LACE_URL }}
6050

.github/shared/build/action.yml

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,8 @@ inputs:
1111
description: 'Build developer preview of Lace'
1212
required: false
1313
default: 'false'
14-
POSTHOG_PRODUCTION_TOKEN_MAINNET:
15-
description: 'Post hog production mainnet token'
16-
required: false
17-
default: ''
18-
POSTHOG_PRODUCTION_TOKEN_PREPROD:
19-
description: 'Post hog production preprod token'
20-
required: false
21-
default: ''
22-
POSTHOG_PRODUCTION_TOKEN_PREVIEW:
23-
description: 'Post hog production preview token'
14+
POSTHOG_PRODUCTION_TOKEN:
15+
description: 'Post hog production token'
2416
required: false
2517
default: ''
2618
PRODUCTION_MODE_TRACKING:
@@ -96,9 +88,7 @@ runs:
9688
NODE_OPTIONS: '--max_old_space_size=8192'
9789
BUILD_DEV_PREVIEW: ${{ inputs.BUILD_DEV_PREVIEW }}
9890
LACE_EXTENSION_KEY: ${{ inputs.LACE_EXTENSION_KEY }}
99-
POSTHOG_PRODUCTION_TOKEN_MAINNET: ${{ inputs.POSTHOG_PRODUCTION_TOKEN_MAINNET }}
100-
POSTHOG_PRODUCTION_TOKEN_PREPROD: ${{ inputs.POSTHOG_PRODUCTION_TOKEN_PREPROD }}
101-
POSTHOG_PRODUCTION_TOKEN_PREVIEW: ${{ inputs.POSTHOG_PRODUCTION_TOKEN_PREVIEW }}
91+
POSTHOG_PRODUCTION_TOKEN: ${{ inputs.POSTHOG_PRODUCTION_TOKEN }}
10292
PRODUCTION_MODE_TRACKING: ${{ inputs.PRODUCTION_MODE_TRACKING }}
10393
BANXA_LACE_URL: ${{ inputs.BANXA_LACE_URL }}
10494
CARDANO_SERVICES_URL_MAINNET: ${{ inputs.CARDANO_SERVICES_URL_MAINNET }}

.github/workflows/ci.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,7 @@ jobs:
180180
DIR: apps/browser-extension-wallet
181181
NAME: lace-browser-extension
182182
LACE_EXTENSION_KEY: ${{ secrets.MANIFEST_PUBLIC_KEY }}
183-
POSTHOG_PRODUCTION_TOKEN_MAINNET: ${{ startsWith(github.ref, 'refs/heads/release') && secrets.POSTHOG_PRODUCTION_TOKEN_MAINNET || '' }}
184-
POSTHOG_PRODUCTION_TOKEN_PREPROD: ${{ startsWith(github.ref, 'refs/heads/release') && secrets.POSTHOG_PRODUCTION_TOKEN_PREPROD || '' }}
185-
POSTHOG_PRODUCTION_TOKEN_PREVIEW: ${{ startsWith(github.ref, 'refs/heads/release') && secrets.POSTHOG_PRODUCTION_TOKEN_PREVIEW || '' }}
183+
POSTHOG_PRODUCTION_TOKEN: ${{ startsWith(github.ref, 'refs/heads/release') && secrets.POSTHOG_PRODUCTION_TOKEN || '' }}
186184
PRODUCTION_MODE_TRACKING: ${{ startsWith(github.ref, 'refs/heads/release') && 'true' || 'false' }}
187185
BANXA_LACE_URL: ${{ startsWith(github.ref, 'refs/heads/release') && 'https://lacewallet.banxa.com/' }}
188186

apps/browser-extension-wallet/.env.defaults

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ USE_FOOR_TOPUP=true
3131
USE_ADVANCED_RECEIVE=true
3232
USE_POSTHOG_ANALYTICS_FOR_OPTED_OUT=false
3333
USE_MULTI_WALLET=true
34-
USE_SHARED_WALLET=false
3534
USE_MESSAGE_SIGNING=true
3635
USE_GLACIER_DROP=false
3736

@@ -60,10 +59,7 @@ POSTHOG_EXCLUDED_EVENTS=
6059
PRODUCTION_MODE_TRACKING=false
6160

6261
# Post Hog
63-
POSTHOG_DEV_TOKEN_MAINNET=phc_gH96Lx5lEVXTTWEyytSdTFPDk3Xsxwi4BqG88mKObd1
64-
POSTHOG_DEV_TOKEN_PREPROD=phc_Xlmldm6EYSfQVgB9Uxm3b2xC1noDlgFFXpF9AJ6SMfJ
65-
POSTHOG_DEV_TOKEN_PREVIEW=phc_e8SaOOWpXpNE59TnpLumeUjWm4iv024AWjhQqU406jr
66-
POSTHOG_DEV_TOKEN_SANCHONET=phc_OUu6sPucDu5S6skRmYbWN5Jn8TpggWTQu1Y1ETkm3xt
62+
POSTHOG_DEV_TOKEN=phc_gH96Lx5lEVXTTWEyytSdTFPDk3Xsxwi4BqG88mKObd1
6763

6864
# Cardano Services
6965
CARDANO_SERVICES_URL_MAINNET=https://dev-mainnet.lw.iog.io

apps/browser-extension-wallet/.env.developerpreview

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ USE_FOOR_TOPUP=false
3131

3232
USE_POSTHOG_ANALYTICS_FOR_OPTED_OUT=false
3333
USE_MULTI_WALLET=true
34-
USE_SHARED_WALLET=false
3534
USE_MESSAGE_SIGNING=true
3635
USE_GLACIER_DROP=false
3736

@@ -60,10 +59,7 @@ POSTHOG_EXCLUDED_EVENTS=
6059
PRODUCTION_MODE_TRACKING=false
6160

6261
# Post Hog
63-
POSTHOG_DEV_TOKEN_MAINNET=phc_gH96Lx5lEVXTTWEyytSdTFPDk3Xsxwi4BqG88mKObd1
64-
POSTHOG_DEV_TOKEN_PREPROD=phc_Xlmldm6EYSfQVgB9Uxm3b2xC1noDlgFFXpF9AJ6SMfJ
65-
POSTHOG_DEV_TOKEN_PREVIEW=phc_e8SaOOWpXpNE59TnpLumeUjWm4iv024AWjhQqU406jr
66-
POSTHOG_DEV_TOKEN_SANCHONET=phc_OUu6sPucDu5S6skRmYbWN5Jn8TpggWTQu1Y1ETkm3xt
62+
POSTHOG_DEV_TOKEN=phc_gH96Lx5lEVXTTWEyytSdTFPDk3Xsxwi4BqG88mKObd1
6763

6864
# Cardano Services
6965
CARDANO_SERVICES_URL_MAINNET=https://dev-mainnet.lw.iog.io

apps/browser-extension-wallet/.env.example

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,8 @@ PRODUCTION_MODE_TRACKING=false
5656
SESSION_LENGTH_IN_SECONDS=60
5757
POSTHOG_EXCLUDED_EVENTS=
5858

59-
POSTHOG_PRODUCTION_TOKEN_MAINNET=production-mainnet-token
60-
POSTHOG_PRODUCTION_TOKEN_PREPROD=production-preprod-token
61-
POSTHOG_PRODUCTION_TOKEN_PREVIEW=production-preview-token
62-
POSTHOG_DEV_TOKEN_MAINNET=dev-mainnet-token
63-
POSTHOG_DEV_TOKEN_PREPROD=dev-preprod-token
64-
POSTHOG_DEV_TOKEN_PREVIEW=dev-preview-token
65-
POSTHOG_DEV_TOKEN_SANCHONET=dev-sanchonet-token
59+
POSTHOG_PRODUCTION_TOKEN='production-token'
60+
POSTHOG_DEV_TOKEN='dev-token'
6661

6762
# Cardano Services
6863
CARDANO_SERVICES_URL_MAINNET=https://backend.live-mainnet.eks.lw.iog.io

apps/browser-extension-wallet/src/components/MainMenu/DropdownMenuOverlay/DropdownMenuOverlay.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import classNames from 'classnames';
2323
import type { AnyBip32Wallet } from '@cardano-sdk/web-extension';
2424
import { WalletType } from '@cardano-sdk/web-extension';
2525
import { Wallet } from '@lace/cardano';
26+
import { usePostHogClientContext } from '@providers/PostHogClientProvider';
2627

2728
interface Props extends MenuProps {
2829
isPopup?: boolean;
@@ -39,6 +40,8 @@ export const DropdownMenuOverlay: VFC<Props> = ({
3940
sendAnalyticsEvent,
4041
...props
4142
}): React.ReactElement => {
43+
const posthog = usePostHogClientContext();
44+
const sharedWalletsEnabled = posthog?.isFeatureFlagEnabled('shared-wallets');
4245
const [currentSection, setCurrentSection] = useState<Sections>(Sections.Main);
4346
const { environmentName, setManageAccountsWallet, walletType, isSharedWallet } = useWalletStore();
4447

@@ -85,7 +88,7 @@ export const DropdownMenuOverlay: VFC<Props> = ({
8588
{process.env.USE_MULTI_WALLET === 'true' && (
8689
<AddNewWalletLink isPopup={isPopup} sendAnalyticsEvent={sendAnalyticsEvent} />
8790
)}
88-
{process.env.USE_SHARED_WALLET === 'true' && !isSharedWallet && <AddSharedWalletLink isPopup={isPopup} />}
91+
{sharedWalletsEnabled && !isSharedWallet && <AddSharedWalletLink isPopup={isPopup} />}
8992
<AddressBookLink />
9093
<SettingsLink />
9194
<Separator />

apps/browser-extension-wallet/src/hooks/__tests__/useWalletManager.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,7 @@ describe('Testing useWalletManager hook', () => {
585585
]
586586
});
587587
expect(clearBackgroundStorage).toBeCalledWith({
588-
except: ['fiatPrices', 'userId', 'usePersistentUserId', 'experimentsConfiguration', 'customSubmitTxUrl']
588+
except: ['fiatPrices', 'userId', 'usePersistentUserId', 'featureFlags', 'customSubmitTxUrl']
589589
});
590590
expect(resetWalletLock).toBeCalledWith();
591591
expect(setCardanoWallet).toBeCalledWith();

apps/browser-extension-wallet/src/hooks/useWalletManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,7 @@ export const useWalletManager = (): UseWalletManager => {
625625
deleteFromLocalStorage('userInfo');
626626
deleteFromLocalStorage('keyAgentData');
627627
await backgroundService.clearBackgroundStorage({
628-
except: ['fiatPrices', 'userId', 'usePersistentUserId', 'experimentsConfiguration', 'customSubmitTxUrl']
628+
except: ['fiatPrices', 'userId', 'usePersistentUserId', 'featureFlags', 'customSubmitTxUrl']
629629
});
630630
resetWalletLock();
631631
setCardanoWallet();

apps/browser-extension-wallet/src/lib/scripts/types/storage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export interface BackgroundStorage {
2929
fiatPrices?: { prices: ADAPrices; timestamp: number };
3030
userId?: string;
3131
usePersistentUserId?: boolean;
32-
experimentsConfiguration?: Record<ExperimentName, string | boolean>;
32+
featureFlags?: Record<number, Record<ExperimentName, string | boolean>>;
3333
customSubmitTxUrl?: string;
3434
}
3535

0 commit comments

Comments
 (0)