T-REX is a suite of smart contracts implementing the EIP 3643 and developed by Tokeny to manage and transfer financial assets on EVM blockchains
GPL-3.0 License
patch compliance module maxBalanceModule
Published by aliarbak 7 months ago
Published by Joachim-Lebrun 7 months ago
AbstractModuleUpgradeable
and made them Upgradeable.Published by aliarbak 8 months ago
Published by Joachim-Lebrun 8 months ago
TREXImplementationAuthority
from0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7
to0x821f3e4d3d679f19eacc940c87acf846ea6eae24a63058ea750304437a62aafc
to avoid issues with blockchain explorersPublished by aliarbak 10 months ago
_compliance
parameter from setSupplyLimit
function of the SupplyLimitModule
Published by aliarbak 10 months ago
Published by Nakasar 12 months ago
Compliance Modules:
Supply Limit Module
: Restricts minting tokens beyond a specified limit.Time Transfers Limits
: Prevents holders from transferring tokens beyond a set limit within a specified timeframe.Max Balance Module
: Ensures an individual holder doesn't exceed a certain percentage of the total supply.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.Transfer Fees
: Collects fees from transfers (issuers determine fee rates).IModule Enhancement:
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"; }
.isPlugAndPlay
: Added to the IModule
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.canComplianceBind
: Also added to the IModule
interface. Compliance modules must implement function canComplianceBind(address _compliance) external view returns (bool)
, which checks if presetting is required before binding a compliance module.TREXFactory Enhancements:
setIdFactory
: Sets the Identity Factory responsible for deploying token ONCHAINIDs.getIdFactory
: Retrieves the address of the associated Identity Factory.TREXGateway Contract:
DvATransferManager Contract:
DvATransferManager
contract to streamline the process of internal fund transfers needing multi-party intermediate approvals.
TREXFactory:
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).ModularCompliance:
addModule
function to invoke the new isPlugAndPlay
and canComplianceBind
functions, ensuring compatibility checks before binding any compliance module.lint:ts
) for test files, ensuring higher code quality and adherence to coding standards.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.Published by Joachim-Lebrun 12 months ago
Compliance Modules:
Supply Limit Module
: Restricts minting tokens beyond a specified limit.Time Transfers Limits
: Prevents holders from transferring tokens beyond a set limit within a specified timeframe.Max Balance Module
: Ensures an individual holder doesn't exceed a certain percentage of the total supply.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.Transfer Fees
: Collects fees from transfers (issuers determine fee rates).IModule Enhancement:
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"; }
.isPlugAndPlay
: Added to the IModule
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.canComplianceBind
: Also added to the IModule
interface. Compliance modules must implement function canComplianceBind(address _compliance) external view returns (bool)
, which checks if presetting is required before binding a compliance module.TREXFactory Enhancements:
setIdFactory
: Sets the Identity Factory responsible for deploying token ONCHAINIDs.getIdFactory
: Retrieves the address of the associated Identity Factory.TREXGateway Contract:
DvATransferManager Contract:
DvATransferManager
contract to streamline the process of internal fund transfers needing multi-party intermediate approvals.
TREXFactory:
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).ModularCompliance:
addModule
function to invoke the new isPlugAndPlay
and canComplianceBind
functions, ensuring compatibility checks before binding any compliance module.lint:ts
) for test files, ensuring higher code quality and adherence to coding standards.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.Published by aliarbak 12 months ago
Published by aliarbak 12 months ago
Published by aliarbak 12 months ago
Published by aliarbak 12 months ago
Published by aliarbak 12 months ago
Published by aliarbak 12 months ago
Published by aliarbak 12 months ago
Supply Limit Module
that prevents minting more tokens that the specified limit.Time Transfers limits
that prevents holders from transfering more token than a specified limit in a given time frame.Max Balance Module
that prevents an individual holder to own more than a given percentage of the supply.Time Exchange limits
and Monthly Exchange limits
that limit exchanges transfers. These are used to authorized specific trusted exchanges to hold tokens but limited to a certain amount transfered for a given time frame.function name() external pure returns (string memory _name);
to IModule
. Compliance modules now require afunction name() public pure returns (string memory _name) { return "CountryRestrictModule"; }
Published by Joachim-Lebrun over 1 year ago
All tests were rewritten using hardhat instead of truffle for optimisation and improvements (tests now properly check revert messages and emitted events).
onlyComplianceBound
.4.0.1
coverage
folder and coverage.json
are now ignored.Published by Nakasar over 1 year ago
All tests were rewritten using hardhat instead of truffle for optimisation and improvements (tests now properly check revert messages and emitted events).
onlyComplianceBound
.4.0.1
coverage
folder and coverage.json
are now ignored.Published by Nakasar over 1 year ago
Test and package with hardhat.
Published by Nakasar over 1 year ago
Test and package with hardhat.