From f4adf02fca4005d31935d57606e2570638c391df Mon Sep 17 00:00:00 2001 From: Jonathan Huamani Date: Fri, 10 Dec 2021 19:02:33 -0500 Subject: [PATCH 1/6] feat: Added menu component Signed-off-by: Jonathan Huamani --- src/components/layouts/Menu.vue | 114 ++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 src/components/layouts/Menu.vue diff --git a/src/components/layouts/Menu.vue b/src/components/layouts/Menu.vue new file mode 100644 index 00000000..780ea312 --- /dev/null +++ b/src/components/layouts/Menu.vue @@ -0,0 +1,114 @@ + + + + + From e0b826030ae3f1190cbda6c9643ec4b467aae856 Mon Sep 17 00:00:00 2001 From: Jonathan Huamani Date: Fri, 10 Dec 2021 19:03:06 -0500 Subject: [PATCH 2/6] feat: Added sider Component to contain menu and logo in left side Signed-off-by: Jonathan Huamani --- src/components/layouts/Sider.vue | 45 ++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/components/layouts/Sider.vue diff --git a/src/components/layouts/Sider.vue b/src/components/layouts/Sider.vue new file mode 100644 index 00000000..dc3a5d80 --- /dev/null +++ b/src/components/layouts/Sider.vue @@ -0,0 +1,45 @@ + + + + + From 19b6e91ab780e6644754b1ebcb3f1184758fbf34 Mon Sep 17 00:00:00 2001 From: Jonathan Huamani Date: Fri, 10 Dec 2021 19:04:30 -0500 Subject: [PATCH 3/6] feat: Added sider component to App component Signed-off-by: Jonathan Huamani --- src/App.vue | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/App.vue b/src/App.vue index 0e1d5431..ee1cc770 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,8 +1,13 @@ @@ -12,6 +17,7 @@ import { provide, ref } from 'vue' // import Connection from '@/components/commons/Connection.vue' import NavBar from '@/components/layouts/NavBar.vue' import Footer from '@/components/layouts/Footer.vue' +import Sider from '@/components/layouts/Sider' import WrapperModal from '@/components/commons/Modals/WrapperModal' export default { @@ -20,6 +26,7 @@ export default { NavBar, Footer, WrapperModal, + Sider, }, setup() { const wrapperModal = ref(null) From f31b5c0b1387eb4090a4ca1d330662a3dd441ba1 Mon Sep 17 00:00:00 2001 From: Jonathan Huamani Date: Fri, 10 Dec 2021 19:05:44 -0500 Subject: [PATCH 4/6] feat: moving logic from home to shared store feat: create new pages for each section Signed-off-by: Jonathan Huamani --- src/store.js | 61 +++++++++++ src/views/Home.vue | 187 ++++++--------------------------- src/views/NetworkInfoPage.vue | 47 +++++++++ src/views/TokenListPage.vue | 37 +++++++ src/views/TransactionsPage.vue | 34 ++++++ 5 files changed, 211 insertions(+), 155 deletions(-) create mode 100644 src/views/NetworkInfoPage.vue create mode 100644 src/views/TokenListPage.vue create mode 100644 src/views/TransactionsPage.vue diff --git a/src/store.js b/src/store.js index dde3b982..c1eb1967 100644 --- a/src/store.js +++ b/src/store.js @@ -9,6 +9,9 @@ import { getNetworksAvailable, getNetworksConf } from '@/constants/networks.js' import { ALL_RPC } from '@/constants/rpc.js' import { convertToNumber } from '@/utils/text-helpers' +import SideNetwork from '@/modules/networks/SideNetwork' +import HostNetwork from '@/modules/networks/HostNetwork' +import { blocksToTime } from '@/utils' export const store = { state: reactive({ @@ -28,6 +31,19 @@ export const store = { connectionError: '', networksAvailable: [], preSettingsEnabled: false, + networkSettings: { + typesLimits: [], + rskFee: 0, + sideFee: 0, + rskFeeNft: 0, + sideFeeNft: 0, + rskConfirmations: {}, + sideConfirmations: {}, + rskConfirmationsNft: {}, + sideConfirmationsNft: {}, + rskFedMembers: [], + sideFedMembers: [], + }, }), accountsChanged(accounts) { if (accounts.length === 0) { @@ -36,6 +52,50 @@ export const store = { } store.state.accountAddress = accounts[0] }, + async initNetworkSettings() { + const rskWeb3 = store.state.rskWeb3 + const rskConfig = store.state.rskConfig + const sideWeb3 = store.state.sideWeb3 + const sideConfig = store.state.sideConfig + + const sideNetwork = new SideNetwork(sideConfig, sideWeb3) + const hostNetwork = new HostNetwork(rskConfig, rskWeb3) + const networkSettings = {} + networkSettings.rskFee = await hostNetwork.getFeePercentage() + + networkSettings.sideFee = await sideNetwork.getFeePercentage() + // We have the premice that the limits will be equal in Side and in RSK + // And the tokens wil have the same type on both networks + const { limits, confirmations } = await hostNetwork.allowTokensActions() + networkSettings.typesLimits = limits + networkSettings.rskConfirmations = confirmations + networkSettings.rskFedMembers = await hostNetwork.getMembers() + + const { confirmations: sideConfirmations } = await sideNetwork.allowTokensActions() + networkSettings.sideConfirmations = sideConfirmations + + networkSettings.sideFedMembers = await sideNetwork.getMembers() + + // NFT + if (!rskConfig.nftBridge || !sideConfig.nftBridge) { + return + } + networkSettings.rskFeeNft = await hostNetwork.getFixedFee() + + networkSettings.sideFeeNft = await sideNetwork.getFixedFee() + + const NFT_FIXED_CONFIRMATIONS_BLOCK = 3 // maybe we are going to define it into the nft bridge contract + + networkSettings.rskConfirmationsNft = { + confirmations: NFT_FIXED_CONFIRMATIONS_BLOCK, + time: blocksToTime(NFT_FIXED_CONFIRMATIONS_BLOCK, rskConfig.secondsPerBlock), + } + networkSettings.sideConfirmationsNft = { + confirmations: NFT_FIXED_CONFIRMATIONS_BLOCK, + time: blocksToTime(NFT_FIXED_CONFIRMATIONS_BLOCK, sideConfig.secondsPerBlock), + } + this.networkSettings = networkSettings + }, async initMainSettings(chainId, rskConfig, sideConfig) { const state = store.state state.chainId = chainId @@ -57,6 +117,7 @@ export const store = { if (state.web3) { const accounts = await state.web3.eth.getAccounts() store.accountsChanged(accounts) + await this.initNetworkSettings() } }, async chainChanged(chainId) { diff --git a/src/views/Home.vue b/src/views/Home.vue index 5cb8e771..ad0f0c4b 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -1,189 +1,66 @@