From 02a2d7feec2352cb5fd188796be1e3cbee1710e0 Mon Sep 17 00:00:00 2001 From: atmoner Date: Mon, 15 Nov 2021 12:36:15 +0100 Subject: [PATCH 01/15] Add earn page --- components/common/AppMenu.vue | 10 ++ components/earn/Card.vue | 33 ++++++ components/earn/Table.vue | 189 ++++++++++++++++++++++++++++++++++ network.js | 1 + pages/earn/index.vue | 36 +++++++ static/icon/bcna-cosmos.png | Bin 0 -> 11064 bytes static/icon/bcna-osmos.png | Bin 0 -> 12247 bytes static/icon/bcna.png | Bin 0 -> 9063 bytes 8 files changed, 269 insertions(+) create mode 100644 components/earn/Card.vue create mode 100644 components/earn/Table.vue create mode 100644 pages/earn/index.vue create mode 100644 static/icon/bcna-cosmos.png create mode 100644 static/icon/bcna-osmos.png create mode 100644 static/icon/bcna.png diff --git a/components/common/AppMenu.vue b/components/common/AppMenu.vue index 27ed6b3..b687302 100644 --- a/components/common/AppMenu.vue +++ b/components/common/AppMenu.vue @@ -12,6 +12,16 @@

Portfolio

chevron_right + +

Earn

+ chevron_right +
+
+

BCNA Earn

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor +

