Glory Finance security record

As of 3 Nov 2026, Glory Finance has 1 audit report on Trustblock, by CertiK, dated 23 Feb 2023. That report lists no open critical findings.

Critical findings
No open critical findings
In that report, 3 critical findings were reported. Each is marked fixed by the firm that reported it. See the findings
Open the latest report
Your label, live
Get the label for your site

Record last updated . It holds audits, findings and contracts up to Nov 2026, and incidents up to Oct 2026. Trustblock does not review code.

Audits1

Newest first

AuditSecurity firmDateScopeCritical findingsReport
Glory FinanceSecurity firm: CertiKDate: Scope: Files named in the report3 critical findings, fixedOpen · skynet.certik.com

Findings21

Statuses are the security firm’s own, from each report.

SeverityOpenAcknowledgedFixed
Critical003
High011
Medium000
Low2014
CriticalNo Roles Can Be GrantedGlory Finance · CertiK · 23 Feb 2023Fixed

The function `grantRole()` can only be called successfully by the `DEFAULT_ADMIN_ROLE` which has not been set. In addition, the `OPERATOR_TEAM` role will not be able to be assigned.

Open the report
CriticalOverridden `totalSupply()` Makes It Impossible ToGlory Finance · CertiK · 23 Feb 2023Fixed

The `totalSupply()` function should represent the amount of tokens in circulation, so it should increase by any amount that is minted and decreased by any amount that is burned. However, this is overridden to always return `MAX_SUPPLY`. This will make it impossible to call `mintPublic()` as the check that `totalSupply() + amount <= MAX_SUPPLY_PUBLIC` will always fail.

Open the report
CriticalUsers Cannot Transfer TokensGlory Finance · CertiK · 23 Feb 2023Fixed

The functions `transfer()` and `transferFrom()` both call the internal `_transfer()` function which is overridden in the `GloryToken` contract. However, if the input `sender` and `receiver` are not stored in the `dexes` mapping the function calls `_transfer(sender, receiver, amount)`. This will cause a revert as this must call the `_transfer()` function from the inherited `ERC20PresetMinterPauser` contract, which must be done by using the `super` keyword as the function was overridden.

Open the report
HighPossible For Team To Be Unable To MintGlory Finance · CertiK · 23 Feb 2023Fixed

It is possible after the `TIME_MINT_TO_TEAM`, that the team will be unable to mint their allotted tokens.

Open the report
Low`TIME_MINT_TEAM` CommentGlory Finance · CertiK · 23 Feb 2023Fixed

The `TIME_MINT_TO_TEAM` is the UNIX timestamp when the team is allowed to mint themselves `10%` of the total supply.

Open the report
LowAmbiguous Error MessagesGlory Finance · CertiK · 23 Feb 2023Fixed

The error messages when checking if the `_msg.Sender()` has the `OPERATOR_ROLE` or `OPERATOR_TEAM` role are the same. This can cause confusion as it is not clear what role the `_msgSender()` did not have to cause the revert.

Open the report
LowCannot Unset A Dex AddressGlory Finance · CertiK · 23 Feb 2023Fixed

It is possible that an address may accidentally be set as a DEX address using `addDexAddress()`, when the address is not a DEX causing fees to be taken when they should not be.

Open the report
LowCheck Can Be Made A ModifierGlory Finance · CertiK · 23 Feb 2023Fixed

Multiple functions use the same check that the `_msgSender()` has the `OPERATOR_ROLE`. This check can be made a modifier to simplify the code. Similarly, the check that the `_msgSender()` is the `OPERATOR_TEAM` can be made a modifier for consistency.

Open the report
LowDeprecated ContractGlory Finance · CertiK · 23 Feb 2023Fixed

The contract `GloryToken` inherits `ERC20PresetMinterPauser` which is marked as deprecated. Using deprecated contracts can cause issues in future versions as they may become incompatible with the rest of the codebase.

Open the report
LowImproper Naming ConventionGlory Finance · CertiK · 23 Feb 2023Fixed

