diff --git a/components/footer/Footer.vue b/components/footer/Footer.vue
new file mode 100644
index 000000000..c2dada138
--- /dev/null
+++ b/components/footer/Footer.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
diff --git a/layouts/default.vue b/layouts/default.vue
index b2717e242..790127585 100644
--- a/layouts/default.vue
+++ b/layouts/default.vue
@@ -11,6 +11,7 @@
+
@@ -27,7 +28,7 @@ const { isConnectingWallet } = storeToRefs(useOnboardStore());
@apply grid;
min-height: 100vh;
min-height: 100dvh;
- grid-template-rows: auto 1fr;
+ grid-template-rows: auto 1fr max-content;
.app-layout-main {
@apply flex min-h-0 w-full min-w-0 max-w-[700px] flex-col justify-self-center p-2 md:px-0 md:py-4;
diff --git a/pages/assets.vue b/pages/assets.vue
index 703660915..95712efdf 100644
--- a/pages/assets.vue
+++ b/pages/assets.vue
@@ -182,6 +182,22 @@ const depositMethods = computed(() => {
},
});
}
+
+ const isMainnet = eraNetwork.value.l1Network?.id === 1;
+ const isTestnet = eraNetwork.value.l1Network && eraNetwork.value.l1Network.id !== 1;
+ if (isTestnet && eraNetwork.value.displaySettings?.showPartnerLinks) {
+ methods.push({
+ props: {
+ iconUrl: "/img/faucet.svg",
+ label: "Faucet",
+ description: "Receive testnet funds",
+ as: "a",
+ href: "https://docs.zksync.io/build/tooling/network-faucets.html",
+ target: "_blank",
+ icon: ArrowTopRightOnSquareIcon,
+ },
+ });
+ }
methods.push({
props: {
label: "View your address",
@@ -193,7 +209,7 @@ const depositMethods = computed(() => {
},
icon: QrCodeIcon,
});
- if (eraNetwork.value.displaySettings?.showPartnerLinks) {
+ if (isMainnet && eraNetwork.value.displaySettings?.showPartnerLinks) {
methods.push({
props: {
label: "Top-up with cash",
diff --git a/pages/receive-methods.vue b/pages/receive-methods.vue
index 5dea5f519..bc77e1ea6 100644
--- a/pages/receive-methods.vue
+++ b/pages/receive-methods.vue
@@ -25,7 +25,18 @@
:to="{ name: 'index', query: $route.query }"
/>
-
+
+
+
+
-
+
diff --git a/public/img/faucet.svg b/public/img/faucet.svg
new file mode 100644
index 000000000..fc614cd09
--- /dev/null
+++ b/public/img/faucet.svg
@@ -0,0 +1,8 @@
+
diff --git a/store/onboard.ts b/store/onboard.ts
index a016400a1..1e0090aeb 100644
--- a/store/onboard.ts
+++ b/store/onboard.ts
@@ -170,7 +170,7 @@ export const useOnboardStore = defineStore("onboard", () => {
});
const switchNetworkById = async (chainId: number, networkName?: string) => {
try {
- await switchWalletNetwork({ chainId });
+ return await switchWalletNetwork({ chainId });
} catch (err) {
if (err instanceof Error && err.message.includes("does not support programmatic chain switching")) {
throw new Error(`Please switch network manually to "${networkName}" in your ${walletName.value} wallet`);
@@ -185,12 +185,12 @@ export const useOnboardStore = defineStore("onboard", () => {
} = usePromise(
async () => {
if (!l1Network.value) throw new Error(`L1 network is not available on ${selectedNetwork.value.name}`);
- await switchNetworkById(l1Network.value.id);
+ return await switchNetworkById(l1Network.value.id);
},
{ cache: false }
);
const setCorrectNetwork = async () => {
- await switchNetwork().catch(() => undefined);
+ return await switchNetwork().catch(() => undefined);
};
const { subscribe: subscribeOnAccountChange, notify: notifyOnAccountChange } = useObservable();
diff --git a/store/zksync/wallet.ts b/store/zksync/wallet.ts
index 54311ef16..37c226fe7 100644
--- a/store/zksync/wallet.ts
+++ b/store/zksync/wallet.ts
@@ -156,12 +156,12 @@ export const useZkSyncWalletStore = defineStore("zkSyncWallet", () => {
execute: switchNetwork,
} = usePromise(
async () => {
- await onboardStore.switchNetworkById(eraNetwork.value.id, eraNetwork.value.name);
+ return await onboardStore.switchNetworkById(eraNetwork.value.id, eraNetwork.value.name);
},
{ cache: false }
);
const setCorrectNetwork = async () => {
- await switchNetwork().catch(() => undefined);
+ return await switchNetwork().catch(() => undefined);
};
const { execute: walletAddressValidate, reload: reloadWalletAddressValidation } = usePromise(async () => {
diff --git a/views/transactions/Deposit.vue b/views/transactions/Deposit.vue
index 375be1031..5374b0074 100644
--- a/views/transactions/Deposit.vue
+++ b/views/transactions/Deposit.vue
@@ -129,6 +129,7 @@
Insufficient {{ feeToken?.symbol }} balance on
{{ destinations.ethereum.label }} to cover the fee
+ Receive funds
@@ -151,6 +152,7 @@
>
on {{ eraNetwork.l1Network?.name ?? "L1" }} for deposit.
+ Receive funds
diff --git a/views/transactions/Transfer.vue b/views/transactions/Transfer.vue
index 532479fa1..2ac3902ce 100644
--- a/views/transactions/Transfer.vue
+++ b/views/transactions/Transfer.vue
@@ -156,6 +156,7 @@
Insufficient {{ feeToken?.symbol }} balance on
{{ destinations.era.label }} to cover the fee
+ Receive funds
diff --git a/views/transactions/TransferSubmitted.vue b/views/transactions/TransferSubmitted.vue
index 96a11d787..62882008f 100644
--- a/views/transactions/TransferSubmitted.vue
+++ b/views/transactions/TransferSubmitted.vue
@@ -35,6 +35,7 @@
:transaction-hash="transaction.transactionHash"
:token="transaction.token"
:completed="transaction.info.completed"
+ :expected-complete-timestamp="transaction.info.expectedCompleteTimestamp"
/>