From 5f094ab208800bf6de16ddc99436a040557805fa Mon Sep 17 00:00:00 2001 From: Daniel Fugere Date: Wed, 13 Dec 2023 15:00:05 -0800 Subject: [PATCH] USDT, SEOS, BOX and USN bridges support (#178) * enhancement: adding support for USDT * chore: modified token selector to accept less redundant tokenOption values * refactor: moving balances to balances store * fix: fetching usdt balance properly * fix: getting bridge working again * refactor: added evm tokens to tokens.json * fix: getting transfer page working again * chore: general polishing of transfer page * fix: fixed use entire balance button fix: getting correct transfer fee working again * fix: fixed confirm page * fix: fixing token selector on send/receive page * fix: getting usdt transfer working * chore: handling the evm to native usdt transfer * fix: using erc20 interface for usdt transfers * debug: logging big number conversion issue * chore: having form and confirm page play nicely with usdt * refactor: using sent instead of deposit * fix: getting evm to eos usdt transfer working * fix: fixing other transfers * style: linted * chore: added seos, box and usn bridges * enhancement: removing tokens.json dependency * fix: getting new tokens working on transfer page * enhancement: getting chain swapping working better * style: linted * fix: handling the case where chain swapping happens right after transfer * style: linted * fix: detecting metamask login properly * chore: changed the transfer page subtitle * fix: updated the SEOS, BOX and USN precision and transfer fees * enhancement: checking balances less often for longer * fix: refetching balances when evm session is not immediately accessible --- src/auth.ts | 4 +- .../elements/input/token/selector.svelte | 56 +- .../elements/input/token/selector/row.svelte | 7 +- src/components/layout/account/sidebar.svelte | 2 + src/lib/balance-providers/bloks.ts | 1 + src/lib/balance-providers/light-api.ts | 40 +- src/lib/evm/data/erc20_abi.json | 527 ++++++++++++++++++ src/lib/evm/data/tokens.json | 124 +++++ src/lib/{evm.ts => evm/index.ts} | 163 +++++- src/pages/dashboard/row.svelte | 6 +- src/pages/send/index.svelte | 29 +- src/pages/transfer/confirm.svelte | 94 ++-- src/pages/transfer/form.svelte | 116 ++-- src/pages/transfer/index.svelte | 69 ++- src/pages/transfer/managers/eosEvmBridge.ts | 51 +- src/pages/transfer/managers/evmEosBridge.ts | 103 ++-- src/pages/transfer/managers/evmTelosBridge.ts | 24 - src/pages/transfer/managers/index.ts | 129 ++++- src/pages/transfer/managers/telosEvmBridge.ts | 26 - .../transfer/managers/transferManager.ts | 52 +- src/pages/transfer/success.svelte | 31 +- src/stores/balances-provider.ts | 34 +- src/stores/balances.ts | 6 +- src/stores/tokens.ts | 26 +- 24 files changed, 1327 insertions(+), 393 deletions(-) create mode 100644 src/lib/evm/data/erc20_abi.json create mode 100644 src/lib/evm/data/tokens.json rename src/lib/{evm.ts => evm/index.ts} (64%) diff --git a/src/auth.ts b/src/auth.ts index 14364a7b..60e93339 100644 --- a/src/auth.ts +++ b/src/auth.ts @@ -7,6 +7,7 @@ import {getClient} from './api-client' import {appId, chains} from './config' import {activeEvmSession, activeSession, availableSessions} from './store' import {startEvmSession} from './lib/evm' +import {fetchBalances} from './stores/balances' const transport = new Transport({ requestStatus: false, @@ -101,6 +102,7 @@ export async function activate(id: SessionLike) { if (get(activeEvmSession)) { activeEvmSession.set(undefined) - startEvmSession() + await startEvmSession() + fetchBalances(get(activeSession), true) } } diff --git a/src/components/elements/input/token/selector.svelte b/src/components/elements/input/token/selector.svelte index 4f9c9cc7..ddf1bedf 100644 --- a/src/components/elements/input/token/selector.svelte +++ b/src/components/elements/input/token/selector.svelte @@ -1,9 +1,10 @@