From 316d37717153234e7e6f1f31a30dbc9af0f4bf00 Mon Sep 17 00:00:00 2001 From: KIMURA Yu <33382781+KimuraYu45z@users.noreply.github.com> Date: Wed, 16 Aug 2023 00:03:09 +0800 Subject: [PATCH 01/17] feat: iya fix --- .../strategy/strategy.component.html | 9 +++- .../vaults/create/create.component.html | 52 ++++++++++--------- .../vaults/create/create.component.ts | 9 ++-- 3 files changed, 41 insertions(+), 29 deletions(-) diff --git a/projects/portal/src/app/views/yieldaggregator/strategies/strategy/strategy.component.html b/projects/portal/src/app/views/yieldaggregator/strategies/strategy/strategy.component.html index 39adcbc8a..84e9c4df6 100644 --- a/projects/portal/src/app/views/yieldaggregator/strategies/strategy/strategy.component.html +++ b/projects/portal/src/app/views/yieldaggregator/strategies/strategy/strategy.component.html @@ -54,7 +54,14 @@

APR
-
{{ strategyAPR | percent : '1.2-2' }}
+
+ + {{ strategyAPR | percent : '1.2-2' }} + + +
+
+
diff --git a/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.html b/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.html index ba146907f..04fc6cde6 100644 --- a/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.html +++ b/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.html @@ -215,32 +215,34 @@

What is the strategies?

Add Strategy -
- -
- + +

No strategy for {{ selectedSymbol }}

