diff --git a/.gitignore b/.gitignore index 3ffaf8afca..9542f246c2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ dist node_modules .DS_Store .env +.env.production .idea .next out diff --git a/packages/core/src/controllers/OnRampController.ts b/packages/core/src/controllers/OnRampController.ts index 5e44155b04..28f7bc6ebb 100644 --- a/packages/core/src/controllers/OnRampController.ts +++ b/packages/core/src/controllers/OnRampController.ts @@ -13,6 +13,7 @@ export type OnRampProvider = { name: OnRampProviderOption feeRange: string url: string + supportedChains: string[] } export interface OnRampControllerState { diff --git a/packages/core/src/utils/ConstantsUtil.ts b/packages/core/src/utils/ConstantsUtil.ts index 77fe468452..58fc3306de 100644 --- a/packages/core/src/utils/ConstantsUtil.ts +++ b/packages/core/src/utils/ConstantsUtil.ts @@ -5,13 +5,15 @@ export const ONRAMP_PROVIDERS = [ label: 'Coinbase', name: 'coinbase', feeRange: '1-2%', - url: '' + url: '', + supportedChains: ['evm'] }, { label: 'Meld.io', name: 'meld', feeRange: '1-2%', - url: 'https://meldcrypto.com/?publicKey=WXETMsajb7XcQBm7mcxAab:q3MtzJpiEMtXVNXsqYkAnAaBkgStybGVtZ' + url: 'https://meldcrypto.com/?publicKey=WXETMsajb7XcQBm7mcxAab:q3MtzJpiEMtXVNXsqYkAnAaBkgStybGVtZ', + supportedChains: ['evm', 'solana'] } ] diff --git a/packages/scaffold-ui/src/views/w3m-onramp-providers-view/index.ts b/packages/scaffold-ui/src/views/w3m-onramp-providers-view/index.ts index 25a96bfd6b..ed5992ea0e 100644 --- a/packages/scaffold-ui/src/views/w3m-onramp-providers-view/index.ts +++ b/packages/scaffold-ui/src/views/w3m-onramp-providers-view/index.ts @@ -7,7 +7,8 @@ import { RouterController, NetworkController, BlockchainApiController, - EventsController + EventsController, + ChainController } from '@web3modal/core' import { customElement } from '@web3modal/ui' import { LitElement, html } from 'lit' @@ -61,15 +62,15 @@ export class W3mOnRampProvidersView extends LitElement { // -- Private ------------------------------------------- // private onRampProvidersTemplate() { - return this.providers.map( + return this.providers.filter(provider => provider.supportedChains.includes(ChainController.state.activeChain ?? 'evm')).map( provider => html` { - this.onClickProvider(provider) - }} + this.onClickProvider(provider) + }} ?disabled=${!provider.url} > ` @@ -106,7 +107,7 @@ export class W3mOnRampProvidersView extends LitElement { const defaultNetwork = ConstantsUtil.WC_COINBASE_PAY_SDK_CHAIN_NAME_MAP[ - network.name as CoinbasePaySDKChainNameValues + network.name as CoinbasePaySDKChainNameValues ] ?? ConstantsUtil.WC_COINBASE_PAY_SDK_FALLBACK_CHAIN const purchaseCurrency = OnRampController.state.purchaseCurrency