Skip to content

Releases: CMTA/RuleEngine

v3.0.0-rc0

15 Aug 11:21
f3283c3

Choose a tag to compare

  • 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

04 Jul 16:13
461d32f

Choose a tag to compare

  • 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

21 Dec 13:05
b03f2e9

Choose a tag to compare

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

16 Dec 08:39
53e12a6

Choose a tag to compare

  • 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

10 Sep 07:21
9a35496

Choose a tag to compare

  • 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

17 Jun 09:49
24f69f7

Choose a tag to compare

  • 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

11 Jun 08:49
061f26c

Choose a tag to compare

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

15 May 12:17
a5516c9

Choose a tag to compare

  • 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 tag

git clone https://github.com/CMTA/RuleEngine
git checkout v2.0.0
forge install
forge build

v1.0.2.1

06 May 08:02
8315b54

Choose a tag to compare

v1.0.2.1 Pre-release
Pre-release

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

22 Nov 15:49
ddaaaae

Choose a tag to compare

  • 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