@imtbl/checkout-widgets 2.7.4 → 2.7.5-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/browser/{AddTokensWidget-B4nZ0HMf.js → AddTokensWidget-BCWjE2Pz.js} +3 -3
  2. package/dist/browser/{BridgeWidget-S1v1fnty.js → BridgeWidget-BXB7tL8H.js} +6 -6
  3. package/dist/browser/{CommerceWidget-CaLd6p8w.js → CommerceWidget-E2bxekSi.js} +21 -15
  4. package/dist/browser/{FeesBreakdown-BNI5ph2W.js → FeesBreakdown-DizTYvG3.js} +1 -1
  5. package/dist/browser/{OnRampWidget-DOgoM-HN.js → OnRampWidget-BqXKz_k2.js} +3 -3
  6. package/dist/browser/{SaleWidget-CsFlqCGg.js → SaleWidget-DBoCY2xY.js} +10 -10
  7. package/dist/browser/{SpendingCapHero-DCd0XHoV.js → SpendingCapHero-BDioa265.js} +1 -1
  8. package/dist/browser/{SwapWidget-Ckfq52QX.js → SwapWidget-DjOu_VrR.js} +6 -6
  9. package/dist/browser/{TokenImage-B9f71jQ8.js → TokenImage-BxKfbWiG.js} +1 -1
  10. package/dist/browser/{TopUpView-C25Gy1Pf.js → TopUpView-Cl09KbdC.js} +1 -1
  11. package/dist/browser/{WalletApproveHero-Dr0k2Zy7.js → WalletApproveHero-B4L4fZyi.js} +2 -2
  12. package/dist/browser/{WalletWidget-DnsMbzSc.js → WalletWidget-CPda1Pax.js} +3 -3
  13. package/dist/browser/{auto-track-CTf45F8G.js → auto-track-CtH8fUVB.js} +1 -1
  14. package/dist/browser/{index-CJZPS4R8.js → index-ANjHW9LZ.js} +2 -2
  15. package/dist/browser/{index-D6WQa-Wt.js → index-BJLu6k8z.js} +1 -1
  16. package/dist/browser/{index-C0bbz4Qj.js → index-BSjTexIp.js} +1 -1
  17. package/dist/browser/{index-DFw2AGCn.js → index-BdWWOWZY.js} +40 -33
  18. package/dist/browser/{index-oh9cIxv4.js → index-CUF1iqKM.js} +1 -1
  19. package/dist/browser/{index-B7UkvAen.js → index-CvJL8EcP.js} +1 -1
  20. package/dist/browser/{index-DXcVSTMH.js → index-DSXCtSIc.js} +1 -1
  21. package/dist/browser/{index-DQK3bdYc.js → index-DeAC7eQx.js} +1 -1
  22. package/dist/browser/index.js +1 -1
  23. package/dist/browser/{index.umd-8eJ-j-_P.js → index.umd-BtV5PgHB.js} +1 -1
  24. package/dist/browser/{useInterval-CE0RNArG.js → useInterval-C3RHVG_6.js} +1 -1
  25. package/dist/types/components/ConnectLoader/ConnectLoader.d.ts +3 -2
  26. package/dist/types/widgets/connect/ConnectWidget.d.ts +1 -1
  27. package/dist/types/widgets/connect/components/WalletList.d.ts +2 -1
  28. package/dist/types/widgets/connect/views/ConnectWallet.d.ts +3 -2
  29. package/dist/types/widgets/immutable-commerce/CommerceWidgetRoot.d.ts +1 -0
  30. package/dist/types/widgets/immutable-commerce/functions/getConnectLoaderParams.d.ts +2 -2
  31. package/package.json +7 -7
  32. package/src/components/ConnectLoader/ConnectLoader.tsx +5 -2
  33. package/src/widgets/connect/ConnectWidget.tsx +3 -1
  34. package/src/widgets/connect/components/WalletList.tsx +19 -10
  35. package/src/widgets/connect/views/ConnectWallet.tsx +4 -1
  36. package/src/widgets/immutable-commerce/CommerceWidget.tsx +2 -2
  37. package/src/widgets/immutable-commerce/functions/getConnectLoaderParams.ts +8 -1
  38. package/src/widgets/on-ramp/OnRampWidgetRoot.tsx +1 -0
  39. package/src/widgets/sale/SaleWidgetRoot.tsx +2 -0
  40. package/src/widgets/swap/SwapWidgetRoot.tsx +1 -0
  41. package/src/widgets/wallet/WalletWidgetRoot.tsx +1 -0