+
+ + + + +
diff --git a/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.ts b/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.ts index d9f6ba42e..485eb1883 100644 --- a/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.ts +++ b/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.ts @@ -36,7 +36,6 @@ export class CreateComponent implements OnInit { reserveRate?: number; name?: string; - selectedStrategyId?: string; selectedStrategies: { id?: string; name?: string; weight: number }[] = []; constructor() { @@ -52,21 +51,25 @@ export class CreateComponent implements OnInit { } onAddStrategy(strategyId: string) { + if (!strategyId) { + return; + } this.selectedStrategies.push({ id: strategyId, name: this.strategies?.find((s) => s.id === strategyId)?.name, weight: 0, }); this.selectedStrategies.sort((a, b) => a.id!.localeCompare(b.id!)); - this.selectedStrategyId = undefined; + + (global as any).addStrategyModal.close(); } onClickDeleteStrategy(index: number) { this.selectedStrategies.splice(index, 1); - this.selectedStrategyId = ''; } onChangeSymbol() { + this.selectedStrategies = []; if (!this.selectedSymbol) { return; } From 4a8101515e50355d436bd87742592782adda7a2f Mon Sep 17 00:00:00 2001 From: Senna46 <29295263+Senna46@users.noreply.github.com> Date: Wed, 16 Aug 2023 16:56:19 +0900 Subject: [PATCH 02/17] chore: wallet text --- .../connect-wallet-start-dialog.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/portal/src/app/views/dialogs/wallets/connect-wallet-start-dialog/connect-wallet-start-dialog.component.ts b/projects/portal/src/app/views/dialogs/wallets/connect-wallet-start-dialog/connect-wallet-start-dialog.component.ts index e6e4b0fbc..2abc2e62d 100644 --- a/projects/portal/src/app/views/dialogs/wallets/connect-wallet-start-dialog/connect-wallet-start-dialog.component.ts +++ b/projects/portal/src/app/views/dialogs/wallets/connect-wallet-start-dialog/connect-wallet-start-dialog.component.ts @@ -27,7 +27,7 @@ export class ConnectWalletStartDialogComponent implements OnInit { { logo: 'assets/favicon.png', walletType: WalletType.ununifi, - name: 'UnUniFi (deprecated)', + name: 'UnUniFi Portal Wallet (deprecated)', }, ]; From 42870e18d1f213db1d527df9fb5570451e1d0303 Mon Sep 17 00:00:00 2001 From: KIMURA Yu <33382781+KimuraYu45z@users.noreply.github.com> Date: Wed, 16 Aug 2023 17:55:30 +0800 Subject: [PATCH 03/17] feat: auto fill full amount --- .../vaults/vault/vault.component.html | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/projects/portal/src/app/views/yieldaggregator/vaults/vault/vault.component.html b/projects/portal/src/app/views/yieldaggregator/vaults/vault/vault.component.html index 9a53ed933..bea3e5441 100644 --- a/projects/portal/src/app/views/yieldaggregator/vaults/vault/vault.component.html +++ b/projects/portal/src/app/views/yieldaggregator/vaults/vault/vault.component.html @@ -193,12 +193,15 @@

/> {{ displaySymbol }} - + +

@@ -248,13 +251,16 @@

/> YA-VAULT-{{ vault?.vault?.id }} - + +

diff --git a/projects/portal/src/app/views/ecosystemincentive/units/unit/unit.component.ts b/projects/portal/src/app/views/ecosystemincentive/units/unit/unit.component.ts index 31c20be79..d76653cbf 100644 --- a/projects/portal/src/app/views/ecosystemincentive/units/unit/unit.component.ts +++ b/projects/portal/src/app/views/ecosystemincentive/units/unit/unit.component.ts @@ -1,7 +1,6 @@ import { Clipboard } from '@angular/cdk/clipboard'; import { Component, Input, OnInit } from '@angular/core'; import { MatSnackBar } from '@angular/material/snack-bar'; -import { RecipientContainer200ResponseRecipientContainer } from 'ununifi-client/esm/openapi'; @Component({ selector: 'view-unit', @@ -13,8 +12,6 @@ export class UnitComponent implements OnInit { unitId?: string | null; @Input() txMemo?: string | null; - @Input() - unit?: RecipientContainer200ResponseRecipientContainer | null; constructor(private clipboard: Clipboard, private readonly snackBar: MatSnackBar) {} diff --git a/projects/portal/src/app/views/nftbackedloan/borrowers/borrow/borrow.component.html b/projects/portal/src/app/views/nftbackedloan/borrowers/borrow/borrow.component.html index d308069bb..106de930e 100644 --- a/projects/portal/src/app/views/nftbackedloan/borrowers/borrow/borrow.component.html +++ b/projects/portal/src/app/views/nftbackedloan/borrowers/borrow/borrow.component.html @@ -53,11 +53,11 @@

Minimum deposit rate - {{ listingInfo?.minimum_deposit_rate | percent : '1.0-4' }} + {{ listingInfo?.min_deposit_rate | percent : '1.0-4' }} Minimum bid Expiry date - {{ listingInfo?.minimum_bidding_period | secondToDate }} Days + {{ listingInfo?.min_bid_period | secondToDate }} Days Listed diff --git a/projects/portal/src/app/views/nftbackedloan/borrowers/borrower/borrower.component.html b/projects/portal/src/app/views/nftbackedloan/borrowers/borrower/borrower.component.html index 0f28d23f3..aba4e037d 100644 --- a/projects/portal/src/app/views/nftbackedloan/borrowers/borrower/borrower.component.html +++ b/projects/portal/src/app/views/nftbackedloan/borrowers/borrower/borrower.component.html @@ -103,15 +103,15 @@

Listed NFTs

{{ nft.listing?.state }}

- {{ listedOwnNftsMetadata[i].name + '/' + nft.listing?.nft_id?.nft_id }} + {{ listedOwnNftsMetadata[i].name + '/' + nft.listing?.nft_id?.token_id }}

- {{ nft.listing?.nft_id?.nft_id }} + {{ nft.listing?.nft_id?.token_id }}

diff --git a/projects/portal/src/app/views/nftbackedloan/lenders/place-bid/place-bid.component.html b/projects/portal/src/app/views/nftbackedloan/lenders/place-bid/place-bid.component.html index b924b642a..a7c4d1812 100644 --- a/projects/portal/src/app/views/nftbackedloan/lenders/place-bid/place-bid.component.html +++ b/projects/portal/src/app/views/nftbackedloan/lenders/place-bid/place-bid.component.html @@ -60,11 +60,11 @@

Minimum deposit rate - {{ listingInfo?.minimum_deposit_rate | percent : '1.0-4' }} + {{ listingInfo?.min_deposit_rate | percent : '1.0-4' }} Minimum bid Expiry date - {{ listingInfo?.minimum_bidding_period | secondToDate }} Days + {{ listingInfo?.min_bid_period | secondToDate }} Days Listed diff --git a/projects/portal/src/app/views/nftbackedloan/lenders/place-bid/place-bid.component.ts b/projects/portal/src/app/views/nftbackedloan/lenders/place-bid/place-bid.component.ts index f50aec352..9c69f6375 100644 --- a/projects/portal/src/app/views/nftbackedloan/lenders/place-bid/place-bid.component.ts +++ b/projects/portal/src/app/views/nftbackedloan/lenders/place-bid/place-bid.component.ts @@ -83,7 +83,7 @@ export class PlaceBidComponent implements OnInit, OnChanges { onChangePrice() { if (!this.depositAmount) { - const rate = Number(this.listingInfo?.minimum_deposit_rate); + const rate = Number(this.listingInfo?.min_deposit_rate); this.depositAmount = Number(this.bidAmount) * rate; } } @@ -140,8 +140,8 @@ export class PlaceBidComponent implements OnInit, OnChanges { } const minExpiryDate = new Date(); const expiryDate = new Date(this.date + 'T' + this.time); - if (this.listingInfo && this.listingInfo.minimum_bidding_period) { - const minExpirySeconds = parseInt(this.listingInfo.minimum_bidding_period); + if (this.listingInfo && this.listingInfo.min_bid_period) { + const minExpirySeconds = parseInt(this.listingInfo.min_bid_period); minExpiryDate.setSeconds(minExpiryDate.getSeconds() + minExpirySeconds); } if (expiryDate < minExpiryDate) { @@ -161,11 +161,11 @@ export class PlaceBidComponent implements OnInit, OnChanges { } calculateMinimumDeposit() { - if (!this.bidAmount || !this.listingInfo?.minimum_deposit_rate) { + if (!this.bidAmount || !this.listingInfo?.min_deposit_rate) { this.minimumDeposit = 0; return; } - const rate = Number(this.listingInfo.minimum_deposit_rate); + const rate = Number(this.listingInfo.min_deposit_rate); this.minimumDeposit = this.bidAmount * rate; } diff --git a/projects/portal/src/app/views/nftbackedloan/nfts/class/nft/bidder-nft/bidder-nft.component.html b/projects/portal/src/app/views/nftbackedloan/nfts/class/nft/bidder-nft/bidder-nft.component.html index 28d00553a..672adb2a2 100644 --- a/projects/portal/src/app/views/nftbackedloan/nfts/class/nft/bidder-nft/bidder-nft.component.html +++ b/projects/portal/src/app/views/nftbackedloan/nfts/class/nft/bidder-nft/bidder-nft.component.html @@ -40,11 +40,11 @@

Minimum deposit rate - {{ listingInfo?.minimum_deposit_rate | percent : '1.0-4' }} + {{ listingInfo?.min_deposit_rate | percent : '1.0-4' }} Minimum bid Expiry date - {{ listingInfo?.minimum_bidding_period | secondToDate }} Days + {{ listingInfo?.min_bid_period | secondToDate }} Days Listed @@ -75,7 +75,7 @@

Lending Status
- {{ ownBid?.borrow?.amount | coin | async }} + {{ ownBid?.loan?.amount | coin | async }}
@@ -95,7 +95,7 @@

{{ nftMetadata?.name }}

Minimum deposit rate - {{ listingInfo?.minimum_deposit_rate | percent : '1.0-4' }} + {{ listingInfo?.min_deposit_rate | percent : '1.0-4' }} Minimum bid Expiry date - {{ listingInfo?.minimum_bidding_period | secondToDate }} Days + {{ listingInfo?.min_bid_period | secondToDate }} Days Listed diff --git a/projects/portal/src/app/views/nftbackedloan/nfts/nfts.component.html b/projects/portal/src/app/views/nftbackedloan/nfts/nfts.component.html index 31a0e43e8..428482025 100644 --- a/projects/portal/src/app/views/nftbackedloan/nfts/nfts.component.html +++ b/projects/portal/src/app/views/nftbackedloan/nfts/nfts.component.html @@ -156,14 +156,14 @@
{{ nft.listing?.state }}

- {{ nftsMetadata[i].name + '/' + nft.listing?.nft_id?.nft_id }} + {{ nftsMetadata[i].name + '/' + nft.listing?.nft_id?.token_id }}

- {{ nft.listing?.nft_id?.nft_id }} + {{ nft.listing?.nft_id?.token_id }}

From ac3cfdd877d7d7643e3df0f38830269f6c4982e2 Mon Sep 17 00:00:00 2001 From: Senna46 <29295263+Senna46@users.noreply.github.com> Date: Wed, 16 Aug 2023 19:52:45 +0900 Subject: [PATCH 06/17] fix: iya service --- .../models/yield-aggregators/yield-aggregator.service.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/projects/portal/src/app/models/yield-aggregators/yield-aggregator.service.ts b/projects/portal/src/app/models/yield-aggregators/yield-aggregator.service.ts index 3020ae5ec..dfda69b9a 100644 --- a/projects/portal/src/app/models/yield-aggregators/yield-aggregator.service.ts +++ b/projects/portal/src/app/models/yield-aggregators/yield-aggregator.service.ts @@ -152,8 +152,9 @@ export class YieldAggregatorService { vault: Vault200Response, burnAmount: number, ): Observable { + const denom = vault.vault?.denom; const lpDenom = 'yield-aggregator/vaults/' + vault?.vault?.id; - const exponent = getDenomExponent(vault.vault?.denom); + const exponent = getDenomExponent(lpDenom); const burnDenomAmount = burnAmount * Math.pow(10, exponent); const totalAmountInVault = Number(vault.total_bonded_amount) + @@ -163,11 +164,11 @@ export class YieldAggregatorService { return supplyLp$.pipe( map((supplyLp) => { if (!totalAmountInVault || !supplyLp || !supplyLp.amount || !parseInt(supplyLp.amount)) { - return { denom: lpDenom, amount: '0' }; + return { denom: denom, amount: '0' }; } // principalAmount = principalAmountInVault * (lpAmountToBurn / lpSupply) const redeemAmount = (burnDenomAmount * totalAmountInVault) / parseInt(supplyLp.amount); - return { denom: lpDenom, amount: redeemAmount.toString() }; + return { denom: denom, amount: redeemAmount.toString() }; }), ); } From 0318d86877edcd782af253329ae9dc605c141728 Mon Sep 17 00:00:00 2001 From: Senna46 <29295263+Senna46@users.noreply.github.com> Date: Wed, 16 Aug 2023 20:20:02 +0900 Subject: [PATCH 07/17] feat: vault api --- .../vaults/vault/vault.component.ts | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/projects/portal/src/app/pages/yieldaggregator/vaults/vault/vault.component.ts b/projects/portal/src/app/pages/yieldaggregator/vaults/vault/vault.component.ts index 253a459a1..9a613d524 100644 --- a/projects/portal/src/app/pages/yieldaggregator/vaults/vault/vault.component.ts +++ b/projects/portal/src/app/pages/yieldaggregator/vaults/vault/vault.component.ts @@ -7,6 +7,7 @@ import { TokenAmountUSD, } from 'projects/portal/src/app/models/band-protocols/band-protocol.service'; import { ConfigService } from 'projects/portal/src/app/models/config.service'; +import { getDenomExponent } from 'projects/portal/src/app/models/cosmos/bank.model'; import { BankQueryService } from 'projects/portal/src/app/models/cosmos/bank.query.service'; import { StoredWallet } from 'projects/portal/src/app/models/wallets/wallet.model'; import { WalletService } from 'projects/portal/src/app/models/wallets/wallet.service'; @@ -144,15 +145,24 @@ export class VaultComponent implements OnInit { this.burnAmount$ = new BehaviorSubject(0); this.estimatedMintAmount$ = combineLatest([this.vault$, this.mintAmount$.asObservable()]).pipe( mergeMap(([vault, deposit]) => { - return this.iyaService.estimateMintAmount$(vault, deposit); - // const exponent = getDenomExponent(vault.vault?.denom); - // return this.iyaQuery.getEstimatedMintAmount$(id, (deposit * 10 ** exponent).toString()); + // return this.iyaService.estimateMintAmount$(vault, deposit); + const id = vault.vault?.id; + if (!id) { + return of({ amount: '0', denom: '' }); + } + const exponent = getDenomExponent(vault.vault?.denom); + return this.iyaQuery.getEstimatedMintAmount$(id, (deposit * 10 ** exponent).toString()); }), ); this.estimatedBurnAmount$ = combineLatest([this.vault$, this.burnAmount$.asObservable()]).pipe( mergeMap(([vault, burn]) => { - return this.iyaService.estimateRedeemAmount$(vault, burn); - // return this.iyaQuery.getEstimatedRedeemAmount$(id, burn.toString()); + // return this.iyaService.estimateRedeemAmount$(vault, burn); + const id = vault.vault?.id; + if (!id) { + return of({ amount: '0', denom: '' }); + } + const exponent = getDenomExponent('yield-aggregator/vaults/' + id); + return this.iyaQuery.getEstimatedRedeemAmount$(id, (burn * 10 ** exponent).toString()); }), ); this.vaultAPY$ = combineLatest([this.vault$, this.configService.config$]).pipe( From 9fd12fe759c58f2b301bfea5cfc15e1d0fc753a1 Mon Sep 17 00:00:00 2001 From: Senna46 <29295263+Senna46@users.noreply.github.com> Date: Wed, 16 Aug 2023 20:29:49 +0900 Subject: [PATCH 08/17] feat: release ver --- package-lock.json | 19 +++++++++++-------- package.json | 2 +- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 88a86e966..6b85e3076 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,7 @@ "stream-browserify": "^3.0.0", "stream-http": "^3.2.0", "tslib": "^2.3.0", - "ununifi-client": "^3.2.1-rc1", + "ununifi-client": "^3.2.1", "zone.js": "~0.11.4" }, "devDependencies": { @@ -30118,9 +30118,9 @@ } }, "node_modules/ununifi-client": { - "version": "3.2.1-rc1", - "resolved": "https://registry.npmjs.org/ununifi-client/-/ununifi-client-3.2.1-rc1.tgz", - "integrity": "sha512-olAvKIkwDZGmuiii+PhNlFDnsXyX1RERB7ZQSrddNVe/pd28lrbqZ3wUEYol8LiQEikG7Kj3fDa6ULV7H79QYg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ununifi-client/-/ununifi-client-3.2.1.tgz", + "integrity": "sha512-hAJjqOXpwCUhkQt1adgHWkSOz3YiZWm/fOoY5pRy0Ymnb2YLi/6LAfEYPxc5vxxoMVv8e1HJaNJWrgjry/IspQ==", "dependencies": { "axios": "^0.21.1", "protobufjs": "^6.11.2" @@ -30131,7 +30131,8 @@ }, "node_modules/ununifi-client/node_modules/axios": { "version": "0.21.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "dependencies": { "follow-redirects": "^1.14.0" } @@ -50658,9 +50659,9 @@ "dev": true }, "ununifi-client": { - "version": "3.2.1-rc1", - "resolved": "https://registry.npmjs.org/ununifi-client/-/ununifi-client-3.2.1-rc1.tgz", - "integrity": "sha512-olAvKIkwDZGmuiii+PhNlFDnsXyX1RERB7ZQSrddNVe/pd28lrbqZ3wUEYol8LiQEikG7Kj3fDa6ULV7H79QYg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ununifi-client/-/ununifi-client-3.2.1.tgz", + "integrity": "sha512-hAJjqOXpwCUhkQt1adgHWkSOz3YiZWm/fOoY5pRy0Ymnb2YLi/6LAfEYPxc5vxxoMVv8e1HJaNJWrgjry/IspQ==", "requires": { "axios": "^0.21.1", "protobufjs": "^6.11.2" @@ -50668,6 +50669,8 @@ "dependencies": { "axios": { "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "requires": { "follow-redirects": "^1.14.0" } diff --git a/package.json b/package.json index 10a968911..235517956 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "stream-browserify": "^3.0.0", "stream-http": "^3.2.0", "tslib": "^2.3.0", - "ununifi-client": "^3.2.1-rc1", + "ununifi-client": "^3.2.1", "zone.js": "~0.11.4" }, "devDependencies": { From 1d325d6d5fbc4e28f11d337ca29dd25cfea7af59 Mon Sep 17 00:00:00 2001 From: Senna46 <29295263+Senna46@users.noreply.github.com> Date: Wed, 16 Aug 2023 20:55:31 +0900 Subject: [PATCH 09/17] feat: create display-symbol --- .../yieldaggregator/vaults/create/create.component.ts | 10 +++++++--- .../vaults/create/create.component.html | 2 +- .../yieldaggregator/vaults/create/create.component.ts | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/projects/portal/src/app/pages/yieldaggregator/vaults/create/create.component.ts b/projects/portal/src/app/pages/yieldaggregator/vaults/create/create.component.ts index 6d5b8ca18..d08d31413 100644 --- a/projects/portal/src/app/pages/yieldaggregator/vaults/create/create.component.ts +++ b/projects/portal/src/app/pages/yieldaggregator/vaults/create/create.component.ts @@ -20,7 +20,7 @@ import { StrategyAll200ResponseStrategiesInner } from 'ununifi-client/esm/openap export class CreateComponent implements OnInit { address$: Observable; denom$: Observable; - availableSymbols$: Observable; + availableSymbols$: Observable<({ symbol: string; display: string } | undefined)[]>; selectedSymbol$: Observable; strategies$: Observable; symbolBalancesMap$: Observable<{ [symbol: string]: number }>; @@ -56,15 +56,19 @@ export class CreateComponent implements OnInit { .map((strategy) => { const denomMetadata = denomMetadataMap[strategy.denom || '']; if (denomMetadata) { - return denomMetadata.symbol; + return { + symbol: denomMetadata.symbol!, + display: denomMetadata.display!, + }; } else { return undefined; } }) - .filter((symbol): symbol is string => typeof symbol == 'string'); + .filter((symbol) => symbol !== undefined); return [...new Set(symbols)]; }), ); + this.availableSymbols$.subscribe((symbols) => console.log(symbols)); this.selectedSymbol$ = combineLatest([this.denom$, denomMetadataMap$]).pipe( map(([denom, denomMetadataMap]) => { diff --git a/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.html b/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.html index 04fc6cde6..f968337bb 100644 --- a/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.html +++ b/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.html @@ -84,7 +84,7 @@

What is Vault Name?

> - +
diff --git a/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.ts b/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.ts index 485eb1883..22e71cc38 100644 --- a/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.ts +++ b/projects/portal/src/app/views/yieldaggregator/vaults/create/create.component.ts @@ -14,7 +14,7 @@ export class CreateComponent implements OnInit { @Input() denom?: string | null; @Input() - availableSymbols?: string[] | null; + availableSymbols?: ({ symbol: string; display: string } | undefined)[] | null; @Input() selectedSymbol?: string | null; @Input() From ce6d9b9434721d65a617cadc4399713caa8cee92 Mon Sep 17 00:00:00 2001 From: Senna46 <29295263+Senna46@users.noreply.github.com> Date: Wed, 16 Aug 2023 23:32:40 +0900 Subject: [PATCH 10/17] feat: symbolDisplayBalanceMap for iya denom --- .../app/models/cosmos/bank.query.service.ts | 30 +++++++++++++++++++ .../app/pages/balance/balance.component.ts | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/projects/portal/src/app/models/cosmos/bank.query.service.ts b/projects/portal/src/app/models/cosmos/bank.query.service.ts index 668e57be7..654967d24 100644 --- a/projects/portal/src/app/models/cosmos/bank.query.service.ts +++ b/projects/portal/src/app/models/cosmos/bank.query.service.ts @@ -99,6 +99,36 @@ export class BankQueryService { ); } + getSymbolDisplayBalanceMap$( + address: string, + denoms?: string[], + ): Observable<{ + [symbol: string]: number; + }> { + return zip(this.getBalance$(address, denoms), this.getDenomMetadataMap$(denoms)).pipe( + mergeMap(async ([balance, metadataMap]) => { + const map: { [symbol: string]: number } = {}; + await Promise.all( + balance.map(async (b) => { + if (b.denom && b.amount) { + const metadata = metadataMap[b.denom]; + if (!metadata) { + return; + } + const denomExponent = getDenomExponent(b.denom); + const amount = new Decimal(b.amount); + map[metadata.display!] = Number( + amount.dividedBy(new Decimal(10 ** denomExponent)).toFixed(6), + ); + } + }), + ); + + return map; + }), + ); + } + getSymbolImageMap(symbols?: string[]): { [symbol: string]: string; } { diff --git a/projects/portal/src/app/pages/balance/balance.component.ts b/projects/portal/src/app/pages/balance/balance.component.ts index b03397f70..e5d1532ea 100644 --- a/projects/portal/src/app/pages/balance/balance.component.ts +++ b/projects/portal/src/app/pages/balance/balance.component.ts @@ -68,7 +68,7 @@ export class BalanceComponent implements OnInit { ); this.symbolImageMap = this.bankQuery.getSymbolImageMap(); this.symbolBalancesMap$ = address$.pipe( - mergeMap((address) => this.bankQuery.getSymbolBalanceMap$(address!)), + mergeMap((address) => this.bankQuery.getSymbolDisplayBalanceMap$(address!)), ); const denomMetadataMap$ = this.bankQuery.getDenomMetadataMap$(); const rewards$ = cosmosWallet$.pipe( From 193a939cbe5fc9a8841e4f3c78af578ce1b4d6d4 Mon Sep 17 00:00:00 2001 From: KIMURA Yu <33382781+KimuraYu45z@users.noreply.github.com> Date: Wed, 16 Aug 2023 23:12:59 +0800 Subject: [PATCH 11/17] feat: send tokens ui --- .../views/balance/send/send.component.html | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/projects/portal/src/app/views/balance/send/send.component.html b/projects/portal/src/app/views/balance/send/send.component.html index 9ee4f2744..757b5187e 100644 --- a/projects/portal/src/app/views/balance/send/send.component.html +++ b/projects/portal/src/app/views/balance/send/send.component.html @@ -41,12 +41,15 @@

Send Tokens

-

pattern="^[0-9]*\.?[0-9]{0,6}$" [(ngModel)]="token.amount" name="amount{{ i }}" - class="input input-bordered w-full" + class="join-item input input-bordered w-full" [class]="{ 'input-error': tokenNgModelRef.errors && tokenNgModelRef.touched }" /> - {{ token.symbol }} - +
- + -

- ${{ totalBondedAmount?.usdAmount | number }} + ${{ totalBondedAmount?.usdAmount | currency }}
@@ -125,7 +125,7 @@

{{ totalUnbondingAmount?.symbolAmount }} {{ displaySymbol }}

- ${{ totalUnbondingAmount?.usdAmount | number }} + ${{ totalUnbondingAmount?.usdAmount | currency }}
@@ -134,7 +134,7 @@

{{ totalWithdrawalBalance?.symbolAmount }} {{ displaySymbol }}

- ${{ totalWithdrawalBalance?.usdAmount | number }} + ${{ totalWithdrawalBalance?.usdAmount | currency }}