@daimo/pay
Version:
Seamless crypto payments. Onboard users from any chain, any coin into your app with one click.
260 lines (257 loc) • 10.7 kB
JavaScript
import { jsx } from 'react/jsx-runtime';
import Logos from '../assets/logos.js';
// Infer in-wallet payment URL from environment.
let daimoPayHost = "https://pay.daimo.com";
function setInWalletPaymentUrlFromApiUrl(apiUrl) {
if (apiUrl.startsWith("http://localhost")) {
daimoPayHost = "http://localhost:3001";
}
else if (apiUrl.startsWith("https://pay-api-stage.daimo.xyz")) {
daimoPayHost = "https://pay.stage.daimo.xyz";
}
else {
daimoPayHost = "https://pay.daimo.com";
}
}
function getDaimoPayUrl(payId) {
return daimoPayHost + "/pay?id=" + payId;
}
function getEncodedDaimoPayUrl(payId) {
let url = getDaimoPayUrl(payId);
let encodedUrl = encodeURIComponent(url);
return encodedUrl;
}
// Organised in alphabetical order by key
const walletConfigs = {
"coinbaseWallet, coinbaseWalletSDK": {
name: "Coinbase Wallet",
shortName: "Coinbase",
icon: jsx(Logos.Coinbase, {}),
iconShape: "squircle",
downloadUrls: {
download: "https://connect.family.co/v0/download/coinbasewallet",
website: "https://www.coinbase.com/wallet/getting-started-extension",
android: "https://play.google.com/store/apps/details?id=org.toshi",
ios: "https://apps.apple.com/app/coinbase-wallet-store-crypto/id1278383455",
chrome: "https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad",
},
showInMobileConnectors: true,
deeplinkScheme: "cbwallet://",
getDaimoPayDeeplink: (payId) => {
return "cbwallet://dapp?url=" + getEncodedDaimoPayUrl(payId);
},
},
"com.coinbase.wallet": {
name: "Coinbase Wallet",
shortName: "Coinbase",
icon: jsx(Logos.Coinbase, {}),
iconShape: "squircle",
downloadUrls: {
download: "https://connect.family.co/v0/download/coinbasewallet",
website: "https://www.coinbase.com/wallet/getting-started-extension",
android: "https://play.google.com/store/apps/details?id=org.toshi",
ios: "https://apps.apple.com/app/coinbase-wallet-store-crypto/id1278383455",
chrome: "https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad",
},
showInMobileConnectors: false,
deeplinkScheme: "cbwallet://",
getDaimoPayDeeplink: (payId) => {
return "cbwallet://dapp?url=" + getEncodedDaimoPayUrl(payId);
},
},
backpack: {
name: "Backpack",
shortName: "Backpack",
icon: jsx(Logos.Backpack, {}),
iconShape: "squircle",
showInMobileConnectors: true,
getDaimoPayDeeplink: (payId) => {
const url = encodeURIComponent(getDaimoPayUrl(payId));
return `https://backpack.app/ul/v1/browse/${url}`;
},
},
bitget: {
name: "Bitget",
icon: jsx(Logos.Bitget, {}),
iconShape: "squircle",
showInMobileConnectors: true,
deeplinkScheme: "bitkeep://",
getDaimoPayDeeplink: (payId) => {
return "bitkeep://bkconnect?action=dapp&url=" + getDaimoPayUrl(payId);
},
},
"co.family.wallet": {
name: "Family",
shortName: "Family",
icon: jsx(Logos.Family, {}),
iconShape: "squircle",
downloadUrls: {
download: "https://connect.family.co/v0/download/family",
website: "https://family.co",
ios: "https://family.co/download",
},
deeplinkScheme: "familywallet://",
getDaimoPayDeeplink: (payId) => {
return "familywallet://browser?url=" + getDaimoPayUrl(payId);
},
showInMobileConnectors: true,
},
"metaMask, metaMask-io, io.metamask, io.metamask.mobile, metaMaskSDK": {
name: "MetaMask",
shortName: "MetaMask",
icon: jsx(Logos.MetaMask, {}),
iconConnector: jsx(Logos.MetaMask, {}),
iconShouldShrink: true,
downloadUrls: {
download: "https://connect.family.co/v0/download/metamask",
website: "https://metamask.io/download/",
android: "https://play.google.com/store/apps/details?id=io.metamask",
ios: "https://apps.apple.com/app/metamask/id1438144202",
chrome: "https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn",
firefox: "https://addons.mozilla.org/firefox/addon/ether-metamask/",
brave: "https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn",
edge: "https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm",
},
showInMobileConnectors: false,
deeplinkScheme: "metamask://",
getDaimoPayDeeplink: (payId) => {
const daimoPayUrl = getDaimoPayUrl(payId);
return ("https://metamask.app.link/dapp/" + daimoPayUrl.replace("https://", ""));
},
},
"app.phantom": {
name: "Phantom",
icon: jsx(Logos.Phantom, {}),
iconShape: "squircle",
showInMobileConnectors: true,
deeplinkScheme: "phantom://",
getDaimoPayDeeplink: (payId) => {
const url = encodeURIComponent(getDaimoPayUrl(payId));
const ref = encodeURIComponent(window.location.origin);
return `https://phantom.app/ul/browse/${url}?ref=${ref}`;
},
},
farcaster: {
name: "Farcaster",
icon: jsx(Logos.Farcaster, {}),
iconShape: "squircle",
showInMobileConnectors: true,
getDaimoPayDeeplink: (payId) => {
return ("https://farcaster.xyz/miniapps/sGRsevnRvM9P/daimo-pay/?id=" + payId);
},
},
minipay: {
name: "MiniPay",
icon: jsx(Logos.MiniPay, {}),
iconShape: "squircle",
showInMobileConnectors: true,
getDaimoPayDeeplink: (payId) => {
return ("https://cash.minipay.xyz/browse?url=" +
encodeURIComponent(getEncodedDaimoPayUrl(payId)));
},
},
"me.rainbow": {
name: "Rainbow Wallet",
shortName: "Rainbow",
icon: jsx(Logos.Rainbow, {}),
iconShape: "squircle",
downloadUrls: {
download: "https://connect.family.co/v0/download/rainbow",
website: "https://rainbow.me/?utm_source=daimopay",
android: "https://play.google.com/store/apps/details?id=me.rainbow&referrer=utm_source%3Ddaimopay&utm_source=daimopay",
ios: "https://apps.apple.com/app/rainbow-ethereum-wallet/id1457119021?pt=119997837&ct=daimopay&mt=8",
chrome: "https://rainbow.me/extension?utm_source=daimopay",
edge: "https://rainbow.me/extension?utm_source=daimopay",
brave: "https://rainbow.me/extension?utm_source=daimopay",
},
showInMobileConnectors: true,
deeplinkScheme: "rainbow://",
getDaimoPayDeeplink: (payId) => {
return "rainbow://dapp?url=" + getDaimoPayUrl(payId);
},
},
// "io.rabby": {
// name: "Rabby Wallet",
// shortName: "Rabby",
// downloadUrls: {
// website: "https://rabby.io",
// chrome:
// "https://chrome.google.com/webstore/detail/rabby-wallet/acmacodkjbdgmoleebolmdjonilkdbch",
// },
// showInMobileConnectors: false,
// //TODO: add wallet deep link
// // edit rabby scheme to deeplink URL: https://github.com/RabbyHub/rabby-mobile/blob/999d60f49c5254e4aa8e6aa8bb80ad46e267845c/apps/mobile/src/LinkingConfig.ts#L25
// },
"com.trustwallet.app": {
name: "Trust Wallet",
shortName: "Trust",
icon: jsx(Logos.Trust, {}),
iconConnector: jsx(Logos.Trust, {}),
downloadUrls: {
download: "https://connect.family.co/v0/download/trust",
android: "https://play.google.com/store/apps/details?id=com.wallet.crypto.trustapp",
ios: "https://apps.apple.com/app/trust-crypto-bitcoin-wallet/id1288339409",
},
showInMobileConnectors: false,
deeplinkScheme: "trust://",
getDaimoPayDeeplink: (payId) => {
return "trust://open_url?coin_id=60&url=" + getDaimoPayUrl(payId);
},
},
okx: {
name: "OKX",
icon: jsx(Logos.OKX, {}),
showInMobileConnectors: true,
deeplinkScheme: "okx://",
getDaimoPayDeeplink: (payId) => {
return "okx://wallet/dapp/url?dappUrl=" + getDaimoPayUrl(payId);
},
},
solflare: {
name: "Solflare",
icon: jsx(Logos.Solflare, {}),
showInMobileConnectors: true,
deeplinkScheme: "solflare://",
getDaimoPayDeeplink: (payId) => {
const url = encodeURIComponent(getDaimoPayUrl(payId));
const ref = encodeURIComponent(window.location.origin);
return `https://solflare.com/ul/v1/browse/${url}?ref=${ref}`;
},
isSolanaOnly: true,
},
// ledger: {
// name: "Ledger Live",
// shortName: "Ledger",
// icon: <Logos.Ledger />,
// downloadUrls: {
// download: "https://connect.family.co/v0/download/ledger",
// website: "https://www.ledger.com/ledger-live/download#download-device-2",
// android: "https://play.google.com/store/apps/details?id=com.ledger.live",
// ios: "https://apps.apple.com/app/ledger-live-web3-wallet/id1361671700",
// },
// showInMobileConnectors: true,
// deeplinkScheme: "ledgerlive://",
// // getDaimoPayDeeplink: (payId: string) => {
// // return "ledgerlive://discover/" + daimoPayUrl + payId;
// // },
// // TODO: Add Daimo Pay to Ledger Live's Discover section https://developers.ledger.com/docs/ledger-live/discover/getting-started
// shouldDeeplinkDesktop: true,
// },
zerion: {
name: "Zerion",
icon: jsx(Logos.Zerion, {}),
downloadUrls: {
download: "https://connect.family.co/v0/download/zerion",
ios: "https://apps.apple.com/app/apple-store/id1456732565",
android: "https://play.google.com/store/apps/details?id=io.zerion.android",
website: "https://zerion.io/",
},
showInMobileConnectors: true,
deeplinkScheme: "zerion://",
getDaimoPayDeeplink: (payId) => {
return "zerion://browser?url=" + getDaimoPayUrl(payId);
},
},
};
export { setInWalletPaymentUrlFromApiUrl, walletConfigs };
//# sourceMappingURL=walletConfigs.js.map