Compare commits

...
Author SHA1 Message Date
Bill He 73eb7aff96 remove wc1 2023-10-12 15:22:42 -07:00
Bill He 6a3c4ec7f6 remove .env 2023-10-12 15:17:56 -07:00
Bill He 47b6618299 gitignore .env 2023-10-12 15:16:11 -07:00
Bill He def44ad66e remove WC 1 2023-10-12 15:07:49 -07:00
Bill He a6eb90952a Hide wallet options 2023-10-12 09:33:35 -07:00
Bill d53e8f693e Update Squid URL (#67) 2023-10-11 11:34:36 -07:00
Rui f9e301b3f0 Add script to inject iOS app ID to public/.well-known/apple-app-site-association (#66)
* Add script to inject iOS app ID to public/.well-known/apple-app-site-association

* package.json

* Fix typo

* Fix typo

* Fix build

* Debug

* Updated to use "dist" folder
2023-10-10 15:58:26 -07:00
John Huang 67ecbd75b4 Added USDC gasDenom, and Staging West label (#65)
* TRCL-2892-configs-changes

* Additional changes for main net template, and WalletConnect payloads

* Added logo file used for WalletConnect, and changed name and description in WC

* Removed a comma

* TRCL-2898 Additional node provider

* Added USDC gasDenom, and Staging West label
2023-10-09 17:08:04 -04:00
11 changed files with 66 additions and 129 deletions
-6
View File
@@ -1,6 +0,0 @@
VITE_BASE_URL=https://v4.testnet.dydx.exchange
VITE_ALCHEMY_API_KEY=FP275q327Yh7qswtZWenbPXdZZdnAFmC
VITE_WALLETCONNECT1_BRIDGE=wss://api.dydx.exchange/wc/
VITE_WALLETCONNECT2_PROJECT_ID=fbe94eaa691fa8d929561f8567062b32
-1
View File
@@ -4,7 +4,6 @@ VITE_ALCHEMY_API_KEY=
VITE_PK_ENCRYPTION_KEY=
VITE_WALLETCONNECT1_BRIDGE=
VITE_WALLETCONNECT2_PROJECT_ID=
VITE_V3_TOKEN_ADDRESS=
+2
View File
@@ -33,11 +33,13 @@ jobs:
AMPLITUDE_API_KEY: ${{ secrets.AMPLITUDE_API_KEY }}
BUGSNAG_API_KEY: ${{ secrets.BUGSNAG_API_KEY }}
STATUS_PAGE_SCRIPT_URI: ${{ secrets.STATUS_PAGE_SCRIPT_URI }}
IOS_APP_ID: ${{ secrets.IOS_APP_ID }}
run: |
pnpm run build
pnpm run build:inject-amplitude
pnpm run build:inject-bugsnag
pnpm run build:inject-statuspage
sh scripts/inject-app-deeplinks.sh
- name: Upload to IPFS via web3.storage
uses: dydxprotocol/add-to-web3@v1
+1
View File
@@ -13,6 +13,7 @@ dist
dist-ssr
*.local
*.key
.env
# Editor directories and files
.vscode/*
+1
View File
@@ -10,6 +10,7 @@
"scripts": {
"dev": "vite",
"build": "vite build",
"build:inject-app-deeplinks": "sh scripts/inject-app-deeplinks.sh",
"build:inject-amplitude": "node scripts/inject-amplitude.js",
"build:inject-bugsnag": "node scripts/inject-bugsnag.js",
"build:inject-statuspage": "node scripts/inject-statuspage.js",
+22 -9
View File
@@ -45,6 +45,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
@@ -103,6 +104,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
@@ -160,6 +162,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
@@ -217,6 +220,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
@@ -274,6 +278,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
@@ -288,7 +293,7 @@
"validators": [
"https://validator.v4staging.dydx.exchange"
],
"0xsquid": "https://squid-api-git-main-cosmos-testnet-0xsquid.vercel.app"
"0xsquid": "https://testnet.api.squidrouter.com"
},
"links": {
"tos": "https://dydx.exchange/v4-terms",
@@ -322,7 +327,7 @@
}
},
"dydxprotocol-staging-west": {
"name": "v4 Staging",
"name": "v4 Staging West",
"ethereumChainId": "5",
"dydxChainId": "dydxprotocol-testnet",
"isMainNet": false,
@@ -335,6 +340,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
@@ -349,7 +355,7 @@
"validators": [
"https://validator-uswest1.v4staging.dydx.exchange"
],
"0xsquid": "https://squid-api-git-main-cosmos-testnet-0xsquid.vercel.app"
"0xsquid": "https://testnet.api.squidrouter.com"
},
"links": {
"tos": "https://dydx.exchange/v4-terms",
@@ -396,6 +402,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
@@ -411,7 +418,7 @@
"https://test-dydx.kingnodes.com",
"https://dydx-rpc.liquify.com/api=8878132/dydx"
],
"0xsquid": "https://squid-api-git-main-cosmos-testnet-0xsquid.vercel.app",
"0xsquid": "https://testnet.api.squidrouter.com",
"faucet": "https://faucet.v4testnet.dydx.exchange"
},
"links": {
@@ -459,6 +466,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
@@ -472,7 +480,7 @@
"validators": [
"https://validator.v4testnet.dydx.exchange"
],
"0xsquid": "https://squid-api-git-main-cosmos-testnet-0xsquid.vercel.app",
"0xsquid": "https://testnet.api.squidrouter.com",
"faucet": "https://faucet.v4testnet.dydx.exchange"
},
"links": {
@@ -521,6 +529,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
@@ -534,7 +543,7 @@
"validators": [
"https://dydx-testnet-archive.allthatnode.com:26657/XZvMM41hESf8PJrEQiTzbCOMVyFca79R"
],
"0xsquid": "https://squid-api-git-main-cosmos-testnet-0xsquid.vercel.app",
"0xsquid": "https://testnet.api.squidrouter.com",
"faucet": "https://faucet.v4testnet.dydx.exchange"
},
"links": {
@@ -583,6 +592,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
@@ -596,7 +606,7 @@
"validators": [
"https://dydx-testnet.nodefleet.org"
],
"0xsquid": "https://squid-api-git-main-cosmos-testnet-0xsquid.vercel.app",
"0xsquid": "https://testnet.api.squidrouter.com",
"faucet": "https://faucet.v4testnet.dydx.exchange"
},
"links": {
@@ -645,6 +655,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
@@ -658,7 +669,7 @@
"validators": [
"https://test-dydx.kingnodes.com"
],
"0xsquid": "https://squid-api-git-main-cosmos-testnet-0xsquid.vercel.app",
"0xsquid": "https://testnet.api.squidrouter.com",
"faucet": "https://faucet.v4testnet.dydx.exchange"
},
"links": {
@@ -707,6 +718,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
@@ -720,7 +732,7 @@
"validators": [
"https://dydx-rpc.liquify.com/api=8878132/dydx"
],
"0xsquid": "https://squid-api-git-main-cosmos-testnet-0xsquid.vercel.app",
"0xsquid": "https://testnet.api.squidrouter.com",
"faucet": "https://faucet.v4testnet.dydx.exchange"
},
"links": {
@@ -770,6 +782,7 @@
"usdc": {
"name": "USDC",
"denom": "ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5",
"gasDenom": "uusdc",
"image": "/currencies/usdc.png"
}
},
+19
View File
@@ -0,0 +1,19 @@
#!/bin/sh
source="dist/.well-known/apple-app-site-association"
if [ ! -f "$source" ]; then
echo "Error: $source file not found"
exit 1
fi
app_id=$IOS_APP_ID
if [ -z "$app_id" ]; then
echo "Error: IOS_APP_ID is empty"
exit 1
fi
if [[ "$OSTYPE" == "darwin"* ]]; then
sed -i '' "s/{PLACE_YOUR_APP_ID_HERE}/$app_id/g" $source
else
sed -i "s/{PLACE_YOUR_APP_ID_HERE}/$app_id/g" $source
fi
+12 -69
View File
@@ -32,7 +32,6 @@ export enum WalletConnectionType {
CoinbaseWalletSdk = 'coinbaseWalletSdk',
CosmosSigner = 'CosmosSigner',
InjectedEip1193 = 'injectedEip1193',
WalletConnect1 = 'walletConnect1',
WalletConnect2 = 'walletConnect2',
}
@@ -62,10 +61,6 @@ export const walletConnectionTypes: Record<WalletConnectionType, WalletConnectio
name: 'injected EIP-1193 provider',
wagmiConnectorId: 'injected',
},
[WalletConnectionType.WalletConnect1]: {
name: 'WalletConnect 1.0',
wagmiConnectorId: 'walletConnectLegacy',
},
[WalletConnectionType.WalletConnect2]: {
name: 'WalletConnect 2.0',
wagmiConnectorId: 'walletConnect',
@@ -92,7 +87,6 @@ export enum WalletType {
Rainbow = 'RAINBOW_WALLET',
TokenPocket = 'TOKEN_POCKET',
TrustWallet = 'TRUST_WALLET',
WalletConnect = 'WALLETCONNECT',
WalletConnect2 = 'WALLETCONNECT_2',
// TestWallet = 'TEST_WALLET',
OtherWallet = 'OTHER_WALLET',
@@ -104,7 +98,6 @@ type WalletConfig = {
icon: string;
connectionTypes: WalletConnectionType[];
matchesInjectedEip1193?: (provider: ExternalProvider & any) => boolean;
walletconnect1Name?: string;
walletconnect2Id?: string;
};
@@ -117,7 +110,6 @@ export const wallets: Record<WalletType, WalletConfig> = {
WalletConnectionType.InjectedEip1193,
// WalletConnectionType.CoinbaseWalletSdk,
WalletConnectionType.WalletConnect2,
WalletConnectionType.WalletConnect1,
],
matchesInjectedEip1193: (provider) =>
Object.entries(wallets).every(
@@ -131,30 +123,23 @@ export const wallets: Record<WalletType, WalletConfig> = {
type: WalletType.BitKeep,
stringKey: STRING_KEYS.BITKEEP,
icon: BitkeepIcon,
connectionTypes: [
WalletConnectionType.InjectedEip1193,
WalletConnectionType.WalletConnect2,
WalletConnectionType.WalletConnect1,
],
connectionTypes: [WalletConnectionType.InjectedEip1193, WalletConnectionType.WalletConnect2],
matchesInjectedEip1193: (provider) => provider.isBitKeep, // isBitKeepChrome, isBitEthereum
walletconnect1Name: 'bitkeep',
walletconnect2Id: '38f5d18bd8522c244bdd70cb4a68e0e718865155811c043f052fb9f1c51de662',
},
[WalletType.BitPie]: {
type: WalletType.BitPie,
stringKey: STRING_KEYS.BITPIE,
icon: BitpieIcon,
connectionTypes: [WalletConnectionType.InjectedEip1193, WalletConnectionType.WalletConnect1],
connectionTypes: [WalletConnectionType.InjectedEip1193],
matchesInjectedEip1193: (provider) => provider.isBitpie,
walletconnect1Name: 'bitpie',
},
[WalletType.CloverWallet]: {
type: WalletType.CloverWallet,
stringKey: STRING_KEYS.CLOVER_WALLET,
icon: CloverWalletIcon,
connectionTypes: [WalletConnectionType.InjectedEip1193, WalletConnectionType.WalletConnect1],
connectionTypes: [WalletConnectionType.InjectedEip1193],
matchesInjectedEip1193: (provider) => provider.isClover,
// walletconnect1Name: 'clover',
},
[WalletType.CoinbaseWallet]: {
type: WalletType.CoinbaseWallet,
@@ -163,33 +148,23 @@ export const wallets: Record<WalletType, WalletConfig> = {
connectionTypes: [
WalletConnectionType.CoinbaseWalletSdk,
WalletConnectionType.InjectedEip1193,
WalletConnectionType.WalletConnect1,
WalletConnectionType.WalletConnect2,
],
matchesInjectedEip1193: (provider) => provider.isCoinbaseWallet, // provider.selectedProvider?.isCoinbaseWallet,
walletconnect1Name: 'coinbase',
},
[WalletType.Coin98]: {
type: WalletType.Coin98,
stringKey: STRING_KEYS.COIN98,
icon: Coin98Icon,
connectionTypes: [
WalletConnectionType.InjectedEip1193,
WalletConnectionType.WalletConnect2,
WalletConnectionType.WalletConnect1,
],
connectionTypes: [WalletConnectionType.InjectedEip1193, WalletConnectionType.WalletConnect2],
matchesInjectedEip1193: (provider) => provider.isCoin98,
walletconnect1Name: 'coin98',
walletconnect2Id: '2a3c89040ac3b723a1972a33a125b1db11e258a6975d3a61252cd64e6ea5ea01',
},
[WalletType.HuobiWallet]: {
type: WalletType.HuobiWallet,
stringKey: STRING_KEYS.HUOBI_WALLET,
icon: HuobiIcon,
connectionTypes: [
WalletConnectionType.InjectedEip1193,
WalletConnectionType.WalletConnect2,
WalletConnectionType.WalletConnect1,
],
connectionTypes: [WalletConnectionType.InjectedEip1193, WalletConnectionType.WalletConnect2],
matchesInjectedEip1193: (provider) => provider.isHbWallet,
walletconnect2Id: '797c615e2c556b610c048eb35535f212c0dd58de5d03e763120e90a7d1350a77',
},
@@ -197,74 +172,48 @@ export const wallets: Record<WalletType, WalletConfig> = {
type: WalletType.ImToken,
stringKey: STRING_KEYS.IMTOKEN,
icon: ImTokenIcon,
connectionTypes: [
WalletConnectionType.InjectedEip1193,
WalletConnectionType.WalletConnect2,
WalletConnectionType.WalletConnect1,
],
connectionTypes: [WalletConnectionType.InjectedEip1193, WalletConnectionType.WalletConnect2],
matchesInjectedEip1193: (provider) => provider.isImToken,
walletconnect1Name: 'imtoken',
walletconnect2Id: 'ef333840daf915aafdc4a004525502d6d49d77bd9c65e0642dbaefb3c2893bef',
},
[WalletType.MathWallet]: {
type: WalletType.MathWallet,
stringKey: STRING_KEYS.MATH_WALLET,
icon: MathWalletIcon,
connectionTypes: [WalletConnectionType.InjectedEip1193, WalletConnectionType.WalletConnect1],
connectionTypes: [WalletConnectionType.InjectedEip1193],
matchesInjectedEip1193: (provider) => provider.isMathWallet,
walletconnect1Name: 'math',
walletconnect2Id: '7674bb4e353bf52886768a3ddc2a4562ce2f4191c80831291218ebd90f5f5e26',
},
[WalletType.MetaMask]: {
type: WalletType.MetaMask,
stringKey: STRING_KEYS.METAMASK,
icon: MetaMaskIcon,
connectionTypes: [
WalletConnectionType.InjectedEip1193,
WalletConnectionType.WalletConnect2,
WalletConnectionType.WalletConnect1,
],
connectionTypes: [WalletConnectionType.InjectedEip1193, WalletConnectionType.WalletConnect2],
matchesInjectedEip1193: isMetaMask,
walletconnect1Name: 'metamask',
walletconnect2Id: 'c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96',
},
[WalletType.Rainbow]: {
type: WalletType.Rainbow,
stringKey: STRING_KEYS.RAINBOW_WALLET,
icon: RainbowIcon,
connectionTypes: [
WalletConnectionType.InjectedEip1193,
WalletConnectionType.WalletConnect2,
WalletConnectionType.WalletConnect1,
],
connectionTypes: [WalletConnectionType.InjectedEip1193, WalletConnectionType.WalletConnect2],
matchesInjectedEip1193: (provider) => provider.isRainbowWallet,
walletconnect1Name: 'rainbow',
walletconnect2Id: '1ae92b26df02f0abca6304df07debccd18262fdf5fe82daa81593582dac9a369',
},
[WalletType.TokenPocket]: {
type: WalletType.TokenPocket,
stringKey: STRING_KEYS.TOKEN_POCKET,
icon: TokenPocketIcon,
connectionTypes: [
WalletConnectionType.InjectedEip1193,
WalletConnectionType.WalletConnect2,
WalletConnectionType.WalletConnect1,
],
connectionTypes: [WalletConnectionType.InjectedEip1193, WalletConnectionType.WalletConnect2],
matchesInjectedEip1193: (provider) => provider.isTokenPocket,
walletconnect1Name: 'tokenpocket',
walletconnect2Id: '20459438007b75f4f4acb98bf29aa3b800550309646d375da5fd4aac6c2a2c66',
},
[WalletType.TrustWallet]: {
type: WalletType.TrustWallet,
stringKey: STRING_KEYS.TRUST_WALLET,
icon: TrustWalletIcon,
connectionTypes: [
WalletConnectionType.InjectedEip1193,
WalletConnectionType.WalletConnect2,
WalletConnectionType.WalletConnect1,
],
connectionTypes: [WalletConnectionType.InjectedEip1193, WalletConnectionType.WalletConnect2],
matchesInjectedEip1193: (provider) => provider.isTrust,
walletconnect1Name: 'trust',
walletconnect2Id: '4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0',
},
[WalletType.WalletConnect2]: {
@@ -273,12 +222,6 @@ export const wallets: Record<WalletType, WalletConfig> = {
icon: WalletConnectIcon,
connectionTypes: [WalletConnectionType.WalletConnect2],
},
[WalletType.WalletConnect]: {
type: WalletType.WalletConnect,
stringKey: STRING_KEYS.WALLET_CONNECT,
icon: WalletConnectIcon,
connectionTypes: [WalletConnectionType.WalletConnect1],
},
[WalletType.Keplr]: {
type: WalletType.Keplr,
stringKey: STRING_KEYS.KEPLR,
+9 -13
View File
@@ -2,27 +2,23 @@ import { WalletType } from '@/constants/wallets';
import { isTruthy } from '@/lib/isTruthy';
import { useSelectedNetwork } from './useSelectedNetwork';
export const useDisplayedWallets = () => {
const { selectedNetwork } = useSelectedNetwork();
return [
WalletType.MetaMask,
import.meta.env.MODE !== 'production' && WalletType.Keplr,
WalletType.WalletConnect2,
WalletType.WalletConnect,
WalletType.CoinbaseWallet,
WalletType.ImToken,
WalletType.Rainbow,
WalletType.TrustWallet,
WalletType.HuobiWallet,
WalletType.BitKeep,
WalletType.Coin98,
// Hide these wallet options until they can be properly tested on mainnet
// WalletType.ImToken,
// WalletType.Rainbow,
// WalletType.TrustWallet,
// WalletType.HuobiWallet,
// WalletType.BitKeep,
// WalletType.Coin98,
WalletType.OtherWallet,
].filter(isTruthy);
-25
View File
@@ -87,14 +87,6 @@ const injectedConnectorOptions = {
},
};
const walletconnect1ConnectorOptions = {
chains,
options: {
bridge: import.meta.env.VITE_WALLETCONNECT1_BRIDGE,
qrcode: true,
},
};
const walletconnect2ConnectorOptions: ConstructorParameters<typeof WalletConnectConnector>[0] = {
chains,
options: {
@@ -143,7 +135,6 @@ const connectors = [
reloadOnDisconnect: false,
},
}),
new WalletConnectLegacyConnector(walletconnect1ConnectorOptions),
new WalletConnectConnector(walletconnect2ConnectorOptions),
new InjectedConnector(injectedConnectorOptions),
];
@@ -166,19 +157,6 @@ const createInjectedConnectorWithProvider = (provider: ExternalProvider) =>
provider as unknown as Awaited<ReturnType<InjectedConnector['getProvider']>>;
})(injectedConnectorOptions) as InjectedConnector;
// Create a custom wagmi WalletConnectLegacyConnector with a modal showing only wallet links matching the given name
const createWalletConnect1ConnectorWithName = (walletconnect1Name: string) =>
new WalletConnectLegacyConnector({
...walletconnect1ConnectorOptions,
options: {
...walletconnect1ConnectorOptions.options,
qrcodeModalOptions: {
desktopLinks: [walletconnect1Name],
mobileLinks: [walletconnect1Name],
},
},
});
const createWalletConnect2ConnectorWithId = (walletconnect2Id: string) =>
new WalletConnectConnector({
...walletconnect2ConnectorOptions,
@@ -214,9 +192,6 @@ export const resolveWagmiConnector = ({
return walletConnection.type === WalletConnectionType.InjectedEip1193 && walletConnection.provider
? createInjectedConnectorWithProvider(walletConnection.provider)
: walletConnection.type === WalletConnectionType.WalletConnect1 &&
walletConfig.walletconnect1Name
? createWalletConnect1ConnectorWithName(walletConfig.walletconnect1Name)
: walletConnection.type === WalletConnectionType.WalletConnect2 && walletConfig.walletconnect2Id
? createWalletConnect2ConnectorWithId(walletConfig.walletconnect2Id)
: connectors.find(({ id }: { id: string }) => id === walletConnectionConfig.wagmiConnectorId);
-6
View File
@@ -45,12 +45,6 @@ export const getWalletConnection = ({
break;
}
case WalletConnectionType.WalletConnect1: {
return {
type: WalletConnectionType.WalletConnect1,
};
}
case WalletConnectionType.WalletConnect2: {
return {
type: WalletConnectionType.WalletConnect2,