@privy-io/js-sdk-core
Version:
Vanilla JS client for the Privy Auth API
2 lines (1 loc) • 1.53 kB
JavaScript
import{mainnet as e,base as a,optimism as s,polygon as t,arbitrum as r,avalanche as n}from"@privy-io/chains";let i=new Set([e.id,a.id,s.id,t.id,r.id,n.id]),d=new Set([e.id,a.id,t.id,s.id,r.id,n.id]),c={buy:"CARD",send:"CRYPTO_ACCOUNT"},o={USDC:"2b92315d-eab7-5bef-84fa-089a131333f5",ETH:"d85dce9b-5b73-5c3c-8978-522ce1d1c1b4",BTC:"5b71fc48-3dd3-540c-809b-f8c94d0e68b5",SOL:"4f039497-3af8-5bb3-951c-6df9afa9be1c",POL:"026bcc1e-9163-591c-a709-34dd18b2e7a1"},u={[e.id]:"ethereum",[a.id]:"base",[s.id]:"optimism",[t.id]:"polygon",[r.id]:"arbitrum",[n.id]:"avacchain"};function p({appId:e,input:a,amount:s,blockchain:t,asset:r,experience:n}){let i=new URL("https://pay.coinbase.com/buy/select-asset");return i.searchParams.set("appId",a.app_id),i.searchParams.set("sessionToken",a.session_token),i.searchParams.set("endPartnerName",`privy:${e}`),i.searchParams.set("defaultExperience",n),i.searchParams.set("presetCryptoAmount",s.startsWith(".")?`0${s}`:s),i.searchParams.set("defaultNetwork",t),i.searchParams.set("defaultPaymentMethod",c[n]),i.searchParams.set("defaultAsset",o[r]),i.searchParams.set("partnerUserId",a.partner_user_id),{url:i}}const b=(e,a)=>{switch(a){case"native-currency":return i.has(e);case"USDC":return d.has(e);default:return console.warn("Unknown asset passed to Coinbase Onramp"),!1}};function m(e){return u[e]}function h(e,a){return"USDC"===a?"USDC":e===t.id?"POL":"ETH"}export{p as getCoinbaseOnRampUrl,b as isSupportedChainIdForCoinbaseOnramp,h as toCoinbaseAssetId,m as toCoinbaseBlockchainFromChainId};