@@ -3,9 +3,10 @@ export interface ConnectWalletProps {
3
3
  targetWalletRdns?: string;
4
4
  targetChainId: ChainId;
5
5
  allowedChains: ChainId[];
6
- blocklistWalletRdns?: string[];
6
+ allowlistWalletRdns?: string[];
7
+ blocklistWalletRdns: string[];
7
8
  checkNetwork: boolean;
8
9
  showBackButton?: boolean;
9
10
  onBackButtonClick?: () => void;
10
11
  }
11
- export declare function ConnectWallet({ targetWalletRdns, targetChainId, allowedChains, blocklistWalletRdns, checkNetwork, showBackButton, onBackButtonClick, }: ConnectWalletProps): import("@emotion/react/jsx-runtime").JSX.Element;
12
+ export declare function ConnectWallet({ targetWalletRdns, targetChainId, allowedChains, allowlistWalletRdns, blocklistWalletRdns, checkNetwork, showBackButton, onBackButtonClick, }: ConnectWalletProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -9,6 +9,7 @@ export declare class CommerceWidgetRoot extends Base<WidgetType.IMMUTABLE_COMMER
9
9
  targetChainId?: import("@imtbl/checkout-sdk").ChainId;
10
10
  targetWalletRdns?: string | import("@imtbl/checkout-sdk").WalletProviderRdns;
11
11
  blocklistWalletRdns?: string[];
12
+ allowlistWalletRdns?: string[];
12
13
  };
13
14
  protected getValidWalletFlowParams(params: CommerceWidgetWalletFlowParams): CommerceWidgetWalletFlowParams;