+
+ + + + + diff --git a/components/earn/Table.vue b/components/earn/Table.vue new file mode 100644 index 0000000..8934b90 --- /dev/null +++ b/components/earn/Table.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/network.js b/network.js index 319bf49..8a188ee 100644 --- a/network.js +++ b/network.js @@ -10,6 +10,7 @@ export default { explorerURL: 'https://cosmos-explorer.bitcanna.io', bitcannaExplorerURL: 'https://explorer.bitcanna.io', exchangeApiUrl: 'https://swap.bitcanna.io', + osmosAppUrl: 'https://app.osmosis.zone', // minBlockHeight: 5200792, // actually 5200791, but it has the wrong block time. stakingDenom: 'BCNA', coinLookup: [ diff --git a/pages/earn/index.vue b/pages/earn/index.vue new file mode 100644 index 0000000..7dcd638 --- /dev/null +++ b/pages/earn/index.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/static/icon/bcna-cosmos.png b/static/icon/bcna-cosmos.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad2a0a3643fb499b74d971d79eb51ab860d4155 GIT binary patch literal 11064 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

OXGBfVw5XbN;**eH7K(83X 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 Z{tKbqR=GgJ-^~C3002ovPDHLkV1kf{DVG2M literal 0 HcmV?d00001 From 6ccea3bcac9472ad97e8e55015a155796198a9c4 Mon Sep 17 00:00:00 2001 From: atmoner Date: Fri, 19 Nov 2021 19:22:00 +0100 Subject: [PATCH 02/15] Fix error page on validator jailed --- components/staking/TableValidators.vue | 31 +++++++++++++++++--------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/components/staking/TableValidators.vue b/components/staking/TableValidators.vue index b816f59..391b4bf 100644 --- a/components/staking/TableValidators.vue +++ b/components/staking/TableValidators.vue @@ -58,14 +58,17 @@ export default { }), computed: { sortedEnrichedValidators() { - const orderedValidators = orderBy( - this.validators.map((validator) => ({ - ...validator, - smallName: validator.name ? validator.name.toLowerCase() : '', - })), - [this.sort.property], - [this.sort.order] - ) + let orderedValidators = '' + if (this.validators[0] !== undefined) { + orderedValidators = orderBy( + this.validators.map((validator) => ({ + ...validator, + smallName: validator.name ? validator.name.toLowerCase() : '', + })), + [this.sort.property], + [this.sort.order] + ) + } else orderedValidators = '' return orderedValidators }, properties() { @@ -99,8 +102,16 @@ export default { }, methods: { getDelegation({ operatorAddress }) { - return this.delegations.find( + /* const test = this.delegations.find( ({ validator }) => validator.operatorAddress === operatorAddress + ) */ + // console.log(this.delegations) + /* const test = this.delegations.find( + ({ validator }) => validator.operatorAddress === operatorAddress + ) */ + // console.log(operatorAddress) + return this.delegations.find( + ({ validator }) => validator?.operatorAddress === operatorAddress ) }, getRewards({ operatorAddress }) { @@ -109,7 +120,7 @@ export default { this.rewards /* istanbul ignore next */ .filter( - ({ validator }) => validator.operatorAddress === operatorAddress + ({ validator }) => validator?.operatorAddress === operatorAddress ) ) } From b54779293bf4c07e0b3f7cf17add30630b2ed468 Mon Sep 17 00:00:00 2001 From: atmoner Date: Fri, 19 Nov 2021 19:40:00 +0100 Subject: [PATCH 03/15] Fix error page on validator jailed --- components/staking/TableValidators.vue | 8 -------- 1 file changed, 8 deletions(-) diff --git a/components/staking/TableValidators.vue b/components/staking/TableValidators.vue index 391b4bf..c77a782 100644 --- a/components/staking/TableValidators.vue +++ b/components/staking/TableValidators.vue @@ -102,14 +102,6 @@ export default { }, methods: { getDelegation({ operatorAddress }) { - /* const test = this.delegations.find( - ({ validator }) => validator.operatorAddress === operatorAddress - ) */ - // console.log(this.delegations) - /* const test = this.delegations.find( - ({ validator }) => validator.operatorAddress === operatorAddress - ) */ - // console.log(operatorAddress) return this.delegations.find( ({ validator }) => validator?.operatorAddress === operatorAddress ) From 421be0ddafda31e62cb55a1598a474c184922b00 Mon Sep 17 00:00:00 2001 From: atmoner Date: Fri, 19 Nov 2021 20:35:33 +0100 Subject: [PATCH 04/15] Fix error page on validator jailed --- apis/cosmos-source.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apis/cosmos-source.js b/apis/cosmos-source.js index 6238952..3333874 100644 --- a/apis/cosmos-source.js +++ b/apis/cosmos-source.js @@ -229,7 +229,7 @@ export default class CosmosAPI { // pool ] = await Promise.all([ this.query(`staking/validators?status=BOND_STATUS_BONDED`), - this.query(`staking/validators?status=BOND_STATUS_UNBONDING`), + this.query(`staking/validators?status=BOND_STATUS_UNBONDED`), // this.getAnnualProvision().catch(() => undefined), // this.getStakingSupply(), // this.query(`cosmos/staking/v1beta1/pool`) From 85f89052a11098f6dc2385a2a9eac84273567134 Mon Sep 17 00:00:00 2001 From: atmoner Date: Fri, 19 Nov 2021 21:12:50 +0100 Subject: [PATCH 05/15] Fix last endpoint --- apis/cosmos-source.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apis/cosmos-source.js b/apis/cosmos-source.js index 3333874..a743a37 100644 --- a/apis/cosmos-source.js +++ b/apis/cosmos-source.js @@ -228,14 +228,14 @@ export default class CosmosAPI { // supply, // pool ] = await Promise.all([ - this.query(`staking/validators?status=BOND_STATUS_BONDED`), - this.query(`staking/validators?status=BOND_STATUS_UNBONDED`), + this.query(`cosmos/staking/v1beta1/validators?status=BOND_STATUS_BONDED`), + this.query(`cosmos/staking/v1beta1/validators?status=BOND_STATUS_UNBONDED`), // this.getAnnualProvision().catch(() => undefined), // this.getStakingSupply(), // this.query(`cosmos/staking/v1beta1/pool`) ]) - const resultValidators = validators.result.concat( validatorsUnbonding.result) + const resultValidators = validators.validators.concat(validatorsUnbonding.validators) const tokensTotal = resultValidators.reduce(function(prev, cur) { return prev + parseInt(cur.tokens); From d530efdeda2fcccbb58ea8a829d7506e46fced02 Mon Sep 17 00:00:00 2001 From: atmoner Date: Fri, 19 Nov 2021 21:19:54 +0100 Subject: [PATCH 06/15] Reverse Fix last endpoint --- apis/cosmos-source.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apis/cosmos-source.js b/apis/cosmos-source.js index a743a37..3333874 100644 --- a/apis/cosmos-source.js +++ b/apis/cosmos-source.js @@ -228,14 +228,14 @@ export default class CosmosAPI { // supply, // pool ] = await Promise.all([ - this.query(`cosmos/staking/v1beta1/validators?status=BOND_STATUS_BONDED`), - this.query(`cosmos/staking/v1beta1/validators?status=BOND_STATUS_UNBONDED`), + this.query(`staking/validators?status=BOND_STATUS_BONDED`), + this.query(`staking/validators?status=BOND_STATUS_UNBONDED`), // this.getAnnualProvision().catch(() => undefined), // this.getStakingSupply(), // this.query(`cosmos/staking/v1beta1/pool`) ]) - const resultValidators = validators.validators.concat(validatorsUnbonding.validators) + const resultValidators = validators.result.concat( validatorsUnbonding.result) const tokensTotal = resultValidators.reduce(function(prev, cur) { return prev + parseInt(cur.tokens); From 0c663a1f90061dbe2a13f07e024e66d7fee7e52e Mon Sep 17 00:00:00 2001 From: atmoner Date: Sun, 21 Nov 2021 17:46:20 +0100 Subject: [PATCH 07/15] Detect keplr account change --- layouts/default.vue | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/layouts/default.vue b/layouts/default.vue index 08d4ef3..cb985ed 100644 --- a/layouts/default.vue +++ b/layouts/default.vue @@ -10,6 +10,8 @@ From 30cf24186998996597f26e00bd6ec6302b7d2138 Mon Sep 17 00:00:00 2001 From: atmoner Date: Mon, 22 Nov 2021 12:45:20 +0100 Subject: [PATCH 08/15] Fix multi display denom --- store/data.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/store/data.js b/store/data.js index bb745b1..33b8705 100644 --- a/store/data.js +++ b/store/data.js @@ -133,7 +133,13 @@ export const actions = { async getBalances({ commit, state: { api } }, { address, currency }) { try { const balances = await api.getBalances(address, currency, network) - commit('setBalances', balances) + const returnBcnaBalance = [] + balances.forEach(function (item) { + if (item.id === 'BCNA') { + returnBcnaBalance.push(item) + } + }) + commit('setBalances', returnBcnaBalance) commit('setBalancesLoaded', true) } catch (err) { commit( @@ -149,7 +155,7 @@ export const actions = { async getBcnaApr({ commit, state: { api } }) { try { const apr = await api.getBcnaApr() - commit('setBcnaApr', apr.data.result.bitcanna.roi) + commit('setBcnaApr', apr.data.result.bitcanna.roi.toFixed(1)) commit('setBcnaAprLoaded', true) } catch (err) { commit( From 0f684c2c06780207a82da80e31e6da59061c221c Mon Sep 17 00:00:00 2001 From: atmoner Date: Mon, 22 Nov 2021 16:52:32 +0100 Subject: [PATCH 09/15] Update earn page --- components/earn/Table.vue | 131 ++++++++++++++++++++++---------------- 1 file changed, 75 insertions(+), 56 deletions(-) diff --git a/components/earn/Table.vue b/components/earn/Table.vue index 8934b90..f41736a 100644 --- a/components/earn/Table.vue +++ b/components/earn/Table.vue @@ -17,8 +17,8 @@ BCNA/ATOM 1-7-14 days - $4.14M - O% Annualised + ${{ tvlData572 | bigFigureOrShortDecimals }} + ≈ 100% Annualised BCNA/OSMOS 1-7-14 days - $3.87M - O% Annualised + ${{ tvlData571 | bigFigureOrShortDecimals }} + ≈ 100% Annualised Bitcanna delegate 14 days - $4.14M - O% Annualised - + ${{ returnBcnaBonded | bigFigureOrShortDecimals }} + + + {{ bcnaApr | bigFigureOrShortDecimals }}% (excl. commission) + + help + + + + + + Bitcanna validate NA - $3.87M - O% Annualised + + ${{ returnBcnaBonded | bigFigureOrShortDecimals }} + + + {{ bcnaApr | bigFigureOrShortDecimals }}% (excl. commission) + help + @@ -143,47 +205,4 @@ export default { border-bottom-right-radius: 10px; border-top-right-radius: 10px; } - -/* -th { - padding: 1rem 0.75rem; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - text-align: left; - background: black; -} -td.cell { - padding: 1rem 0.75rem; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - text-align: left; - vertical-align: middle; - background: black; - border: 4px solid var(--gray-1100); -} */ - -/* -table { - border-collapse: separate; - border-spacing: 0 10px; - margin-top: -10px; -} -td { - border: solid 1px #000; - border-style: solid none; - padding: 10px; - background-color: cyan; -} -td:first-child { - border-left-style: solid; - border-top-left-radius: 10px; - border-bottom-left-radius: 10px; -} -td:last-child { - border-right-style: solid; - border-bottom-right-radius: 10px; - border-top-right-radius: 10px; -} */ From fbb213ea17281f95a6d97e3fbcdeaea259e8d693 Mon Sep 17 00:00:00 2001 From: atmoner Date: Mon, 22 Nov 2021 16:54:31 +0100 Subject: [PATCH 10/15] Update earn page --- styles/toast.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/styles/toast.css b/styles/toast.css index 0300731..4b759ea 100644 --- a/styles/toast.css +++ b/styles/toast.css @@ -97,7 +97,7 @@ color: #fff; } .Vue-Toastification__toast--info { - background-color: #2196f3; + background-color: #03a479; color: #fff; } .Vue-Toastification__toast--success { From 4c730759708a96933e2517a8b2c981067980ae88 Mon Sep 17 00:00:00 2001 From: atmoner Date: Mon, 22 Nov 2021 16:56:22 +0100 Subject: [PATCH 11/15] Update earn page --- components/earn/Table.vue | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/components/earn/Table.vue b/components/earn/Table.vue index f41736a..d68dc82 100644 --- a/components/earn/Table.vue +++ b/components/earn/Table.vue @@ -65,9 +65,9 @@ {{ bcnaApr | bigFigureOrShortDecimals }}% (excl. commission) - + @@ -84,7 +84,7 @@ {{ bcnaApr | bigFigureOrShortDecimals }}% (excl. commission) - help + Date: Thu, 25 Nov 2021 12:56:12 +0100 Subject: [PATCH 12/15] Fix new endpoint APR --- apis/cosmos-source.js | 26 +++++++++++++++++++++++++- store/data.js | 2 +- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/apis/cosmos-source.js b/apis/cosmos-source.js index 3333874..122c5c8 100644 --- a/apis/cosmos-source.js +++ b/apis/cosmos-source.js @@ -204,7 +204,8 @@ export default class CosmosAPI { return await this.axios(`https://graphql.bitcanna.io/api/rest/supply/inflation`) } async getBcnaApr() { - return await this.axios(`https://api.stakely.io/stats`) + // return await this.axios(`https://api.stakely.io/stats`) + return await this.axios(`https://graphql.bitcanna.io/api/rest/price/apr`) } async getValidator(address) { @@ -220,6 +221,29 @@ export default class CosmosAPI { const res = await this.query(`cosmos/bank/v1beta1/supply`) return BigNumber(res.supply[0].amount) } + /* async loadValidators() { + const [ + validators, + validatorsUnbonding, + // annualProvision, + // supply, + // pool + ] = await Promise.all([ + this.query(`cosmos/staking/v1beta1/validators?status=BOND_STATUS_BONDED`), + this.query(`cosmos/staking/v1beta1/validators?status=BOND_STATUS_UNBONDED`), + // this.getAnnualProvision().catch(() => undefined), + // this.getStakingSupply(), + // this.query(`cosmos/staking/v1beta1/pool`) + ]) + + const resultValidators = validators.validators.concat(validatorsUnbonding.validators) + + const tokensTotal = resultValidators.reduce(function(prev, cur) { + return prev + parseInt(cur.tokens); + }, 0); + + return resultValidators.map(validator => reducers.validatorReducer(validator, tokensTotal)) + } */ async loadValidators() { const [ validators, diff --git a/store/data.js b/store/data.js index 33b8705..8413ffb 100644 --- a/store/data.js +++ b/store/data.js @@ -155,7 +155,7 @@ export const actions = { async getBcnaApr({ commit, state: { api } }) { try { const apr = await api.getBcnaApr() - commit('setBcnaApr', apr.data.result.bitcanna.roi.toFixed(1)) + commit('setBcnaApr', Number(apr.data.cmc_supply_apr[0].apr).toFixed(1)) commit('setBcnaAprLoaded', true) } catch (err) { commit( From 1584aff4b7ca370f3737b5f89e54e9f8fc8d35ab Mon Sep 17 00:00:00 2001 From: atmoner Date: Thu, 25 Nov 2021 16:11:03 +0100 Subject: [PATCH 13/15] Update earn page --- components/earn/Card.vue | 25 ++++++++++---------- components/earn/Table.vue | 36 ++++++++++++++++++++-------- static/icon/BCNA-Atom.svg | 50 +++++++++++++++++++++++++++++++++++++++ static/icon/BCNA-Osmo.svg | 1 + static/icon/BCNA-icon.svg | 26 ++++++++++++++++++++ 5 files changed, 116 insertions(+), 22 deletions(-) create mode 100644 static/icon/BCNA-Atom.svg create mode 100644 static/icon/BCNA-Osmo.svg create mode 100644 static/icon/BCNA-icon.svg diff --git a/components/earn/Card.vue b/components/earn/Card.vue index af4fe5d..333af71 100644 --- a/components/earn/Card.vue +++ b/components/earn/Card.vue @@ -1,20 +1,16 @@ @@ -22,6 +18,11 @@ diff --git a/components/earn/Table.vue b/components/earn/Table.vue index d68dc82..400225a 100644 --- a/components/earn/Table.vue +++ b/components/earn/Table.vue @@ -15,10 +15,12 @@ BCNA/ATOM - + + + 1-7-14 days ${{ tvlData572 | bigFigureOrShortDecimals }} - ≈ 100% Annualised + 142% + BONUS BCNA - BCNA/OSMOS - + BCNA/OSMO + + + 1-7-14 days ${{ tvlData571 | bigFigureOrShortDecimals }} - ≈ 100% Annualised + 163% + BONUS BCNA +

Stake

@@ -57,8 +62,10 @@ - - + + - - + +
Bitcanna delegateBitCanna Delegate + + 14 days ${{ returnBcnaBonded | bigFigureOrShortDecimals }} @@ -76,8 +83,10 @@
Bitcanna validateBitCanna Validate + + NA ${{ returnBcnaBonded | bigFigureOrShortDecimals }} @@ -168,6 +177,13 @@ export default { border-radius: var(--border-radius); background: var(--gray-1100); } +.container2 > h1 { + font-size: 24px; + color: #fff; + color: var(--white); + font-weight: 600; + padding-bottom: 1rem; +} .icon { display: inline-flex; align-self: center; @@ -192,7 +208,7 @@ export default { vertical-align: middle; border: solid 1px #000; border-style: solid none; - padding: 25px; + padding: 15px; background-color: black; } .tableearn td:first-child { diff --git a/static/icon/BCNA-Atom.svg b/static/icon/BCNA-Atom.svg new file mode 100644 index 0000000..2f764a3 --- /dev/null +++ b/static/icon/BCNA-Atom.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + +Layer 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/icon/BCNA-Osmo.svg b/static/icon/BCNA-Osmo.svg new file mode 100644 index 0000000..2369731 --- /dev/null +++ b/static/icon/BCNA-Osmo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icon/BCNA-icon.svg b/static/icon/BCNA-icon.svg new file mode 100644 index 0000000..8abbaca --- /dev/null +++ b/static/icon/BCNA-icon.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + From 0aaae505e756fe5ef6e0577d4a4309f94efd9984 Mon Sep 17 00:00:00 2001 From: atmoner Date: Thu, 25 Nov 2021 16:13:24 +0100 Subject: [PATCH 14/15] Update earn page --- pages/earn/index.vue | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pages/earn/index.vue b/pages/earn/index.vue index 7dcd638..a4c350d 100644 --- a/pages/earn/index.vue +++ b/pages/earn/index.vue @@ -1,6 +1,6 @@