diff --git a/src/app/_models/token.ts b/src/app/_models/token.ts index 12de380..e3d7136 100644 --- a/src/app/_models/token.ts +++ b/src/app/_models/token.ts @@ -4,7 +4,7 @@ interface Token { address: string; supply: string; decimals: string; - reserves: { + reserves?: { '0xa686005CE37Dce7738436256982C3903f2E4ea8E'?: { weight: string; balance: string; diff --git a/src/app/_services/token.service.ts b/src/app/_services/token.service.ts index 18d93e9..382507b 100644 --- a/src/app/_services/token.service.ts +++ b/src/app/_services/token.service.ts @@ -28,14 +28,15 @@ export class TokenService { async getTokens(): Promise> { const count: number = await this.tokenRegistry.totalTokens(); - let tokens: Array = []; + const tokens: Array = []; for (let i = 0; i < count; i++) { - const tokenContract = await this.registry.addToken(await this.tokenRegistry.entry(i)); - let token: any = {}; + const token: any = {}; + token.address = await this.tokenRegistry.entry(i); + const tokenContract = await this.registry.addToken(token.address); token.name = await tokenContract.methods.name().call(); token.symbol = await tokenContract.methods.symbol().call(); token.address = await this.tokenRegistry.entry(i); - token.totalSupply = await tokenContract.methods.totalSupply().call(); + token.supply = await tokenContract.methods.totalSupply().call(); token.decimals = await tokenContract.methods.decimals().call(); tokens.push(token); } diff --git a/src/app/auth/auth.module.ts b/src/app/auth/auth.module.ts index 49e9576..7c6f993 100644 --- a/src/app/auth/auth.module.ts +++ b/src/app/auth/auth.module.ts @@ -10,20 +10,20 @@ import { MatSelectModule } from '@angular/material/select'; import { MatInputModule } from '@angular/material/input'; import { MatButtonModule } from '@angular/material/button'; import { MatRippleModule } from '@angular/material/core'; -import {SharedModule} from '@app/shared/shared.module'; +import { SharedModule } from '@app/shared/shared.module'; @NgModule({ declarations: [AuthComponent, PasswordToggleDirective], - imports: [ - CommonModule, - AuthRoutingModule, - ReactiveFormsModule, - MatCardModule, - MatSelectModule, - MatInputModule, - MatButtonModule, - MatRippleModule, - SharedModule, - ], + imports: [ + CommonModule, + AuthRoutingModule, + ReactiveFormsModule, + MatCardModule, + MatSelectModule, + MatInputModule, + MatButtonModule, + MatRippleModule, + SharedModule, + ], }) export class AuthModule {} diff --git a/src/app/pages/tokens/token-details/token-details.component.html b/src/app/pages/tokens/token-details/token-details.component.html index 8f95e9d..4d90527 100644 --- a/src/app/pages/tokens/token-details/token-details.component.html +++ b/src/app/pages/tokens/token-details/token-details.component.html @@ -1,60 +1,36 @@ - -
- - - - - - -
- - -
- -
-
- - Token - -
-
- Name: {{token.name}} -
-
- Symbol: {{token.symbol}} -
-
- Address: {{token.address}} -
-
- Details: A community inclusive currency for trading among lower to middle income societies. -
-
- Supply: {{token.supply | tokenRatio}} -

-
-

Reserve

-
- Weight: {{token.reserveRatio}} -
-
- Owner: {{token.owner}} -
-
-
+
+
+ +
+ TOKEN DETAILS + +
+
+
+
+ Name: {{token?.name}} +
+
+ Symbol: {{token?.symbol}} +
+
+ Address: {{token?.address}} +
+
+ Details: A community inclusive currency for trading among lower to middle income societies. +
+
+ Supply: {{token?.supply | tokenRatio}} +

+
+

Reserve

+
+ Weight: {{token?.reserveRatio}} +
+
+ Owner: {{token?.owner}}
-
- - -
- diff --git a/src/app/pages/tokens/token-details/token-details.component.ts b/src/app/pages/tokens/token-details/token-details.component.ts index 795bf30..86cb491 100644 --- a/src/app/pages/tokens/token-details/token-details.component.ts +++ b/src/app/pages/tokens/token-details/token-details.component.ts @@ -1,8 +1,12 @@ -import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { ActivatedRoute, Params } from '@angular/router'; -import { TokenService } from '@app/_services'; -import { first } from 'rxjs/operators'; -import { Token } from '../../../_models'; +import { + ChangeDetectionStrategy, + Component, + EventEmitter, + Input, + OnInit, + Output, +} from '@angular/core'; +import { Token } from '@app/_models'; @Component({ selector: 'app-token-details', @@ -11,19 +15,16 @@ import { Token } from '../../../_models'; changeDetection: ChangeDetectionStrategy.OnPush, }) export class TokenDetailsComponent implements OnInit { - token: Token; + @Input() token: Token; - constructor(private route: ActivatedRoute, private tokenService: TokenService) {} + @Output() closeWindow: EventEmitter = new EventEmitter(); - async ngOnInit(): Promise { - await this.tokenService.init(); - this.route.paramMap.subscribe((params: Params) => { - this.tokenService - .getTokenBySymbol(params.get('id')) - .pipe(first()) - .subscribe((res) => { - this.token = res; - }); - }); + constructor() {} + + ngOnInit(): void {} + + close(): void { + this.token = null; + this.closeWindow.emit(this.token); } } diff --git a/src/app/pages/tokens/tokens.component.html b/src/app/pages/tokens/tokens.component.html index 3fc8f0e..5cf5ebe 100644 --- a/src/app/pages/tokens/tokens.component.html +++ b/src/app/pages/tokens/tokens.component.html @@ -24,6 +24,9 @@
+ + + Filter @@ -48,7 +51,7 @@ Supply - {{token.totalSupply | tokenRatio}} + {{token.supply | tokenRatio}} diff --git a/src/app/pages/tokens/tokens.component.ts b/src/app/pages/tokens/tokens.component.ts index b300c20..6a2f2a8 100644 --- a/src/app/pages/tokens/tokens.component.ts +++ b/src/app/pages/tokens/tokens.component.ts @@ -5,6 +5,7 @@ import { LoggingService, TokenService } from '@app/_services'; import { MatTableDataSource } from '@angular/material/table'; import { Router } from '@angular/router'; import { exportCsv } from '@app/_helpers'; +import { Token } from '@app/_models'; @Component({ selector: 'app-tokens', @@ -17,7 +18,8 @@ export class TokensComponent implements OnInit { columnsToDisplay: Array = ['name', 'symbol', 'address', 'supply']; @ViewChild(MatPaginator) paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; - tokens: Array; + tokens: Array; + token: Token; constructor( private tokenService: TokenService, @@ -40,8 +42,8 @@ export class TokensComponent implements OnInit { this.dataSource.filter = value.trim().toLocaleLowerCase(); } - async viewToken(token): Promise { - await this.router.navigateByUrl(`/tokens/${token.symbol}`); + viewToken(token): void { + this.token = token; } downloadCsv(): void {