14
15
  protected getValidSaleFlowParams(params: CommerceWidgetSaleFlowParams): {
@@ -1,7 +1,7 @@
1
- import { Checkout, WrappedBrowserProvider } from '@imtbl/checkout-sdk';
1
+ import { Checkout, CommerceWidgetConfiguration, WrappedBrowserProvider } from '@imtbl/checkout-sdk';
2
2
  import { ConnectLoaderParams } from '../../../components/ConnectLoader/ConnectLoader';
3
3
  import { View } from '../../../context/view-context/ViewContext';
4
4
  /**
5
5
  * Get the connect loader params for the widget
6
6
  */
7
- export declare function getConnectLoaderParams(view: View, checkout: Checkout, browserProvider: WrappedBrowserProvider | undefined): ConnectLoaderParams;
7
+ export declare function getConnectLoaderParams(view: View, flowConfig: CommerceWidgetConfiguration, checkout: Checkout, browserProvider: WrappedBrowserProvider | undefined): ConnectLoaderParams;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imtbl/checkout-widgets",
3
- "version": "2.7.4",
3
+ "version": "2.7.5-alpha.0",
4
4
  "browserslist": {
5
5
  "production": [
6
6
  ">0.2%",
@@ -18,12 +18,12 @@
18
18
  "@biom3/design-tokens": "^0.4.5",
19
19
  "@biom3/react": "^0.29.4",
20
20
  "@emotion/react": "^11.11.3",
21
- "@imtbl/bridge-sdk": "2.7.4",
22
- "@imtbl/checkout-sdk": "2.7.4",
23
- "@imtbl/config": "2.7.4",
24
- "@imtbl/cryptofiat": "2.7.4",
25
- "@imtbl/dex-sdk": "2.7.4",
26
- "@imtbl/passport": "2.7.4",
21
+ "@imtbl/bridge-sdk": "2.7.5-alpha.0",
22
+ "@imtbl/checkout-sdk": "2.7.5-alpha.0",
23
+ "@imtbl/config": "2.7.5-alpha.0",
24
+ "@imtbl/cryptofiat": "2.7.5-alpha.0",
25
+ "@imtbl/dex-sdk": "2.7.5-alpha.0",
26
+ "@imtbl/passport": "2.7.5-alpha.0",
27
27
  "@imtbl/react-analytics": "0.3.4-alpha",
28
28
  "@rive-app/react-canvas-lite": "^4.9.0",
29
29
  "@walletconnect/ethereum-provider": "^2.11.1",
@@ -37,11 +37,12 @@ export interface ConnectLoaderProps {
37
37
 
38
38
  export interface ConnectLoaderParams {
39
39
  targetChainId: ChainId;
40
- walletProviderName?: WalletProviderName;
41
- browserProvider?: WrappedBrowserProvider;
40
+ walletProviderName: WalletProviderName | undefined;
41
+ browserProvider: WrappedBrowserProvider | undefined;
42
42
  checkout: Checkout;
43
43
  allowedChains: ChainId[];
44
44
  isCheckNetworkEnabled?: boolean;
45
+ allowlistWalletRdns: string[] | undefined;
45
46
  }
46
47
 
47
48
  export function ConnectLoader({
@@ -60,6 +61,7 @@ export function ConnectLoader({
60
61
  allowedChains,
61
62
  browserProvider,
62
63
  isCheckNetworkEnabled,
64
+ allowlistWalletRdns,
63
65
  } = params;
64
66
 
65
67
  const { t } = useTranslation();
@@ -253,6 +255,7 @@ export function ConnectLoader({
253
255
  <ConnectWidget
254
256
  config={widgetConfig}
255
257
  targetChainId={targetChainId}
258
+ allowlistWalletRdns={allowlistWalletRdns}
256
259
  browserProvider={provider}
257
260
  checkout={checkout}
258
261
  deepLink={deepLink}
@@ -80,6 +80,7 @@ export default function ConnectWidget({
80
80
  targetWalletRdns,
81
81
  targetChainId,
82
82
  allowedChains,
83
+ allowlistWalletRdns,
83
84
  blocklistWalletRdns,
84
85
  deepLink = ConnectWidgetViews.CONNECT_WALLET,
85
86
  isCheckNetworkEnabled,
@@ -219,7 +220,8 @@ export default function ConnectWidget({
219
220
  targetWalletRdns={targetWalletRdns}
220
221
  targetChainId={targetChain}
221
222
  allowedChains={allowedChains ?? [targetChain]}
222
- blocklistWalletRdns={blocklistWalletRdns}
223
+ allowlistWalletRdns={allowlistWalletRdns}
224
+ blocklistWalletRdns={blocklistWalletRdns ?? []}
223
225
  checkNetwork={isCheckNetworkEnabled ?? true}
224
226
  showBackButton={showBackButton}
225
227
  onBackButtonClick={sendGoBackEventOverride}
@@ -55,10 +55,17 @@ export interface WalletListProps {
55
55
  targetWalletRdns?: string;
56
56
  targetChainId: ChainId;
57
57
  allowedChains: ChainId[];
58
- blocklistWalletRdns?: string[];
58
+ allowlistWalletRdns?: string[];
59
+ blocklistWalletRdns: string[];
59
60
  isCheckNetworkEnabled: boolean;
60
61
  }
61
62
 
63
+ // eslint-disable-next-line max-len
64
+ const getAllowedProviders = (providers: EIP6963ProviderDetail[], allowlist: string[] | undefined, blocklist: string[]) =>
65
+ (allowlist ?
66
+ providers.filter((provider) => !blocklist.includes(provider.info.rdns) && allowlist.includes(provider.info.rdns)) :
67
+ providers.filter((provider) => !blocklist.includes(provider.info.rdns)));
68
+
62
69
  export function WalletList(props: WalletListProps) {
63
70
  const { t } = useTranslation();
64
71
  const {
@@ -66,8 +73,9 @@ export function WalletList(props: WalletListProps) {
66
73
  targetChainId,
67
74
  allowedChains,
68
75
  isCheckNetworkEnabled,
76
+ allowlistWalletRdns,
77
+ blocklistWalletRdns,
69
78
  } = props;
70
- const blocklistWalletRdns = props?.blocklistWalletRdns || [];
71
79
  const {
72
80
  connectDispatch,
73
81
  connectState: { checkout },
@@ -83,24 +91,25 @@ export function WalletList(props: WalletListProps) {
83
91
  const [showNonPassportWarning, setShowNonPassportWarning] = useState(false);
84
92
  const [chosenProviderDetail, setChosenProviderDetail] = useState<EIP6963ProviderDetail>();
85
93
 
94
+ const allowedProviders = useMemo(
95
+ () => getAllowedProviders(providers, allowlistWalletRdns, blocklistWalletRdns),
96
+ [providers, allowlistWalletRdns, blocklistWalletRdns],
97
+ );
98
+
86
99
  const filteredProviders = useMemo(
87
- () => providers
100
+ () => allowedProviders
88
101
  .filter(
89
102
  (provider) => !(provider.info.rdns === WalletProviderRdns.PASSPORT),
90
- )
91
- .filter(
92
- (provider) => !blocklistWalletRdns.includes(provider.info.rdns),
93
103
  ),
94
- [providers],
104
+ [allowedProviders],
95
105
  );
96
106
 
97
107
  // Don't allow Passport if targetChainId is L1
98
108
  const passportProviderDetail = useMemo(
99
109
  () => targetChainId !== checkout!.config.l1ChainId
100
- && providers
101
- .filter((provider) => !blocklistWalletRdns.includes(provider.info.rdns))
110
+ && allowedProviders
102
111
  .find((provider) => provider.info.rdns === WalletProviderRdns.PASSPORT),
103
- [providers, checkout],
112
+ [allowedProviders, checkout, targetChainId],
104
113
  );
105
114
 
106
115
  const selectBrowserProvider = useCallback(
@@ -13,7 +13,8 @@ export interface ConnectWalletProps {
13
13
  targetWalletRdns?: string,
14
14
  targetChainId: ChainId;
15
15
  allowedChains: ChainId[];
16
- blocklistWalletRdns?: string[];
16
+ allowlistWalletRdns?: string[];
17
+ blocklistWalletRdns: string[];
17
18
  checkNetwork: boolean;
18
19
  showBackButton?: boolean;
19
20
  onBackButtonClick?: () => void;
@@ -23,6 +24,7 @@ export function ConnectWallet({
23
24
  targetWalletRdns,
24
25
  targetChainId,
25
26
  allowedChains,
27
+ allowlistWalletRdns,
26
28
  blocklistWalletRdns,
27
29
  checkNetwork,
28
30
  showBackButton,
@@ -86,6 +88,7 @@ export function ConnectWallet({
86
88
  targetWalletRdns={targetWalletRdns}
87
89
  targetChainId={targetChainId}
88
90
  allowedChains={allowedChains}
91
+ allowlistWalletRdns={allowlistWalletRdns}
89
92
  blocklistWalletRdns={blocklistWalletRdns}
90
93
  isCheckNetworkEnabled={checkNetwork}
91
94
  />
@@ -80,8 +80,8 @@ export default function CommerceWidget(props: CommerceWidgetInputs) {
80
80
  const { provider } = commerceState;
81
81
 
82
82
  const connectLoaderParams = useMemo(
83
- () => getConnectLoaderParams(view, checkout, provider || browserProvider),
84
- [view, checkout, provider, browserProvider],
83
+ () => getConnectLoaderParams(view, flowConfig, checkout, provider || browserProvider),
84
+ [view, flowConfig, checkout, provider, browserProvider],
85
85
  );
86
86
 
87
87
  const connectLoaderSuccessEvent = (
@@ -1,5 +1,5 @@
1
1
  import {
2
- Checkout, CommerceFlowType, WrappedBrowserProvider,
2
+ Checkout, CommerceFlowType, CommerceWidgetConfiguration, WrappedBrowserProvider,
3
3
  } from '@imtbl/checkout-sdk';
4
4
  import { ConnectLoaderParams } from '../../../components/ConnectLoader/ConnectLoader';
5
5
  import { View } from '../../../context/view-context/ViewContext';
@@ -9,6 +9,7 @@ import { View } from '../../../context/view-context/ViewContext';
9
9
  */
10
10
  export function getConnectLoaderParams(
11
11
  view: View,
12
+ flowConfig: CommerceWidgetConfiguration,
12
13
  checkout: Checkout,
13
14
  browserProvider: WrappedBrowserProvider | undefined,
14
15
  ): ConnectLoaderParams {
@@ -24,6 +25,8 @@ export function getConnectLoaderParams(
24
25
  checkout.config.l1ChainId,
25
26
  checkout.config.l2ChainId,
26
27
  ],
28
+ allowlistWalletRdns: flowConfig.CONNECT?.allowlistWalletRdns,
29
+ walletProviderName: undefined,
27
30
  };
28
31
  case CommerceFlowType.ONRAMP:
29
32
  case CommerceFlowType.ADD_TOKENS:
@@ -35,6 +38,8 @@ export function getConnectLoaderParams(
35
38
  checkout.config.l1ChainId,
36
39
  checkout.config.l2ChainId,
37
40
  ],
41
+ allowlistWalletRdns: flowConfig.CONNECT?.allowlistWalletRdns,
42
+ walletProviderName: undefined,
38
43
  };
39
44
  case CommerceFlowType.SALE:
40
45
  case CommerceFlowType.SWAP:
@@ -44,6 +49,8 @@ export function getConnectLoaderParams(
44
49
  browserProvider,
45
50
  targetChainId: checkout.config.l2ChainId,
46
51
  allowedChains: [checkout.config.l2ChainId],
52
+ allowlistWalletRdns: flowConfig.CONNECT?.allowlistWalletRdns,
53
+ walletProviderName: undefined,
47
54
  };
48
55
  default:
49
56
  return {} as ConnectLoaderParams;
@@ -82,6 +82,7 @@ export class OnRamp extends Base<WidgetType.ONRAMP> {
82
82
  browserProvider: this.browserProvider,
83
83
  checkout: this.checkout,
84
84
  allowedChains: [this.checkout.config.l1ChainId, this.checkout.config.l2ChainId],
85
+ allowlistWalletRdns: undefined,
85
86
  };
86
87
 
87
88
  this.reactRoot.render(
@@ -124,6 +124,8 @@ export class Sale extends Base<WidgetType.SALE> {
124
124
  browserProvider: this.browserProvider,
125
125
  checkout: this.checkout,
126
126
  allowedChains: [this.checkout.config.l2ChainId],
127
+ allowlistWalletRdns: undefined,
128
+ walletProviderName: undefined,
127
129
  };
128
130
  const config = this.strongConfig();
129
131
 
@@ -84,6 +84,7 @@ export class Swap extends Base<WidgetType.SWAP> {
84
84
  browserProvider: this.browserProvider,
85
85
  checkout: this.checkout,
86
86
  allowedChains: [this.checkout.config.l2ChainId],
87
+ allowlistWalletRdns: undefined,
87
88
  };
88
89
 
89
90
  this.reactRoot!.render(
@@ -74,6 +74,7 @@ export class Wallet extends Base<WidgetType.WALLET> {
74
74
  browserProvider: this.browserProvider,
75
75
  checkout: this.checkout,
76
76
  allowedChains: [this.checkout.config.l1ChainId, this.checkout.config.l2ChainId],
77
+ allowlistWalletRdns: undefined,
77
78
  };
78
79
 
79
80
  this.reactRoot.render(