Releases: TokenySolutions/T-REX
Releases · TokenySolutions/T-REX
4.2.0-beta2
Merge pull request #234 from TokenySolutions/BT-385-automated-lockup BT-385 Add InitialLockupPeriod module
4.1.6
Added
- Added removeTimeTransferLimit function to TimeTransferLimitsModule, allows removing time transfer limits for the given limitTime.
- Added batchSetTimeTransferLimit and batchRemoveTimeTransferLimit functions to TimeTransferLimitsModule, allows setting and removing multiple time transfer limits at once.
- Introduced Token Listing Restrictions Module: Investors can determine which tokens they can receive by whitelisting or blacklisting them
Token issuers can choose the listing type they prefer for their tokens:
WHITELISTING: investors must whitelist/allow the token address in order to receive it.
BLACKLISTING: investors can receive the token by default. If they do not want to receive it, they need to blacklist/disallow it. - Added commercial licensing to all modules of compliance as they are part of Tokeny's IP.
Update
- Updated the moduleCheck function of TransferRestrictModule to directly allow transfers when the _from or _to address is the null address, enabling mint and burn operations without additional restrictions.
4.1.5
patch compliance module maxBalanceModule
4.1.5-beta1
Update package version for beta
4.1.4
[4.1.4]
Added
- Introduced AbstractModuleUpgradeable: Enables compliance modules to be compatible with ERC-1967 and ERC-1822 standards.
- Introduced ModuleProxy: ERC-1967 compliant proxy contract for Upgradeable compliance modules.
Update
- Upgraded all compliance modules to inherit from
AbstractModuleUpgradeable
and made them Upgradeable.
4.2.0-beta1
Update version as 4.2.0-beta1
4.1.3
Update
- AbstractProxy: updated the storage slot for
TREXImplementationAuthority
from
0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7
to
0x821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc
to avoid issues with blockchain explorers
confusing the proxy pattern of T-REX for an ERC-1822 proxy (old storage slot was the slot used by ERC-1822) which
caused errors in displaying the right ABIs for proxies using this implementation.
4.1.2
4.1.2-beta1
Update changelog
4.1.1 - TREX Gateway and new modules, DvA
[4.1.1]
Breaking Changes
- TREXFactory Constructor: Now requires the address of the Identity Factory.
- Reason: The Identity Factory is used to deploy ONCHAINIDs for tokens.
Added
-
Compliance Modules:
- Introduced
Supply Limit Module
: Restricts minting tokens beyond a specified limit. - Introduced
Time Transfers Limits
: Prevents holders from transferring tokens beyond a set limit within a specified timeframe. - Introduced
Max Balance Module
: Ensures an individual holder doesn't exceed a certain percentage of the total supply. - Added two exchange-specific modules:
Time Exchange Limits
: Limits token transfers on trusted exchanges within a set timeframe.Monthly Exchange Limits
: Restricts the amount of tokens that can be transferred on trusted exchanges each month.
- Introduced
Transfer Fees
: Collects fees from transfers (issuers determine fee rates).
- Introduced
-
IModule Enhancement:
- Added a new function:
function name() external pure returns (string memory _name);
. This mandates all compliance modules to declare a constant variable, e.g.,function name() public pure returns (string memory _name) { return "CountryRestrictModule"; }
. - New function
isPlugAndPlay
: Added to theIModule
interface. This function,function isPlugAndPlay() external pure returns (bool)
, indicates whether a compliance module can be bound without presetting. It is now mandatory for all compliance modules to declare this function. - New function
canComplianceBind
: Also added to theIModule
interface. Compliance modules must implementfunction canComplianceBind(address _compliance) external view returns (bool)
, which checks if presetting is required before binding a compliance module.
- Added a new function:
-
TREXFactory Enhancements:
- New function
setIdFactory
: Sets the Identity Factory responsible for deploying token ONCHAINIDs. - New function
getIdFactory
: Retrieves the address of the associated Identity Factory.
- New function
-
TREXGateway Contract:
- Deployed as a central interface for the TREX ecosystem, facilitating various crucial operations:
- Factory Management: Manages the Factory contract address, enabling updates and ownership transfers.
- Public Deployment Control: Toggles the ability for public entities to deploy TREX contracts, enhancing security and flexibility.
- Fee Management: Sets and adjusts deployment fee details, including amount, token type, and collector address, and enables or disables fee requirements.
- Deployer Management: Adds or removes approved deployers and applies fee discounts, including batch operations for efficiency. Ensures streamlined deployment processes for TREX contracts.
- Suite Deployment: Directly deploys TREX suites of contracts using provided token and claim details, with support for batch deployments. Incorporates fee collection and deployment status checks for each deployment, emphasizing security and compliance.
- Status and Fee Queries: Provides functions to retrieve current public deployment status, Factory contract address, deployment fee details, and deployment fee status.
- Fee Calculation: Dynamically calculates deployment fees for deployers, considering applicable discounts.
- Deployed as a central interface for the TREX ecosystem, facilitating various crucial operations:
-
DvATransferManager Contract:
- Introduced the
DvATransferManager
contract to streamline the process of internal fund transfers needing multi-party intermediate approvals.- Token owners define the transfer authorization criteria, including recipient approval, agent approval, and potential additional approvers.
- Investors submit transfer requests.
- Approvers are empowered to either sanction or reject these requests.
- Transfers are executed only upon receiving unanimous approval from all designated approvers.
- Introduced the
Updates
Smart Contract Enhancements
-
TREXFactory:
- Modified the
deployTREXSuite
function to now auto-deploy a Token ONCHAINID if it's not already available (i.e., if the onchainid address in _tokenDetails is the zero address).
- Modified the
-
ModularCompliance:
- Updated the
addModule
function to invoke the newisPlugAndPlay
andcanComplianceBind
functions, ensuring compatibility checks before binding any compliance module.
- Updated the
Code Quality Improvements
- Enhanced the GitHub Actions workflow by adding TypeScript linting (
lint:ts
) for test files, ensuring higher code quality and adherence to coding standards. - Executed a comprehensive linting pass on all test files, addressing and resolving any linting issues. This ensures a consistent code style and improved readability across the test suite.
- Updated the
push_checking.yml
GitHub Actions workflow to include automatic TypeScript linting checks on pull requests. This addition enforces coding standards and helps maintain high-quality code submissions from all contributors.