{"version":3,"file":"index-D7ExiwKc.cjs","sources":["../node_modules/@reown/appkit-pay/dist/esm/src/types/errors.js","../node_modules/@reown/appkit-pay/dist/esm/src/utils/ConstantsUtil.js","../node_modules/@reown/appkit-pay/dist/esm/src/utils/ApiUtil.js","../node_modules/@reown/appkit-pay/dist/esm/src/utils/AssetUtil.js","../node_modules/@reown/appkit-pay/dist/esm/src/utils/PaymentUtil.js","../node_modules/@reown/appkit-pay/dist/esm/src/controllers/PayController.js","../node_modules/@reown/appkit-pay/dist/esm/src/ui/w3m-pay-view/styles.js","../node_modules/@reown/appkit-pay/dist/esm/src/ui/w3m-pay-view/index.js","../node_modules/@reown/appkit-pay/dist/esm/src/ui/w3m-pay-loading-view/styles.js","../node_modules/@reown/appkit-pay/dist/esm/src/ui/w3m-pay-loading-view/index.js","../node_modules/@reown/appkit-pay/dist/esm/src/client.js","../node_modules/@reown/appkit-pay/dist/esm/src/types/assets.js"],"sourcesContent":["export const AppKitPayErrorCodes = {\n    INVALID_PAYMENT_CONFIG: 'INVALID_PAYMENT_CONFIG',\n    INVALID_RECIPIENT: 'INVALID_RECIPIENT',\n    INVALID_ASSET: 'INVALID_ASSET',\n    INVALID_AMOUNT: 'INVALID_AMOUNT',\n    UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n    UNABLE_TO_INITIATE_PAYMENT: 'UNABLE_TO_INITIATE_PAYMENT',\n    INVALID_CHAIN_NAMESPACE: 'INVALID_CHAIN_NAMESPACE',\n    GENERIC_PAYMENT_ERROR: 'GENERIC_PAYMENT_ERROR',\n    UNABLE_TO_GET_EXCHANGES: 'UNABLE_TO_GET_EXCHANGES',\n    ASSET_NOT_SUPPORTED: 'ASSET_NOT_SUPPORTED',\n    UNABLE_TO_GET_PAY_URL: 'UNABLE_TO_GET_PAY_URL',\n    UNABLE_TO_GET_BUY_STATUS: 'UNABLE_TO_GET_BUY_STATUS'\n};\nexport const AppKitPayErrorMessages = {\n    [AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG]: 'Invalid payment configuration',\n    [AppKitPayErrorCodes.INVALID_RECIPIENT]: 'Invalid recipient address',\n    [AppKitPayErrorCodes.INVALID_ASSET]: 'Invalid asset specified',\n    [AppKitPayErrorCodes.INVALID_AMOUNT]: 'Invalid payment amount',\n    [AppKitPayErrorCodes.UNKNOWN_ERROR]: 'Unknown payment error occurred',\n    [AppKitPayErrorCodes.UNABLE_TO_INITIATE_PAYMENT]: 'Unable to initiate payment',\n    [AppKitPayErrorCodes.INVALID_CHAIN_NAMESPACE]: 'Invalid chain namespace',\n    [AppKitPayErrorCodes.GENERIC_PAYMENT_ERROR]: 'Unable to process payment',\n    [AppKitPayErrorCodes.UNABLE_TO_GET_EXCHANGES]: 'Unable to get exchanges',\n    [AppKitPayErrorCodes.ASSET_NOT_SUPPORTED]: 'Asset not supported by the selected exchange',\n    [AppKitPayErrorCodes.UNABLE_TO_GET_PAY_URL]: 'Unable to get payment URL',\n    [AppKitPayErrorCodes.UNABLE_TO_GET_BUY_STATUS]: 'Unable to get buy status'\n};\nexport class AppKitPayError extends Error {\n    get message() {\n        return AppKitPayErrorMessages[this.code];\n    }\n    constructor(code, details) {\n        super(AppKitPayErrorMessages[code]);\n        this.name = 'AppKitPayError';\n        this.code = code;\n        this.details = details;\n        if (Error.captureStackTrace) {\n            Error.captureStackTrace(this, AppKitPayError);\n        }\n    }\n}\nexport function createAppKitPayError(code, details) {\n    const errorCode = code || AppKitPayErrorCodes.UNKNOWN_ERROR;\n    return new AppKitPayError(errorCode, details);\n}\n//# sourceMappingURL=errors.js.map","export const API_URL = 'https://rpc.walletconnect.org/v1/json-rpc';\n//# sourceMappingURL=ConstantsUtil.js.map","import { OptionsController } from '@reown/appkit-controllers';\nimport { API_URL } from './ConstantsUtil.js';\nclass JsonRpcError extends Error {\n}\nexport function getApiUrl() {\n    const projectId = OptionsController.getSnapshot().projectId;\n    return `${API_URL}?projectId=${projectId}`;\n}\nasync function sendRequest(method, params) {\n    const url = getApiUrl();\n    const requestBody = {\n        jsonrpc: '2.0',\n        id: 1,\n        method,\n        params\n    };\n    const response = await fetch(url, {\n        method: 'POST',\n        body: JSON.stringify(requestBody),\n        headers: { 'Content-Type': 'application/json' }\n    });\n    const json = await response.json();\n    if (json.error) {\n        throw new JsonRpcError(json.error.message);\n    }\n    return json;\n}\nexport async function getExchanges(params) {\n    const response = await sendRequest('reown_getExchanges', params);\n    return response.result;\n}\nexport async function getPayUrl(params) {\n    const response = await sendRequest('reown_getExchangePayUrl', params);\n    return response.result;\n}\nexport async function getBuyStatus(params) {\n    const response = await sendRequest('reown_getExchangeBuyStatus', params);\n    return response.result;\n}\n//# sourceMappingURL=ApiUtil.js.map","import { ParseUtil } from '@reown/appkit-common';\nconst SUPPORT_PAY_WITH_WALLET_CHAIN_NAMESPACES = ['eip155'];\nconst CHAIN_ASSET_INFO_MAP = {\n    eip155: {\n        native: { assetNamespace: 'slip44', assetReference: '60' },\n        defaultTokenNamespace: 'erc20'\n    },\n    solana: {\n        native: { assetNamespace: 'slip44', assetReference: '501' },\n        defaultTokenNamespace: 'token'\n    }\n};\nexport function formatCaip19Asset(caipNetworkId, asset) {\n    const { chainNamespace, chainId } = ParseUtil.parseCaipNetworkId(caipNetworkId);\n    const chainInfo = CHAIN_ASSET_INFO_MAP[chainNamespace];\n    if (!chainInfo) {\n        throw new Error(`Unsupported chain namespace for CAIP-19 formatting: ${chainNamespace}`);\n    }\n    let assetNamespace = chainInfo.native.assetNamespace;\n    let assetReference = chainInfo.native.assetReference;\n    if (asset !== 'native') {\n        assetNamespace = chainInfo.defaultTokenNamespace;\n        assetReference = asset;\n    }\n    const networkPart = `${chainNamespace}:${chainId}`;\n    return `${networkPart}/${assetNamespace}:${assetReference}`;\n}\nexport function isPayWithWalletSupported(networkId) {\n    const { chainNamespace } = ParseUtil.parseCaipNetworkId(networkId);\n    return SUPPORT_PAY_WITH_WALLET_CHAIN_NAMESPACES.includes(chainNamespace);\n}\n//# sourceMappingURL=AssetUtil.js.map","import { ConstantsUtil, ContractUtil } from '@reown/appkit-common';\nimport { ChainController, ConnectionController, CoreHelperUtil } from '@reown/appkit-controllers';\nimport { AppKitPayError } from '../types/errors.js';\nimport { AppKitPayErrorCodes } from '../types/errors.js';\nexport async function ensureCorrectNetwork(options) {\n    const { paymentAssetNetwork, activeCaipNetwork, approvedCaipNetworkIds, requestedCaipNetworks } = options;\n    const sortedNetworks = CoreHelperUtil.sortRequestedNetworks(approvedCaipNetworkIds, requestedCaipNetworks);\n    const assetCaipNetwork = sortedNetworks.find(network => network.caipNetworkId === paymentAssetNetwork);\n    if (!assetCaipNetwork) {\n        throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG);\n    }\n    if (assetCaipNetwork.caipNetworkId === activeCaipNetwork.caipNetworkId) {\n        return;\n    }\n    const isSupportingAllNetworks = ChainController.getNetworkProp('supportsAllNetworks', assetCaipNetwork.chainNamespace);\n    const isSwitchAllowed = approvedCaipNetworkIds?.includes(assetCaipNetwork.caipNetworkId) || isSupportingAllNetworks;\n    if (!isSwitchAllowed) {\n        throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG);\n    }\n    try {\n        await ChainController.switchActiveNetwork(assetCaipNetwork);\n    }\n    catch (error) {\n        throw new AppKitPayError(AppKitPayErrorCodes.GENERIC_PAYMENT_ERROR, error);\n    }\n}\nexport async function processEvmNativePayment(paymentAsset, chainNamespace, params) {\n    if (chainNamespace !== ConstantsUtil.CHAIN.EVM) {\n        throw new AppKitPayError(AppKitPayErrorCodes.INVALID_CHAIN_NAMESPACE);\n    }\n    if (!params.fromAddress) {\n        throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG, 'fromAddress is required for native EVM payments.');\n    }\n    const amountValue = typeof params.amount === 'string' ? parseFloat(params.amount) : params.amount;\n    if (isNaN(amountValue)) {\n        throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG);\n    }\n    const decimals = paymentAsset.metadata?.decimals ?? 18;\n    const amountBigInt = ConnectionController.parseUnits(amountValue.toString(), decimals);\n    if (typeof amountBigInt !== 'bigint') {\n        throw new AppKitPayError(AppKitPayErrorCodes.GENERIC_PAYMENT_ERROR);\n    }\n    const txResponse = await ConnectionController.sendTransaction({\n        chainNamespace,\n        to: params.recipient,\n        address: params.fromAddress,\n        value: amountBigInt,\n        data: '0x'\n    });\n    return txResponse ?? undefined;\n}\nexport async function processEvmErc20Payment(paymentAsset, params) {\n    if (!params.fromAddress) {\n        throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG, 'fromAddress is required for ERC20 EVM payments.');\n    }\n    const tokenAddress = paymentAsset.asset;\n    const recipientAddress = params.recipient;\n    const decimals = Number(paymentAsset.metadata.decimals);\n    const amountBigInt = ConnectionController.parseUnits(params.amount.toString(), decimals);\n    if (amountBigInt === undefined) {\n        throw new AppKitPayError(AppKitPayErrorCodes.GENERIC_PAYMENT_ERROR);\n    }\n    const txResponse = await ConnectionController.writeContract({\n        fromAddress: params.fromAddress,\n        tokenAddress,\n        args: [recipientAddress, amountBigInt],\n        method: 'transfer',\n        abi: ContractUtil.getERC20Abi(tokenAddress),\n        chainNamespace: ConstantsUtil.CHAIN.EVM\n    });\n    return txResponse ?? undefined;\n}\n//# sourceMappingURL=PaymentUtil.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { ConstantsUtil, ParseUtil } from '@reown/appkit-common';\nimport { AccountController, ChainController, CoreHelperUtil, EventsController, ModalController, RouterController, SnackController } from '@reown/appkit-controllers';\nimport { ProviderUtil } from '@reown/appkit-utils';\nimport { AppKitPayErrorCodes, AppKitPayErrorMessages } from '../types/errors.js';\nimport { AppKitPayError } from '../types/errors.js';\nimport { getBuyStatus, getExchanges, getPayUrl } from '../utils/ApiUtil.js';\nimport { formatCaip19Asset } from '../utils/AssetUtil.js';\nimport { ensureCorrectNetwork, processEvmErc20Payment, processEvmNativePayment } from '../utils/PaymentUtil.js';\nconst DEFAULT_PAGE = 0;\nconst DEFAULT_PAYMENT_ID = 'unknown';\nconst state = proxy({\n    paymentAsset: {\n        network: 'eip155:1',\n        asset: '0x0',\n        metadata: {\n            name: '0x0',\n            symbol: '0x0',\n            decimals: 0\n        }\n    },\n    recipient: '0x0',\n    amount: 0,\n    isConfigured: false,\n    error: null,\n    isPaymentInProgress: false,\n    exchanges: [],\n    isLoading: false,\n    openInNewTab: true,\n    redirectUrl: undefined,\n    payWithExchange: undefined,\n    currentPayment: undefined,\n    analyticsSet: false,\n    paymentId: undefined\n});\nexport const PayController = {\n    state,\n    subscribe(callback) {\n        return sub(state, () => callback(state));\n    },\n    subscribeKey(key, callback) {\n        return subKey(state, key, callback);\n    },\n    async handleOpenPay(options) {\n        this.resetState();\n        this.setPaymentConfig(options);\n        this.subscribeEvents();\n        this.initializeAnalytics();\n        state.isConfigured = true;\n        EventsController.sendEvent({\n            type: 'track',\n            event: 'PAY_MODAL_OPEN',\n            properties: {\n                exchanges: state.exchanges,\n                configuration: {\n                    network: state.paymentAsset.network,\n                    asset: state.paymentAsset.asset,\n                    recipient: state.recipient,\n                    amount: state.amount\n                }\n            }\n        });\n        await ModalController.open({\n            view: 'Pay'\n        });\n    },\n    resetState() {\n        state.paymentAsset = {\n            network: 'eip155:1',\n            asset: '0x0',\n            metadata: { name: '0x0', symbol: '0x0', decimals: 0 }\n        };\n        state.recipient = '0x0';\n        state.amount = 0;\n        state.isConfigured = false;\n        state.error = null;\n        state.isPaymentInProgress = false;\n        state.isLoading = false;\n        state.currentPayment = undefined;\n    },\n    setPaymentConfig(config) {\n        if (!config.paymentAsset) {\n            throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG);\n        }\n        try {\n            state.paymentAsset = config.paymentAsset;\n            state.recipient = config.recipient;\n            state.amount = config.amount;\n            state.openInNewTab = config.openInNewTab ?? true;\n            state.redirectUrl = config.redirectUrl;\n            state.payWithExchange = config.payWithExchange;\n            state.error = null;\n        }\n        catch (error) {\n            throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG, error.message);\n        }\n    },\n    getPaymentAsset() {\n        return state.paymentAsset;\n    },\n    getExchanges() {\n        return state.exchanges;\n    },\n    async fetchExchanges() {\n        try {\n            state.isLoading = true;\n            const response = await getExchanges({\n                page: DEFAULT_PAGE,\n                asset: formatCaip19Asset(state.paymentAsset.network, state.paymentAsset.asset),\n                amount: state.amount.toString()\n            });\n            state.exchanges = response.exchanges.slice(0, 2);\n        }\n        catch (error) {\n            SnackController.showError(AppKitPayErrorMessages.UNABLE_TO_GET_EXCHANGES);\n            throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_EXCHANGES);\n        }\n        finally {\n            state.isLoading = false;\n        }\n    },\n    async getAvailableExchanges(params) {\n        try {\n            const asset = params?.asset && params?.network\n                ? formatCaip19Asset(params.network, params.asset)\n                : undefined;\n            const response = await getExchanges({\n                page: params?.page ?? DEFAULT_PAGE,\n                asset,\n                amount: params?.amount?.toString()\n            });\n            return response;\n        }\n        catch (error) {\n            throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_EXCHANGES);\n        }\n    },\n    async getPayUrl(exchangeId, params, headless = false) {\n        try {\n            const numericAmount = Number(params.amount);\n            const response = await getPayUrl({\n                exchangeId,\n                asset: formatCaip19Asset(params.network, params.asset),\n                amount: numericAmount.toString(),\n                recipient: `${params.network}:${params.recipient}`\n            });\n            EventsController.sendEvent({\n                type: 'track',\n                event: 'PAY_EXCHANGE_SELECTED',\n                properties: {\n                    exchange: {\n                        id: exchangeId\n                    },\n                    configuration: {\n                        network: params.network,\n                        asset: params.asset,\n                        recipient: params.recipient,\n                        amount: numericAmount\n                    },\n                    currentPayment: {\n                        type: 'exchange',\n                        exchangeId\n                    },\n                    headless\n                }\n            });\n            if (headless) {\n                this.initiatePayment();\n                EventsController.sendEvent({\n                    type: 'track',\n                    event: 'PAY_INITIATED',\n                    properties: {\n                        paymentId: state.paymentId || DEFAULT_PAYMENT_ID,\n                        configuration: {\n                            network: params.network,\n                            asset: params.asset,\n                            recipient: params.recipient,\n                            amount: numericAmount\n                        },\n                        currentPayment: {\n                            type: 'exchange',\n                            exchangeId\n                        }\n                    }\n                });\n            }\n            return response;\n        }\n        catch (error) {\n            if (error instanceof Error && error.message.includes('is not supported')) {\n                throw new AppKitPayError(AppKitPayErrorCodes.ASSET_NOT_SUPPORTED);\n            }\n            throw new Error(error.message);\n        }\n    },\n    async openPayUrl(openParams, params, headless = false) {\n        try {\n            const payUrl = await this.getPayUrl(openParams.exchangeId, params, headless);\n            if (!payUrl) {\n                throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_PAY_URL);\n            }\n            const shouldOpenInNewTab = openParams.openInNewTab ?? true;\n            const target = shouldOpenInNewTab ? '_blank' : '_self';\n            CoreHelperUtil.openHref(payUrl.url, target);\n            return payUrl;\n        }\n        catch (error) {\n            if (error instanceof AppKitPayError) {\n                state.error = error.message;\n            }\n            else {\n                state.error = AppKitPayErrorMessages.GENERIC_PAYMENT_ERROR;\n            }\n            throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_PAY_URL);\n        }\n    },\n    subscribeEvents() {\n        if (state.isConfigured) {\n            return;\n        }\n        ProviderUtil.subscribeProviders(async (_) => {\n            const chainNamespace = ChainController.state.activeChain;\n            const provider = ProviderUtil.getProvider(chainNamespace);\n            if (!provider) {\n                return;\n            }\n            await this.handlePayment();\n        });\n        AccountController.subscribeKey('caipAddress', async (caipAddress) => {\n            if (!caipAddress) {\n                return;\n            }\n            await this.handlePayment();\n        });\n    },\n    async handlePayment() {\n        state.currentPayment = {\n            type: 'wallet',\n            status: 'IN_PROGRESS'\n        };\n        const caipAddress = AccountController.state.caipAddress;\n        if (!caipAddress) {\n            return;\n        }\n        const { chainId, address } = ParseUtil.parseCaipAddress(caipAddress);\n        const chainNamespace = ChainController.state.activeChain;\n        if (!address || !chainId || !chainNamespace) {\n            return;\n        }\n        const provider = ProviderUtil.getProvider(chainNamespace);\n        if (!provider) {\n            return;\n        }\n        const caipNetwork = ChainController.state.activeCaipNetwork;\n        if (!caipNetwork) {\n            return;\n        }\n        if (state.isPaymentInProgress) {\n            return;\n        }\n        try {\n            this.initiatePayment();\n            const requestedCaipNetworks = ChainController.getAllRequestedCaipNetworks();\n            const approvedCaipNetworkIds = ChainController.getAllApprovedCaipNetworkIds();\n            await ensureCorrectNetwork({\n                paymentAssetNetwork: state.paymentAsset.network,\n                activeCaipNetwork: caipNetwork,\n                approvedCaipNetworkIds,\n                requestedCaipNetworks\n            });\n            await ModalController.open({\n                view: 'PayLoading'\n            });\n            switch (chainNamespace) {\n                case ConstantsUtil.CHAIN.EVM:\n                    if (state.paymentAsset.asset === 'native') {\n                        state.currentPayment.result = await processEvmNativePayment(state.paymentAsset, chainNamespace, {\n                            recipient: state.recipient,\n                            amount: state.amount,\n                            fromAddress: address\n                        });\n                    }\n                    if (state.paymentAsset.asset.startsWith('0x')) {\n                        state.currentPayment.result = await processEvmErc20Payment(state.paymentAsset, {\n                            recipient: state.recipient,\n                            amount: state.amount,\n                            fromAddress: address\n                        });\n                    }\n                    state.currentPayment.status = 'SUCCESS';\n                    break;\n                default:\n                    throw new AppKitPayError(AppKitPayErrorCodes.INVALID_CHAIN_NAMESPACE);\n            }\n        }\n        catch (error) {\n            if (error instanceof AppKitPayError) {\n                state.error = error.message;\n            }\n            else {\n                state.error = AppKitPayErrorMessages.GENERIC_PAYMENT_ERROR;\n            }\n            state.currentPayment.status = 'FAILED';\n            SnackController.showError(state.error);\n        }\n        finally {\n            state.isPaymentInProgress = false;\n        }\n    },\n    getExchangeById(exchangeId) {\n        return state.exchanges.find(exchange => exchange.id === exchangeId);\n    },\n    validatePayConfig(config) {\n        const { paymentAsset, recipient, amount } = config;\n        if (!paymentAsset) {\n            throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG);\n        }\n        if (!recipient) {\n            throw new AppKitPayError(AppKitPayErrorCodes.INVALID_RECIPIENT);\n        }\n        if (!paymentAsset.asset) {\n            throw new AppKitPayError(AppKitPayErrorCodes.INVALID_ASSET);\n        }\n        if (amount === undefined || amount === null || amount <= 0) {\n            throw new AppKitPayError(AppKitPayErrorCodes.INVALID_AMOUNT);\n        }\n    },\n    handlePayWithWallet() {\n        const caipAddress = AccountController.state.caipAddress;\n        if (!caipAddress) {\n            RouterController.push('Connect');\n            return;\n        }\n        const { chainId, address } = ParseUtil.parseCaipAddress(caipAddress);\n        const chainNamespace = ChainController.state.activeChain;\n        if (!address || !chainId || !chainNamespace) {\n            RouterController.push('Connect');\n            return;\n        }\n        this.handlePayment();\n    },\n    async handlePayWithExchange(exchangeId) {\n        try {\n            state.currentPayment = {\n                type: 'exchange',\n                exchangeId\n            };\n            const { network, asset } = state.paymentAsset;\n            const payUrlParams = {\n                network,\n                asset,\n                amount: state.amount,\n                recipient: state.recipient\n            };\n            const payUrl = await this.getPayUrl(exchangeId, payUrlParams);\n            if (!payUrl) {\n                throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_INITIATE_PAYMENT);\n            }\n            state.currentPayment.sessionId = payUrl.sessionId;\n            state.currentPayment.status = 'IN_PROGRESS';\n            state.currentPayment.exchangeId = exchangeId;\n            this.initiatePayment();\n            return {\n                url: payUrl.url,\n                openInNewTab: state.openInNewTab\n            };\n        }\n        catch (error) {\n            if (error instanceof AppKitPayError) {\n                state.error = error.message;\n            }\n            else {\n                state.error = AppKitPayErrorMessages.GENERIC_PAYMENT_ERROR;\n            }\n            state.isPaymentInProgress = false;\n            SnackController.showError(state.error);\n            return null;\n        }\n    },\n    async getBuyStatus(exchangeId, sessionId) {\n        try {\n            const status = await getBuyStatus({ sessionId, exchangeId });\n            if (status.status === 'SUCCESS' || status.status === 'FAILED') {\n                EventsController.sendEvent({\n                    type: 'track',\n                    event: status.status === 'SUCCESS' ? 'PAY_SUCCESS' : 'PAY_ERROR',\n                    properties: {\n                        paymentId: state.paymentId || DEFAULT_PAYMENT_ID,\n                        configuration: {\n                            network: state.paymentAsset.network,\n                            asset: state.paymentAsset.asset,\n                            recipient: state.recipient,\n                            amount: state.amount\n                        },\n                        currentPayment: {\n                            type: 'exchange',\n                            exchangeId: state.currentPayment?.exchangeId,\n                            sessionId: state.currentPayment?.sessionId,\n                            result: status.txHash\n                        }\n                    }\n                });\n            }\n            return status;\n        }\n        catch (error) {\n            throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_BUY_STATUS);\n        }\n    },\n    async updateBuyStatus(exchangeId, sessionId) {\n        try {\n            const status = await this.getBuyStatus(exchangeId, sessionId);\n            if (state.currentPayment) {\n                state.currentPayment.status = status.status;\n                state.currentPayment.result = status.txHash;\n            }\n            if (status.status === 'SUCCESS' || status.status === 'FAILED') {\n                state.isPaymentInProgress = false;\n            }\n        }\n        catch (error) {\n            throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_BUY_STATUS);\n        }\n    },\n    initiatePayment() {\n        state.isPaymentInProgress = true;\n        state.paymentId = crypto.randomUUID();\n    },\n    initializeAnalytics() {\n        if (state.analyticsSet) {\n            return;\n        }\n        state.analyticsSet = true;\n        this.subscribeKey('isPaymentInProgress', _ => {\n            if (state.currentPayment?.status && state.currentPayment.status !== 'UNKNOWN') {\n                const eventType = {\n                    IN_PROGRESS: 'PAY_INITIATED',\n                    SUCCESS: 'PAY_SUCCESS',\n                    FAILED: 'PAY_ERROR'\n                }[state.currentPayment.status];\n                EventsController.sendEvent({\n                    type: 'track',\n                    event: eventType,\n                    properties: {\n                        paymentId: state.paymentId || DEFAULT_PAYMENT_ID,\n                        configuration: {\n                            network: state.paymentAsset.network,\n                            asset: state.paymentAsset.asset,\n                            recipient: state.recipient,\n                            amount: state.amount\n                        },\n                        currentPayment: {\n                            type: state.currentPayment.type,\n                            exchangeId: state.currentPayment.exchangeId,\n                            sessionId: state.currentPayment.sessionId,\n                            result: state.currentPayment.result\n                        }\n                    }\n                });\n            }\n        });\n    }\n};\n//# sourceMappingURL=PayController.js.map","import { css } from 'lit';\nexport default css `\n  wui-separator {\n    margin: var(--wui-spacing-m) calc(var(--wui-spacing-m) * -1) var(--wui-spacing-xs)\n      calc(var(--wui-spacing-m) * -1);\n    width: calc(100% + var(--wui-spacing-s) * 2);\n  }\n\n  .token-display {\n    padding: var(--wui-spacing-s) var(--wui-spacing-m);\n    border-radius: var(--wui-border-radius-s);\n    background-color: var(--wui-color-bg-125);\n    margin-top: var(--wui-spacing-s);\n    margin-bottom: var(--wui-spacing-s);\n  }\n\n  .token-display wui-text {\n    text-transform: none;\n  }\n\n  wui-loading-spinner {\n    padding: var(--wui-spacing-xs);\n  }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { AccountController, ChainController, ConnectionController, CoreHelperUtil, ModalController, SnackController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-button';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-icon';\nimport '@reown/appkit-ui/wui-icon-button';\nimport '@reown/appkit-ui/wui-icon-link';\nimport '@reown/appkit-ui/wui-image';\nimport '@reown/appkit-ui/wui-list-item';\nimport '@reown/appkit-ui/wui-loading-spinner';\nimport '@reown/appkit-ui/wui-network-image';\nimport '@reown/appkit-ui/wui-separator';\nimport '@reown/appkit-ui/wui-text';\nimport '@reown/appkit-ui/wui-wallet-image';\nimport { PayController } from '../../controllers/PayController.js';\nimport { isPayWithWalletSupported } from '../../utils/AssetUtil.js';\nimport styles from './styles.js';\nlet W3mPayView = class W3mPayView extends LitElement {\n    constructor() {\n        super();\n        this.unsubscribe = [];\n        this.amount = '';\n        this.tokenSymbol = '';\n        this.networkName = '';\n        this.exchanges = PayController.state.exchanges;\n        this.isLoading = PayController.state.isLoading;\n        this.loadingExchangeId = null;\n        this.connectedWalletInfo = AccountController.state.connectedWalletInfo;\n        this.initializePaymentDetails();\n        this.unsubscribe.push(PayController.subscribeKey('exchanges', val => (this.exchanges = val)));\n        this.unsubscribe.push(PayController.subscribeKey('isLoading', val => (this.isLoading = val)));\n        this.unsubscribe.push(AccountController.subscribe(newState => (this.connectedWalletInfo = newState.connectedWalletInfo)));\n        PayController.fetchExchanges();\n    }\n    get isWalletConnected() {\n        return AccountController.state.status === 'connected';\n    }\n    render() {\n        return html `\n      <wui-flex flexDirection=\"column\">\n        <wui-flex flexDirection=\"column\" .padding=${['0', 'l', 'l', 'l']} gap=\"s\">\n          ${this.renderPaymentHeader()}\n\n          <wui-flex flexDirection=\"column\" gap=\"s\">\n            ${this.renderPayWithWallet()} ${this.renderExchangeOptions()}\n          </wui-flex>\n        </wui-flex>\n      </wui-flex>\n    `;\n    }\n    initializePaymentDetails() {\n        const paymentAsset = PayController.getPaymentAsset();\n        this.networkName = paymentAsset.network;\n        this.tokenSymbol = paymentAsset.metadata.symbol;\n        this.amount = PayController.state.amount.toString();\n    }\n    renderPayWithWallet() {\n        if (!isPayWithWalletSupported(this.networkName)) {\n            return html ``;\n        }\n        return html `<wui-flex flexDirection=\"column\" gap=\"s\">\n        ${this.isWalletConnected ? this.renderConnectedView() : this.renderDisconnectedView()}\n      </wui-flex>\n      <wui-separator text=\"or\"></wui-separator>`;\n    }\n    renderPaymentHeader() {\n        let displayNetworkName = this.networkName;\n        if (this.networkName) {\n            const allNetworks = ChainController.getAllRequestedCaipNetworks();\n            const targetNetwork = allNetworks.find(net => net.caipNetworkId === this.networkName);\n            if (targetNetwork) {\n                displayNetworkName = targetNetwork.name;\n            }\n        }\n        return html `\n      <wui-flex flexDirection=\"column\" alignItems=\"center\">\n        <wui-flex alignItems=\"center\" gap=\"xs\">\n          <wui-text variant=\"large-700\" color=\"fg-100\">${this.amount || '0.0000'}</wui-text>\n          <wui-flex class=\"token-display\" alignItems=\"center\" gap=\"xxs\">\n            <wui-text variant=\"paragraph-600\" color=\"fg-100\">\n              ${this.tokenSymbol || 'Unknown Asset'}\n            </wui-text>\n            ${displayNetworkName\n            ? html `\n                  <wui-text variant=\"small-500\" color=\"fg-200\"> on ${displayNetworkName} </wui-text>\n                `\n            : ''}\n          </wui-flex>\n        </wui-flex>\n      </wui-flex>\n    `;\n    }\n    renderConnectedView() {\n        const walletName = this.connectedWalletInfo?.name || 'connected wallet';\n        return html `\n      <wui-list-item\n        @click=${this.onWalletPayment}\n        ?chevron=${true}\n        data-testid=\"wallet-payment-option\"\n      >\n        <wui-flex alignItems=\"center\" gap=\"s\">\n          <wui-wallet-image\n            size=\"sm\"\n            imageSrc=${ifDefined(this.connectedWalletInfo?.icon)}\n            name=${ifDefined(this.connectedWalletInfo?.name)}\n          ></wui-wallet-image>\n          <wui-text variant=\"paragraph-500\" color=\"inherit\">Pay with ${walletName}</wui-text>\n        </wui-flex>\n      </wui-list-item>\n\n      <wui-list-item\n        variant=\"icon\"\n        iconVariant=\"overlay\"\n        icon=\"disconnect\"\n        @click=${this.onDisconnect}\n        data-testid=\"disconnect-button\"\n        ?chevron=${false}\n      >\n        <wui-text variant=\"paragraph-500\" color=\"fg-200\">Disconnect</wui-text>\n      </wui-list-item>\n    `;\n    }\n    renderDisconnectedView() {\n        return html `<wui-list-item\n      variant=\"icon\"\n      iconVariant=\"overlay\"\n      icon=\"walletPlaceholder\"\n      @click=${this.onWalletPayment}\n      ?chevron=${true}\n      data-testid=\"wallet-payment-option\"\n    >\n      <wui-text variant=\"paragraph-500\" color=\"inherit\">Pay from wallet</wui-text>\n    </wui-list-item>`;\n    }\n    renderExchangeOptions() {\n        if (this.isLoading) {\n            return html `<wui-flex justifyContent=\"center\" alignItems=\"center\">\n        <wui-spinner size=\"md\"></wui-spinner>\n      </wui-flex>`;\n        }\n        if (this.exchanges.length === 0) {\n            return html `<wui-flex justifyContent=\"center\" alignItems=\"center\">\n        <wui-text variant=\"paragraph-500\" color=\"fg-100\">No exchanges available</wui-text>\n      </wui-flex>`;\n        }\n        return this.exchanges.map(exchange => html `\n        <wui-list-item\n          @click=${() => this.onExchangePayment(exchange.id)}\n          data-testid=\"exchange-option-${exchange.id}\"\n          ?chevron=${true}\n          ?disabled=${this.loadingExchangeId !== null}\n        >\n          <wui-flex alignItems=\"center\" gap=\"s\">\n            ${this.loadingExchangeId === exchange.id\n            ? html `<wui-loading-spinner color=\"accent-100\" size=\"md\"></wui-loading-spinner>`\n            : html `<wui-wallet-image\n                  size=\"sm\"\n                  imageSrc=${ifDefined(exchange.imageUrl)}\n                  name=${exchange.name}\n                ></wui-wallet-image>`}\n            <wui-text flexGrow=\"1\" variant=\"paragraph-500\" color=\"inherit\"\n              >Pay with ${exchange.name} <wui-spinner size=\"sm\" color=\"fg-200\"></wui-spinner\n            ></wui-text>\n          </wui-flex>\n        </wui-list-item>\n      `);\n    }\n    onWalletPayment() {\n        PayController.handlePayWithWallet();\n    }\n    async onExchangePayment(exchangeId) {\n        try {\n            this.loadingExchangeId = exchangeId;\n            const result = await PayController.handlePayWithExchange(exchangeId);\n            if (result) {\n                await ModalController.open({\n                    view: 'PayLoading'\n                });\n                CoreHelperUtil.openHref(result.url, result.openInNewTab ? '_blank' : '_self');\n            }\n        }\n        catch (error) {\n            console.error('Failed to pay with exchange', error);\n            SnackController.showError('Failed to pay with exchange');\n        }\n        finally {\n            this.loadingExchangeId = null;\n        }\n    }\n    async onDisconnect(e) {\n        e.stopPropagation();\n        try {\n            await ConnectionController.disconnect();\n            ModalController.close();\n        }\n        catch {\n            console.error('Failed to disconnect');\n            SnackController.showError('Failed to disconnect');\n        }\n    }\n    disconnectedCallback() {\n        this.unsubscribe.forEach(unsubscribe => unsubscribe());\n    }\n};\nW3mPayView.styles = styles;\n__decorate([\n    state()\n], W3mPayView.prototype, \"amount\", void 0);\n__decorate([\n    state()\n], W3mPayView.prototype, \"tokenSymbol\", void 0);\n__decorate([\n    state()\n], W3mPayView.prototype, \"networkName\", void 0);\n__decorate([\n    state()\n], W3mPayView.prototype, \"exchanges\", void 0);\n__decorate([\n    state()\n], W3mPayView.prototype, \"isLoading\", void 0);\n__decorate([\n    state()\n], W3mPayView.prototype, \"loadingExchangeId\", void 0);\n__decorate([\n    state()\n], W3mPayView.prototype, \"connectedWalletInfo\", void 0);\nW3mPayView = __decorate([\n    customElement('w3m-pay-view')\n], W3mPayView);\nexport { W3mPayView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n  :host {\n    display: block;\n    height: 100%;\n    width: 100%;\n  }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ConnectionController, ModalController, ThemeController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-icon';\nimport '@reown/appkit-ui/wui-loading-thumbnail';\nimport '@reown/appkit-ui/wui-text';\nimport { PayController } from '../../controllers/PayController.js';\nimport styles from './styles.js';\nconst EXCHANGE_STATUS_CHECK_INTERVAL = 4000;\nlet W3mPayLoadingView = class W3mPayLoadingView extends LitElement {\n    constructor() {\n        super();\n        this.loadingMessage = '';\n        this.subMessage = '';\n        this.paymentState = 'in-progress';\n        this.paymentState = PayController.state.isPaymentInProgress ? 'in-progress' : 'completed';\n        this.updateMessages();\n        this.setupSubscription();\n        this.setupExchangeSubscription();\n    }\n    disconnectedCallback() {\n        clearInterval(this.exchangeSubscription);\n    }\n    render() {\n        return html `\n      <wui-flex\n        flexDirection=\"column\"\n        alignItems=\"center\"\n        .padding=${['xl', 'xl', 'xl', 'xl']}\n        gap=\"xl\"\n      >\n        <wui-flex justifyContent=\"center\" alignItems=\"center\"> ${this.getStateIcon()} </wui-flex>\n        <wui-flex flexDirection=\"column\" alignItems=\"center\" gap=\"xs\">\n          <wui-text align=\"center\" variant=\"paragraph-500\" color=\"fg-100\">\n            ${this.loadingMessage}\n          </wui-text>\n          <wui-text align=\"center\" variant=\"small-400\" color=\"fg-200\">\n            ${this.subMessage}\n          </wui-text>\n        </wui-flex>\n      </wui-flex>\n    `;\n    }\n    updateMessages() {\n        switch (this.paymentState) {\n            case 'completed':\n                this.loadingMessage = 'Payment completed';\n                this.subMessage = 'Your transaction has been successfully processed';\n                break;\n            case 'error':\n                this.loadingMessage = 'Payment failed';\n                this.subMessage = 'There was an error processing your transaction';\n                break;\n            case 'in-progress':\n            default:\n                if (PayController.state.currentPayment?.type === 'exchange') {\n                    this.loadingMessage = 'Payment initiated';\n                    this.subMessage = `Please complete the payment on the exchange`;\n                }\n                else {\n                    this.loadingMessage = 'Awaiting payment confirmation';\n                    this.subMessage = 'Please confirm the payment transaction in your wallet';\n                }\n                break;\n        }\n    }\n    getStateIcon() {\n        switch (this.paymentState) {\n            case 'completed':\n                return this.successTemplate();\n            case 'error':\n                return this.errorTemplate();\n            case 'in-progress':\n            default:\n                return this.loaderTemplate();\n        }\n    }\n    setupExchangeSubscription() {\n        if (PayController.state.currentPayment?.type !== 'exchange') {\n            return;\n        }\n        this.exchangeSubscription = setInterval(async () => {\n            const exchangeId = PayController.state.currentPayment?.exchangeId;\n            const sessionId = PayController.state.currentPayment?.sessionId;\n            if (exchangeId && sessionId) {\n                await PayController.updateBuyStatus(exchangeId, sessionId);\n                if (PayController.state.currentPayment?.status === 'SUCCESS') {\n                    clearInterval(this.exchangeSubscription);\n                }\n            }\n        }, EXCHANGE_STATUS_CHECK_INTERVAL);\n    }\n    setupSubscription() {\n        PayController.subscribeKey('isPaymentInProgress', (inProgress) => {\n            if (!inProgress && this.paymentState === 'in-progress') {\n                if (PayController.state.error || !PayController.state.currentPayment?.result) {\n                    this.paymentState = 'error';\n                }\n                else {\n                    this.paymentState = 'completed';\n                }\n                this.updateMessages();\n                setTimeout(() => {\n                    if (ConnectionController.state.status === 'disconnected') {\n                        return;\n                    }\n                    ModalController.close();\n                }, 3000);\n            }\n        });\n        PayController.subscribeKey('error', (error) => {\n            if (error && this.paymentState === 'in-progress') {\n                this.paymentState = 'error';\n                this.updateMessages();\n            }\n        });\n    }\n    loaderTemplate() {\n        const borderRadiusMaster = ThemeController.state.themeVariables['--w3m-border-radius-master'];\n        const radius = borderRadiusMaster ? parseInt(borderRadiusMaster.replace('px', ''), 10) : 4;\n        return html `<wui-loading-thumbnail radius=${radius * 9}></wui-loading-thumbnail>`;\n    }\n    successTemplate() {\n        return html `<wui-icon size=\"xl\" color=\"success-100\" name=\"checkmark\"></wui-icon>`;\n    }\n    errorTemplate() {\n        return html `<wui-icon size=\"xl\" color=\"error-100\" name=\"close\"></wui-icon>`;\n    }\n};\nW3mPayLoadingView.styles = styles;\n__decorate([\n    state()\n], W3mPayLoadingView.prototype, \"loadingMessage\", void 0);\n__decorate([\n    state()\n], W3mPayLoadingView.prototype, \"subMessage\", void 0);\n__decorate([\n    state()\n], W3mPayLoadingView.prototype, \"paymentState\", void 0);\nW3mPayLoadingView = __decorate([\n    customElement('w3m-pay-loading-view')\n], W3mPayLoadingView);\nexport { W3mPayLoadingView };\n//# sourceMappingURL=index.js.map","import { PayController } from './controllers/PayController.js';\nexport async function openPay(options) {\n    return PayController.handleOpenPay(options);\n}\nexport function getAvailableExchanges(params) {\n    return PayController.getAvailableExchanges(params);\n}\nexport function getPayUrl(exchangeId, params) {\n    return PayController.getPayUrl(exchangeId, params, true);\n}\nexport function openPayUrl(exchangeId, params, openInNewTab) {\n    return PayController.openPayUrl({ exchangeId, openInNewTab }, params, true);\n}\nexport function getExchanges() {\n    return PayController.getExchanges();\n}\nexport function getPayResult() {\n    return PayController.state.currentPayment?.result;\n}\nexport function getPayError() {\n    return PayController.state.error;\n}\nexport function getIsPaymentInProgress() {\n    return PayController.state.isPaymentInProgress;\n}\nexport function subscribeStateKey(key, callback) {\n    return PayController.subscribeKey(key, callback);\n}\n//# sourceMappingURL=client.js.map","export const baseETH = {\n    network: 'eip155:8453',\n    asset: 'native',\n    metadata: {\n        name: 'Ethereum',\n        symbol: 'ETH',\n        decimals: 18\n    }\n};\nexport const baseUSDC = {\n    network: 'eip155:8453',\n    asset: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',\n    metadata: {\n        name: 'USD Coin',\n        symbol: 'USDC',\n        decimals: 6\n    }\n};\nexport const baseSepoliaETH = {\n    network: 'eip155:84532',\n    asset: 'native',\n    metadata: {\n        name: 'Ethereum',\n        symbol: 'ETH',\n        decimals: 18\n    }\n};\n//# sourceMappingURL=assets.js.map"],"names":["AppKitPayErrorCodes","AppKitPayErrorMessages","AppKitPayError","code","details","API_URL","JsonRpcError","getApiUrl","projectId","OptionsController","sendRequest","method","params","url","json","getExchanges","getPayUrl","getBuyStatus","SUPPORT_PAY_WITH_WALLET_CHAIN_NAMESPACES","CHAIN_ASSET_INFO_MAP","formatCaip19Asset","caipNetworkId","asset","chainNamespace","chainId","ParseUtil","chainInfo","assetNamespace","assetReference","isPayWithWalletSupported","networkId","ensureCorrectNetwork","options","paymentAssetNetwork","activeCaipNetwork","approvedCaipNetworkIds","requestedCaipNetworks","assetCaipNetwork","CoreHelperUtil","network","isSupportingAllNetworks","ChainController","error","processEvmNativePayment","paymentAsset","ConstantsUtil","amountValue","decimals","_a","amountBigInt","ConnectionController","processEvmErc20Payment","tokenAddress","recipientAddress","ContractUtil","DEFAULT_PAGE","DEFAULT_PAYMENT_ID","state","proxy","PayController","callback","sub","key","subKey","EventsController","ModalController","config","response","SnackController","exchangeId","headless","numericAmount","openParams","payUrl","target","ProviderUtil","_","AccountController","caipAddress","address","caipNetwork","exchange","recipient","amount","RouterController","payUrlParams","sessionId","status","_b","eventType","css","__decorate","decorators","desc","c","r","d","i","W3mPayView","LitElement","val","newState","html","displayNetworkName","targetNetwork","net","walletName","ifDefined","_c","result","unsubscribe","styles","customElement","EXCHANGE_STATUS_CHECK_INTERVAL","W3mPayLoadingView","inProgress","borderRadiusMaster","ThemeController","radius","openPay","getPayResult","getPayError","getIsPaymentInProgress","baseETH","baseUSDC","baseSepoliaETH"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}