Skip to content

Commit 36b7ca4

Browse files
committed
Merge branch 'v9' of github.com:Web3Auth/Web3Auth
2 parents 3eae527 + dedcfa4 commit 36b7ca4

File tree

17 files changed

+12534
-493
lines changed

17 files changed

+12534
-493
lines changed

demo/vue-app-new/package-lock.json

Lines changed: 0 additions & 161 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/vue-app-new/src/MainView.vue

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script setup lang="ts">
22
3-
import { CHAIN_NAMESPACES, WalletConnectV2Adapter, WalletServicesPlugin, type Web3AuthOptions,EthereumPrivateKeyProvider,NFTCheckoutPlugin,SolanaPrivateKeyProvider,CommonPrivateKeyProvider,CoinbaseAdapter, ChainNamespaceType, IAdapter, IBaseProvider, IProvider, storageAvailable, WALLET_ADAPTERS, AccountAbstractionProvider, ISmartAccount, KernelSmartAccount, NexusSmartAccount, SafeSmartAccount, TrustSmartAccount, getEvmInjectedAdapters, getSolanaInjectedAdapters } from "@web3auth/modal";
3+
import { CHAIN_NAMESPACES, WalletConnectV2Adapter, getChainConfig, WalletServicesPlugin, type Web3AuthOptions,EthereumPrivateKeyProvider,NFTCheckoutPlugin,SolanaPrivateKeyProvider,CommonPrivateKeyProvider,CoinbaseAdapter, ChainNamespaceType, IAdapter, IBaseProvider, IProvider, storageAvailable, WALLET_ADAPTERS, AccountAbstractionProvider, ISmartAccount, KernelSmartAccount, NexusSmartAccount, SafeSmartAccount, TrustSmartAccount, getEvmInjectedAdapters, getSolanaInjectedAdapters } from "@web3auth/modal";
44
import { WalletServicesProvider } from "@web3auth/no-modal/vue";
55
import { Web3AuthProvider } from "@web3auth/modal/vue";
66
import { computed, onBeforeMount, ref, watch } from "vue";
@@ -15,16 +15,20 @@ const formData = formDataStore;
1515
1616
const externalAdapters = ref<IAdapter<unknown>[]>([]);
1717
18-
const chainOptions = computed(() =>
19-
chainConfigs[formData.chainNamespace as ChainNamespaceType].map((x) => ({
20-
name: `${x.chainId} ${x.tickerName}`,
21-
value: x.chainId,
22-
}))
23-
);
18+
const getChainById = (chainId: string) => {
19+
const chain = getChainConfig(formData.chainNamespace, chainId, clientIds[formData.network]);
20+
if (!chain) {
21+
throw new Error(`Chain config not found for chainId: ${chainId}`);
22+
}
23+
if (formData.chainNamespace === CHAIN_NAMESPACES.SOLANA && chainId === "0x65") {
24+
chain.rpcTarget = import.meta.env.VITE_APP_SOLANA_MAINNET_RPC || chain.rpcTarget;
25+
}
26+
return chain;
27+
};
2428
2529
// Populate the private key provider based on the chain selected
2630
const privateKeyProvider = computed((): IBaseProvider<string> => {
27-
const chainConfig = chainConfigs[formData.chainNamespace as ChainNamespaceType].find((x) => x.chainId === formData.chain)!;
31+
const chainConfig = getChainById(formData.chain)!;
2832
2933
switch (formData.chainNamespace) {
3034
case CHAIN_NAMESPACES.EIP155:
@@ -54,7 +58,7 @@ const accountAbstractionProvider = computed((): IBaseProvider<IProvider> | undef
5458
const { useAccountAbstractionProvider } = formData;
5559
if (!showAAProviderSettings.value || !useAccountAbstractionProvider) return undefined;
5660
57-
const chainConfig = chainConfigs[formData.chainNamespace as ChainNamespaceType].find((x) => x.chainId === formData.chain)!;
61+
const chainConfig = getChainById(formData.chain)!;
5862
// setup aa provider
5963
let smartAccountInit: ISmartAccount;
6064
switch (formData.smartAccountType) {
@@ -172,7 +176,7 @@ onBeforeMount(() => {
172176
}
173177
} catch (error) {}
174178
}
175-
if (!chainOptions.value.find((option) => option.value === formData.chain)) formData.chain = chainOptions.value[0]?.value;
179+
if (!chainConfigs[formData.chainNamespace].find((chainId) => chainId === formData.chain)) formData.chain = chainConfigs[formData.chainNamespace][0];
176180
});
177181
178182
watch(formData, () => {

demo/vue-app-new/src/components/AppSettings.vue

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
<script setup lang="ts">
22
import { Button, Card, Select, Tab, Tabs, Tag, TextField, Toggle } from "@toruslabs/vue-components";
3-
import { ADAPTER_STATUS, CHAIN_NAMESPACES, ChainNamespaceType, log } from "@web3auth/modal";
3+
import { ADAPTER_STATUS, CHAIN_NAMESPACES, ChainNamespaceType, log , getChainConfig} from "@web3auth/modal";
44
import { useWeb3Auth } from "@web3auth/modal/vue";
55
import { computed, InputHTMLAttributes, ref } from "vue";
66
77
import {
88
chainConfigs,
99
chainNamespaceOptions,
10+
clientIds,
1011
confirmationStrategyOptions,
1112
languageOptions,
1213
loginProviderOptions,
@@ -20,10 +21,16 @@ const formData = formDataStore;
2021
const { status, isConnected, isInitialized, connect } = useWeb3Auth();
2122
2223
const chainOptions = computed(() =>
23-
chainConfigs[formData.chainNamespace as ChainNamespaceType].map((x) => ({
24-
name: `${x.chainId} ${x.tickerName}`,
25-
value: x.chainId,
26-
}))
24+
chainConfigs[formData.chainNamespace].map((chainId) => {
25+
const chainConfig = getChainConfig(formData.chainNamespace, chainId, clientIds[formData.network]);
26+
if (!chainConfig) {
27+
throw new Error(`Chain config not found for chainId: ${chainId}`);
28+
}
29+
return {
30+
name: `${chainId} ${chainConfig.displayName}`,
31+
value: chainId,
32+
};
33+
})
2734
);
2835
2936
const adapterOptions = computed(() =>
@@ -83,7 +90,7 @@ const isActiveTab = (index: number) => activeTab.value === index;
8390
8491
const onChainNamespaceChange = (value: string) => {
8592
log.info("onChainNamespaceChange", value);
86-
formData.chain = chainConfigs[value as ChainNamespaceType][0].chainId;
93+
formData.chain = chainConfigs[value as ChainNamespaceType][0];
8794
formData.adapters = [];
8895
};
8996
</script>

demo/vue-app-new/src/config.ts

Lines changed: 4 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,15 @@
11
import { LANGUAGE_TYPE, LANGUAGES, LOGIN_PROVIDER, LOGIN_PROVIDER_TYPE, WhiteLabelData } from "@web3auth/auth";
2-
import { CHAIN_NAMESPACES, ChainNamespaceType, CustomChainConfig, WEB3AUTH_NETWORK, WEB3AUTH_NETWORK_TYPE, SignTypedDataMessageV4, CONFIRMATION_STRATEGY, type CONFIRMATION_STRATEGY_TYPE } from "@web3auth/modal";
2+
import { CHAIN_NAMESPACES, ChainNamespaceType, WEB3AUTH_NETWORK, WEB3AUTH_NETWORK_TYPE, SignTypedDataMessageV4, CONFIRMATION_STRATEGY, type CONFIRMATION_STRATEGY_TYPE } from "@web3auth/modal";
33

44
import { FormConfigSettings } from "./interfaces";
55

66
export const networkOptions = Object.values(WEB3AUTH_NETWORK).map((x) => ({ name: x, value: x }));
77

88
export const chainNamespaceOptions = Object.values(CHAIN_NAMESPACES).map((x) => ({ name: x, value: x }));
99

10-
export const chainConfigs: Record<ChainNamespaceType, CustomChainConfig[]> = {
11-
[CHAIN_NAMESPACES.EIP155]: [
12-
{
13-
chainNamespace: CHAIN_NAMESPACES.EIP155,
14-
rpcTarget: "https://rpc.ankr.com/eth",
15-
blockExplorerUrl: "https://etherscan.io",
16-
logo: "https://cryptologos.cc/logos/ethereum-eth-logo.png",
17-
chainId: "0x1",
18-
ticker: "ETH",
19-
tickerName: "Ethereum",
20-
},
21-
{
22-
chainNamespace: CHAIN_NAMESPACES.EIP155,
23-
rpcTarget: "https://rpc.ankr.com/eth_sepolia",
24-
blockExplorerUrl: "https://sepolia.etherscan.io",
25-
logo: "https://cryptologos.cc/logos/ethereum-eth-logo.png",
26-
chainId: "0xaa36a7",
27-
ticker: "ETH",
28-
tickerName: "Sepolia Testnet",
29-
},
30-
{
31-
chainNamespace: CHAIN_NAMESPACES.EIP155,
32-
rpcTarget: "https://mainnet.base.org",
33-
blockExplorerUrl: "https://base.blockscout.com",
34-
chainId: "0x2105",
35-
displayName: "Base Mainnet",
36-
ticker: "ETH",
37-
tickerName: "Base Ethereum",
38-
logo: "https://cryptologos.cc/logos/ethereum-eth-logo.png",
39-
},
40-
{
41-
chainNamespace: CHAIN_NAMESPACES.EIP155,
42-
rpcTarget: "https://sepolia.base.org",
43-
blockExplorerUrl: "https://sepolia-explorer.base.org",
44-
chainId: "0x14A34",
45-
displayName: "Base Sepolia",
46-
ticker: "ETH",
47-
tickerName: "Base Sepolia Testnet",
48-
logo: "https://cryptologos.cc/logos/ethereum-eth-logo.png",
49-
},
50-
{
51-
chainNamespace: CHAIN_NAMESPACES.EIP155,
52-
rpcTarget: "https://data-seed-prebsc-2-s3.binance.org:8545",
53-
blockExplorerUrl: "https://testnet.bscscan.com",
54-
logo: "https://cryptologos.cc/logos/binance-coin-bnb-logo.png",
55-
chainId: "0x61",
56-
displayName: "Binance SmartChain Testnet",
57-
ticker: "BNB",
58-
tickerName: "BNB",
59-
},
60-
{
61-
chainNamespace: CHAIN_NAMESPACES.EIP155,
62-
chainId: "0x13882",
63-
rpcTarget: "https://rpc.ankr.com/polygon_amoy",
64-
displayName: "Polygon Amoy Testnet",
65-
blockExplorerUrl: "https://amoy.polygonscan.com/",
66-
ticker: "POL",
67-
tickerName: "Polygon Ecosystem Token",
68-
},
69-
],
70-
[CHAIN_NAMESPACES.SOLANA]: [
71-
// Ref: https://namespaces.chainagnostic.org/solana/caip10
72-
{
73-
chainNamespace: CHAIN_NAMESPACES.SOLANA,
74-
rpcTarget: "https://api.devnet.solana.com",
75-
blockExplorerUrl: "https://solscan.io",
76-
logo: "https://cryptologos.cc/logos/solana-sol-logo.png",
77-
chainId: "0x67",
78-
ticker: "SOL",
79-
tickerName: "Solana",
80-
displayName: "Solana Devnet",
81-
},
82-
{
83-
chainNamespace: CHAIN_NAMESPACES.SOLANA,
84-
rpcTarget: import.meta.env.VITE_APP_SOLANA_MAINNET_RPC,
85-
blockExplorerUrl: "https://explorer.solana.com",
86-
logo: "https://cryptologos.cc/logos/solana-sol-logo.png",
87-
chainId: "0x65",
88-
ticker: "SOL",
89-
tickerName: "Solana",
90-
displayName: "Solana Mainnet",
91-
},
92-
],
10+
export const chainConfigs: Record<ChainNamespaceType, string[]> = {
11+
[CHAIN_NAMESPACES.EIP155]: ["0x1", "0xaa36a7", "0x2105", "0x61", "0x13882"],
12+
[CHAIN_NAMESPACES.SOLANA]: ["0x67", "0x65"],
9313
[CHAIN_NAMESPACES.CASPER]: [],
9414
[CHAIN_NAMESPACES.XRPL]: [],
9515
[CHAIN_NAMESPACES.OTHER]: [],

0 commit comments

Comments
 (0)