Skip to content
This repository has been archived by the owner on May 24, 2021. It is now read-only.

Commit

Permalink
Add method to get token balance
Browse files Browse the repository at this point in the history
  • Loading branch information
Rowan de Haas committed Jul 9, 2019
1 parent 642f7d1 commit 4aadc1b
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 12 deletions.
19 changes: 19 additions & 0 deletions StratisCore.UI/src/app/shared/models/local-execution-result.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
export class TransferInfo {
from: string;
to: string;
value: number;
}

export class Log {
address: string;
topics: string[];
data: string;
}

export class LocalExecutionResult {
gasConsumed: number;
revert: boolean;
return: any;
internalTransfers: TransferInfo[];
logs: Log[];
}
7 changes: 7 additions & 0 deletions StratisCore.UI/src/app/shared/services/api.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import { TransactionBuilding } from '../models/transaction-building';
import { TransactionSending } from '../models/transaction-sending';
import { NodeStatus } from '../models/node-status';
import { WalletRescan } from '../models/wallet-rescan';
import { LocalExecutionResult } from '@shared/models/local-execution-result';

@Injectable({
providedIn: 'root'
Expand Down Expand Up @@ -442,6 +443,12 @@ export class ApiService {
);
}

localCall(localCall: object): Observable<LocalExecutionResult> {
return this.http.post<LocalExecutionResult>(this.stratisApiUrl + '/smartcontracts/local-call', localCall).pipe(
catchError(err => this.handleHttpError(err))
);
}

private handleHttpError(error: HttpErrorResponse, silent?: boolean) {
console.log(error);
if (error.status === 0) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
export class TokenBalanceRequest {
contractAddress: string;
senderAddress: string;
methodName = "GetBalance";
amount = 0;
gasPrice = 100;
gasLimit = 100000;
parameters = [];

constructor(tokenAddress: string, senderAddress: string) {
this.contractAddress = tokenAddress;
this.senderAddress = senderAddress;
}
}
21 changes: 9 additions & 12 deletions StratisCore.UI/src/app/wallet/tokens/services/tokens.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import { ContractTransactionItem, SmartContractsContractItem } from '../../smart
import { Result, ResultStatus } from '../models/Result';
import { SavedToken, Token } from '../models/token';
import { StorageService } from './storage.service';
import { TokenBalanceRequest } from '../models/token-balance-request';
import { map } from 'rxjs/operators';

@Injectable()
export class TokensService {
Expand Down Expand Up @@ -83,24 +85,13 @@ export class TokensService {
return this.apiService.getAccountAddresses(walletName);
}

GetContracts(walletName: string): Observable<SmartContractsContractItem[]> {
return of([
new SmartContractsContractItem('7809', 'Transfert', 'bbdbcae72f1085710', 'SdrP9wvxZmaG7t3UAjxxyB6RNT9FV1Z2Sn', 10898025),
new SmartContractsContractItem('7810', 'Transfert', 'bbdbcae72f1085710', 'SdrP9wvxZmaG7t3UAjxxyB6RNT9FV1Z2Sn', 11898025),
new SmartContractsContractItem('7811', 'Transfert', 'bbdbcae72f1085710', 'SdrP9wvxZmaG7t3UAjxxyB6RNT9FV1Z2Sn', 12898025),
new SmartContractsContractItem('7812', 'Transfert', 'bbdbcae72f1085710', 'SdrP9wvxZmaG7t3UAjxxyB6RNT9FV1Z2Sn', 13898025),
new SmartContractsContractItem('7813', 'Transfert', 'bbdbcae72f1085710', 'SdrP9wvxZmaG7t3UAjxxyB6RNT9FV1Z2Sn', 14898025),
new SmartContractsContractItem('7814', 'Transfert', 'bbdbcae72f1085710', 'SdrP9wvxZmaG7t3UAjxxyB6RNT9FV1Z2Sn', 15898025),
]);
}

GetSenderAddresses(walletName: string): Observable<string[]> {
return of([
'SarP7wvxZmaG7t1UAjaxyB6RNT9FV1Z2Sn',
'SbrP8wvxZmaG7t2UAjbxyB7RNT9FV1Z2Sn',
'ScrP9wvxZmaG7t3UAjcxyB8RNT9FV1Z2Sn'
]);
}
}

GetParameterTypes(walletName: string): Observable<string[]> {
return of([
Expand All @@ -109,4 +100,10 @@ export class TokensService {
'Type 3'
]);
}

GetTokenBalance(request: TokenBalanceRequest): Observable<number> {
return this.apiService.localCall(request).pipe(
map(localExecutionresult => localExecutionresult.return ? localExecutionresult.return : 0)
);
}
}

0 comments on commit 4aadc1b

Please sign in to comment.