Skip to content

Commit

Permalink
Merge pull request #1499 from multiversx/SERVICES-2630-update-transac…
Browse files Browse the repository at this point in the history
…tion-generation-for-simple-lock-energy-sc

[SERVICES-2630] Update transaction generation for Simple Lock Energy SC
  • Loading branch information
mad2sm0key authored Oct 7, 2024
2 parents dfb0d3c + 4999221 commit afbcaad
Show file tree
Hide file tree
Showing 4 changed files with 400 additions and 265 deletions.
84 changes: 2 additions & 82 deletions src/modules/energy/energy.resolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,8 @@ export class EnergyResolver {

@UseGuards(JwtOrNativeAdminGuard)
@Query(() => TransactionModel)
async updateLockOptions(
async addLockOptions(
@Args('lockOptions', { type: () => [Int] }) lockOptions: number[],
@Args('remove', { nullable: true }) remove: boolean,
@AuthUser() user: UserAuthResult,
): Promise<TransactionModel> {
const owner = await this.energyAbi.ownerAddress();
Expand All @@ -185,86 +184,7 @@ export class EnergyResolver {
});
}

return this.energyTransaction.updateLockOptions(lockOptions, remove);
}

@UseGuards(JwtOrNativeAdminGuard)
@Query(() => TransactionModel)
async setPenaltyPercentage(
@Args('minPenaltyPercentage') minPenaltyPercentage: number,
@Args('maxPenaltyPercentage') maxPenaltyPercentage: number,
@AuthUser() user: UserAuthResult,
): Promise<TransactionModel> {
const owner = await this.energyAbi.ownerAddress();
if (user.address !== owner) {
throw new GraphQLError('Invalid owner address', {
extensions: {
code: ApolloServerErrorCode.INTERNAL_SERVER_ERROR,
},
});
}

return this.energyTransaction.setPenaltyPercentage(
minPenaltyPercentage,
maxPenaltyPercentage,
);
}

@UseGuards(JwtOrNativeAdminGuard)
@Query(() => TransactionModel)
async setFeesBurnPercentage(
@Args('percentage') percentage: number,
@AuthUser() user: UserAuthResult,
): Promise<TransactionModel> {
const owner = await this.energyAbi.ownerAddress();
if (user.address !== owner) {
throw new GraphQLError('Invalid owner address', {
extensions: {
code: ApolloServerErrorCode.INTERNAL_SERVER_ERROR,
},
});
}

return this.energyTransaction.setFeesBurnPercentage(percentage);
}

@UseGuards(JwtOrNativeAdminGuard)
@Query(() => TransactionModel)
async setFeesCollectorAddress(
@Args('collectorAddress') collectorAddress: string,
@AuthUser() user: UserAuthResult,
): Promise<TransactionModel> {
const owner = await this.energyAbi.ownerAddress();
if (user.address !== owner) {
throw new GraphQLError('Invalid owner address', {
extensions: {
code: ApolloServerErrorCode.INTERNAL_SERVER_ERROR,
},
});
}

return this.energyTransaction.setFeesCollectorAddress(collectorAddress);
}

@UseGuards(JwtOrNativeAdminGuard)
@Query(() => TransactionModel)
async setOldLockedAssetFactoryAddress(
@Args('oldLockedAssetFactoryAddress')
oldLockedAssetFactoryAddress: string,
@AuthUser() user: UserAuthResult,
): Promise<TransactionModel> {
const owner = await this.energyAbi.ownerAddress();
if (user.address !== owner) {
throw new GraphQLError('Invalid owner address', {
extensions: {
code: ApolloServerErrorCode.INTERNAL_SERVER_ERROR,
},
});
}

return this.energyTransaction.setOldLockedAssetFactoryAddress(
oldLockedAssetFactoryAddress,
);
return this.energyTransaction.addLockOptions(user.address, lockOptions);
}

// Get energy amount for authenticated user
Expand Down
Loading

0 comments on commit afbcaad

Please sign in to comment.