From b23218a0d0de221fe823b951f17d5988c875678d Mon Sep 17 00:00:00 2001 From: dafuga Date: Thu, 29 Jun 2023 19:29:32 -0400 Subject: [PATCH] enhancement: general polishing of evm bridge --- src/components/elements/button.svelte | 2 + src/components/elements/input.svelte | 2 +- src/components/elements/input/label.svelte | 5 +- src/components/elements/select.svelte | 16 ++- src/lib/evm.ts | 2 + src/pages/evm/swap.svelte | 31 ++++-- src/pages/evm/swap/confirm.svelte | 71 +++++++++----- src/pages/evm/swap/error.svelte | 4 +- src/pages/evm/swap/form.svelte | 108 +++++++++++++-------- src/pages/evm/swap/success.svelte | 52 +++++----- src/store.ts | 2 +- 11 files changed, 188 insertions(+), 107 deletions(-) diff --git a/src/components/elements/button.svelte b/src/components/elements/button.svelte index 7a3df3a5..71fde25b 100644 --- a/src/components/elements/button.svelte +++ b/src/components/elements/button.svelte @@ -31,6 +31,7 @@ if (href === undefined) { event.preventDefault() } + if (!formValidation || (!$formDisabled && !disabled)) { dispatch('action', event) } @@ -195,6 +196,7 @@ display: flex; flex-direction: column; align-items: center; + width: 100%; } &.loading { :global(.content .icon:not(.loading)) { diff --git a/src/components/elements/input.svelte b/src/components/elements/input.svelte index d759e416..030f5447 100644 --- a/src/components/elements/input.svelte +++ b/src/components/elements/input.svelte @@ -29,7 +29,7 @@ const form: Form = getContext('form') const setInitialFormValidation = async () => { - form.setInput(name, isValid ? await isValid(value) : true) + form.setInput(name, isValid ? false : true) } if (form) { diff --git a/src/components/elements/input/label.svelte b/src/components/elements/input/label.svelte index b735eadf..cbc0a645 100644 --- a/src/components/elements/input/label.svelte +++ b/src/components/elements/input/label.svelte @@ -1,4 +1,5 @@ - -
+
diff --git a/src/components/elements/select.svelte b/src/components/elements/select.svelte index 9bd0ff30..554d847e 100644 --- a/src/components/elements/select.svelte +++ b/src/components/elements/select.svelte @@ -1,5 +1,6 @@ - {#each options as option (option.value)} - + {/each} @@ -29,11 +33,15 @@ appearance: none; width: 170px; padding: 10px 12px; - margin: 8px 0; + margin-bottom: 15px; border: 1px solid var(--dark-grey); border-radius: 12px; background-color: var(--main-grey); font-size: 12px; - color: var(--main-black) + color: var(--main-black); + + &.fullWidth { + width: 100%; + } } diff --git a/src/lib/evm.ts b/src/lib/evm.ts index c3c6c84d..24f268cc 100644 --- a/src/lib/evm.ts +++ b/src/lib/evm.ts @@ -130,6 +130,8 @@ export async function transferNativeToEvm({nativeSession, evmAccount, amount}: T }, }) + console.log({result}) + return result } catch (error) { throw new Error(`Transaction failed: ${error}`) diff --git a/src/pages/evm/swap.svelte b/src/pages/evm/swap.svelte index 9f1bc27e..8afde8a5 100644 --- a/src/pages/evm/swap.svelte +++ b/src/pages/evm/swap.svelte @@ -7,7 +7,6 @@ import {activeSession, evmAccount} from '~/store' import {transferNativeToEvm, transferEvmToNative, connectEthWallet} from '~/lib/evm' - import type { EvmAccount } from '~/lib/evm' import Page from '~/components/layout/page.svelte' import Form from './swap/form.svelte' @@ -44,11 +43,12 @@ } } - function handleReset() { + function handleBack() { step = 'form' error = undefined nativeTransactResult = undefined evmTransactResult = undefined + amount = '0.0000' } async function submitForm() { @@ -56,7 +56,11 @@ return step = 'confirm' } - let ethWalletAccount: EvmAccount | undefined + connectEvmWallet() + } + + async function connectEvmWallet() { + let ethWalletAccount try { ethWalletAccount = await connectEthWallet() @@ -78,18 +82,29 @@
{#if error} - + {:else if step === 'form'} -
+ {:else if step === 'confirm'} {:else if step === 'success' && nativeTransactResult || evmTransactResult} - + {/if}
diff --git a/src/pages/evm/swap/confirm.svelte b/src/pages/evm/swap/confirm.svelte index f9b0fdae..033c40d2 100644 --- a/src/pages/evm/swap/confirm.svelte +++ b/src/pages/evm/swap/confirm.svelte @@ -1,11 +1,16 @@
@@ -16,24 +21,30 @@ - - + + - - + +
From{from}From {from}{from === 'EVM' ? $evmAccount?.address : $activeSession?.auth.actor}
To{to}To {to}{from === 'Native' ? $evmAccount?.address : $activeSession?.auth.actor}
Amount {Asset.from(Number(amount), "4,EOS")}
- +
+ +
+ +
- diff --git a/src/pages/evm/swap/error.svelte b/src/pages/evm/swap/error.svelte index 2c1c2f94..49cb4742 100644 --- a/src/pages/evm/swap/error.svelte +++ b/src/pages/evm/swap/error.svelte @@ -2,7 +2,7 @@ import Button from "~/components/elements/button.svelte" export let error: string - export let handleReset: () => void + export let handleBack: () => void
@@ -17,7 +17,7 @@ -
\ No newline at end of file diff --git a/src/pages/evm/swap/form.svelte b/src/pages/evm/swap/form.svelte index 77f1c01c..912e10ee 100644 --- a/src/pages/evm/swap/form.svelte +++ b/src/pages/evm/swap/form.svelte @@ -1,33 +1,48 @@ @@ -27,7 +28,7 @@ - @@ -42,35 +43,30 @@ {/if} diff --git a/src/store.ts b/src/store.ts index d04a3cfc..731f0842 100644 --- a/src/store.ts +++ b/src/store.ts @@ -11,7 +11,7 @@ import type {EvmAccount} from './lib/evm' /** Set to true when app initialization completes. */ export const appReady = writable(false) -/** Active anchor link session, aka logged in user. */ +/** Active anchor link seactiveSessionssion, aka logged in user. */ export const activeSession = writable(undefined) /** Active EVM account, aka logged in user. */