Skip to content

Commit e009ae4

Browse files
committed
Add GET /tokenBurns
1 parent 8a9cc47 commit e009ae4

File tree

4 files changed

+58
-6
lines changed

4 files changed

+58
-6
lines changed

src/app.controller.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { ConfigService } from '@nestjs/config';
1515
import {SkipThrottle} from "@nestjs/throttler";
1616
import {AddCommentDto, GetCommentsDto} from "./dto/comment.dto";
1717
import {AppService} from "./app.service";
18-
import {GetTokenBalancesDto, GetTokensDto, GetTokenWinnersDto} from "./dto/token.dto";
18+
import {GetTokenBalancesDto, GetTokenBurnsDto, GetTokensDto, GetTokenWinnersDto} from "./dto/token.dto";
1919
import {GetCandlesDto, GetTradesDto} from "./dto/trade.dto";
2020
import {AddUserDto} from "./dto/user.dto";
2121
import {UserService} from "./user/user.service";
@@ -97,6 +97,11 @@ export class AppController {
9797
return this.appService.getTrades(dto)
9898
}
9999

100+
@Get('/tokenBurns')
101+
getTokenBurns(@Query() dto: GetTokenBurnsDto) {
102+
return this.appService.getTokenBurns(dto)
103+
}
104+
100105
@Post('/uploadImage')
101106
@UseGuards(AuthGuard)
102107
@ApiBearerAuth()

src/app.service.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import {Injectable, Logger} from '@nestjs/common';
22
import {DataSource, EntityManager, MoreThan} from "typeorm";
3-
import {Comment, Token, TokenBalance, TokenWinner, Trade, UserAccount} from "./entities";
3+
import {Comment, Token, TokenBalance, TokenBurn, TokenWinner, Trade, UserAccount} from "./entities";
44
import {AddCommentDto, GetCommentsDto} from "./dto/comment.dto";
5-
import {GetTokenBalancesDto, GetTokensDto, GetTokenWinnersDto} from "./dto/token.dto";
5+
import {GetTokenBalancesDto, GetTokenBurnsDto, GetTokensDto, GetTokenWinnersDto} from "./dto/token.dto";
66
import {GetCandlesDto, GetTradesDto} from "./dto/trade.dto";
77
import {UserService} from "./user/user.service";
88
import {Candle} from "./types";
@@ -96,6 +96,24 @@ export class AppService {
9696
})
9797
}
9898

99+
async getTokenBurns(dto: GetTokenBurnsDto){
100+
return await this.dataSource.manager.find(TokenBurn, {
101+
where: {
102+
token: {
103+
address: dto.tokenAddress
104+
},
105+
sender: {
106+
address: dto.userAddress
107+
}
108+
},
109+
take: dto.limit,
110+
skip: dto.offset,
111+
order: {
112+
timestamp: 'desc'
113+
}
114+
})
115+
}
116+
99117
async getCandles(dto: GetCandlesDto){
100118
const query = this.dataSource.getRepository(Trade)
101119
.createQueryBuilder('trades')

src/dto/token.dto.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,32 @@ export class GetTokenWinnersDto {
6262
@IsString()
6363
offset: number;
6464
}
65+
66+
export class GetTokenBurnsDto {
67+
@ApiProperty({ type: String, required: true })
68+
@Transform((address) => address ? address.value.trim().toLowerCase() : address)
69+
@Type(() => String)
70+
@IsString()
71+
tokenAddress: string;
72+
73+
@ApiProperty({ type: String, required: false })
74+
@Transform((address) => address ? address.value.trim().toLowerCase() : address)
75+
@Type(() => String)
76+
@IsString()
77+
@IsOptional()
78+
userAddress?: string;
79+
80+
@ApiProperty({ type: Number, required: false, default: '100' })
81+
// @Transform((limit) => limit.value.toNumber())
82+
@Type(() => String)
83+
@IsString()
84+
@IsOptional()
85+
limit: number;
86+
87+
@ApiProperty({ type: Number, required: false, default: '0' })
88+
// @Transform((offset) => offset.value.toNumber())
89+
@Type(() => String)
90+
@IsString()
91+
@IsOptional()
92+
offset: number;
93+
}

src/entities/token.burn.entity.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ export class TokenBurn {
2323
@Column({ type: 'integer' })
2424
blockNumber: number;
2525

26-
@ManyToOne(() => UserAccount)
26+
@ManyToOne(() => UserAccount, { eager: true })
2727
sender: UserAccount;
2828

29-
@ManyToOne(() => Token)
29+
@ManyToOne(() => Token, { eager: true })
3030
token: Token;
3131

32-
@ManyToOne(() => Token)
32+
@ManyToOne(() => Token, { eager: true })
3333
winnerToken: Token;
3434

3535
@ApiProperty()

0 commit comments

Comments
 (0)