The naming of `_mintPublic()` does not conform to the [Solidity style guide](https://solidity.readthedocs.io/en/v0.7.3/style-guide.html#naming-conventions) with regards to its naming convention. Functions with names starting with `_` should be declared as `private` or `internal`.

Open the report
Show 8 more
LowMissing Emit EventsGlory Finance · CertiK · 23 Feb 2023Fixed

Privileged functions that update state variables should emit relevant events as notifications.

Open the report
LowMissing Zero Address ValidationGlory Finance · CertiK · 23 Feb 2023Fixed

The cited address input is missing a check that it is not `address(0)`. If `receiveFeeAddress` is set as `address(0)`, then users will not be able to complete transfers to or from `dex` addresses.

Open the report
LowRedundant Roles And Redundant ChecksGlory Finance · CertiK · 23 Feb 2023Fixed

In order to call `mint()` the `_msgSender()` must have both the `OPERATOR_ROLE` and the `MINTER_ROLE`. The `OPERATOR_ROLE` is redundant as the `MINTER_ROLE` from the `ERC20PresetMinterPauserUpgradeable` contract already restricts access to the `mint()` function. --- In order to call `mintToTeam()` the `_msgSender()` must have the `OPERATOR_TEAM`, `OPERATOR_ROLE`, and the `MINTER_ROLE`. It is redundant to require three roles in order to call the function. --- Both the function `mintToTeam()` and `_mintPublic()` call the function `mint()`. The `mint()` function checks that the `_msgSender()` has the `OPERATOR_ROLE`, which is redundant considering `mintToTeam()` already checks they have the `OPERATOR_TEAM` role and that `_mintPublic()` checks they have the `OPERATOR_ROLE` as well.

Open the report
LowThe Keyword `super` Is UnnecessaryGlory Finance · CertiK · 23 Feb 2023Fixed

The function `totalSupply()` is inherited and can be called directly without the `super` keyword. Similarly, the function `balanceOf()` is inherited and can be called directly without the `super` keyword.

Open the report
LowToo Many DigitsGlory Finance · CertiK · 23 Feb 2023Fixed

Literals with many digits are difficult to read and review.

Open the report
LowUnlocked Compiler VersionGlory Finance · CertiK · 23 Feb 2023Fixed

The contracts cited have an unlocked compiler version. An unlocked compiler version in the source code of the contract permits the user to compile it at or above a particular version. This, in turn, leads to differences in the generated bytecode between compilations due to differing compiler version numbers. This can lead to ambiguity when debugging, as compiler specific bugs may occur in the codebase that would be hard to identify over a span of multiple compiler versions rather than a specific one.

Open the report
LowUnnecessary Use of SafeMathGlory Finance · CertiK · 23 Feb 2023Fixed

The `SafeMath` library is used unnecessarily. With Solidity compiler versions 0.8.0 or newer, arithmetic operations will automatically revert in case of integer overflow or underflow.

Open the report
LowWrong InequalityGlory Finance · CertiK · 23 Feb 2023Fixed

When `mint()` is called, it is checked that the total supply plus the minted amount is strictly less than the `MAX_SUPPLY`. With the current value of `MAX_SUPPLY = 150_000_000 * 10 ** 18` this means that at most `149_999_999.999999999999999999` `GLR` can be minted. --- Similarly if `_mintPublic()` is called, it is checked that the total supply plus the minted amount is strictly less that the `MAX_SUPPLY_PUBLIC`. With the current value of `MAX_SUPPLY_PUBLIC = 135000000 * 10 ** 18` this means at most `134_999_999.999999999999999999` `GLR` can be minted.

Open the report

Contracts

No deployed address is recorded for these audits.

The reports name a repository or files. Open a report to see its scope.

The repositories and files the reports name

Show this on your site

Is this your project? Show this record on your own website. The label states what the record holds, links to this page and updates by itself. It is free and needs no sign-in.

Content

Facts

Automatic: the three strongest facts of this project’s own record (its last audit and two more), highlighted. They update with the record. Picking a fact turns Automatic off.

Fixed as
Language

Style

Layout
Theme
Accent
Corners

Format

Size
Date
Embed as
HTML
<head>
<script src="https://widget.trustblock.run/project-widget.min.js" defer></script>
</head>
<body>
<div
data-tb-project-widget
data-tb-project-slug="glory-finance"
></div>
</body>

Paste the code where the label should appear. It uses no API credit and updates by itself.

Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.

Tell us