Releases: CMTA/RuleEngine
v3.0.0-rc0
-
Rule contracts, requires to perform compliance check, have now their own dedicated GitHub repository. It means that these contract will be developed and audited separately from the RuleEngine. This provides more flexibility and makes it easier to manage audits.
-
There is now only one type of rule (read-write rules). Before that:
- First RuleEngine version (audited) had only one type of rule, read-only (whitelist, blacklist)
- A second RuleEngine version (not audited) had two types of rules: operation (read-write) and validation (read-only). A read-write rule is typically a ConditionalTransfer check which require each transfer must be pre-approved.
-
Implement ERC-3643 compliance interface, which means that the RuleEngine can be also used with an ERC-3643 token to perform supplementary compliance check on transfer.
-
Technical:
- Use EnumerableSet from OpenZeppelin to store rules, which reduce the whole contract code size.
- Rename several abstract contract
RuleEngineOperation-> RulesManagementModule
MetaTxModuleStandalone -> ERC2771ModuleStandalone
v2.1.0
-
Update RuleEngine to CMTAT v3.0.0-rc5
-
Update OpenZeppelin to v.5.3.0
-
Add "partial" support of spender check introduced with CMTAT v3.0.0-rc5
-
Change several functions
--- operateOnTransfer -> transferred(...)
----Add functions detectTransferRestrictionFrom and canTransferFrom
v2.0.5
Fix a bug present in the Conditional Transfer rule with the option automatic approval and improve the corresponding tests.
git clone https://github.com/CMTA/RuleEngine
git checkout v2.0.5
forge install
forge build
cd lib/CMTAT
npm install
v2.0.4
- Fix a bug present in the Conditional Transfer rule and the corresponding test.
- Config file:
Set Solidity version to 0.8.27 in config file
Set EVM version to Cancun - Add events for the following rules : whitelist/blacklist and sanctionList rules
- Some improvements in testing
Integration test with CMTAT: set the CMTAT version to v2.5.1 - Access control: The default admin has by default all the roles for the RuleEngine and the different rules
git clone https://github.com/CMTA/RuleEngine
git checkout v2.0.4
forge install
forge build
cd lib/CMTAT
npm install
v2.0.3
- Small optimization in WhitelistWrapper; add a break in a loop
- Set Solidity version to 0.8.26 in config file
- Add constant VERSION
The release does not include the .git folder, which does not allow installing dependencies.
The easiest solution is to clone the project and perform a git checkout on the version tag
git clone https://github.com/CMTA/RuleEngine
git checkout v2.0.3
forge install
forge build
v2.0.2
- Create abstract contract ruleWhitelistCommon to contain code shared between ruleWhitelist & ruleWhitelistWrapper
- Split ADDRESS_LIST_ROLE in two distinct roles : ADDRESS_LIST_ADD_ROLE && ADDRESS_LIST_REMOVE_ROLE
The release does not include the .git folder, which does not allow installing dependencies.
The easiest solution is to clone the project and perform a git checkout on the version tag
git clone https://github.com/CMTA/RuleEngine
git checkout v2.0.2
forge install
forge build
v2.0.1
Add a new rule WhitelistWrapper
This rule can be used to restrict transfers from/to only addresses inside a group of whitelist rules managed by different operators.
`The release does not include the .git folder, which does not allow installing dependencies.
The easiest solution is to clone the project and perform a git checkout on the version tag
git clone https://github.com/CMTA/RuleEngine
git checkout v2.0.1
forge install
forge build
v2.0.0
- Implement the new architecture for the RuleEngine, with ValidationRule and OperationRule
- Add the rule ConditionalTransfer as an Operation rule
- Add the rule Blacklist as a Validation rule
- Whitelist and blacklist rules share a part of their code.
- Upgrade the library CMTAT to the version v2.4.0
- Fix a minor bug when rules are deleted with clearRules
The release does not include the .git folder, which does not allow installing dependencies.
The easiest solution is to clone the project and perform a git checkout on the version taggit clone https://github.com/CMTA/RuleEngine
git checkout v2.0.0
forge install
forge build
v1.0.2.1
The release v1.0.2 contains a minor bug:
When using setRules and clearRules, the rules currently present in the array are not set to "False" in the map.
As a result, a removed rule can not be added again since we use the map to check if a rule is already present
The release v1.0.2.1 fixes that by setting the removed rules to "False" in the map.
This bug doesn't affect how the RuleEngine works with the CMTAT, since in this case, only the array is used.
This patch is not audited. If you think that it is not a issue for your usage, you should prefer the use of the version 1.0.2 which is audited.
v1.0.3
- Upgrade the library CMTAT to the vesion v2.3.1
- Use custom errors instead of revert message
- Add the rule
SanctionList - Upgrade OpenZeppelin to the version v5.0.0
- Add github workflow with Foundry
The release does not include the .git folder, which does not allow installing dependencies.
The easiest solution is to clone the project and perform a git checkout on the version tag
git clone https://github.com/CMTA/RuleEngine
git checkout v1.0.3
forge install
forge build