Skip to content

Commit

Permalink
Merge pull request #191 from klayrHQ/development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
Theezr authored Dec 16, 2024
2 parents 9e5cf87 + d89a0f7 commit c9b9a44
Show file tree
Hide file tree
Showing 19 changed files with 109 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ CREATE TABLE "NetworkPeer" (
"chainID" TEXT NOT NULL,
"networkVersion" TEXT NOT NULL,
"nonce" TEXT NOT NULL,
"advertiseAddress" BOOLEAN NOT NULL,
"advertiseAddress" BOOLEAN,
"port" INTEGER NOT NULL,
"peerId" TEXT NOT NULL,
"height" INTEGER NOT NULL,
Expand Down
2 changes: 1 addition & 1 deletion prisma/schema/networkPeer.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ model NetworkPeer {
chainID String
networkVersion String
nonce String
advertiseAddress Boolean
advertiseAddress Boolean?
port Int
peerId String
height Int
Expand Down
4 changes: 3 additions & 1 deletion src/modules/account/dto/get-accounts.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IsNumber, IsOptional, IsString } from 'class-validator';
import { IsNumber, IsOptional, IsString, Min } from 'class-validator';
import { Transform } from 'class-transformer';
import { DEFAULT_ACCOUNTS_TO_FETCH } from 'src/config/constants';
import { AccountSortTypes } from 'src/utils/controller-helpers';
Expand Down Expand Up @@ -29,13 +29,15 @@ export class GetAccountsDto {
* Limit the number of accounts fetched.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
limit?: number = DEFAULT_ACCOUNTS_TO_FETCH;

/**
* Offset for the accounts fetched.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
offset?: number = 0;
}
4 changes: 3 additions & 1 deletion src/modules/block/dto/get-assets.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IsEnum, IsNumber, IsOptional, IsString, Matches } from 'class-validator';
import { IsEnum, IsNumber, IsOptional, IsString, Matches, Min } from 'class-validator';
import { Transform } from 'class-transformer';
import { DEFAULT_ASSETS_TO_FETCH } from 'src/config/constants';
import { SortTypes } from 'src/utils/controller-helpers';
Expand Down Expand Up @@ -51,13 +51,15 @@ export class GetAssetsDto {
* Limit the number of assets fetched.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
limit?: number = DEFAULT_ASSETS_TO_FETCH;

/**
* Offset for the assets fetched.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
offset?: number = 0;
}
4 changes: 3 additions & 1 deletion src/modules/block/dto/get-blocks.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IsEnum, IsNumber, IsOptional, IsString, Matches } from 'class-validator';
import { IsEnum, IsNumber, IsOptional, IsString, Matches, Min } from 'class-validator';
import { Transform } from 'class-transformer';
import { DEFAULT_BLOCKS_TO_FETCH } from 'src/config/constants';
import { SortTypes } from 'src/utils/controller-helpers';
Expand Down Expand Up @@ -51,13 +51,15 @@ export class GetBlocksDto {
* Limit the number of blocks fetched.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
limit?: number = DEFAULT_BLOCKS_TO_FETCH;

/**
* Offset for the blocks fetched.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
offset?: number = 0;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IsEnum, IsNumber, IsOptional, IsString, Matches } from 'class-validator';
import { IsEnum, IsNumber, IsOptional, IsString, Matches, Min } from 'class-validator';
import { Transform } from 'class-transformer';
import { BlockchainAppsMetaListTypes } from 'src/utils/controller-helpers';

Expand Down Expand Up @@ -29,6 +29,7 @@ export class GetBlockchainAppsListDto {
* Limit to apply to the query results.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
@IsOptional()
limit?: number = 10;
Expand All @@ -37,6 +38,7 @@ export class GetBlockchainAppsListDto {
* Offset to apply to the query results.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
@IsOptional()
offset?: number = 0;
Expand Down
4 changes: 3 additions & 1 deletion src/modules/blockchain/dto/get-blockchain-apps-meta.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IsBoolean, IsEnum, IsNumber, IsOptional, IsString, Matches } from 'class-validator';
import { IsBoolean, IsEnum, IsNumber, IsOptional, IsString, Matches, Min } from 'class-validator';
import { Transform } from 'class-transformer';
import { ApiPropertyOptional } from '@nestjs/swagger';
import { BlockchainAppsMetaSortTypes } from 'src/utils/controller-helpers';
Expand Down Expand Up @@ -55,6 +55,7 @@ export class GetBlockchainMetaDto {
* Limit to apply to the query results.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
@IsOptional()
limit?: number = 10;
Expand All @@ -63,6 +64,7 @@ export class GetBlockchainMetaDto {
* Offset to apply to the query results.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
@IsOptional()
offset?: number = 0;
Expand Down
4 changes: 3 additions & 1 deletion src/modules/blockchain/dto/get-blockchain-apps-tokens.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IsEnum, IsNumber, IsOptional, IsString, Matches } from 'class-validator';
import { IsEnum, IsNumber, IsOptional, IsString, Matches, Min } from 'class-validator';
import { Transform } from 'class-transformer';
import { BlockChainTokensSortTypes } from 'src/utils/controller-helpers';

Expand Down Expand Up @@ -53,6 +53,7 @@ export class GetBlockchainTokensMetaDto {
* Limit to apply to the query results.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
@IsOptional()
limit?: number = 10;
Expand All @@ -61,6 +62,7 @@ export class GetBlockchainTokensMetaDto {
* Offset to apply to the query results.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
@IsOptional()
offset?: number = 0;
Expand Down
4 changes: 3 additions & 1 deletion src/modules/event/dto/get-events.dto.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Transform } from 'class-transformer';
import { IsEnum, IsNumber, IsOptional, IsString, Matches } from 'class-validator';
import { IsEnum, IsNumber, IsOptional, IsString, Matches, Min } from 'class-validator';
import { DEFAULT_BLOCKS_TO_FETCH } from 'src/config/constants';
import { SortTypes } from 'src/utils/controller-helpers';

Expand Down Expand Up @@ -79,13 +79,15 @@ export class GetEventsDto {
* Limit the number of events fetched.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
limit?: number = DEFAULT_BLOCKS_TO_FETCH;

/**
* Offset for the events fetched.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
offset?: number = 0;
}
4 changes: 3 additions & 1 deletion src/modules/generator/dto/get-generators.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IsNumber, IsOptional, IsString } from 'class-validator';
import { IsNumber, IsOptional, IsString, Min } from 'class-validator';
import { Transform } from 'class-transformer';
import { DEFAULT_VALIDATORS_TO_FETCH } from 'src/config/constants';

Expand All @@ -14,13 +14,15 @@ export class GeneratorQueryDto {
* Limit the number of generators fetched.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
limit?: number = DEFAULT_VALIDATORS_TO_FETCH;

/**
* Offset for the generators fetched.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
offset?: number = 0;
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,20 +45,36 @@ export class CheckValidatorStatusHandler implements ICommandHandler<CheckValidat
async updateBannedValidators({ validators }: AllValidators): Promise<void> {
for (const validator of validators) {
if (validator.isBanned) {
await this.prisma.validator.update({
const data = {
isBanned: true,
status: ValidatorStatus.BANNED,
totalStake: BigInt(validator.totalStake),
selfStake: BigInt(validator.selfStake),
lastGeneratedHeight: validator.lastGeneratedHeight,
reportMisbehaviorHeights: JSON.stringify(validator.reportMisbehaviorHeights),
consecutiveMissedBlocks: validator.consecutiveMissedBlocks,
commission: validator.commission,
lastCommissionIncreaseHeight: validator.lastCommissionIncreaseHeight,
sharingCoefficients: JSON.stringify(validator.sharingCoefficients),
punishmentPeriods: JSON.stringify(validator.punishmentPeriods),
};

const account = await this.prisma.account.findUnique({
where: { address: validator.address },
});

if (!account) {
await this.prisma.account.create({
data: { address: validator.address },
});
}

await this.prisma.validator.upsert({
where: { address: validator.address },
data: {
isBanned: true,
status: ValidatorStatus.BANNED,
totalStake: BigInt(validator.totalStake),
selfStake: BigInt(validator.selfStake),
lastGeneratedHeight: validator.lastGeneratedHeight,
reportMisbehaviorHeights: JSON.stringify(validator.reportMisbehaviorHeights),
consecutiveMissedBlocks: validator.consecutiveMissedBlocks,
commission: validator.commission,
lastCommissionIncreaseHeight: validator.lastCommissionIncreaseHeight,
sharingCoefficients: JSON.stringify(validator.sharingCoefficients),
punishmentPeriods: JSON.stringify(validator.punishmentPeriods),
update: data,
create: {
address: validator.address,
...data,
},
});
}
Expand Down
4 changes: 3 additions & 1 deletion src/modules/interoperability/dto/get-apps.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IsNumber, IsOptional, IsString, Matches } from 'class-validator';
import { IsNumber, IsOptional, IsString, Matches, Min } from 'class-validator';
import { Transform } from 'class-transformer';

export class GetAppsDto {
Expand Down Expand Up @@ -42,6 +42,7 @@ export class GetAppsDto {
* Limit to apply to the query results.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
@IsOptional()
limit?: number = 10;
Expand All @@ -50,6 +51,7 @@ export class GetAppsDto {
* Offset to apply to the query results.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
@IsOptional()
offset?: number = 0;
Expand Down
4 changes: 3 additions & 1 deletion src/modules/network/dto/get-network-peers.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IsEnum, IsNumber, IsOptional, IsString } from 'class-validator';
import { IsEnum, IsNumber, IsOptional, IsString, Min } from 'class-validator';
import { Transform } from 'class-transformer';
import { NetworkPeersSortTypes } from 'src/utils/controller-helpers';

Expand Down Expand Up @@ -47,6 +47,7 @@ export class GetNetworkPeersDto {
*/
@IsNumber()
@IsOptional()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
limit?: number = 10;

Expand All @@ -55,6 +56,7 @@ export class GetNetworkPeersDto {
*/
@IsNumber()
@IsOptional()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
offset?: number = 0;
}
4 changes: 3 additions & 1 deletion src/modules/pos/dto/get-stakes.dto.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Transform } from 'class-transformer';
import { IsNumber, IsOptional, IsString } from 'class-validator';
import { IsNumber, IsOptional, IsString, Min } from 'class-validator';
import { DEFAULT_STAKES_TO_FETCH } from 'src/config/constants';

export class StakesQueryDto {
Expand Down Expand Up @@ -35,13 +35,15 @@ export class StakesQueryDto {
* Limit the number of stakes fetched.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
limit?: number = DEFAULT_STAKES_TO_FETCH;

/**
* Offset for the stakes fetched.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
offset?: number = 0;
}
4 changes: 3 additions & 1 deletion src/modules/pos/dto/get-validator.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IsEnum, IsNumber, IsOptional, IsString } from 'class-validator';
import { IsEnum, IsNumber, IsOptional, IsString, Min } from 'class-validator';
import { Transform } from 'class-transformer';
import { DEFAULT_VALIDATORS_TO_FETCH } from 'src/config/constants';
import { ValidatorSortTypes } from 'src/utils/controller-helpers';
Expand Down Expand Up @@ -36,13 +36,15 @@ export class ValidatorQueryDto {
* Limit the number of validators fetched.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
limit?: number = DEFAULT_VALIDATORS_TO_FETCH;

/**
* Offset for the validators fetched.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
offset?: number = 0;

Expand Down
4 changes: 3 additions & 1 deletion src/modules/token/dto/get-token-available-ids.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IsEnum, IsNumber, IsString } from 'class-validator';
import { IsEnum, IsNumber, IsString, Min } from 'class-validator';
import { Transform } from 'class-transformer';
import { AccountSortTypes, AvailableIdsSortTypes } from 'src/utils/controller-helpers';

Expand All @@ -17,13 +17,15 @@ export class GetTokenAvailableIdsDto {
* Limit the number of available ids fetched.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
limit?: number = 10;

/**
* Offset for the available ids fetched.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
offset?: number = 0;
}
4 changes: 3 additions & 1 deletion src/modules/token/dto/get-token-top-balance.dto.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Transform } from 'class-transformer';
import { IsEnum, IsNotEmpty, IsNumber, IsString } from 'class-validator';
import { IsEnum, IsNotEmpty, IsNumber, IsString, Min } from 'class-validator';
import { DEFAULT_TOP_BALANCES_TO_FETCH } from 'src/config/constants';
import { TopBalanceSortTypes } from 'src/utils/controller-helpers';

Expand All @@ -15,13 +15,15 @@ export class GetTokenTopBalanceDto {
* Limit to apply to the query results.
*/
@IsNumber()
@Min(1, { message: 'limit must be a positive number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
limit?: number = DEFAULT_TOP_BALANCES_TO_FETCH;

/**
* Offset to apply to the query results.
*/
@IsNumber()
@Min(0, { message: 'offset must be a non-negative number' })
@Transform(({ value }) => Number(value), { toClassOnly: true })
offset?: number = 0;

Expand Down
Loading

0 comments on commit c9b9a44

Please sign in to comment.