From 98567c039eb07b7cb7481747bd95f576d2dda6ca Mon Sep 17 00:00:00 2001 From: Ryan Sauge Date: Tue, 10 Sep 2024 15:40:12 +0200 Subject: [PATCH] Improve doc and test coverage --- contracts/CMTAT_PROXY.sol | 1 + contracts/CMTAT_PROXY_UUPS.sol | 1 + contracts/CMTAT_STANDALONE.sol | 1 + contracts/deployment/CMTAT_TP_FACTORY.sol | 4 +- contracts/deployment/CMTAT_UUPS_FACTORY.sol | 4 +- contracts/interfaces/ICMTATConstructor.sol | 3 +- contracts/mocks/AuthorizationEngineMock.sol | 1 + contracts/mocks/MinimalForwarderMock.sol | 1 + contracts/mocks/RuleEngine/RuleMock.sol | 1 + contracts/test/proxy/CMTAT_PROXY_TEST.sol | 1 + .../test/proxy/CMTAT_PROXY_TEST_UUPS.sol | 1 + doc/USAGE.md | 10 +- .../coverage/contracts/CMTAT_PROXY.sol.html | 15 +- .../contracts/CMTAT_PROXY_UUPS.sol.html | 16 +- .../contracts/CMTAT_STANDALONE.sol.html | 15 +- .../deployment/CMTAT_BEACON_FACTORY.sol.html | 60 +- .../deployment/CMTAT_TP_FACTORY.sol.html | 37 +- .../deployment/CMTAT_UUPS_FACTORY.sol.html | 13 +- .../coverage/contracts/deployment/index.html | 2 +- .../libraries/CMTATFactoryBase.sol.html | 6 +- .../libraries/CMTATFactoryInvariant.sol.html | 16 +- .../libraries/CMTATFactoryRoot.sol.html | 39 +- .../contracts/deployment/libraries/index.html | 2 +- .../test/coverage/contracts/index.html | 2 +- .../contracts/interfaces/ICCIPToken.sol.html | 2 +- .../interfaces/ICMTATConstructor.sol.html | 2 +- .../interfaces/ICMTATSnapshot.sol.html | 4 +- .../draft-IERC1404/draft-IERC1404.sol.html | 2 +- .../draft-IERC1404EnumCode.sol.html | 2 +- .../draft-IERC1404Wrapper.sol.html | 2 +- .../interfaces/draft-IERC1404/index.html | 2 +- .../engine/IAuthorizationEngine.sol.html | 13 +- .../interfaces/engine/IDebtEngine.sol.html | 15 +- .../{ => engine}/IDebtGlobal.sol.html | 16 +- .../interfaces/engine/IRuleEngine.sol.html | 13 +- .../interfaces/engine/draft-IERC1643.sol.html | 2 +- .../contracts/interfaces/engine/index.html | 15 +- .../coverage/contracts/interfaces/index.html | 15 +- .../contracts/libraries/Errors.sol.html | 8 +- .../libraries/FactoryErrors.sol.html | 13 +- .../coverage/contracts/libraries/index.html | 2 +- .../contracts/modules/CMTAT_BASE.sol.html | 50 +- .../coverage/contracts/modules/index.html | 2 +- .../ERC20SnapshotModuleInternal.sol.html | 2 +- .../EnforcementModuleInternal.sol.html | 2 +- .../ValidationModuleInternal.sol.html | 4 +- .../internal/base/SnapshotModuleBase.sol.html | 8 +- .../modules/internal/base/index.html | 2 +- .../contracts/modules/internal/index.html | 2 +- .../security/AuthorizationModule.sol.html | 12 +- .../contracts/modules/security/index.html | 2 +- .../controllers/ValidationModule.sol.html | 2 +- .../modules/wrapper/controllers/index.html | 2 +- .../modules/wrapper/core/BaseModule.sol.html | 19 +- .../wrapper/core/ERC20BaseModule.sol.html | 36 +- .../wrapper/core/ERC20BurnModule.sol.html | 25 +- .../wrapper/core/ERC20MintModule.sol.html | 25 +- .../wrapper/core/EnforcementModule.sol.html | 9 +- .../modules/wrapper/core/PauseModule.sol.html | 11 +- .../contracts/modules/wrapper/core/index.html | 2 +- .../wrapper/extensions/DebtModule.sol.html | 42 +- .../extensions/DocumentModule.sol.html | 63 +- .../extensions/ERC20SnapshotModule.sol.html | 15 +- .../wrapper/extensions/MetaTxModule.sol.html | 9 +- .../modules/wrapper/extensions/index.html | 36 +- .../test/proxy/CMTAT_PROXY_TEST.sol.html | 2 +- .../test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html | 2 +- .../coverage/contracts/test/proxy/index.html | 2 +- doc/general/test/coverage/coverage-final.json | 82 +- doc/general/test/coverage/index.html | 28 +- .../contracts/CMTAT_PROXY.sol.html | 15 +- .../contracts/CMTAT_PROXY_UUPS.sol.html | 16 +- .../contracts/CMTAT_STANDALONE.sol.html | 15 +- .../deployment/CMTAT_BEACON_FACTORY.sol.html | 60 +- .../deployment/CMTAT_TP_FACTORY.sol.html | 37 +- .../deployment/CMTAT_UUPS_FACTORY.sol.html | 13 +- .../contracts/deployment/index.html | 2 +- .../libraries/CMTATFactoryBase.sol.html | 6 +- .../libraries/CMTATFactoryInvariant.sol.html | 16 +- .../libraries/CMTATFactoryRoot.sol.html | 39 +- .../contracts/deployment/libraries/index.html | 2 +- .../coverage/lcov-report/contracts/index.html | 2 +- .../contracts/interfaces/ICCIPToken.sol.html | 2 +- .../interfaces/ICMTATConstructor.sol.html | 2 +- .../interfaces/ICMTATSnapshot.sol.html | 4 +- .../draft-IERC1404/draft-IERC1404.sol.html | 2 +- .../draft-IERC1404EnumCode.sol.html | 2 +- .../draft-IERC1404Wrapper.sol.html | 2 +- .../interfaces/draft-IERC1404/index.html | 2 +- .../engine/IAuthorizationEngine.sol.html | 13 +- .../interfaces/engine/IDebtEngine.sol.html | 15 +- .../{ => engine}/IDebtGlobal.sol.html | 16 +- .../interfaces/engine/IRuleEngine.sol.html | 13 +- .../interfaces/engine/draft-IERC1643.sol.html | 2 +- .../contracts/interfaces/engine/index.html | 15 +- .../contracts/interfaces/index.html | 15 +- .../contracts/libraries/Errors.sol.html | 8 +- .../libraries/FactoryErrors.sol.html | 13 +- .../contracts/libraries/index.html | 2 +- .../contracts/modules/CMTAT_BASE.sol.html | 50 +- .../lcov-report/contracts/modules/index.html | 2 +- .../ERC20SnapshotModuleInternal.sol.html | 2 +- .../EnforcementModuleInternal.sol.html | 2 +- .../ValidationModuleInternal.sol.html | 4 +- .../internal/base/SnapshotModuleBase.sol.html | 8 +- .../modules/internal/base/index.html | 2 +- .../contracts/modules/internal/index.html | 2 +- .../security/AuthorizationModule.sol.html | 12 +- .../contracts/modules/security/index.html | 2 +- .../controllers/ValidationModule.sol.html | 2 +- .../modules/wrapper/controllers/index.html | 2 +- .../modules/wrapper/core/BaseModule.sol.html | 19 +- .../wrapper/core/ERC20BaseModule.sol.html | 36 +- .../wrapper/core/ERC20BurnModule.sol.html | 25 +- .../wrapper/core/ERC20MintModule.sol.html | 25 +- .../wrapper/core/EnforcementModule.sol.html | 9 +- .../modules/wrapper/core/PauseModule.sol.html | 11 +- .../contracts/modules/wrapper/core/index.html | 2 +- .../wrapper/extensions/DebtModule.sol.html | 42 +- .../extensions/DocumentModule.sol.html | 63 +- .../extensions/ERC20SnapshotModule.sol.html | 15 +- .../wrapper/extensions/MetaTxModule.sol.html | 9 +- .../modules/wrapper/extensions/index.html | 36 +- .../test/proxy/CMTAT_PROXY_TEST.sol.html | 2 +- .../test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html | 2 +- .../contracts/test/proxy/index.html | 2 +- .../test/coverage/lcov-report/index.html | 28 +- doc/general/test/coverage/lcov.info | 926 +++++++++--------- .../DebtModuleSetDebtEngineCommon.js | 8 + .../DocumentModuleSetDocumentEngineCommon.js | 15 + .../ERC20SnapshotModuleCommonUnschedule.js | 2 +- 131 files changed, 1582 insertions(+), 1014 deletions(-) rename doc/general/test/coverage/contracts/interfaces/{ => engine}/IDebtGlobal.sol.html (88%) rename doc/general/test/coverage/lcov-report/contracts/interfaces/{ => engine}/IDebtGlobal.sol.html (88%) diff --git a/contracts/CMTAT_PROXY.sol b/contracts/CMTAT_PROXY.sol index a719f6f9..a65debe8 100644 --- a/contracts/CMTAT_PROXY.sol +++ b/contracts/CMTAT_PROXY.sol @@ -4,6 +4,7 @@ pragma solidity ^0.8.20; import "./modules/CMTAT_BASE.sol"; + /** * @title CMTAT version for a proxy deployment (Transparent or Beacon proxy) */ diff --git a/contracts/CMTAT_PROXY_UUPS.sol b/contracts/CMTAT_PROXY_UUPS.sol index 9faa9a4e..2114b285 100644 --- a/contracts/CMTAT_PROXY_UUPS.sol +++ b/contracts/CMTAT_PROXY_UUPS.sol @@ -4,6 +4,7 @@ pragma solidity ^0.8.20; import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; import "./modules/CMTAT_BASE.sol"; + /** * @title CMTAT version for a proxy deployment with UUPS proxy */ diff --git a/contracts/CMTAT_STANDALONE.sol b/contracts/CMTAT_STANDALONE.sol index 5fa63c94..e56e1dfa 100644 --- a/contracts/CMTAT_STANDALONE.sol +++ b/contracts/CMTAT_STANDALONE.sol @@ -4,6 +4,7 @@ pragma solidity ^0.8.20; import "./modules/CMTAT_BASE.sol"; + /** * @title CMTAT version for a standalone deployment (without proxy) */ diff --git a/contracts/deployment/CMTAT_TP_FACTORY.sol b/contracts/deployment/CMTAT_TP_FACTORY.sol index ffb5a9ff..5a0c9129 100644 --- a/contracts/deployment/CMTAT_TP_FACTORY.sol +++ b/contracts/deployment/CMTAT_TP_FACTORY.sol @@ -3,9 +3,11 @@ pragma solidity ^0.8.20; import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; import "../CMTAT_PROXY.sol"; -import '@openzeppelin/contracts/utils/Create2.sol'; +import "@openzeppelin/contracts/utils/Create2.sol"; import "./libraries/CMTATFactoryInvariant.sol"; import "./libraries/CMTATFactoryBase.sol"; + + /** * @notice Factory to deploy CMTAT with a transparent proxy * diff --git a/contracts/deployment/CMTAT_UUPS_FACTORY.sol b/contracts/deployment/CMTAT_UUPS_FACTORY.sol index ab221d11..10642f5f 100644 --- a/contracts/deployment/CMTAT_UUPS_FACTORY.sol +++ b/contracts/deployment/CMTAT_UUPS_FACTORY.sol @@ -3,9 +3,11 @@ pragma solidity ^0.8.20; import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import "../CMTAT_PROXY_UUPS.sol"; -import '@openzeppelin/contracts/utils/Create2.sol'; +import "@openzeppelin/contracts/utils/Create2.sol"; import "./libraries/CMTATFactoryInvariant.sol"; import "./libraries/CMTATFactoryBase.sol"; + + /** * @notice Factory to deploy CMTAT with a UUPS proxy * diff --git a/contracts/interfaces/ICMTATConstructor.sol b/contracts/interfaces/ICMTATConstructor.sol index 919aa476..e3ee7cef 100644 --- a/contracts/interfaces/ICMTATConstructor.sol +++ b/contracts/interfaces/ICMTATConstructor.sol @@ -1,10 +1,11 @@ //SPDX-License-Identifier: MPL-2.0 +pragma solidity ^0.8.20; import "./engine/IDebtEngine.sol"; import "./engine/IRuleEngine.sol"; import "./engine/IAuthorizationEngine.sol"; import "./engine/draft-IERC1643.sol"; -pragma solidity ^0.8.20; + /** * @notice interface to represent arguments used for CMTAT constructor / initialize diff --git a/contracts/mocks/AuthorizationEngineMock.sol b/contracts/mocks/AuthorizationEngineMock.sol index fbe72d6f..2b858a16 100644 --- a/contracts/mocks/AuthorizationEngineMock.sol +++ b/contracts/mocks/AuthorizationEngineMock.sol @@ -4,6 +4,7 @@ pragma solidity ^0.8.20; import "../interfaces/engine/IAuthorizationEngine.sol"; + /* * @title a mock for testing, not suitable for production */ diff --git a/contracts/mocks/MinimalForwarderMock.sol b/contracts/mocks/MinimalForwarderMock.sol index a6e21c2a..727645b8 100644 --- a/contracts/mocks/MinimalForwarderMock.sol +++ b/contracts/mocks/MinimalForwarderMock.sol @@ -4,6 +4,7 @@ pragma solidity ^0.8.20; import "@openzeppelin/contracts-upgradeable/metatx/ERC2771ForwarderUpgradeable.sol"; + /* * @title a MinimalForwarderMock for testing, not suitable for production */ diff --git a/contracts/mocks/RuleEngine/RuleMock.sol b/contracts/mocks/RuleEngine/RuleMock.sol index 1bf71277..a9621295 100644 --- a/contracts/mocks/RuleEngine/RuleMock.sol +++ b/contracts/mocks/RuleEngine/RuleMock.sol @@ -5,6 +5,7 @@ pragma solidity ^0.8.20; import "./interfaces/IRule.sol"; import "./CodeList.sol"; + /* * @title a mock for testing, not suitable for production */ diff --git a/contracts/test/proxy/CMTAT_PROXY_TEST.sol b/contracts/test/proxy/CMTAT_PROXY_TEST.sol index 352391df..fccfc680 100644 --- a/contracts/test/proxy/CMTAT_PROXY_TEST.sol +++ b/contracts/test/proxy/CMTAT_PROXY_TEST.sol @@ -4,6 +4,7 @@ pragma solidity ^0.8.20; import "../../CMTAT_PROXY.sol"; + /** * @title a contrat used to test the proxy upgrade functionality */ diff --git a/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol b/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol index f56ecbc7..16f7ee5e 100644 --- a/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol +++ b/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol @@ -4,6 +4,7 @@ pragma solidity ^0.8.20; import "../../CMTAT_PROXY_UUPS.sol"; + /** * @title a contrat used to test the proxy upgrade functionality */ diff --git a/doc/USAGE.md b/doc/USAGE.md index 4b36c3fb..13999bdf 100644 --- a/doc/USAGE.md +++ b/doc/USAGE.md @@ -9,13 +9,11 @@ are the latest ones that we tested: - npm 10.2.5 - Hardhat ^2.22.7 -- Solidity 0.8.26 (via solc-js) +- Solidity 0.8.27 (via solc-js) - Node 20.5.0 -- OpenZeppelin - - OpenZeppelin Contracts Upgradeable (submodule) [v5.0.2](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/releases/tag/v5.0.2) - - OpenZeppelin Contracts (Node.js module) [v5.0.2](https://github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v5.0.2) - - Reason n°1: libraries and interfaces are no longer available inside the upgradeable version since the version v5.0.0. - - Reason n°2: It is not installed as a github submodule because it will create conflicts with the imports inside OpenZeppelin which use the Node.js version. +- OpenZeppelin Contracts (Node.js module) [v5.0.2](https://github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v5.0.2) +- OpenZeppelin Contracts Upgradeable (Node.js module) [v5.0.2](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/releases/tag/v5.0.2) +- Test: OpenZeppelin Contracts Upgradeable (submodule) [v5.0.2](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/releases/tag/v5.0.2) ## Installation diff --git a/doc/general/test/coverage/contracts/CMTAT_PROXY.sol.html b/doc/general/test/coverage/contracts/CMTAT_PROXY.sol.html index 18655b87..c1f44cd5 100644 --- a/doc/general/test/coverage/contracts/CMTAT_PROXY.sol.html +++ b/doc/general/test/coverage/contracts/CMTAT_PROXY.sol.html @@ -62,7 +62,10 @@

17 18 19 -20  +20 +21 +22 +23        @@ -78,7 +81,10 @@

      -197× +  +  +  +198×      
//SPDX-License-Identifier: MPL-2.0
@@ -87,6 +93,9 @@ 

  import "./modules/CMTAT_BASE.sol";   +/** +* @title CMTAT version for a proxy deployment (Transparent or Beacon proxy) +*/ contract CMTAT_PROXY is CMTAT_BASE { /** * @notice Contract version for the deployment with a proxy @@ -106,7 +115,7 @@

diff --git a/doc/general/test/coverage/contracts/CMTAT_PROXY_UUPS.sol.html b/doc/general/test/coverage/contracts/CMTAT_PROXY_UUPS.sol.html index a46ce9f7..215b7b65 100644 --- a/doc/general/test/coverage/contracts/CMTAT_PROXY_UUPS.sol.html +++ b/doc/general/test/coverage/contracts/CMTAT_PROXY_UUPS.sol.html @@ -92,7 +92,15 @@

47 48 49 -50  +50 +51 +52 +53 +54  +  +  +  +        @@ -146,6 +154,10 @@

pragma solidity ^0.8.20; import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; import "./modules/CMTAT_BASE.sol"; +  +/** +* @title CMTAT version for a proxy deployment with UUPS proxy +*/ contract CMTAT_PROXY_UUPS is CMTAT_BASE, UUPSUpgradeable { bytes32 public constant PROXY_UPGRADE_ROLE = keccak256("PROXY_UPGRADE_ROLE"); /** @@ -196,7 +208,7 @@

diff --git a/doc/general/test/coverage/contracts/CMTAT_STANDALONE.sol.html b/doc/general/test/coverage/contracts/CMTAT_STANDALONE.sol.html index 016d674d..8ba53413 100644 --- a/doc/general/test/coverage/contracts/CMTAT_STANDALONE.sol.html +++ b/doc/general/test/coverage/contracts/CMTAT_STANDALONE.sol.html @@ -76,7 +76,10 @@

31 32 33 -34  +34 +35 +36 +37        @@ -101,7 +104,10 @@

      -189× +  +  +  +191×       @@ -115,6 +121,9 @@

  import "./modules/CMTAT_BASE.sol";   +/** +* @title CMTAT version for a standalone deployment (without proxy) +*/ contract CMTAT_STANDALONE is CMTAT_BASE { /** * @notice Contract version for standalone deployment @@ -148,7 +157,7 @@

diff --git a/doc/general/test/coverage/contracts/deployment/CMTAT_BEACON_FACTORY.sol.html b/doc/general/test/coverage/contracts/deployment/CMTAT_BEACON_FACTORY.sol.html index a9f007e0..8258d70f 100644 --- a/doc/general/test/coverage/contracts/deployment/CMTAT_BEACON_FACTORY.sol.html +++ b/doc/general/test/coverage/contracts/deployment/CMTAT_BEACON_FACTORY.sol.html @@ -145,8 +145,13 @@

100 101 102 -103  -  +103 +104 +105 +106 +107 +108 +109        @@ -187,6 +192,9 @@

      +  +  +    @@ -214,6 +222,18 @@

      +  + +  +  +  +  +  +  +  +  +  +  @@ -239,22 +259,13 @@

    -  -  -  -  -  -  - -   
//SPDX-License-Identifier: MPL-2.0
 pragma solidity ^0.8.20;
  
 import "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol";
- 
+import '@openzeppelin/contracts/utils/Create2.sol';
 import '@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol';
 import "../CMTAT_PROXY.sol";
-import "../modules/CMTAT_BASE.sol";
 import "./libraries/CMTATFactoryRoot.sol";
  
  
@@ -280,6 +291,9 @@ 

beacon = new UpgradeableBeacon(implementation_, beaconOwner); }   + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ /** * @notice deploy CMTAT with a beacon proxy * @@ -311,6 +325,18 @@

cmtatArgument); return Create2.computeAddress(deploymentSalt, keccak256(bytecode), address(this) ); } +  + /** + * @notice get the implementation address from the beacon + * @return implementation address + */ + function implementation() public view returns (address) { + return beacon.implementation(); + } +  + /*////////////////////////////////////////////////////////////// + INTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/   /** * @notice Deploy CMTAT and push the created CMTAT in the list @@ -341,21 +367,13 @@

); bytecode = abi.encodePacked(type(BeaconProxy).creationCode, abi.encode(address(beacon), _implementation)); } -  - /** - * @notice get the implementation address from the beacon - * @return implementation address - */ - function implementation() public view returns (address) { - return beacon.implementation(); - } }

diff --git a/doc/general/test/coverage/contracts/deployment/CMTAT_TP_FACTORY.sol.html b/doc/general/test/coverage/contracts/deployment/CMTAT_TP_FACTORY.sol.html index 0508c5a1..f5293bd9 100644 --- a/doc/general/test/coverage/contracts/deployment/CMTAT_TP_FACTORY.sol.html +++ b/doc/general/test/coverage/contracts/deployment/CMTAT_TP_FACTORY.sol.html @@ -123,7 +123,19 @@

78 79 80 -81  +81 +82 +83 +84 +85 +86 +87 +88 +89 +90  +  +  +        @@ -178,6 +190,12 @@

      +  +  +  +  +  +  @@ -208,7 +226,6 @@

  import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; import "../CMTAT_PROXY.sol"; -import "../libraries/FactoryErrors.sol"; import '@openzeppelin/contracts/utils/Create2.sol'; import "./libraries/CMTATFactoryInvariant.sol"; import "./libraries/CMTATFactoryBase.sol"; @@ -216,10 +233,14 @@

* @notice Factory to deploy CMTAT with a transparent proxy * */ -contract CMTAT_TP_FACTORY is CMTATFactoryInvariant, CMTATFactoryBase { +contract CMTAT_TP_FACTORY is CMTATFactoryBase {   constructor(address logic_, address factoryAdmin, bool useCustomSalt_) CMTATFactoryBase(logic_, factoryAdmin,useCustomSalt_){} - /** +  + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ + /** * @notice deploy a transparent proxy with a proxy admin contract */ function deployCMTAT( @@ -253,6 +274,12 @@

cmtatArgument); return Create2.computeAddress(deploymentSalt, keccak256(bytecode), address(this) ); } +  +  + /*////////////////////////////////////////////////////////////// + INTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ +    /** * @notice Deploy CMTAT and push the created CMTAT in the list @@ -289,7 +316,7 @@

diff --git a/doc/general/test/coverage/contracts/deployment/CMTAT_UUPS_FACTORY.sol.html b/doc/general/test/coverage/contracts/deployment/CMTAT_UUPS_FACTORY.sol.html index 33a52f20..68ec547c 100644 --- a/doc/general/test/coverage/contracts/deployment/CMTAT_UUPS_FACTORY.sol.html +++ b/doc/general/test/coverage/contracts/deployment/CMTAT_UUPS_FACTORY.sol.html @@ -130,7 +130,9 @@

85 86 87 -88  +88 +89  +        @@ -222,16 +224,14 @@

  import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import "../CMTAT_PROXY_UUPS.sol"; -import "../libraries/FactoryErrors.sol"; import '@openzeppelin/contracts/utils/Create2.sol'; -import '@openzeppelin/contracts/access/AccessControl.sol'; import "./libraries/CMTATFactoryInvariant.sol"; import "./libraries/CMTATFactoryBase.sol"; /** * @notice Factory to deploy CMTAT with a UUPS proxy * */ -contract CMTAT_UUPS_FACTORY is CMTATFactoryInvariant, CMTATFactoryBase { +contract CMTAT_UUPS_FACTORY is CMTATFactoryBase { /** * @param logic_ contract implementation * @param factoryAdmin admin @@ -239,6 +239,9 @@

constructor(address logic_, address factoryAdmin, bool useCustomSalt_) CMTATFactoryBase(logic_, factoryAdmin,useCustomSalt_){} + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ /** * @notice deploy a transparent proxy with a proxy admin contract */ @@ -310,7 +313,7 @@

diff --git a/doc/general/test/coverage/contracts/deployment/index.html b/doc/general/test/coverage/contracts/deployment/index.html index b4c7db02..fe5266d0 100644 --- a/doc/general/test/coverage/contracts/deployment/index.html +++ b/doc/general/test/coverage/contracts/deployment/index.html @@ -103,7 +103,7 @@

diff --git a/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryBase.sol.html b/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryBase.sol.html index 1402b62c..af7247ce 100644 --- a/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryBase.sol.html +++ b/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryBase.sol.html @@ -92,7 +92,6 @@

 
//SPDX-License-Identifier: MPL-2.0
 pragma solidity ^0.8.20;
  
-import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
 import "./CMTATFactoryRoot.sol";
  
 /**
@@ -100,8 +99,9 @@ 

* */ abstract contract CMTATFactoryBase is CMTATFactoryRoot { - // Public + /* ============ State Variables ============ */ address public immutable logic; + /* ============ Constructor ============ */ /** * @param logic_ contract implementation * @param factoryAdmin admin @@ -118,7 +118,7 @@

diff --git a/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html b/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html index 90b86137..87c19507 100644 --- a/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html +++ b/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html @@ -64,7 +64,11 @@

19 20 21 -22  +22 +23 +24  +  +        @@ -92,18 +96,20 @@

import "../../interfaces/ICMTATConstructor.sol";   /** -* @notice Factory to deploy CMTAT with a transparent proxy +* @notice List of Invariant (struct, constant, events) * */ abstract contract CMTATFactoryInvariant { - /// @dev Role to deploy CMTAT - bytes32 public constant CMTAT_DEPLOYER_ROLE = keccak256("CMTAT_DEPLOYER_ROLE"); + /* ============ Structs ============ */ struct CMTAT_ARGUMENT{ address CMTATAdmin; ICMTATConstructor.ERC20Attributes ERC20Attributes; ICMTATConstructor.BaseModuleAttributes baseModuleAttributes; ICMTATConstructor.Engine engines; } + /* ============ State Variables ============ */ + /// @dev Role to deploy CMTAT + bytes32 public constant CMTAT_DEPLOYER_ROLE = keccak256("CMTAT_DEPLOYER_ROLE"); /* ============ Events ============ */ event CMTAT(address indexed CMTAT, uint256 id); }

@@ -112,7 +118,7 @@

diff --git a/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryRoot.sol.html b/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryRoot.sol.html index c882bef0..9b9b198c 100644 --- a/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryRoot.sol.html +++ b/doc/general/test/coverage/contracts/deployment/libraries/CMTATFactoryRoot.sol.html @@ -103,7 +103,16 @@

58 59 60 -61  +61 +62 +63 +64 +65 +66 +67 +68 +69 +70        @@ -143,6 +152,11 @@

      +  +  +  +  +  13×     @@ -152,6 +166,10 @@

      +  +  +  +  11× @@ -166,10 +184,7 @@

 
//SPDX-License-Identifier: MPL-2.0
 pragma solidity ^0.8.20;
  
-import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
-import "../../CMTAT_PROXY.sol";
 import "../../libraries/FactoryErrors.sol";
-import '@openzeppelin/contracts/utils/Create2.sol';
 import '@openzeppelin/contracts/access/AccessControl.sol';
 import "./CMTATFactoryInvariant.sol";
 /**
@@ -177,13 +192,16 @@ 

* */ abstract contract CMTATFactoryRoot is AccessControl, CMTATFactoryInvariant { + /* ============ State Variables ============ */ // Public address[] public cmtatsList; - bool public useCustomSalt; + bool immutable public useCustomSalt; uint256 public cmtatCounterId; /// mapping mapping(uint256 => address) internal cmtats; mapping(bytes32 => bool) internal customSaltUsed; + + /* ============ Constructor ============ */ /** * @param factoryAdmin admin */ @@ -197,6 +215,11 @@

_grantRole(DEFAULT_ADMIN_ROLE, factoryAdmin); _grantRole(CMTAT_DEPLOYER_ROLE, factoryAdmin); } +  +  + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/   /** * @notice get CMTAT proxy address @@ -205,6 +228,10 @@

function CMTATProxyAddress(uint256 cmtatCounterId_) external view returns (address) { return cmtats[cmtatCounterId_]; } +  + /*////////////////////////////////////////////////////////////// + INTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ /** * @param deploymentSalt salt for deployment @@ -229,7 +256,7 @@

diff --git a/doc/general/test/coverage/contracts/deployment/libraries/index.html b/doc/general/test/coverage/contracts/deployment/libraries/index.html index 1536542b..8490a669 100644 --- a/doc/general/test/coverage/contracts/deployment/libraries/index.html +++ b/doc/general/test/coverage/contracts/deployment/libraries/index.html @@ -103,7 +103,7 @@

diff --git a/doc/general/test/coverage/contracts/index.html b/doc/general/test/coverage/contracts/index.html index 2399575b..9ce29ff8 100644 --- a/doc/general/test/coverage/contracts/index.html +++ b/doc/general/test/coverage/contracts/index.html @@ -103,7 +103,7 @@

diff --git a/doc/general/test/coverage/contracts/interfaces/ICCIPToken.sol.html b/doc/general/test/coverage/contracts/interfaces/ICCIPToken.sol.html index 34fd651f..b526f339 100644 --- a/doc/general/test/coverage/contracts/interfaces/ICCIPToken.sol.html +++ b/doc/general/test/coverage/contracts/interfaces/ICCIPToken.sol.html @@ -121,7 +121,7 @@

diff --git a/doc/general/test/coverage/contracts/interfaces/ICMTATConstructor.sol.html b/doc/general/test/coverage/contracts/interfaces/ICMTATConstructor.sol.html index 85ad78c9..aae2f6ee 100644 --- a/doc/general/test/coverage/contracts/interfaces/ICMTATConstructor.sol.html +++ b/doc/general/test/coverage/contracts/interfaces/ICMTATConstructor.sol.html @@ -154,7 +154,7 @@

diff --git a/doc/general/test/coverage/contracts/interfaces/ICMTATSnapshot.sol.html b/doc/general/test/coverage/contracts/interfaces/ICMTATSnapshot.sol.html index 4b4c5842..904f4196 100644 --- a/doc/general/test/coverage/contracts/interfaces/ICMTATSnapshot.sol.html +++ b/doc/general/test/coverage/contracts/interfaces/ICMTATSnapshot.sol.html @@ -124,7 +124,7 @@

pragma solidity ^0.8.20;   /** -* @notice interface to represent a CMTAT with snapshot +* @notice minimum interface to represent a CMTAT with snapshot */ interface ICMTATSnapshot { /** @@ -163,7 +163,7 @@

diff --git a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol.html b/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol.html index a9f17adb..082e383c 100644 --- a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol.html +++ b/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol.html @@ -127,7 +127,7 @@

diff --git a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol.html b/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol.html index 0bb7499a..e8b5ea44 100644 --- a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol.html +++ b/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol.html @@ -94,7 +94,7 @@

diff --git a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol.html b/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol.html index a9b84efa..66534533 100644 --- a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol.html +++ b/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol.html @@ -103,7 +103,7 @@

diff --git a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/index.html b/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/index.html index b3b35735..c3b92b57 100644 --- a/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/index.html +++ b/doc/general/test/coverage/contracts/interfaces/draft-IERC1404/index.html @@ -103,7 +103,7 @@

diff --git a/doc/general/test/coverage/contracts/interfaces/engine/IAuthorizationEngine.sol.html b/doc/general/test/coverage/contracts/interfaces/engine/IAuthorizationEngine.sol.html index 3b0babb7..3c637833 100644 --- a/doc/general/test/coverage/contracts/interfaces/engine/IAuthorizationEngine.sol.html +++ b/doc/general/test/coverage/contracts/interfaces/engine/IAuthorizationEngine.sol.html @@ -63,7 +63,13 @@

18 19 20 -21  +21 +22 +23 +24  +  +  +        @@ -87,6 +93,9 @@

  pragma solidity ^0.8.20;   +/* +* @dev minimum interface to define an AuthorizationEngine +*/ interface IAuthorizationEngine { /** * @dev Returns true if the operation is authorized, and false otherwise. @@ -109,7 +118,7 @@

diff --git a/doc/general/test/coverage/contracts/interfaces/engine/IDebtEngine.sol.html b/doc/general/test/coverage/contracts/interfaces/engine/IDebtEngine.sol.html index 9fab0048..81a7c34a 100644 --- a/doc/general/test/coverage/contracts/interfaces/engine/IDebtEngine.sol.html +++ b/doc/general/test/coverage/contracts/interfaces/engine/IDebtEngine.sol.html @@ -59,7 +59,13 @@

14 15 16 -17  +17 +18 +19 +20  +  +  +        @@ -78,8 +84,11 @@

 
// SPDX-License-Identifier: MPL-2.0
  
 pragma solidity ^0.8.20;
-import "../IDebtGlobal.sol";
+import "./IDebtGlobal.sol";
  
+/*
+* @dev minimum interface to define a DebtEngine
+*/
 interface IDebtEngine is IDebtGlobal {
     /**
      * @dev Returns debt information
@@ -97,7 +106,7 @@ 

diff --git a/doc/general/test/coverage/contracts/interfaces/IDebtGlobal.sol.html b/doc/general/test/coverage/contracts/interfaces/engine/IDebtGlobal.sol.html similarity index 88% rename from doc/general/test/coverage/contracts/interfaces/IDebtGlobal.sol.html rename to doc/general/test/coverage/contracts/interfaces/engine/IDebtGlobal.sol.html index 55c69a84..9b5e6243 100644 --- a/doc/general/test/coverage/contracts/interfaces/IDebtGlobal.sol.html +++ b/doc/general/test/coverage/contracts/interfaces/engine/IDebtGlobal.sol.html @@ -1,14 +1,14 @@ - Code coverage report for contracts/interfaces/IDebtGlobal.sol + Code coverage report for contracts/interfaces/engine/IDebtGlobal.sol - - + + @@ -16,7 +16,7 @@

- all files / contracts/interfaces/ IDebtGlobal.sol + all files / contracts/interfaces/engine/ IDebtGlobal.sol

@@ -136,10 +136,10 @@

- + - + diff --git a/doc/general/test/coverage/contracts/interfaces/engine/IRuleEngine.sol.html b/doc/general/test/coverage/contracts/interfaces/engine/IRuleEngine.sol.html index 35bf495c..5c20a1d7 100644 --- a/doc/general/test/coverage/contracts/interfaces/engine/IRuleEngine.sol.html +++ b/doc/general/test/coverage/contracts/interfaces/engine/IRuleEngine.sol.html @@ -60,7 +60,13 @@

15 16 17 -18  +18 +19 +20 +21  +  +  +        @@ -83,6 +89,9 @@

  import "../draft-IERC1404/draft-IERC1404Wrapper.sol";   +/* +* @dev minimum interface to define a RuleEngine +*/ interface IRuleEngine is IERC1404Wrapper { /** * @dev Returns true if the operation is a success, and false otherwise. @@ -100,7 +109,7 @@

diff --git a/doc/general/test/coverage/contracts/interfaces/engine/draft-IERC1643.sol.html b/doc/general/test/coverage/contracts/interfaces/engine/draft-IERC1643.sol.html index b0586cc6..de24c346 100644 --- a/doc/general/test/coverage/contracts/interfaces/engine/draft-IERC1643.sol.html +++ b/doc/general/test/coverage/contracts/interfaces/engine/draft-IERC1643.sol.html @@ -79,7 +79,7 @@

diff --git a/doc/general/test/coverage/contracts/interfaces/engine/index.html b/doc/general/test/coverage/contracts/interfaces/engine/index.html index be4b8cc1..68e5bddc 100644 --- a/doc/general/test/coverage/contracts/interfaces/engine/index.html +++ b/doc/general/test/coverage/contracts/interfaces/engine/index.html @@ -84,6 +84,19 @@

0/0 + + IDebtGlobal.sol +
+ 100% + 0/0 + 100% + 0/0 + 100% + 0/0 + 100% + 0/0 + + IRuleEngine.sol
@@ -116,7 +129,7 @@

diff --git a/doc/general/test/coverage/contracts/interfaces/index.html b/doc/general/test/coverage/contracts/interfaces/index.html index 0dc4c554..632bd98d 100644 --- a/doc/general/test/coverage/contracts/interfaces/index.html +++ b/doc/general/test/coverage/contracts/interfaces/index.html @@ -97,26 +97,13 @@

0/0 - - IDebtGlobal.sol -
- 100% - 0/0 - 100% - 0/0 - 100% - 0/0 - 100% - 0/0 - -
diff --git a/doc/general/test/coverage/contracts/libraries/Errors.sol.html b/doc/general/test/coverage/contracts/libraries/Errors.sol.html index 3df6d18f..f24beaf0 100644 --- a/doc/general/test/coverage/contracts/libraries/Errors.sol.html +++ b/doc/general/test/coverage/contracts/libraries/Errors.sol.html @@ -185,6 +185,9 @@

  pragma solidity ^0.8.20;   +/* +* @dev CMTAT custom errors +*/ library Errors { // CMTAT error CMTAT_InvalidTransfer(address from, address to, uint256 amount); @@ -232,9 +235,6 @@

  // DebtModule error CMTAT_DebtModule_SameValue(); -  - // BaseModule - error CMTAT_BaseModule_SameValue();   // ValidationModule error CMTAT_ValidationModule_SameValue(); @@ -256,7 +256,7 @@

diff --git a/doc/general/test/coverage/contracts/libraries/FactoryErrors.sol.html b/doc/general/test/coverage/contracts/libraries/FactoryErrors.sol.html index 818589f8..c608b4a9 100644 --- a/doc/general/test/coverage/contracts/libraries/FactoryErrors.sol.html +++ b/doc/general/test/coverage/contracts/libraries/FactoryErrors.sol.html @@ -53,7 +53,13 @@

8 9 10 -11  +11 +12 +13 +14  +  +  +        @@ -67,6 +73,9 @@

  pragma solidity ^0.8.20;   +/* +* @dev Factory contract custom errors +*/ library FactoryErrors { error CMTAT_Factory_AddressZeroNotAllowedForFactoryAdmin(); error CMTAT_Factory_AddressZeroNotAllowedForBeaconOwner(); @@ -79,7 +88,7 @@

diff --git a/doc/general/test/coverage/contracts/libraries/index.html b/doc/general/test/coverage/contracts/libraries/index.html index 4604548c..e3e50a9e 100644 --- a/doc/general/test/coverage/contracts/libraries/index.html +++ b/doc/general/test/coverage/contracts/libraries/index.html @@ -90,7 +90,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/CMTAT_BASE.sol.html b/doc/general/test/coverage/contracts/modules/CMTAT_BASE.sol.html index fbbcd8b4..c18f34a8 100644 --- a/doc/general/test/coverage/contracts/modules/CMTAT_BASE.sol.html +++ b/doc/general/test/coverage/contracts/modules/CMTAT_BASE.sol.html @@ -347,7 +347,7 @@

      -381× +384×       @@ -367,50 +367,50 @@

      -381× -381× +384× +384×   -381× +384×   -381× -381× +384× +384×     -381× +384×         -381× -381× +384× +384×   -381× +384×       -381× -379× -379× +384× +382× +382×   -379× -379× +382× +382×   -379× -379× +382× +382×           -379× -379× -379× +382× +382× +382×     -379× +382×     -379× +382×       @@ -499,7 +499,7 @@

      -1386× +1389×       @@ -508,7 +508,7 @@

      -1386× +1389×       @@ -769,7 +769,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/index.html b/doc/general/test/coverage/contracts/modules/index.html index 62d133df..f16eff78 100644 --- a/doc/general/test/coverage/contracts/modules/index.html +++ b/doc/general/test/coverage/contracts/modules/index.html @@ -77,7 +77,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html b/doc/general/test/coverage/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html index e9ec8a55..7fd178e9 100644 --- a/doc/general/test/coverage/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html +++ b/doc/general/test/coverage/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html @@ -466,7 +466,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/internal/EnforcementModuleInternal.sol.html b/doc/general/test/coverage/contracts/modules/internal/EnforcementModuleInternal.sol.html index 8ed2e7e5..a04d6a48 100644 --- a/doc/general/test/coverage/contracts/modules/internal/EnforcementModuleInternal.sol.html +++ b/doc/general/test/coverage/contracts/modules/internal/EnforcementModuleInternal.sol.html @@ -400,7 +400,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/internal/ValidationModuleInternal.sol.html b/doc/general/test/coverage/contracts/modules/internal/ValidationModuleInternal.sol.html index 313ade69..8a9dd3c7 100644 --- a/doc/general/test/coverage/contracts/modules/internal/ValidationModuleInternal.sol.html +++ b/doc/general/test/coverage/contracts/modules/internal/ValidationModuleInternal.sol.html @@ -176,7 +176,7 @@

      -381× +384× 18× 18× 18× @@ -352,7 +352,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/internal/base/SnapshotModuleBase.sol.html b/doc/general/test/coverage/contracts/modules/internal/base/SnapshotModuleBase.sol.html index 27216dd9..f2cf0053 100644 --- a/doc/general/test/coverage/contracts/modules/internal/base/SnapshotModuleBase.sol.html +++ b/doc/general/test/coverage/contracts/modules/internal/base/SnapshotModuleBase.sol.html @@ -587,7 +587,7 @@

  -12× +       @@ -726,7 +726,7 @@

10×   -16× +     @@ -922,7 +922,7 @@

* Useful to take a snapshot of token holder balance and total supply at a specific time * Inspired by Openzeppelin - ERC20Snapshot but use the time as Id instead of a counter. * Contrary to OpenZeppelin, the function _getCurrentSnapshotId is not available - because overriding this function can break the contract. + * because overriding this function can break the contract. */   abstract contract SnapshotModuleBase is Initializable { @@ -1345,7 +1345,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/internal/base/index.html b/doc/general/test/coverage/contracts/modules/internal/base/index.html index 2b828b8e..6d5f9ab3 100644 --- a/doc/general/test/coverage/contracts/modules/internal/base/index.html +++ b/doc/general/test/coverage/contracts/modules/internal/base/index.html @@ -77,7 +77,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/internal/index.html b/doc/general/test/coverage/contracts/modules/internal/index.html index 9f473b7d..25d642d7 100644 --- a/doc/general/test/coverage/contracts/modules/internal/index.html +++ b/doc/general/test/coverage/contracts/modules/internal/index.html @@ -103,7 +103,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/security/AuthorizationModule.sol.html b/doc/general/test/coverage/contracts/modules/security/AuthorizationModule.sol.html index 7d849acf..ad289c2e 100644 --- a/doc/general/test/coverage/contracts/modules/security/AuthorizationModule.sol.html +++ b/doc/general/test/coverage/contracts/modules/security/AuthorizationModule.sol.html @@ -193,11 +193,11 @@

      -381× +384×   -379× -379× +382× +382× 16× 16× 16× @@ -262,10 +262,10 @@

      -1280× +1283× 759×   -521× +524×       @@ -406,7 +406,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/security/index.html b/doc/general/test/coverage/contracts/modules/security/index.html index 83fe875c..f42cc844 100644 --- a/doc/general/test/coverage/contracts/modules/security/index.html +++ b/doc/general/test/coverage/contracts/modules/security/index.html @@ -77,7 +77,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/controllers/ValidationModule.sol.html b/doc/general/test/coverage/contracts/modules/wrapper/controllers/ValidationModule.sol.html index 56eaa88f..380bcb96 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/controllers/ValidationModule.sol.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/controllers/ValidationModule.sol.html @@ -502,7 +502,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/controllers/index.html b/doc/general/test/coverage/contracts/modules/wrapper/controllers/index.html index 3b3d4fcc..6b3304d3 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/controllers/index.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/controllers/index.html @@ -77,7 +77,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/core/BaseModule.sol.html b/doc/general/test/coverage/contracts/modules/wrapper/core/BaseModule.sol.html index fb309d22..b07d3d33 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/BaseModule.sol.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/core/BaseModule.sol.html @@ -157,8 +157,7 @@

112 113 114 -115 -116  +115        @@ -202,11 +201,10 @@

      -  -379× -379× -379× -379× +382× +382× +382× +382×       @@ -267,7 +265,7 @@

      -413× +416×       @@ -277,9 +275,8 @@

  pragma solidity ^0.8.20;   -// required OZ imports here import "../../security/AuthorizationModule.sol"; -import "../../../libraries/Errors.sol"; +  abstract contract BaseModule is AuthorizationModule { /* ============ State Variables ============ */ /** @@ -394,7 +391,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20BaseModule.sol.html b/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20BaseModule.sol.html index 3c458492..ec809312 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20BaseModule.sol.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20BaseModule.sol.html @@ -174,7 +174,15 @@

129 130 131 -132  +132 +133 +134 +135 +136 +137 +138 +139 +140        @@ -207,8 +215,16 @@

      -379× -379× +  +  +  +  +  +  +  +  +382× +382×       @@ -287,7 +303,7 @@

  - +     @@ -300,7 +316,7 @@

      -381× +384×       @@ -313,6 +329,14 @@

import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import "../../../libraries/Errors.sol";   +/** + * @title ERC20Base module + * @dev + * + * Contains ERC-20 base functions and extension + * Inherits from ERC-20 + * + */ abstract contract ERC20BaseModule is ERC20Upgradeable { /* ============ Events ============ */ /** @@ -442,7 +466,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20BurnModule.sol.html b/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20BurnModule.sol.html index 525d94ca..4d20e959 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20BurnModule.sol.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20BurnModule.sol.html @@ -165,7 +165,21 @@

120 121 122 -123  +123 +124 +125 +126 +127 +128 +129 +130  +  +  +  +  +  +  +        @@ -294,6 +308,13 @@

import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import "../../security/AuthorizationModule.sol"; import "../../../interfaces/ICCIPToken.sol"; +  +/** + * @title ERC20Burn module. + * @dev + * + * Contains all burn functions, inherits from ERC-20 + */ abstract contract ERC20BurnModule is ERC20Upgradeable, ICCIPBurnFromERC20, AuthorizationModule { /* ============ State Variables ============ */ bytes32 public constant BURNER_ROLE = keccak256("BURNER_ROLE"); @@ -415,7 +436,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20MintModule.sol.html b/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20MintModule.sol.html index 0af0174d..eae1319c 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20MintModule.sol.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/core/ERC20MintModule.sol.html @@ -121,7 +121,21 @@

76 77 78 -79  +79 +80 +81 +82 +83 +84 +85 +86  +  +  +  +  +  +  +        @@ -206,6 +220,13 @@

import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import "../../security/AuthorizationModule.sol"; import "../../../interfaces/ICCIPToken.sol"; +  +/** + * @title ERC20Mint module. + * @dev + * + * Contains all mint functions, inherits from ERC-20 + */ abstract contract ERC20MintModule is ERC20Upgradeable, ICCIPMintERC20, AuthorizationModule { /* ============ State Variables ============ */ bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); @@ -283,7 +304,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/core/EnforcementModule.sol.html b/doc/general/test/coverage/contracts/modules/wrapper/core/EnforcementModule.sol.html index b1722a25..bdd8dc50 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/EnforcementModule.sol.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/core/EnforcementModule.sol.html @@ -101,7 +101,9 @@

56 57 58 -59  +59 +60  +        @@ -167,7 +169,8 @@

import "../../internal/EnforcementModuleInternal.sol";   /** - * @dev Enforcement module. + * @title Enforcement module. + * @dev * * Allows the issuer to freeze transfers from a given address */ @@ -223,7 +226,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/core/PauseModule.sol.html b/doc/general/test/coverage/contracts/modules/wrapper/core/PauseModule.sol.html index 9cccc67c..09614f07 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/PauseModule.sol.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/core/PauseModule.sol.html @@ -151,7 +151,9 @@

106 107 108 -109  +109 +110  +        @@ -267,8 +269,9 @@

import "../../security/AuthorizationModule.sol";   /** - * - * @dev Put in pause or deactivate the contract + * @title Pause Module + * @dev + * Put in pause or deactivate the contract * The issuer must be able to “pause” the smart contract, * to prevent execution of transactions on the distributed ledger until the issuer puts an end to the pause. * @@ -373,7 +376,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/core/index.html b/doc/general/test/coverage/contracts/modules/wrapper/core/index.html index 4fa59c60..c78c57db 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/core/index.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/core/index.html @@ -142,7 +142,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/extensions/DebtModule.sol.html b/doc/general/test/coverage/contracts/modules/wrapper/extensions/DebtModule.sol.html index ae910c4e..25046249 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/extensions/DebtModule.sol.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/extensions/DebtModule.sol.html @@ -25,9 +25,9 @@

12/12
- 75% + 91.67% Branches - 9/12 + 11/12
100% @@ -137,7 +137,13 @@

92 93 94 -95  +95 +96 +97 +98 +99 +100 +101        @@ -173,7 +179,13 @@

      -379× +  +  +  +  +  +  +382× @@ -205,15 +217,15 @@

      - - + +         - - + +     @@ -225,7 +237,7 @@

      -20× +22×       @@ -239,6 +251,12 @@

import "../../../libraries/Errors.sol"; import "../../../interfaces/engine/IDebtEngine.sol";   +/** + * @title Debt module + * @dev + * + * Retrieve debt and creditEvents information from a debtEngine + */ abstract contract DebtModule is AuthorizationModule, IDebtEngine { /* ============ State Variables ============ */ bytes32 public constant DEBT_ROLE = keccak256("DEBT_ROLE"); @@ -300,14 +318,14 @@

  function debt() public view returns(DebtBase memory debtBaseResult){ DebtModuleStorage storage $ = _getDebtModuleStorage(); - Eif(address($._debtEngine) != address(0)){ + if(address($._debtEngine) != address(0)){ debtBaseResult = $._debtEngine.debt(); } }   function creditEvents() public view returns(CreditEvents memory creditEventsResult){ DebtModuleStorage storage $ = _getDebtModuleStorage(); - Eif(address($._debtEngine) != address(0)){ + if(address($._debtEngine) != address(0)){ creditEventsResult = $._debtEngine.creditEvents(); } } @@ -331,7 +349,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/extensions/DocumentModule.sol.html b/doc/general/test/coverage/contracts/modules/wrapper/extensions/DocumentModule.sol.html index 2640e420..01963048 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/extensions/DocumentModule.sol.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/extensions/DocumentModule.sol.html @@ -20,14 +20,14 @@

- 92.86% + 100% Statements - 13/14 + 14/14
- 75% + 91.67% Branches - 9/12 + 11/12
100% @@ -35,9 +35,9 @@

6/6

- 94.74% + 100% Lines - 18/19 + 19/19
@@ -135,7 +135,24 @@

90 91 92 -93  +93 +94 +95 +96 +97 +98 +99 +100 +101 +102  +  +  +  +  +  +  +  +        @@ -168,7 +185,8 @@

      -379× +  +382× 12× 12× 12× @@ -200,17 +218,17 @@

      -16× -16× +18× +18× 16×   -  +         - - + +     @@ -222,7 +240,7 @@

      -76× +80×       @@ -234,6 +252,15 @@

import "../../security/AuthorizationModule.sol"; import "../../../libraries/Errors.sol"; import "../../../interfaces/engine/draft-IERC1643.sol"; +  +  +/** + * @title Document module + * @dev + * + * Retrieve documents from a documentEngine + */ +  abstract contract DocumentModule is AuthorizationModule, IERC1643 { /* ============ Events ============ */ /** @@ -293,16 +320,16 @@

  function getDocument(bytes32 _name) public view returns (string memory, bytes32, uint256){ DocumentModuleStorage storage $ = _getDocumentModuleStorage(); - Eif(address($._documentEngine) != address(0)){ + if(address($._documentEngine) != address(0)){ return $._documentEngine.getDocument( _name); } else{ - return ("",0x0, 0); + return ("",0x0, 0); } }   function getAllDocuments() public view returns (bytes32[] memory documents){ DocumentModuleStorage storage $ = _getDocumentModuleStorage(); - Eif(address($._documentEngine) != address(0)){ + if(address($._documentEngine) != address(0)){ documents = $._documentEngine.getAllDocuments(); } } @@ -325,7 +352,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol.html b/doc/general/test/coverage/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol.html index 1b44a9d6..f0c7c091 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol.html @@ -25,9 +25,9 @@

5/5
- 83.33% + 91.67% Branches - 10/12 + 11/12
100% @@ -122,7 +122,9 @@

77 78 79 -80  +80 +81  +        @@ -209,7 +211,8 @@

import "../../internal/ERC20SnapshotModuleInternal.sol";   /** - * @dev Snapshot module. + * @title Snapshot module + * @dev * * Useful to take a snapshot of token holder balance and total supply at a specific time */ @@ -276,7 +279,7 @@

*/ function unscheduleSnapshotNotOptimized( uint256 time - ) public EonlyRole(SNAPSHOOTER_ROLE) { + ) public onlyRole(SNAPSHOOTER_ROLE) { _unscheduleSnapshotNotOptimized(time); } } @@ -286,7 +289,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/extensions/MetaTxModule.sol.html b/doc/general/test/coverage/contracts/modules/wrapper/extensions/MetaTxModule.sol.html index 6e186086..8a138cb0 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/extensions/MetaTxModule.sol.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/extensions/MetaTxModule.sol.html @@ -64,7 +64,9 @@

19 20 21 -22  +22 +23  +        @@ -92,7 +94,8 @@

import "@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol";   /** - * @dev Meta transaction (gasless) module. + * @title Meta transaction (gasless) module. + * @dev * * Useful for to provide UX where the user does not pay gas for token exchange * To follow OpenZeppelin, this contract does not implement the functions init & init_unchained. @@ -112,7 +115,7 @@

diff --git a/doc/general/test/coverage/contracts/modules/wrapper/extensions/index.html b/doc/general/test/coverage/contracts/modules/wrapper/extensions/index.html index d00598d6..decf28ce 100644 --- a/doc/general/test/coverage/contracts/modules/wrapper/extensions/index.html +++ b/doc/general/test/coverage/contracts/modules/wrapper/extensions/index.html @@ -20,14 +20,14 @@

- 96.77% + 100% Statements - 30/31 + 31/31
- 77.78% + 91.67% Branches - 28/36 + 33/36
100% @@ -35,9 +35,9 @@

19/19

- 97.62% + 100% Lines - 41/42 + 42/42
@@ -63,8 +63,8 @@

100% 12/12 - 75% - 9/12 + 91.67% + 11/12 100% 6/6 100% @@ -73,15 +73,15 @@

DocumentModule.sol -
- 92.86% - 13/14 - 75% - 9/12 +
+ 100% + 14/14 + 91.67% + 11/12 100% 6/6 - 94.74% - 18/19 + 100% + 19/19 @@ -89,8 +89,8 @@

100% 5/5 - 83.33% - 10/12 + 91.67% + 11/12 100% 6/6 100% @@ -116,7 +116,7 @@

diff --git a/doc/general/test/coverage/contracts/test/proxy/CMTAT_PROXY_TEST.sol.html b/doc/general/test/coverage/contracts/test/proxy/CMTAT_PROXY_TEST.sol.html index 643ed222..5bc6f0c8 100644 --- a/doc/general/test/coverage/contracts/test/proxy/CMTAT_PROXY_TEST.sol.html +++ b/doc/general/test/coverage/contracts/test/proxy/CMTAT_PROXY_TEST.sol.html @@ -112,7 +112,7 @@

diff --git a/doc/general/test/coverage/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html b/doc/general/test/coverage/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html index e70a37ac..6a50bb09 100644 --- a/doc/general/test/coverage/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html +++ b/doc/general/test/coverage/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html @@ -112,7 +112,7 @@

diff --git a/doc/general/test/coverage/contracts/test/proxy/index.html b/doc/general/test/coverage/contracts/test/proxy/index.html index 666beb15..45758912 100644 --- a/doc/general/test/coverage/contracts/test/proxy/index.html +++ b/doc/general/test/coverage/contracts/test/proxy/index.html @@ -90,7 +90,7 @@

diff --git a/doc/general/test/coverage/coverage-final.json b/doc/general/test/coverage/coverage-final.json index 33bfe67c..129ad0e8 100644 --- a/doc/general/test/coverage/coverage-final.json +++ b/doc/general/test/coverage/coverage-final.json @@ -1,42 +1,42 @@ { -"contracts/CMTAT_PROXY_UUPS.sol":{"l":{"17":9,"37":5,"41":5},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/CMTAT_PROXY_UUPS.sol","s":{"1":9,"2":5,"3":5},"b":{"1":[5,0],"2":[2,1]},"f":{"1":9,"2":5,"3":2},"fnMap":{"1":{"name":"constructor","line":15,"loc":{"start":{"line":13,"column":4},"end":{"line":18,"column":4}}},"2":{"name":"initialize","line":36,"loc":{"start":{"line":33,"column":4},"end":{"line":42,"column":4}}},"3":{"name":"_authorizeUpgrade","line":48,"loc":{"start":{"line":48,"column":4},"end":{"line":48,"column":88}}}},"statementMap":{"1":{"start":{"line":17,"column":8},"end":{"line":17,"column":29}},"2":{"start":{"line":37,"column":8},"end":{"line":37,"column":1635}},"3":{"start":{"line":41,"column":8},"end":{"line":41,"column":41}}},"branchMap":{"1":{"line":36,"type":"if","locations":[{"start":{"line":36,"column":67},"end":{"line":36,"column":67}},{"start":{"line":36,"column":67},"end":{"line":36,"column":67}}]},"2":{"line":48,"type":"if","locations":[{"start":{"line":48,"column":58},"end":{"line":48,"column":58}},{"start":{"line":48,"column":58},"end":{"line":48,"column":58}}]}}}, -"contracts/CMTAT_PROXY.sol":{"l":{"17":197},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/CMTAT_PROXY.sol","s":{"1":197},"b":{},"f":{"1":197},"fnMap":{"1":{"name":"constructor","line":15,"loc":{"start":{"line":13,"column":4},"end":{"line":18,"column":4}}}},"statementMap":{"1":{"start":{"line":17,"column":8},"end":{"line":17,"column":29}}},"branchMap":{}}, -"contracts/CMTAT_STANDALONE.sol":{"l":{"26":189},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/CMTAT_STANDALONE.sol","s":{"1":189},"b":{},"f":{"1":189},"fnMap":{"1":{"name":"constructor","line":23,"loc":{"start":{"line":17,"column":4},"end":{"line":32,"column":4}}}},"statementMap":{"1":{"start":{"line":26,"column":8},"end":{"line":26,"column":1038}}},"branchMap":{}}, -"contracts/deployment/CMTAT_BEACON_FACTORY.sol":{"l":{"25":8,"26":1,"28":7,"29":1,"31":6,"43":2,"44":2,"47":2,"48":2,"60":2,"63":2,"70":2,"71":2,"72":2,"73":2,"74":2,"75":2,"76":2,"86":4,"93":4,"101":1},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/deployment/CMTAT_BEACON_FACTORY.sol","s":{"1":8,"2":7,"3":2,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":4,"13":1},"b":{"1":[1,7],"2":[1,6],"3":[2,1]},"f":{"1":8,"2":2,"3":2,"4":2,"5":4,"6":1},"fnMap":{"1":{"name":"constructor","line":24,"loc":{"start":{"line":24,"column":4},"end":{"line":32,"column":4}}},"2":{"name":"deployCMTAT","line":42,"loc":{"start":{"line":38,"column":4},"end":{"line":49,"column":4}}},"3":{"name":"computedProxyAddress","line":56,"loc":{"start":{"line":56,"column":4},"end":{"line":64,"column":4}}},"4":{"name":"_deployBytecode","line":69,"loc":{"start":{"line":69,"column":4},"end":{"line":77,"column":5}}},"5":{"name":"_getBytecode","line":83,"loc":{"start":{"line":83,"column":5},"end":{"line":94,"column":5}}},"6":{"name":"implementation","line":100,"loc":{"start":{"line":100,"column":4},"end":{"line":102,"column":4}}}},"statementMap":{"1":{"start":{"line":25,"column":8},"end":{"line":25,"column":784}},"2":{"start":{"line":28,"column":8},"end":{"line":28,"column":920}},"3":{"start":{"line":43,"column":8},"end":{"line":43,"column":86}},"4":{"start":{"line":44,"column":8},"end":{"line":44,"column":1531}},"5":{"start":{"line":48,"column":8},"end":{"line":48,"column":20}},"6":{"start":{"line":60,"column":8},"end":{"line":60,"column":2109}},"7":{"start":{"line":63,"column":8},"end":{"line":63,"column":91}},"8":{"start":{"line":70,"column":20},"end":{"line":70,"column":86}},"9":{"start":{"line":73,"column":20},"end":{"line":73,"column":62}},"10":{"start":{"line":75,"column":20},"end":{"line":75,"column":50}},"11":{"start":{"line":76,"column":20},"end":{"line":76,"column":32}},"12":{"start":{"line":86,"column":8},"end":{"line":86,"column":3140}},"13":{"start":{"line":101,"column":8},"end":{"line":101,"column":38}}},"branchMap":{"1":{"line":25,"type":"if","locations":[{"start":{"line":25,"column":8},"end":{"line":25,"column":8}},{"start":{"line":25,"column":8},"end":{"line":25,"column":8}}]},"2":{"line":28,"type":"if","locations":[{"start":{"line":28,"column":8},"end":{"line":28,"column":8}},{"start":{"line":28,"column":8},"end":{"line":28,"column":8}}]},"3":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":13},"end":{"line":42,"column":13}},{"start":{"line":42,"column":13},"end":{"line":42,"column":13}}]}}}, -"contracts/deployment/CMTAT_TP_FACTORY.sol":{"l":{"26":7,"27":5,"30":5,"32":5,"46":2,"49":2,"56":5,"57":5,"58":5,"59":5,"60":5,"61":5,"62":5,"72":7,"79":7},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/deployment/CMTAT_TP_FACTORY.sol","s":{"1":7,"2":5,"3":5,"4":2,"5":2,"6":5,"7":5,"8":5,"9":5,"10":7},"b":{"1":[7,2]},"f":{"1":9,"2":7,"3":2,"4":5,"5":7},"fnMap":{"1":{"name":"constructor","line":16,"loc":{"start":{"line":16,"column":4},"end":{"line":16,"column":129}}},"2":{"name":"deployCMTAT","line":25,"loc":{"start":{"line":20,"column":4},"end":{"line":33,"column":4}}},"3":{"name":"computedProxyAddress","line":41,"loc":{"start":{"line":41,"column":4},"end":{"line":50,"column":4}}},"4":{"name":"_deployBytecode","line":55,"loc":{"start":{"line":55,"column":4},"end":{"line":63,"column":5}}},"5":{"name":"_getBytecode","line":69,"loc":{"start":{"line":69,"column":5},"end":{"line":80,"column":5}}}},"statementMap":{"1":{"start":{"line":26,"column":8},"end":{"line":26,"column":86}},"2":{"start":{"line":27,"column":8},"end":{"line":27,"column":1102}},"3":{"start":{"line":32,"column":8},"end":{"line":32,"column":20}},"4":{"start":{"line":46,"column":8},"end":{"line":46,"column":1786}},"5":{"start":{"line":49,"column":8},"end":{"line":49,"column":91}},"6":{"start":{"line":56,"column":20},"end":{"line":56,"column":86}},"7":{"start":{"line":59,"column":20},"end":{"line":59,"column":62}},"8":{"start":{"line":61,"column":20},"end":{"line":61,"column":50}},"9":{"start":{"line":62,"column":20},"end":{"line":62,"column":32}},"10":{"start":{"line":72,"column":8},"end":{"line":72,"column":2889}}},"branchMap":{"1":{"line":25,"type":"if","locations":[{"start":{"line":25,"column":13},"end":{"line":25,"column":13}},{"start":{"line":25,"column":13},"end":{"line":25,"column":13}}]}}}, -"contracts/deployment/CMTAT_UUPS_FACTORY.sol":{"l":{"31":2,"32":2,"35":2,"37":2,"49":2,"52":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"79":4,"86":4},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/deployment/CMTAT_UUPS_FACTORY.sol","s":{"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":4},"b":{"1":[2,1]},"f":{"1":5,"2":2,"3":2,"4":2,"5":4},"fnMap":{"1":{"name":"constructor","line":20,"loc":{"start":{"line":20,"column":4},"end":{"line":20,"column":129}}},"2":{"name":"deployCMTAT","line":30,"loc":{"start":{"line":26,"column":4},"end":{"line":38,"column":4}}},"3":{"name":"computedProxyAddress","line":45,"loc":{"start":{"line":45,"column":4},"end":{"line":53,"column":4}}},"4":{"name":"_deployBytecode","line":62,"loc":{"start":{"line":62,"column":4},"end":{"line":70,"column":5}}},"5":{"name":"_getBytecode","line":76,"loc":{"start":{"line":76,"column":5},"end":{"line":87,"column":5}}}},"statementMap":{"1":{"start":{"line":31,"column":8},"end":{"line":31,"column":86}},"2":{"start":{"line":32,"column":8},"end":{"line":32,"column":1197}},"3":{"start":{"line":37,"column":8},"end":{"line":37,"column":20}},"4":{"start":{"line":49,"column":8},"end":{"line":49,"column":1784}},"5":{"start":{"line":52,"column":8},"end":{"line":52,"column":91}},"6":{"start":{"line":63,"column":20},"end":{"line":63,"column":86}},"7":{"start":{"line":66,"column":20},"end":{"line":66,"column":62}},"8":{"start":{"line":68,"column":20},"end":{"line":68,"column":50}},"9":{"start":{"line":69,"column":20},"end":{"line":69,"column":32}},"10":{"start":{"line":79,"column":8},"end":{"line":79,"column":3003}}},"branchMap":{"1":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":13},"end":{"line":30,"column":13}},{"start":{"line":30,"column":13},"end":{"line":30,"column":13}}]}}}, -"contracts/deployment/libraries/CMTATFactoryBase.sol":{"l":{"19":16,"20":2,"22":14},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/deployment/libraries/CMTATFactoryBase.sol","s":{"1":16},"b":{"1":[2,14]},"f":{"1":16},"fnMap":{"1":{"name":"constructor","line":18,"loc":{"start":{"line":18,"column":4},"end":{"line":23,"column":4}}}},"statementMap":{"1":{"start":{"line":19,"column":8},"end":{"line":19,"column":573}}},"branchMap":{"1":{"line":19,"type":"if","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":8}},{"start":{"line":19,"column":8},"end":{"line":19,"column":8}}]}}}, -"contracts/deployment/libraries/CMTATFactoryInvariant.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/deployment/libraries/CMTATFactoryInvariant.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/deployment/libraries/CMTATFactoryRoot.sol":{"l":{"26":27,"27":3,"29":24,"30":15,"32":24,"33":24,"41":13,"50":11,"51":5,"52":2,"54":3,"55":3,"58":6},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/deployment/libraries/CMTATFactoryRoot.sol","s":{"1":27,"2":24,"3":24,"4":24,"5":13,"6":11,"7":5},"b":{"1":[3,24],"2":[15,9],"3":[5,6],"4":[2,3]},"f":{"1":27,"2":13,"3":11},"fnMap":{"1":{"name":"constructor","line":25,"loc":{"start":{"line":25,"column":4},"end":{"line":34,"column":4}}},"2":{"name":"CMTATProxyAddress","line":40,"loc":{"start":{"line":40,"column":4},"end":{"line":42,"column":4}}},"3":{"name":"_checkAndDetermineDeploymentSalt","line":49,"loc":{"start":{"line":49,"column":4},"end":{"line":60,"column":4}}}},"statementMap":{"1":{"start":{"line":26,"column":8},"end":{"line":26,"column":867}},"2":{"start":{"line":29,"column":8},"end":{"line":29,"column":1005}},"3":{"start":{"line":32,"column":8},"end":{"line":32,"column":51}},"4":{"start":{"line":33,"column":8},"end":{"line":33,"column":52}},"5":{"start":{"line":41,"column":8},"end":{"line":41,"column":38}},"6":{"start":{"line":50,"column":7},"end":{"line":50,"column":1673}},"7":{"start":{"line":51,"column":12},"end":{"line":51,"column":1708}}},"branchMap":{"1":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":8},"end":{"line":26,"column":8}},{"start":{"line":26,"column":8},"end":{"line":26,"column":8}}]},"2":{"line":29,"type":"if","locations":[{"start":{"line":29,"column":8},"end":{"line":29,"column":8}},{"start":{"line":29,"column":8},"end":{"line":29,"column":8}}]},"3":{"line":50,"type":"if","locations":[{"start":{"line":50,"column":7},"end":{"line":50,"column":7}},{"start":{"line":50,"column":7},"end":{"line":50,"column":7}}]},"4":{"line":51,"type":"if","locations":[{"start":{"line":51,"column":12},"end":{"line":51,"column":12}},{"start":{"line":51,"column":12},"end":{"line":51,"column":12}}]}}}, -"contracts/interfaces/draft-IERC1404/draft-IERC1404.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/interfaces/engine/draft-IERC1643.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/draft-IERC1643.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/interfaces/engine/IAuthorizationEngine.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/IAuthorizationEngine.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/interfaces/engine/IDebtEngine.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/IDebtEngine.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/interfaces/engine/IRuleEngine.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/IRuleEngine.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/interfaces/ICCIPToken.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/ICCIPToken.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/interfaces/ICMTATConstructor.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/ICMTATConstructor.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/interfaces/ICMTATSnapshot.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/ICMTATSnapshot.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/interfaces/IDebtGlobal.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/IDebtGlobal.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/libraries/Errors.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/libraries/Errors.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/libraries/FactoryErrors.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/libraries/FactoryErrors.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, -"contracts/modules/CMTAT_BASE.sol":{"l":{"65":381,"85":381,"86":381,"88":381,"90":381,"91":381,"94":381,"99":381,"100":381,"102":381,"106":381,"107":379,"108":379,"110":379,"111":379,"113":379,"114":379,"120":379,"121":379,"122":379,"125":379,"128":379,"150":2,"163":10,"178":6,"179":4,"194":438,"195":17,"202":421,"203":421,"217":1386,"226":1386,"238":0},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/CMTAT_BASE.sol","s":{"1":381,"2":381,"3":381,"4":381,"5":381,"6":381,"7":381,"8":381,"9":381,"10":381,"11":381,"12":379,"13":379,"14":379,"15":379,"16":379,"17":379,"18":379,"19":379,"20":379,"21":379,"22":379,"23":2,"24":10,"25":6,"26":4,"27":438,"28":421,"29":421,"30":1386,"31":1386,"32":0},"b":{"1":[381,1],"2":[381,0],"3":[379,0],"4":[17,421]},"f":{"1":381,"2":381,"3":379,"4":2,"5":10,"6":6,"7":438,"8":1386,"9":1386,"10":0},"fnMap":{"1":{"name":"initialize","line":64,"loc":{"start":{"line":59,"column":4},"end":{"line":71,"column":4}}},"2":{"name":"__CMTAT_init","line":82,"loc":{"start":{"line":77,"column":4},"end":{"line":129,"column":4}}},"3":{"name":"__CMTAT_init_unchained","line":131,"loc":{"start":{"line":131,"column":4},"end":{"line":133,"column":4}}},"4":{"name":"decimals","line":143,"loc":{"start":{"line":143,"column":4},"end":{"line":151,"column":4}}},"5":{"name":"transferFrom","line":153,"loc":{"start":{"line":153,"column":4},"end":{"line":164,"column":4}}},"6":{"name":"burnAndMint","line":177,"loc":{"start":{"line":177,"column":4},"end":{"line":180,"column":4}}},"7":{"name":"_update","line":189,"loc":{"start":{"line":189,"column":4},"end":{"line":204,"column":4}}},"8":{"name":"_msgSender","line":211,"loc":{"start":{"line":211,"column":4},"end":{"line":218,"column":4}}},"9":{"name":"_contextSuffixLength","line":223,"loc":{"start":{"line":223,"column":4},"end":{"line":227,"column":4}}},"10":{"name":"_msgData","line":232,"loc":{"start":{"line":232,"column":4},"end":{"line":239,"column":4}}}},"statementMap":{"1":{"start":{"line":65,"column":8},"end":{"line":65,"column":2165}},"2":{"start":{"line":85,"column":8},"end":{"line":85,"column":33}},"3":{"start":{"line":86,"column":8},"end":{"line":86,"column":99}},"4":{"start":{"line":88,"column":8},"end":{"line":88,"column":32}},"5":{"start":{"line":90,"column":8},"end":{"line":90,"column":39}},"6":{"start":{"line":91,"column":8},"end":{"line":91,"column":34}},"7":{"start":{"line":94,"column":8},"end":{"line":94,"column":37}},"8":{"start":{"line":99,"column":8},"end":{"line":99,"column":44}},"9":{"start":{"line":100,"column":8},"end":{"line":100,"column":39}},"10":{"start":{"line":102,"column":8},"end":{"line":102,"column":56}},"11":{"start":{"line":106,"column":8},"end":{"line":106,"column":81}},"12":{"start":{"line":107,"column":8},"end":{"line":107,"column":41}},"13":{"start":{"line":108,"column":8},"end":{"line":108,"column":41}},"14":{"start":{"line":110,"column":8},"end":{"line":110,"column":43}},"15":{"start":{"line":111,"column":8},"end":{"line":111,"column":77}},"16":{"start":{"line":113,"column":8},"end":{"line":113,"column":37}},"17":{"start":{"line":114,"column":8},"end":{"line":114,"column":42}},"18":{"start":{"line":120,"column":8},"end":{"line":120,"column":45}},"19":{"start":{"line":121,"column":8},"end":{"line":121,"column":64}},"20":{"start":{"line":122,"column":8},"end":{"line":122,"column":56}},"21":{"start":{"line":125,"column":8},"end":{"line":125,"column":123}},"22":{"start":{"line":128,"column":8},"end":{"line":128,"column":31}},"23":{"start":{"line":150,"column":8},"end":{"line":150,"column":41}},"24":{"start":{"line":163,"column":8},"end":{"line":163,"column":70}},"25":{"start":{"line":178,"column":8},"end":{"line":178,"column":39}},"26":{"start":{"line":179,"column":8},"end":{"line":179,"column":29}},"27":{"start":{"line":194,"column":8},"end":{"line":194,"column":6702}},"28":{"start":{"line":202,"column":8},"end":{"line":202,"column":60}},"29":{"start":{"line":203,"column":8},"end":{"line":203,"column":49}},"30":{"start":{"line":217,"column":8},"end":{"line":217,"column":53}},"31":{"start":{"line":226,"column":9},"end":{"line":226,"column":64}},"32":{"start":{"line":238,"column":8},"end":{"line":238,"column":51}}},"branchMap":{"1":{"line":64,"type":"if","locations":[{"start":{"line":64,"column":21},"end":{"line":64,"column":21}},{"start":{"line":64,"column":21},"end":{"line":64,"column":21}}]},"2":{"line":82,"type":"if","locations":[{"start":{"line":82,"column":15},"end":{"line":82,"column":15}},{"start":{"line":82,"column":15},"end":{"line":82,"column":15}}]},"3":{"line":131,"type":"if","locations":[{"start":{"line":131,"column":47},"end":{"line":131,"column":47}},{"start":{"line":131,"column":47},"end":{"line":131,"column":47}}]},"4":{"line":194,"type":"if","locations":[{"start":{"line":194,"column":8},"end":{"line":194,"column":8}},{"start":{"line":194,"column":8},"end":{"line":194,"column":8}}]}}}, -"contracts/modules/internal/base/SnapshotModuleBase.sol":{"l":{"83":2,"84":2,"92":76,"93":76,"95":76,"96":68,"101":68,"102":48,"105":20,"107":8,"110":8,"112":8,"113":12,"120":28,"132":170,"134":170,"136":168,"138":94,"141":94,"142":2,"148":2,"151":164,"152":164,"159":12,"160":12,"161":10,"163":10,"164":2,"167":8,"168":2,"170":6,"173":6,"174":10,"175":10,"176":10,"179":6,"181":8,"188":22,"190":22,"191":20,"192":18,"193":2,"195":16,"196":12,"197":8,"198":8,"199":2,"205":2,"208":8,"209":4,"210":2,"216":6,"218":6,"225":14,"227":14,"228":10,"229":2,"232":8,"233":2,"235":6,"236":6,"246":10,"247":10,"249":10,"251":8,"252":16,"254":8,"282":1920,"284":1920,"285":1484,"287":436,"301":842,"302":842,"303":842,"304":36,"305":36,"315":421,"316":421,"320":421,"321":18,"322":18,"332":842,"333":834,"335":8,"346":36,"347":36,"348":36,"350":36,"354":22,"358":8,"362":6,"375":489,"376":489,"378":489,"382":403,"385":86,"386":86,"388":86,"389":116,"390":52,"391":52,"394":64,"397":86,"406":26,"407":26,"408":6,"410":20,"413":202,"414":6,"421":46,"422":6,"428":4856},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/base/SnapshotModuleBase.sol","s":{"1":2,"2":2,"3":76,"4":76,"5":76,"6":68,"7":68,"8":48,"9":20,"10":8,"11":8,"12":28,"13":170,"14":170,"15":168,"16":94,"17":94,"18":92,"19":164,"20":164,"21":12,"22":12,"23":10,"24":10,"25":8,"26":2,"27":6,"28":6,"29":8,"30":22,"31":22,"32":20,"33":18,"34":16,"35":12,"36":8,"37":8,"38":6,"39":8,"40":4,"41":6,"42":14,"43":14,"44":10,"45":8,"46":6,"47":6,"48":10,"49":10,"50":10,"51":8,"52":8,"53":1920,"54":1920,"55":1484,"56":436,"57":842,"58":842,"59":842,"60":36,"61":36,"62":421,"63":421,"64":421,"65":842,"66":834,"67":8,"68":36,"69":36,"70":36,"71":36,"72":22,"73":14,"74":8,"75":6,"76":489,"77":489,"78":489,"79":403,"80":86,"81":86,"82":116,"83":86,"84":26,"85":26,"86":20,"87":202,"88":46},"b":{"1":[381,0],"2":[68,8],"3":[48,20],"4":[8,12],"5":[94,74],"6":[2,92],"7":[2,90],"8":[2,8],"9":[2,6],"10":[2,16],"11":[8,4],"12":[2,6],"13":[2,4],"14":[4,4],"15":[2,2],"16":[2,8],"17":[2,6],"18":[1484,436],"19":[36,806],"20":[18,403],"21":[834,8],"22":[22,14],"23":[8,6],"24":[403,86],"25":[403,0],"26":[52,64],"27":[6,20],"28":[6,196],"29":[6,40]},"f":{"1":381,"2":2,"3":76,"4":170,"5":12,"6":22,"7":14,"8":10,"9":1920,"10":842,"11":421,"12":842,"13":36,"14":489,"15":26,"16":202,"17":46,"18":4856},"fnMap":{"1":{"name":"__SnapshotModuleBase_init_unchained","line":70,"loc":{"start":{"line":70,"column":4},"end":{"line":73,"column":4}}},"2":{"name":"getAllSnapshots","line":82,"loc":{"start":{"line":82,"column":4},"end":{"line":85,"column":4}}},"3":{"name":"getNextSnapshots","line":91,"loc":{"start":{"line":91,"column":4},"end":{"line":121,"column":4}}},"4":{"name":"_scheduleSnapshot","line":131,"loc":{"start":{"line":131,"column":4},"end":{"line":153,"column":4}}},"5":{"name":"_scheduleSnapshotNotOptimized","line":158,"loc":{"start":{"line":158,"column":4},"end":{"line":182,"column":4}}},"6":{"name":"_rescheduleSnapshot","line":187,"loc":{"start":{"line":187,"column":4},"end":{"line":219,"column":4}}},"7":{"name":"_unscheduleLastSnapshot","line":224,"loc":{"start":{"line":224,"column":4},"end":{"line":237,"column":4}}},"8":{"name":"_unscheduleSnapshotNotOptimized","line":245,"loc":{"start":{"line":245,"column":4},"end":{"line":255,"column":4}}},"9":{"name":"_valueAt","line":264,"loc":{"start":{"line":264,"column":4},"end":{"line":289,"column":4}}},"10":{"name":"_updateSnapshot","line":297,"loc":{"start":{"line":297,"column":4},"end":{"line":307,"column":4}}},"11":{"name":"_setCurrentSnapshot","line":314,"loc":{"start":{"line":314,"column":4},"end":{"line":324,"column":4}}},"12":{"name":"_lastSnapshot","line":329,"loc":{"start":{"line":329,"column":4},"end":{"line":337,"column":4}}},"13":{"name":"_findScheduledSnapshotIndex","line":343,"loc":{"start":{"line":343,"column":4},"end":{"line":364,"column":4}}},"14":{"name":"_findScheduledMostRecentPastSnapshot","line":370,"loc":{"start":{"line":370,"column":4},"end":{"line":398,"column":4}}},"15":{"name":"_findAndRevertScheduledSnapshotIndex","line":403,"loc":{"start":{"line":403,"column":4},"end":{"line":411,"column":4}}},"16":{"name":"_checkTimeInThePast","line":412,"loc":{"start":{"line":412,"column":4},"end":{"line":419,"column":4}}},"17":{"name":"_checkTimeSnapshotAlreadyDone","line":420,"loc":{"start":{"line":420,"column":4},"end":{"line":424,"column":4}}},"18":{"name":"_getSnapshotModuleBaseStorage","line":427,"loc":{"start":{"line":427,"column":4},"end":{"line":431,"column":4}}}},"statementMap":{"1":{"start":{"line":83,"column":8},"end":{"line":83,"column":77}},"2":{"start":{"line":84,"column":8},"end":{"line":84,"column":36}},"3":{"start":{"line":92,"column":8},"end":{"line":92,"column":77}},"4":{"start":{"line":93,"column":8},"end":{"line":93,"column":65}},"5":{"start":{"line":95,"column":8},"end":{"line":95,"column":3656}},"6":{"start":{"line":96,"column":12},"end":{"line":96,"column":3754}},"7":{"start":{"line":101,"column":12},"end":{"line":101,"column":3917}},"8":{"start":{"line":102,"column":16},"end":{"line":102,"column":44}},"9":{"start":{"line":105,"column":16},"end":{"line":105,"column":4127}},"10":{"start":{"line":107,"column":20},"end":{"line":107,"column":4317}},"11":{"start":{"line":112,"column":20},"end":{"line":112,"column":4595}},"12":{"start":{"line":120,"column":8},"end":{"line":120,"column":36}},"13":{"start":{"line":132,"column":8},"end":{"line":132,"column":77}},"14":{"start":{"line":134,"column":7},"end":{"line":134,"column":31}},"15":{"start":{"line":136,"column":8},"end":{"line":136,"column":5452}},"16":{"start":{"line":138,"column":12},"end":{"line":138,"column":5563}},"17":{"start":{"line":141,"column":12},"end":{"line":141,"column":5688}},"18":{"start":{"line":147,"column":19},"end":{"line":147,"column":5941}},"19":{"start":{"line":151,"column":8},"end":{"line":151,"column":39}},"20":{"start":{"line":152,"column":8},"end":{"line":152,"column":38}},"21":{"start":{"line":159,"column":8},"end":{"line":159,"column":77}},"22":{"start":{"line":160,"column":8},"end":{"line":160,"column":32}},"23":{"start":{"line":161,"column":8},"end":{"line":161,"column":73}},"24":{"start":{"line":163,"column":8},"end":{"line":163,"column":6517}},"25":{"start":{"line":167,"column":8},"end":{"line":167,"column":6708}},"26":{"start":{"line":168,"column":12},"end":{"line":168,"column":43}},"27":{"start":{"line":170,"column":12},"end":{"line":170,"column":6832}},"28":{"start":{"line":173,"column":12},"end":{"line":173,"column":6959}},"29":{"start":{"line":181,"column":8},"end":{"line":181,"column":38}},"30":{"start":{"line":188,"column":8},"end":{"line":188,"column":77}},"31":{"start":{"line":190,"column":8},"end":{"line":190,"column":45}},"32":{"start":{"line":191,"column":8},"end":{"line":191,"column":35}},"33":{"start":{"line":192,"column":8},"end":{"line":192,"column":7690}},"34":{"start":{"line":195,"column":8},"end":{"line":195,"column":69}},"35":{"start":{"line":196,"column":8},"end":{"line":196,"column":7890}},"36":{"start":{"line":197,"column":12},"end":{"line":197,"column":71}},"37":{"start":{"line":198,"column":12},"end":{"line":198,"column":8027}},"38":{"start":{"line":204,"column":19},"end":{"line":204,"column":8285}},"39":{"start":{"line":208,"column":8},"end":{"line":208,"column":8424}},"40":{"start":{"line":209,"column":12},"end":{"line":209,"column":8466}},"41":{"start":{"line":218,"column":8},"end":{"line":218,"column":47}},"42":{"start":{"line":225,"column":8},"end":{"line":225,"column":77}},"43":{"start":{"line":227,"column":8},"end":{"line":227,"column":42}},"44":{"start":{"line":228,"column":8},"end":{"line":228,"column":9172}},"45":{"start":{"line":232,"column":8},"end":{"line":232,"column":9372}},"46":{"start":{"line":235,"column":8},"end":{"line":235,"column":34}},"47":{"start":{"line":236,"column":8},"end":{"line":236,"column":37}},"48":{"start":{"line":246,"column":8},"end":{"line":246,"column":77}},"49":{"start":{"line":247,"column":8},"end":{"line":247,"column":42}},"50":{"start":{"line":249,"column":8},"end":{"line":249,"column":66}},"51":{"start":{"line":251,"column":8},"end":{"line":251,"column":10193}},"52":{"start":{"line":254,"column":8},"end":{"line":254,"column":34}},"53":{"start":{"line":282,"column":8},"end":{"line":282,"column":58}},"54":{"start":{"line":284,"column":8},"end":{"line":284,"column":12022}},"55":{"start":{"line":285,"column":12},"end":{"line":285,"column":29}},"56":{"start":{"line":287,"column":12},"end":{"line":287,"column":50}},"57":{"start":{"line":301,"column":8},"end":{"line":301,"column":77}},"58":{"start":{"line":302,"column":8},"end":{"line":302,"column":48}},"59":{"start":{"line":303,"column":8},"end":{"line":303,"column":12660}},"60":{"start":{"line":304,"column":12},"end":{"line":304,"column":38}},"61":{"start":{"line":305,"column":12},"end":{"line":305,"column":46}},"62":{"start":{"line":315,"column":8},"end":{"line":315,"column":77}},"63":{"start":{"line":316,"column":8},"end":{"line":316,"column":13150}},"64":{"start":{"line":320,"column":8},"end":{"line":320,"column":13254}},"65":{"start":{"line":332,"column":8},"end":{"line":332,"column":13608}},"66":{"start":{"line":333,"column":12},"end":{"line":333,"column":20}},"67":{"start":{"line":335,"column":12},"end":{"line":335,"column":38}},"68":{"start":{"line":346,"column":8},"end":{"line":346,"column":77}},"69":{"start":{"line":347,"column":8},"end":{"line":347,"column":71}},"70":{"start":{"line":348,"column":8},"end":{"line":348,"column":72}},"71":{"start":{"line":350,"column":8},"end":{"line":350,"column":14238}},"72":{"start":{"line":354,"column":12},"end":{"line":354,"column":37}},"73":{"start":{"line":357,"column":13},"end":{"line":357,"column":14455}},"74":{"start":{"line":358,"column":12},"end":{"line":358,"column":38}},"75":{"start":{"line":362,"column":12},"end":{"line":362,"column":53}},"76":{"start":{"line":375,"column":8},"end":{"line":375,"column":77}},"77":{"start":{"line":376,"column":8},"end":{"line":376,"column":63}},"78":{"start":{"line":378,"column":8},"end":{"line":378,"column":15172}},"79":{"start":{"line":382,"column":12},"end":{"line":382,"column":40}},"80":{"start":{"line":385,"column":8},"end":{"line":385,"column":26}},"81":{"start":{"line":388,"column":8},"end":{"line":388,"column":15537}},"82":{"start":{"line":389,"column":12},"end":{"line":389,"column":15625}},"83":{"start":{"line":397,"column":8},"end":{"line":397,"column":34}},"84":{"start":{"line":406,"column":8},"end":{"line":406,"column":73}},"85":{"start":{"line":407,"column":8},"end":{"line":407,"column":16171}},"86":{"start":{"line":410,"column":8},"end":{"line":410,"column":20}},"87":{"start":{"line":413,"column":8},"end":{"line":413,"column":16370}},"88":{"start":{"line":421,"column":8},"end":{"line":421,"column":16673}}},"branchMap":{"1":{"line":70,"type":"if","locations":[{"start":{"line":70,"column":60},"end":{"line":70,"column":60}},{"start":{"line":70,"column":60},"end":{"line":70,"column":60}}]},"2":{"line":95,"type":"if","locations":[{"start":{"line":95,"column":8},"end":{"line":95,"column":8}},{"start":{"line":95,"column":8},"end":{"line":95,"column":8}}]},"3":{"line":101,"type":"if","locations":[{"start":{"line":101,"column":12},"end":{"line":101,"column":12}},{"start":{"line":101,"column":12},"end":{"line":101,"column":12}}]},"4":{"line":105,"type":"if","locations":[{"start":{"line":105,"column":16},"end":{"line":105,"column":16}},{"start":{"line":105,"column":16},"end":{"line":105,"column":16}}]},"5":{"line":136,"type":"if","locations":[{"start":{"line":136,"column":8},"end":{"line":136,"column":8}},{"start":{"line":136,"column":8},"end":{"line":136,"column":8}}]},"6":{"line":141,"type":"if","locations":[{"start":{"line":141,"column":12},"end":{"line":141,"column":12}},{"start":{"line":141,"column":12},"end":{"line":141,"column":12}}]},"7":{"line":147,"type":"if","locations":[{"start":{"line":147,"column":19},"end":{"line":147,"column":19}},{"start":{"line":147,"column":19},"end":{"line":147,"column":19}}]},"8":{"line":163,"type":"if","locations":[{"start":{"line":163,"column":8},"end":{"line":163,"column":8}},{"start":{"line":163,"column":8},"end":{"line":163,"column":8}}]},"9":{"line":167,"type":"if","locations":[{"start":{"line":167,"column":8},"end":{"line":167,"column":8}},{"start":{"line":167,"column":8},"end":{"line":167,"column":8}}]},"10":{"line":192,"type":"if","locations":[{"start":{"line":192,"column":8},"end":{"line":192,"column":8}},{"start":{"line":192,"column":8},"end":{"line":192,"column":8}}]},"11":{"line":196,"type":"if","locations":[{"start":{"line":196,"column":8},"end":{"line":196,"column":8}},{"start":{"line":196,"column":8},"end":{"line":196,"column":8}}]},"12":{"line":198,"type":"if","locations":[{"start":{"line":198,"column":12},"end":{"line":198,"column":12}},{"start":{"line":198,"column":12},"end":{"line":198,"column":12}}]},"13":{"line":204,"type":"if","locations":[{"start":{"line":204,"column":19},"end":{"line":204,"column":19}},{"start":{"line":204,"column":19},"end":{"line":204,"column":19}}]},"14":{"line":208,"type":"if","locations":[{"start":{"line":208,"column":8},"end":{"line":208,"column":8}},{"start":{"line":208,"column":8},"end":{"line":208,"column":8}}]},"15":{"line":209,"type":"if","locations":[{"start":{"line":209,"column":12},"end":{"line":209,"column":12}},{"start":{"line":209,"column":12},"end":{"line":209,"column":12}}]},"16":{"line":228,"type":"if","locations":[{"start":{"line":228,"column":8},"end":{"line":228,"column":8}},{"start":{"line":228,"column":8},"end":{"line":228,"column":8}}]},"17":{"line":232,"type":"if","locations":[{"start":{"line":232,"column":8},"end":{"line":232,"column":8}},{"start":{"line":232,"column":8},"end":{"line":232,"column":8}}]},"18":{"line":284,"type":"if","locations":[{"start":{"line":284,"column":8},"end":{"line":284,"column":8}},{"start":{"line":284,"column":8},"end":{"line":284,"column":8}}]},"19":{"line":303,"type":"if","locations":[{"start":{"line":303,"column":8},"end":{"line":303,"column":8}},{"start":{"line":303,"column":8},"end":{"line":303,"column":8}}]},"20":{"line":320,"type":"if","locations":[{"start":{"line":320,"column":8},"end":{"line":320,"column":8}},{"start":{"line":320,"column":8},"end":{"line":320,"column":8}}]},"21":{"line":332,"type":"if","locations":[{"start":{"line":332,"column":8},"end":{"line":332,"column":8}},{"start":{"line":332,"column":8},"end":{"line":332,"column":8}}]},"22":{"line":350,"type":"if","locations":[{"start":{"line":350,"column":8},"end":{"line":350,"column":8}},{"start":{"line":350,"column":8},"end":{"line":350,"column":8}}]},"23":{"line":357,"type":"if","locations":[{"start":{"line":357,"column":13},"end":{"line":357,"column":13}},{"start":{"line":357,"column":13},"end":{"line":357,"column":13}}]},"24":{"line":378,"type":"if","locations":[{"start":{"line":378,"column":8},"end":{"line":378,"column":8}},{"start":{"line":378,"column":8},"end":{"line":378,"column":8}}]},"25":{"line":379,"type":"cond-expr","locations":[{"start":{"line":379,"column":12},"end":{"line":379,"column":32}},{"start":{"line":380,"column":12},"end":{"line":380,"column":77}}]},"26":{"line":389,"type":"if","locations":[{"start":{"line":389,"column":12},"end":{"line":389,"column":12}},{"start":{"line":389,"column":12},"end":{"line":389,"column":12}}]},"27":{"line":407,"type":"if","locations":[{"start":{"line":407,"column":8},"end":{"line":407,"column":8}},{"start":{"line":407,"column":8},"end":{"line":407,"column":8}}]},"28":{"line":413,"type":"if","locations":[{"start":{"line":413,"column":8},"end":{"line":413,"column":8}},{"start":{"line":413,"column":8},"end":{"line":413,"column":8}}]},"29":{"line":421,"type":"if","locations":[{"start":{"line":421,"column":8},"end":{"line":421,"column":8}},{"start":{"line":421,"column":8},"end":{"line":421,"column":8}}]}}}, -"contracts/modules/internal/EnforcementModuleInternal.sol":{"l":{"65":944,"66":944,"83":22,"84":22,"85":2,"87":20,"88":20,"89":20,"101":8,"102":8,"103":2,"105":6,"106":6,"108":6,"113":974},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/EnforcementModuleInternal.sol","s":{"1":944,"2":944,"3":22,"4":22,"5":2,"6":20,"7":20,"8":8,"9":8,"10":2,"11":6,"12":6},"b":{"1":[381,0],"2":[2,20],"3":[2,6]},"f":{"1":381,"2":944,"3":22,"4":8,"5":974},"fnMap":{"1":{"name":"__Enforcement_init_unchained","line":53,"loc":{"start":{"line":53,"column":4},"end":{"line":55,"column":4}}},"2":{"name":"frozen","line":64,"loc":{"start":{"line":64,"column":4},"end":{"line":67,"column":4}}},"3":{"name":"_freeze","line":79,"loc":{"start":{"line":79,"column":4},"end":{"line":90,"column":4}}},"4":{"name":"_unfreeze","line":97,"loc":{"start":{"line":97,"column":4},"end":{"line":109,"column":4}}},"5":{"name":"_getEnforcementModuleInternalStorage","line":112,"loc":{"start":{"line":112,"column":4},"end":{"line":116,"column":4}}}},"statementMap":{"1":{"start":{"line":65,"column":8},"end":{"line":65,"column":91}},"2":{"start":{"line":66,"column":8},"end":{"line":66,"column":33}},"3":{"start":{"line":83,"column":8},"end":{"line":83,"column":91}},"4":{"start":{"line":84,"column":8},"end":{"line":84,"column":2789}},"5":{"start":{"line":85,"column":12},"end":{"line":85,"column":24}},"6":{"start":{"line":88,"column":8},"end":{"line":88,"column":58}},"7":{"start":{"line":89,"column":8},"end":{"line":89,"column":19}},"8":{"start":{"line":101,"column":8},"end":{"line":101,"column":91}},"9":{"start":{"line":102,"column":8},"end":{"line":102,"column":3351}},"10":{"start":{"line":103,"column":12},"end":{"line":103,"column":24}},"11":{"start":{"line":106,"column":8},"end":{"line":106,"column":60}},"12":{"start":{"line":108,"column":8},"end":{"line":108,"column":19}}},"branchMap":{"1":{"line":53,"type":"if","locations":[{"start":{"line":53,"column":53},"end":{"line":53,"column":53}},{"start":{"line":53,"column":53},"end":{"line":53,"column":53}}]},"2":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":8},"end":{"line":84,"column":8}},{"start":{"line":84,"column":8},"end":{"line":84,"column":8}}]},"3":{"line":102,"type":"if","locations":[{"start":{"line":102,"column":8},"end":{"line":102,"column":8}},{"start":{"line":102,"column":8},"end":{"line":102,"column":8}}]}}}, -"contracts/modules/internal/ERC20SnapshotModuleInternal.sol":{"l":{"35":480,"36":480,"44":160,"45":160,"46":480,"48":160,"56":80,"57":80,"58":80,"59":80,"71":1200,"72":1200,"77":1200,"86":720,"87":720,"91":720,"106":421,"107":421,"109":77,"110":77,"112":43,"115":34,"119":344,"120":344,"128":464,"129":464,"136":378,"137":378},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/ERC20SnapshotModuleInternal.sol","s":{"1":160,"2":80,"3":1200,"4":1200,"5":1200,"6":720,"7":720,"8":720,"9":421,"10":421,"11":77,"12":77,"13":43,"14":34,"15":344,"16":344,"17":464,"18":464,"19":378,"20":378},"b":{"1":[381,0],"2":[400,800],"3":[36,684],"4":[77,344],"5":[43,34]},"f":{"1":381,"2":480,"3":160,"4":80,"5":1200,"6":720,"7":421,"8":464,"9":378},"fnMap":{"1":{"name":"__ERC20Snapshot_init_unchained","line":21,"loc":{"start":{"line":21,"column":4},"end":{"line":24,"column":4}}},"2":{"name":"snapshotInfo","line":34,"loc":{"start":{"line":34,"column":4},"end":{"line":37,"column":4}}},"3":{"name":"snapshotInfoBatch","line":43,"loc":{"start":{"line":43,"column":4},"end":{"line":49,"column":4}}},"4":{"name":"snapshotInfoBatch","line":55,"loc":{"start":{"line":55,"column":4},"end":{"line":61,"column":4}}},"5":{"name":"snapshotBalanceOf","line":67,"loc":{"start":{"line":67,"column":4},"end":{"line":78,"column":4}}},"6":{"name":"snapshotTotalSupply","line":85,"loc":{"start":{"line":85,"column":4},"end":{"line":92,"column":4}}},"7":{"name":"_snapshotUpdate","line":102,"loc":{"start":{"line":102,"column":4},"end":{"line":122,"column":4}}},"8":{"name":"_updateAccountSnapshot","line":127,"loc":{"start":{"line":127,"column":4},"end":{"line":130,"column":4}}},"9":{"name":"_updateTotalSupplySnapshot","line":135,"loc":{"start":{"line":135,"column":4},"end":{"line":138,"column":4}}}},"statementMap":{"1":{"start":{"line":45,"column":8},"end":{"line":45,"column":2070}},"2":{"start":{"line":58,"column":8},"end":{"line":58,"column":2733}},"3":{"start":{"line":71,"column":8},"end":{"line":71,"column":77}},"4":{"start":{"line":72,"column":8},"end":{"line":72,"column":3316}},"5":{"start":{"line":77,"column":8},"end":{"line":77,"column":53}},"6":{"start":{"line":86,"column":8},"end":{"line":86,"column":77}},"7":{"start":{"line":87,"column":8},"end":{"line":87,"column":3868}},"8":{"start":{"line":91,"column":8},"end":{"line":91,"column":50}},"9":{"start":{"line":106,"column":8},"end":{"line":106,"column":28}},"10":{"start":{"line":107,"column":8},"end":{"line":107,"column":4593}},"11":{"start":{"line":109,"column":12},"end":{"line":109,"column":39}},"12":{"start":{"line":110,"column":12},"end":{"line":110,"column":4719}},"13":{"start":{"line":112,"column":16},"end":{"line":112,"column":41}},"14":{"start":{"line":115,"column":16},"end":{"line":115,"column":43}},"15":{"start":{"line":119,"column":12},"end":{"line":119,"column":37}},"16":{"start":{"line":120,"column":12},"end":{"line":120,"column":39}},"17":{"start":{"line":128,"column":8},"end":{"line":128,"column":77}},"18":{"start":{"line":129,"column":8},"end":{"line":129,"column":79}},"19":{"start":{"line":136,"column":8},"end":{"line":136,"column":77}},"20":{"start":{"line":137,"column":8},"end":{"line":137,"column":62}}},"branchMap":{"1":{"line":21,"type":"if","locations":[{"start":{"line":21,"column":55},"end":{"line":21,"column":55}},{"start":{"line":21,"column":55},"end":{"line":21,"column":55}}]},"2":{"line":77,"type":"if","locations":[{"start":{"line":77,"column":29},"end":{"line":77,"column":33}},{"start":{"line":77,"column":37},"end":{"line":77,"column":52}}]},"3":{"line":91,"type":"if","locations":[{"start":{"line":91,"column":29},"end":{"line":91,"column":33}},{"start":{"line":91,"column":37},"end":{"line":91,"column":49}}]},"4":{"line":107,"type":"if","locations":[{"start":{"line":107,"column":8},"end":{"line":107,"column":8}},{"start":{"line":107,"column":8},"end":{"line":107,"column":8}}]},"5":{"line":110,"type":"if","locations":[{"start":{"line":110,"column":12},"end":{"line":110,"column":12}},{"start":{"line":110,"column":12},"end":{"line":110,"column":12}}]}}}, -"contracts/modules/internal/ValidationModuleInternal.sol":{"l":{"33":381,"34":18,"35":18,"36":18,"46":32,"47":32,"63":12,"64":12,"73":6,"74":6,"85":6,"86":6,"90":60,"91":60,"97":628},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/ValidationModuleInternal.sol","s":{"1":381,"2":18,"3":18,"4":32,"5":32,"6":12,"7":12,"8":6,"9":6,"10":6,"11":6,"12":60,"13":60},"b":{"1":[381,0],"2":[18,363]},"f":{"1":381,"2":32,"3":12,"4":6,"5":6,"6":60,"7":628},"fnMap":{"1":{"name":"__Validation_init_unchained","line":32,"loc":{"start":{"line":30,"column":4},"end":{"line":38,"column":4}}},"2":{"name":"ruleEngine","line":45,"loc":{"start":{"line":45,"column":4},"end":{"line":48,"column":4}}},"3":{"name":"_validateTransfer","line":58,"loc":{"start":{"line":58,"column":4},"end":{"line":65,"column":4}}},"4":{"name":"_messageForTransferRestriction","line":70,"loc":{"start":{"line":70,"column":4},"end":{"line":75,"column":4}}},"5":{"name":"_detectTransferRestriction","line":80,"loc":{"start":{"line":80,"column":4},"end":{"line":87,"column":4}}},"6":{"name":"_operateOnTransfer","line":89,"loc":{"start":{"line":89,"column":4},"end":{"line":92,"column":4}}},"7":{"name":"_getValidationModuleInternalStorage","line":96,"loc":{"start":{"line":96,"column":4},"end":{"line":100,"column":4}}}},"statementMap":{"1":{"start":{"line":33,"column":8},"end":{"line":33,"column":1219}},"2":{"start":{"line":34,"column":12},"end":{"line":34,"column":93}},"3":{"start":{"line":36,"column":12},"end":{"line":36,"column":40}},"4":{"start":{"line":46,"column":8},"end":{"line":46,"column":89}},"5":{"start":{"line":47,"column":8},"end":{"line":47,"column":28}},"6":{"start":{"line":63,"column":8},"end":{"line":63,"column":89}},"7":{"start":{"line":64,"column":8},"end":{"line":64,"column":63}},"8":{"start":{"line":73,"column":8},"end":{"line":73,"column":89}},"9":{"start":{"line":74,"column":8},"end":{"line":74,"column":75}},"10":{"start":{"line":85,"column":8},"end":{"line":85,"column":89}},"11":{"start":{"line":86,"column":8},"end":{"line":86,"column":72}},"12":{"start":{"line":90,"column":8},"end":{"line":90,"column":89}},"13":{"start":{"line":91,"column":8},"end":{"line":91,"column":64}}},"branchMap":{"1":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":15},"end":{"line":32,"column":15}},{"start":{"line":32,"column":15},"end":{"line":32,"column":15}}]},"2":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":8},"end":{"line":33,"column":8}},{"start":{"line":33,"column":8},"end":{"line":33,"column":8}}]}}}, -"contracts/modules/security/AuthorizationModule.sol":{"l":{"32":381,"33":2,"35":379,"36":379,"37":16,"38":16,"39":16,"49":2,"50":2,"61":16,"62":16,"63":4,"65":12,"66":12,"70":40,"71":40,"72":8,"73":8,"75":4,"78":36,"82":10,"83":10,"84":8,"85":8,"87":4,"90":6,"101":1280,"102":759,"104":521,"115":84},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/security/AuthorizationModule.sol","s":{"1":381,"2":379,"3":379,"4":16,"5":16,"6":2,"7":2,"8":16,"9":16,"10":12,"11":40,"12":40,"13":8,"14":8,"15":36,"16":10,"17":10,"18":8,"19":8,"20":6,"21":1280,"22":759,"23":521},"b":{"1":[381,0],"2":[2,379],"3":[16,363],"4":[16,4],"5":[4,12],"6":[40,2],"7":[8,32],"8":[4,4],"9":[10,2],"10":[8,2],"11":[4,4],"12":[759,521]},"f":{"1":381,"2":2,"3":16,"4":40,"5":10,"6":1280,"7":84},"fnMap":{"1":{"name":"__AuthorizationModule_init_unchained","line":31,"loc":{"start":{"line":30,"column":4},"end":{"line":41,"column":4}}},"2":{"name":"authorizationEngine","line":48,"loc":{"start":{"line":48,"column":4},"end":{"line":51,"column":4}}},"3":{"name":"setAuthorizationEngine","line":60,"loc":{"start":{"line":58,"column":4},"end":{"line":67,"column":4}}},"4":{"name":"grantRole","line":69,"loc":{"start":{"line":69,"column":4},"end":{"line":79,"column":4}}},"5":{"name":"revokeRole","line":81,"loc":{"start":{"line":81,"column":4},"end":{"line":91,"column":4}}},"6":{"name":"hasRole","line":96,"loc":{"start":{"line":96,"column":4},"end":{"line":105,"column":4}}},"7":{"name":"_getAuthorizationModuleStorage","line":114,"loc":{"start":{"line":114,"column":4},"end":{"line":118,"column":4}}}},"statementMap":{"1":{"start":{"line":32,"column":8},"end":{"line":32,"column":1354}},"2":{"start":{"line":35,"column":8},"end":{"line":35,"column":44}},"3":{"start":{"line":36,"column":8},"end":{"line":36,"column":1521}},"4":{"start":{"line":37,"column":12},"end":{"line":37,"column":83}},"5":{"start":{"line":39,"column":12},"end":{"line":39,"column":58}},"6":{"start":{"line":49,"column":8},"end":{"line":49,"column":79}},"7":{"start":{"line":50,"column":8},"end":{"line":50,"column":37}},"8":{"start":{"line":61,"column":8},"end":{"line":61,"column":79}},"9":{"start":{"line":62,"column":8},"end":{"line":62,"column":2578}},"10":{"start":{"line":66,"column":8},"end":{"line":66,"column":54}},"11":{"start":{"line":70,"column":8},"end":{"line":70,"column":79}},"12":{"start":{"line":71,"column":8},"end":{"line":71,"column":3034}},"13":{"start":{"line":72,"column":12},"end":{"line":72,"column":82}},"14":{"start":{"line":73,"column":12},"end":{"line":73,"column":3188}},"15":{"start":{"line":78,"column":8},"end":{"line":78,"column":64}},"16":{"start":{"line":82,"column":8},"end":{"line":82,"column":79}},"17":{"start":{"line":83,"column":8},"end":{"line":83,"column":3630}},"18":{"start":{"line":84,"column":12},"end":{"line":84,"column":83}},"19":{"start":{"line":85,"column":12},"end":{"line":85,"column":3785}},"20":{"start":{"line":90,"column":8},"end":{"line":90,"column":65}},"21":{"start":{"line":101,"column":8},"end":{"line":101,"column":4316}},"22":{"start":{"line":102,"column":12},"end":{"line":102,"column":23}},"23":{"start":{"line":104,"column":8},"end":{"line":104,"column":62}}},"branchMap":{"1":{"line":31,"type":"if","locations":[{"start":{"line":31,"column":13},"end":{"line":31,"column":13}},{"start":{"line":31,"column":13},"end":{"line":31,"column":13}}]},"2":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":8},"end":{"line":32,"column":8}},{"start":{"line":32,"column":8},"end":{"line":32,"column":8}}]},"3":{"line":36,"type":"if","locations":[{"start":{"line":36,"column":8},"end":{"line":36,"column":8}},{"start":{"line":36,"column":8},"end":{"line":36,"column":8}}]},"4":{"line":60,"type":"if","locations":[{"start":{"line":60,"column":15},"end":{"line":60,"column":15}},{"start":{"line":60,"column":15},"end":{"line":60,"column":15}}]},"5":{"line":62,"type":"if","locations":[{"start":{"line":62,"column":8},"end":{"line":62,"column":8}},{"start":{"line":62,"column":8},"end":{"line":62,"column":8}}]},"6":{"line":69,"type":"if","locations":[{"start":{"line":69,"column":70},"end":{"line":69,"column":70}},{"start":{"line":69,"column":70},"end":{"line":69,"column":70}}]},"7":{"line":71,"type":"if","locations":[{"start":{"line":71,"column":8},"end":{"line":71,"column":8}},{"start":{"line":71,"column":8},"end":{"line":71,"column":8}}]},"8":{"line":73,"type":"if","locations":[{"start":{"line":73,"column":12},"end":{"line":73,"column":12}},{"start":{"line":73,"column":12},"end":{"line":73,"column":12}}]},"9":{"line":81,"type":"if","locations":[{"start":{"line":81,"column":71},"end":{"line":81,"column":71}},{"start":{"line":81,"column":71},"end":{"line":81,"column":71}}]},"10":{"line":83,"type":"if","locations":[{"start":{"line":83,"column":8},"end":{"line":83,"column":8}},{"start":{"line":83,"column":8},"end":{"line":83,"column":8}}]},"11":{"line":85,"type":"if","locations":[{"start":{"line":85,"column":12},"end":{"line":85,"column":12}},{"start":{"line":85,"column":12},"end":{"line":85,"column":12}}]},"12":{"line":101,"type":"if","locations":[{"start":{"line":101,"column":8},"end":{"line":101,"column":8}},{"start":{"line":101,"column":8},"end":{"line":101,"column":8}}]}}}, -"contracts/modules/wrapper/controllers/ValidationModule.sol":{"l":{"44":18,"45":18,"46":3,"48":15,"49":15,"60":20,"61":20,"62":3,"67":4,"72":2,"77":2,"79":6,"81":3,"97":17,"98":17,"99":4,"101":2,"103":2,"105":6,"107":3,"116":19,"117":4,"119":15,"120":15,"121":12,"123":3,"135":457,"136":18,"138":439,"142":438,"143":14,"145":424,"146":424,"147":60,"149":364},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/controllers/ValidationModule.sol","s":{"1":18,"2":18,"3":15,"4":20,"5":20,"6":3,"7":17,"8":4,"9":13,"10":2,"11":11,"12":2,"13":9,"14":6,"15":3,"16":17,"17":17,"18":4,"19":13,"20":2,"21":11,"22":2,"23":9,"24":6,"25":3,"26":19,"27":4,"28":15,"29":15,"30":12,"31":3,"32":457,"33":18,"34":439,"35":438,"36":14,"37":424,"38":424,"39":60,"40":364},"b":{"1":[379,0],"2":[18,3],"3":[3,15],"4":[3,17],"5":[4,13],"6":[2,11],"7":[2,9],"8":[6,3],"9":[4,13],"10":[2,11],"11":[2,9],"12":[6,3],"13":[4,15],"14":[12,3],"15":[18,439],"16":[12,4],"17":[4,2],"18":[14,424],"19":[60,364]},"f":{"1":379,"2":18,"3":20,"4":17,"5":19,"6":457,"7":438},"fnMap":{"1":{"name":"__ValidationModule_init_unchained","line":28,"loc":{"start":{"line":28,"column":4},"end":{"line":30,"column":4}}},"2":{"name":"setRuleEngine","line":43,"loc":{"start":{"line":41,"column":4},"end":{"line":50,"column":4}}},"3":{"name":"messageForTransferRestriction","line":57,"loc":{"start":{"line":57,"column":4},"end":{"line":83,"column":4}}},"4":{"name":"detectTransferRestriction","line":92,"loc":{"start":{"line":92,"column":4},"end":{"line":109,"column":4}}},"5":{"name":"validateTransfer","line":111,"loc":{"start":{"line":111,"column":4},"end":{"line":124,"column":4}}},"6":{"name":"_validateTransferByModule","line":130,"loc":{"start":{"line":130,"column":4},"end":{"line":139,"column":4}}},"7":{"name":"_operateOnTransfer","line":141,"loc":{"start":{"line":141,"column":4},"end":{"line":150,"column":4}}}},"statementMap":{"1":{"start":{"line":44,"column":8},"end":{"line":44,"column":89}},"2":{"start":{"line":45,"column":8},"end":{"line":45,"column":1409}},"3":{"start":{"line":49,"column":8},"end":{"line":49,"column":36}},"4":{"start":{"line":60,"column":10},"end":{"line":60,"column":91}},"5":{"start":{"line":61,"column":8},"end":{"line":61,"column":2191}},"6":{"start":{"line":62,"column":12},"end":{"line":62,"column":35}},"7":{"start":{"line":63,"column":15},"end":{"line":63,"column":2307}},"8":{"start":{"line":67,"column":12},"end":{"line":67,"column":48}},"9":{"start":{"line":68,"column":15},"end":{"line":68,"column":2483}},"10":{"start":{"line":72,"column":12},"end":{"line":72,"column":53}},"11":{"start":{"line":73,"column":15},"end":{"line":73,"column":2669}},"12":{"start":{"line":77,"column":12},"end":{"line":77,"column":51}},"13":{"start":{"line":78,"column":15},"end":{"line":78,"column":2851}},"14":{"start":{"line":79,"column":12},"end":{"line":79,"column":66}},"15":{"start":{"line":81,"column":12},"end":{"line":81,"column":36}},"16":{"start":{"line":97,"column":8},"end":{"line":97,"column":89}},"17":{"start":{"line":98,"column":8},"end":{"line":98,"column":3641}},"18":{"start":{"line":99,"column":12},"end":{"line":99,"column":69}},"19":{"start":{"line":100,"column":15},"end":{"line":100,"column":3743}},"20":{"start":{"line":101,"column":12},"end":{"line":101,"column":74}},"21":{"start":{"line":102,"column":15},"end":{"line":102,"column":3854}},"22":{"start":{"line":103,"column":12},"end":{"line":103,"column":72}},"23":{"start":{"line":104,"column":15},"end":{"line":104,"column":3961}},"24":{"start":{"line":105,"column":12},"end":{"line":105,"column":63}},"25":{"start":{"line":107,"column":12},"end":{"line":107,"column":56}},"26":{"start":{"line":116,"column":8},"end":{"line":116,"column":4310}},"27":{"start":{"line":117,"column":12},"end":{"line":117,"column":24}},"28":{"start":{"line":119,"column":8},"end":{"line":119,"column":89}},"29":{"start":{"line":120,"column":8},"end":{"line":120,"column":4497}},"30":{"start":{"line":121,"column":12},"end":{"line":121,"column":54}},"31":{"start":{"line":123,"column":8},"end":{"line":123,"column":19}},"32":{"start":{"line":135,"column":8},"end":{"line":135,"column":4983}},"33":{"start":{"line":136,"column":12},"end":{"line":136,"column":24}},"34":{"start":{"line":138,"column":8},"end":{"line":138,"column":19}},"35":{"start":{"line":142,"column":8},"end":{"line":142,"column":5209}},"36":{"start":{"line":143,"column":12},"end":{"line":143,"column":24}},"37":{"start":{"line":145,"column":8},"end":{"line":145,"column":89}},"38":{"start":{"line":146,"column":8},"end":{"line":146,"column":5395}},"39":{"start":{"line":147,"column":12},"end":{"line":147,"column":80}},"40":{"start":{"line":149,"column":8},"end":{"line":149,"column":19}}},"branchMap":{"1":{"line":28,"type":"if","locations":[{"start":{"line":28,"column":58},"end":{"line":28,"column":58}},{"start":{"line":28,"column":58},"end":{"line":28,"column":58}}]},"2":{"line":43,"type":"if","locations":[{"start":{"line":43,"column":15},"end":{"line":43,"column":15}},{"start":{"line":43,"column":15},"end":{"line":43,"column":15}}]},"3":{"line":45,"type":"if","locations":[{"start":{"line":45,"column":8},"end":{"line":45,"column":8}},{"start":{"line":45,"column":8},"end":{"line":45,"column":8}}]},"4":{"line":61,"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":61,"column":8}},{"start":{"line":61,"column":8},"end":{"line":61,"column":8}}]},"5":{"line":63,"type":"if","locations":[{"start":{"line":63,"column":15},"end":{"line":63,"column":15}},{"start":{"line":63,"column":15},"end":{"line":63,"column":15}}]},"6":{"line":68,"type":"if","locations":[{"start":{"line":68,"column":15},"end":{"line":68,"column":15}},{"start":{"line":68,"column":15},"end":{"line":68,"column":15}}]},"7":{"line":73,"type":"if","locations":[{"start":{"line":73,"column":15},"end":{"line":73,"column":15}},{"start":{"line":73,"column":15},"end":{"line":73,"column":15}}]},"8":{"line":78,"type":"if","locations":[{"start":{"line":78,"column":15},"end":{"line":78,"column":15}},{"start":{"line":78,"column":15},"end":{"line":78,"column":15}}]},"9":{"line":98,"type":"if","locations":[{"start":{"line":98,"column":8},"end":{"line":98,"column":8}},{"start":{"line":98,"column":8},"end":{"line":98,"column":8}}]},"10":{"line":100,"type":"if","locations":[{"start":{"line":100,"column":15},"end":{"line":100,"column":15}},{"start":{"line":100,"column":15},"end":{"line":100,"column":15}}]},"11":{"line":102,"type":"if","locations":[{"start":{"line":102,"column":15},"end":{"line":102,"column":15}},{"start":{"line":102,"column":15},"end":{"line":102,"column":15}}]},"12":{"line":104,"type":"if","locations":[{"start":{"line":104,"column":15},"end":{"line":104,"column":15}},{"start":{"line":104,"column":15},"end":{"line":104,"column":15}}]},"13":{"line":116,"type":"if","locations":[{"start":{"line":116,"column":8},"end":{"line":116,"column":8}},{"start":{"line":116,"column":8},"end":{"line":116,"column":8}}]},"14":{"line":120,"type":"if","locations":[{"start":{"line":120,"column":8},"end":{"line":120,"column":8}},{"start":{"line":120,"column":8},"end":{"line":120,"column":8}}]},"15":{"line":135,"type":"if","locations":[{"start":{"line":135,"column":8},"end":{"line":135,"column":8}},{"start":{"line":135,"column":8},"end":{"line":135,"column":8}}]},"16":{"line":135,"type":"cond-expr","locations":[{"start":{"line":135,"column":12},"end":{"line":135,"column":19}},{"start":{"line":135,"column":24},"end":{"line":135,"column":35}}]},"17":{"line":135,"type":"cond-expr","locations":[{"start":{"line":135,"column":12},"end":{"line":135,"column":35}},{"start":{"line":135,"column":40},"end":{"line":135,"column":49}}]},"18":{"line":142,"type":"if","locations":[{"start":{"line":142,"column":8},"end":{"line":142,"column":8}},{"start":{"line":142,"column":8},"end":{"line":142,"column":8}}]},"19":{"line":146,"type":"if","locations":[{"start":{"line":146,"column":8},"end":{"line":146,"column":8}},{"start":{"line":146,"column":8},"end":{"line":146,"column":8}}]}}}, -"contracts/modules/wrapper/core/BaseModule.sol":{"l":{"46":379,"47":379,"48":379,"49":379,"57":10,"58":10,"62":10,"63":10,"66":8,"67":8,"76":2,"77":2,"78":2,"87":2,"88":2,"89":2,"98":2,"99":2,"100":2,"110":413},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/BaseModule.sol","s":{"1":379,"2":10,"3":10,"4":10,"5":10,"6":8,"7":8,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2},"b":{"1":[379,0],"2":[2,2],"3":[2,2],"4":[2,2]},"f":{"1":379,"2":10,"3":10,"4":8,"5":2,"6":2,"7":2,"8":413},"fnMap":{"1":{"name":"__Base_init_unchained","line":45,"loc":{"start":{"line":41,"column":4},"end":{"line":50,"column":4}}},"2":{"name":"tokenId","line":56,"loc":{"start":{"line":56,"column":4},"end":{"line":59,"column":4}}},"3":{"name":"terms","line":61,"loc":{"start":{"line":61,"column":4},"end":{"line":64,"column":4}}},"4":{"name":"information","line":65,"loc":{"start":{"line":65,"column":4},"end":{"line":68,"column":4}}},"5":{"name":"setTokenId","line":75,"loc":{"start":{"line":73,"column":4},"end":{"line":79,"column":4}}},"6":{"name":"setTerms","line":86,"loc":{"start":{"line":84,"column":4},"end":{"line":90,"column":4}}},"7":{"name":"setInformation","line":97,"loc":{"start":{"line":95,"column":4},"end":{"line":101,"column":4}}},"8":{"name":"_getBaseModuleStorage","line":109,"loc":{"start":{"line":109,"column":4},"end":{"line":113,"column":4}}}},"statementMap":{"1":{"start":{"line":46,"column":8},"end":{"line":46,"column":61}},"2":{"start":{"line":57,"column":8},"end":{"line":57,"column":61}},"3":{"start":{"line":58,"column":8},"end":{"line":58,"column":25}},"4":{"start":{"line":62,"column":8},"end":{"line":62,"column":61}},"5":{"start":{"line":63,"column":8},"end":{"line":63,"column":23}},"6":{"start":{"line":66,"column":8},"end":{"line":66,"column":61}},"7":{"start":{"line":67,"column":8},"end":{"line":67,"column":29}},"8":{"start":{"line":76,"column":8},"end":{"line":76,"column":61}},"9":{"start":{"line":78,"column":8},"end":{"line":78,"column":40}},"10":{"start":{"line":87,"column":8},"end":{"line":87,"column":61}},"11":{"start":{"line":89,"column":8},"end":{"line":89,"column":33}},"12":{"start":{"line":98,"column":8},"end":{"line":98,"column":61}},"13":{"start":{"line":100,"column":8},"end":{"line":100,"column":52}}},"branchMap":{"1":{"line":45,"type":"if","locations":[{"start":{"line":45,"column":15},"end":{"line":45,"column":15}},{"start":{"line":45,"column":15},"end":{"line":45,"column":15}}]},"2":{"line":75,"type":"if","locations":[{"start":{"line":75,"column":13},"end":{"line":75,"column":13}},{"start":{"line":75,"column":13},"end":{"line":75,"column":13}}]},"3":{"line":86,"type":"if","locations":[{"start":{"line":86,"column":13},"end":{"line":86,"column":13}},{"start":{"line":86,"column":13},"end":{"line":86,"column":13}}]},"4":{"line":97,"type":"if","locations":[{"start":{"line":97,"column":13},"end":{"line":97,"column":13}},{"start":{"line":97,"column":13},"end":{"line":97,"column":13}}]}}}, -"contracts/modules/wrapper/core/EnforcementModule.sol":{"l":{"42":22,"56":8},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/EnforcementModule.sol","s":{"1":22,"2":8},"b":{"1":[379,0],"2":[22,2],"3":[8,2]},"f":{"1":379,"2":22,"3":8},"fnMap":{"1":{"name":"__EnforcementModule_init_unchained","line":26,"loc":{"start":{"line":26,"column":4},"end":{"line":28,"column":4}}},"2":{"name":"freeze","line":41,"loc":{"start":{"line":38,"column":4},"end":{"line":43,"column":4}}},"3":{"name":"unfreeze","line":55,"loc":{"start":{"line":52,"column":4},"end":{"line":57,"column":4}}}},"statementMap":{"1":{"start":{"line":42,"column":8},"end":{"line":42,"column":39}},"2":{"start":{"line":56,"column":8},"end":{"line":56,"column":41}}},"branchMap":{"1":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":59},"end":{"line":26,"column":59}},{"start":{"line":26,"column":59},"end":{"line":26,"column":59}}]},"2":{"line":41,"type":"if","locations":[{"start":{"line":41,"column":13},"end":{"line":41,"column":13}},{"start":{"line":41,"column":13},"end":{"line":41,"column":13}}]},"3":{"line":55,"type":"if","locations":[{"start":{"line":55,"column":13},"end":{"line":55,"column":13}},{"start":{"line":55,"column":13},"end":{"line":55,"column":13}}]}}}, -"contracts/modules/wrapper/core/ERC20BaseModule.sol":{"l":{"34":379,"35":379,"46":2,"47":2,"66":10,"67":2,"71":8,"72":4,"75":4,"78":10,"82":2,"97":10,"99":2,"100":2,"103":2,"112":4,"113":4,"114":6,"116":4,"127":381},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/ERC20BaseModule.sol","s":{"1":379,"2":2,"3":2,"4":10,"5":8,"6":4,"7":10,"8":2,"9":10,"10":2,"11":2,"12":2,"13":4},"b":{"1":[379,0],"2":[2,8],"3":[4,4],"4":[2,0]},"f":{"1":379,"2":2,"3":10,"4":10,"5":4,"6":381},"fnMap":{"1":{"name":"__ERC20BaseModule_init_unchained","line":33,"loc":{"start":{"line":31,"column":4},"end":{"line":36,"column":4}}},"2":{"name":"decimals","line":45,"loc":{"start":{"line":45,"column":4},"end":{"line":48,"column":4}}},"3":{"name":"transferBatch","line":62,"loc":{"start":{"line":62,"column":4},"end":{"line":83,"column":4}}},"4":{"name":"transferFrom","line":92,"loc":{"start":{"line":92,"column":4},"end":{"line":104,"column":4}}},"5":{"name":"balanceInfo","line":111,"loc":{"start":{"line":111,"column":4},"end":{"line":117,"column":4}}},"6":{"name":"_getERC20BaseModuleStorage","line":126,"loc":{"start":{"line":126,"column":4},"end":{"line":130,"column":4}}}},"statementMap":{"1":{"start":{"line":34,"column":8},"end":{"line":34,"column":71}},"2":{"start":{"line":46,"column":8},"end":{"line":46,"column":71}},"3":{"start":{"line":47,"column":8},"end":{"line":47,"column":26}},"4":{"start":{"line":66,"column":8},"end":{"line":66,"column":2666}},"5":{"start":{"line":71,"column":8},"end":{"line":71,"column":2883}},"6":{"start":{"line":75,"column":8},"end":{"line":75,"column":3078}},"7":{"start":{"line":78,"column":12},"end":{"line":78,"column":70}},"8":{"start":{"line":82,"column":8},"end":{"line":82,"column":19}},"9":{"start":{"line":97,"column":8},"end":{"line":97,"column":68}},"10":{"start":{"line":99,"column":8},"end":{"line":99,"column":4028}},"11":{"start":{"line":100,"column":12},"end":{"line":100,"column":49}},"12":{"start":{"line":103,"column":8},"end":{"line":103,"column":21}},"13":{"start":{"line":113,"column":8},"end":{"line":113,"column":4521}}},"branchMap":{"1":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":15},"end":{"line":33,"column":15}},{"start":{"line":33,"column":15},"end":{"line":33,"column":15}}]},"2":{"line":66,"type":"if","locations":[{"start":{"line":66,"column":8},"end":{"line":66,"column":8}},{"start":{"line":66,"column":8},"end":{"line":66,"column":8}}]},"3":{"line":71,"type":"if","locations":[{"start":{"line":71,"column":8},"end":{"line":71,"column":8}},{"start":{"line":71,"column":8},"end":{"line":71,"column":8}}]},"4":{"line":99,"type":"if","locations":[{"start":{"line":99,"column":8},"end":{"line":99,"column":8}},{"start":{"line":99,"column":8},"end":{"line":99,"column":8}}]}}}, -"contracts/modules/wrapper/core/ERC20BurnModule.sol":{"l":{"47":14,"48":12,"71":12,"72":2,"76":10,"77":4,"80":6,"81":18,"82":16,"105":4,"106":4,"107":4,"109":2,"112":2,"113":2,"116":2,"118":2,"120":2},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/ERC20BurnModule.sol","s":{"1":14,"2":12,"3":12,"4":10,"5":6,"6":18,"7":16,"8":4,"9":4,"10":4,"11":2,"12":2,"13":2,"14":2},"b":{"1":[379,0],"2":[14,4],"3":[12,2],"4":[2,10],"5":[4,6],"6":[4,2],"7":[2,2]},"f":{"1":379,"2":14,"3":12,"4":4},"fnMap":{"1":{"name":"__ERC20BurnModule_init_unchained","line":25,"loc":{"start":{"line":25,"column":4},"end":{"line":27,"column":4}}},"2":{"name":"burn","line":46,"loc":{"start":{"line":42,"column":4},"end":{"line":49,"column":4}}},"3":{"name":"burnBatch","line":70,"loc":{"start":{"line":66,"column":4},"end":{"line":84,"column":4}}},"4":{"name":"burnFrom","line":102,"loc":{"start":{"line":100,"column":4},"end":{"line":121,"column":4}}}},"statementMap":{"1":{"start":{"line":47,"column":8},"end":{"line":47,"column":28}},"2":{"start":{"line":48,"column":8},"end":{"line":48,"column":41}},"3":{"start":{"line":71,"column":8},"end":{"line":71,"column":2648}},"4":{"start":{"line":76,"column":8},"end":{"line":76,"column":2870}},"5":{"start":{"line":80,"column":8},"end":{"line":80,"column":3070}},"6":{"start":{"line":81,"column":12},"end":{"line":81,"column":40}},"7":{"start":{"line":82,"column":12},"end":{"line":82,"column":53}},"8":{"start":{"line":105,"column":8},"end":{"line":105,"column":38}},"9":{"start":{"line":106,"column":8},"end":{"line":106,"column":61}},"10":{"start":{"line":107,"column":8},"end":{"line":107,"column":3959}},"11":{"start":{"line":113,"column":12},"end":{"line":113,"column":62}},"12":{"start":{"line":116,"column":8},"end":{"line":116,"column":28}},"13":{"start":{"line":118,"column":8},"end":{"line":118,"column":45}},"14":{"start":{"line":120,"column":8},"end":{"line":120,"column":45}}},"branchMap":{"1":{"line":25,"type":"if","locations":[{"start":{"line":25,"column":57},"end":{"line":25,"column":57}},{"start":{"line":25,"column":57},"end":{"line":25,"column":57}}]},"2":{"line":46,"type":"if","locations":[{"start":{"line":46,"column":13},"end":{"line":46,"column":13}},{"start":{"line":46,"column":13},"end":{"line":46,"column":13}}]},"3":{"line":70,"type":"if","locations":[{"start":{"line":70,"column":13},"end":{"line":70,"column":13}},{"start":{"line":70,"column":13},"end":{"line":70,"column":13}}]},"4":{"line":71,"type":"if","locations":[{"start":{"line":71,"column":8},"end":{"line":71,"column":8}},{"start":{"line":71,"column":8},"end":{"line":71,"column":8}}]},"5":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":8},"end":{"line":76,"column":8}},{"start":{"line":76,"column":8},"end":{"line":76,"column":8}}]},"6":{"line":102,"type":"if","locations":[{"start":{"line":102,"column":8},"end":{"line":102,"column":8}},{"start":{"line":102,"column":8},"end":{"line":102,"column":8}}]},"7":{"line":107,"type":"if","locations":[{"start":{"line":107,"column":8},"end":{"line":107,"column":8}},{"start":{"line":107,"column":8},"end":{"line":107,"column":8}}]}}}, -"contracts/modules/wrapper/core/ERC20MintModule.sol":{"l":{"41":290,"42":290,"64":24,"65":2,"69":22,"70":4,"73":18,"74":54,"75":54},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/ERC20MintModule.sol","s":{"1":290,"2":290,"3":24,"4":22,"5":18,"6":54,"7":54},"b":{"1":[379,0],"2":[290,4],"3":[24,2],"4":[2,22],"5":[4,18]},"f":{"1":379,"2":290,"3":24},"fnMap":{"1":{"name":"__ERC20MintModule_init_unchained","line":20,"loc":{"start":{"line":20,"column":4},"end":{"line":22,"column":4}}},"2":{"name":"mint","line":40,"loc":{"start":{"line":40,"column":4},"end":{"line":43,"column":4}}},"3":{"name":"mintBatch","line":63,"loc":{"start":{"line":60,"column":4},"end":{"line":77,"column":4}}}},"statementMap":{"1":{"start":{"line":41,"column":8},"end":{"line":41,"column":28}},"2":{"start":{"line":42,"column":8},"end":{"line":42,"column":33}},"3":{"start":{"line":64,"column":8},"end":{"line":64,"column":2412}},"4":{"start":{"line":69,"column":8},"end":{"line":69,"column":2634}},"5":{"start":{"line":73,"column":8},"end":{"line":73,"column":2834}},"6":{"start":{"line":74,"column":12},"end":{"line":74,"column":40}},"7":{"start":{"line":75,"column":12},"end":{"line":75,"column":45}}},"branchMap":{"1":{"line":20,"type":"if","locations":[{"start":{"line":20,"column":57},"end":{"line":20,"column":57}},{"start":{"line":20,"column":57},"end":{"line":20,"column":57}}]},"2":{"line":40,"type":"if","locations":[{"start":{"line":40,"column":57},"end":{"line":40,"column":57}},{"start":{"line":40,"column":57},"end":{"line":40,"column":57}}]},"3":{"line":63,"type":"if","locations":[{"start":{"line":63,"column":13},"end":{"line":63,"column":13}},{"start":{"line":63,"column":13},"end":{"line":63,"column":13}}]},"4":{"line":64,"type":"if","locations":[{"start":{"line":64,"column":8},"end":{"line":64,"column":8}},{"start":{"line":64,"column":8},"end":{"line":64,"column":8}}]},"5":{"line":69,"type":"if","locations":[{"start":{"line":69,"column":8},"end":{"line":69,"column":8}},{"start":{"line":69,"column":8},"end":{"line":69,"column":8}}]}}}, -"contracts/modules/wrapper/core/PauseModule.sol":{"l":{"50":14,"62":6,"63":6,"64":2,"66":4,"82":2,"83":2,"84":2,"85":2,"92":4,"93":4,"104":12},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/PauseModule.sol","s":{"1":14,"2":6,"3":6,"4":4,"5":2,"6":2,"7":2,"8":4,"9":4},"b":{"1":[379,0],"2":[14,3],"3":[6,2],"4":[2,4],"5":[2,2]},"f":{"1":379,"2":14,"3":6,"4":2,"5":4,"6":12},"fnMap":{"1":{"name":"__PauseModule_init_unchained","line":33,"loc":{"start":{"line":33,"column":4},"end":{"line":35,"column":4}}},"2":{"name":"pause","line":49,"loc":{"start":{"line":49,"column":4},"end":{"line":51,"column":4}}},"3":{"name":"unpause","line":61,"loc":{"start":{"line":61,"column":4},"end":{"line":67,"column":4}}},"4":{"name":"deactivateContract","line":80,"loc":{"start":{"line":78,"column":4},"end":{"line":86,"column":4}}},"5":{"name":"deactivated","line":91,"loc":{"start":{"line":91,"column":4},"end":{"line":94,"column":4}}},"6":{"name":"_getPauseModuleStorage","line":103,"loc":{"start":{"line":103,"column":4},"end":{"line":107,"column":4}}}},"statementMap":{"1":{"start":{"line":50,"column":8},"end":{"line":50,"column":15}},"2":{"start":{"line":62,"column":8},"end":{"line":62,"column":63}},"3":{"start":{"line":63,"column":8},"end":{"line":63,"column":2362}},"4":{"start":{"line":66,"column":8},"end":{"line":66,"column":17}},"5":{"start":{"line":82,"column":8},"end":{"line":82,"column":63}},"6":{"start":{"line":84,"column":7},"end":{"line":84,"column":14}},"7":{"start":{"line":85,"column":7},"end":{"line":85,"column":37}},"8":{"start":{"line":92,"column":8},"end":{"line":92,"column":63}},"9":{"start":{"line":93,"column":8},"end":{"line":93,"column":31}}},"branchMap":{"1":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":53},"end":{"line":33,"column":53}},{"start":{"line":33,"column":53},"end":{"line":33,"column":53}}]},"2":{"line":49,"type":"if","locations":[{"start":{"line":49,"column":28},"end":{"line":49,"column":28}},{"start":{"line":49,"column":28},"end":{"line":49,"column":28}}]},"3":{"line":61,"type":"if","locations":[{"start":{"line":61,"column":30},"end":{"line":61,"column":30}},{"start":{"line":61,"column":30},"end":{"line":61,"column":30}}]},"4":{"line":63,"type":"if","locations":[{"start":{"line":63,"column":8},"end":{"line":63,"column":8}},{"start":{"line":63,"column":8},"end":{"line":63,"column":8}}]},"5":{"line":80,"type":"if","locations":[{"start":{"line":80,"column":8},"end":{"line":80,"column":8}},{"start":{"line":80,"column":8},"end":{"line":80,"column":8}}]}}}, -"contracts/modules/wrapper/extensions/DebtModule.sol":{"l":{"37":379,"38":3,"39":3,"40":3,"49":8,"50":8,"60":5,"61":5,"62":1,"64":4,"65":4,"69":2,"70":2,"71":2,"76":2,"77":2,"78":2,"89":20},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/extensions/DebtModule.sol","s":{"1":379,"2":3,"3":3,"4":8,"5":8,"6":5,"7":5,"8":4,"9":2,"10":2,"11":2,"12":2},"b":{"1":[379,0],"2":[3,376],"3":[5,1],"4":[1,4],"5":[2,0],"6":[2,0]},"f":{"1":379,"2":8,"3":5,"4":2,"5":2,"6":20},"fnMap":{"1":{"name":"__DebtModule_init_unchained","line":36,"loc":{"start":{"line":35,"column":4},"end":{"line":44,"column":4}}},"2":{"name":"debtEngine","line":48,"loc":{"start":{"line":48,"column":4},"end":{"line":51,"column":4}}},"3":{"name":"setDebtEngine","line":59,"loc":{"start":{"line":57,"column":4},"end":{"line":66,"column":4}}},"4":{"name":"debt","line":68,"loc":{"start":{"line":68,"column":4},"end":{"line":73,"column":4}}},"5":{"name":"creditEvents","line":75,"loc":{"start":{"line":75,"column":4},"end":{"line":80,"column":4}}},"6":{"name":"_getDebtModuleStorage","line":88,"loc":{"start":{"line":88,"column":4},"end":{"line":92,"column":4}}}},"statementMap":{"1":{"start":{"line":37,"column":8},"end":{"line":37,"column":1321}},"2":{"start":{"line":38,"column":12},"end":{"line":38,"column":65}},"3":{"start":{"line":40,"column":12},"end":{"line":40,"column":40}},"4":{"start":{"line":49,"column":8},"end":{"line":49,"column":61}},"5":{"start":{"line":50,"column":8},"end":{"line":50,"column":28}},"6":{"start":{"line":60,"column":8},"end":{"line":60,"column":61}},"7":{"start":{"line":61,"column":8},"end":{"line":61,"column":2151}},"8":{"start":{"line":65,"column":8},"end":{"line":65,"column":36}},"9":{"start":{"line":69,"column":8},"end":{"line":69,"column":61}},"10":{"start":{"line":70,"column":8},"end":{"line":70,"column":2478}},"11":{"start":{"line":76,"column":8},"end":{"line":76,"column":61}},"12":{"start":{"line":77,"column":8},"end":{"line":77,"column":2749}}},"branchMap":{"1":{"line":36,"type":"if","locations":[{"start":{"line":36,"column":13},"end":{"line":36,"column":13}},{"start":{"line":36,"column":13},"end":{"line":36,"column":13}}]},"2":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":8},"end":{"line":37,"column":8}},{"start":{"line":37,"column":8},"end":{"line":37,"column":8}}]},"3":{"line":59,"type":"if","locations":[{"start":{"line":59,"column":15},"end":{"line":59,"column":15}},{"start":{"line":59,"column":15},"end":{"line":59,"column":15}}]},"4":{"line":61,"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":61,"column":8}},{"start":{"line":61,"column":8},"end":{"line":61,"column":8}}]},"5":{"line":70,"type":"if","locations":[{"start":{"line":70,"column":8},"end":{"line":70,"column":8}},{"start":{"line":70,"column":8},"end":{"line":70,"column":8}}]},"6":{"line":77,"type":"if","locations":[{"start":{"line":77,"column":8},"end":{"line":77,"column":8}},{"start":{"line":77,"column":8},"end":{"line":77,"column":8}}]}}}, -"contracts/modules/wrapper/extensions/DocumentModule.sol":{"l":{"34":379,"35":12,"36":12,"37":12,"45":28,"46":28,"56":16,"57":16,"58":2,"60":14,"61":14,"66":16,"67":16,"68":16,"70":0,"75":4,"76":4,"77":4,"88":76},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/extensions/DocumentModule.sol","s":{"1":379,"2":12,"3":12,"4":28,"5":28,"6":16,"7":16,"8":14,"9":16,"10":16,"11":16,"12":0,"13":4,"14":4},"b":{"1":[379,0],"2":[12,367],"3":[16,2],"4":[2,14],"5":[16,0],"6":[4,0]},"f":{"1":379,"2":28,"3":16,"4":16,"5":4,"6":76},"fnMap":{"1":{"name":"__DocumentModule_init_unchained","line":33,"loc":{"start":{"line":32,"column":4},"end":{"line":39,"column":4}}},"2":{"name":"documentEngine","line":44,"loc":{"start":{"line":44,"column":4},"end":{"line":47,"column":4}}},"3":{"name":"setDocumentEngine","line":55,"loc":{"start":{"line":53,"column":4},"end":{"line":62,"column":4}}},"4":{"name":"getDocument","line":65,"loc":{"start":{"line":65,"column":4},"end":{"line":72,"column":4}}},"5":{"name":"getAllDocuments","line":74,"loc":{"start":{"line":74,"column":4},"end":{"line":79,"column":4}}},"6":{"name":"_getDocumentModuleStorage","line":87,"loc":{"start":{"line":87,"column":4},"end":{"line":91,"column":4}}}},"statementMap":{"1":{"start":{"line":34,"column":8},"end":{"line":34,"column":1308}},"2":{"start":{"line":35,"column":12},"end":{"line":35,"column":73}},"3":{"start":{"line":37,"column":12},"end":{"line":37,"column":48}},"4":{"start":{"line":45,"column":8},"end":{"line":45,"column":69}},"5":{"start":{"line":46,"column":8},"end":{"line":46,"column":32}},"6":{"start":{"line":56,"column":8},"end":{"line":56,"column":69}},"7":{"start":{"line":57,"column":8},"end":{"line":57,"column":2187}},"8":{"start":{"line":61,"column":8},"end":{"line":61,"column":44}},"9":{"start":{"line":66,"column":8},"end":{"line":66,"column":69}},"10":{"start":{"line":67,"column":8},"end":{"line":67,"column":2574}},"11":{"start":{"line":68,"column":12},"end":{"line":68,"column":56}},"12":{"start":{"line":70,"column":12},"end":{"line":70,"column":30}},"13":{"start":{"line":75,"column":8},"end":{"line":75,"column":69}},"14":{"start":{"line":76,"column":8},"end":{"line":76,"column":2903}}},"branchMap":{"1":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":13},"end":{"line":33,"column":13}},{"start":{"line":33,"column":13},"end":{"line":33,"column":13}}]},"2":{"line":34,"type":"if","locations":[{"start":{"line":34,"column":8},"end":{"line":34,"column":8}},{"start":{"line":34,"column":8},"end":{"line":34,"column":8}}]},"3":{"line":55,"type":"if","locations":[{"start":{"line":55,"column":15},"end":{"line":55,"column":15}},{"start":{"line":55,"column":15},"end":{"line":55,"column":15}}]},"4":{"line":57,"type":"if","locations":[{"start":{"line":57,"column":8},"end":{"line":57,"column":8}},{"start":{"line":57,"column":8},"end":{"line":57,"column":8}}]},"5":{"line":67,"type":"if","locations":[{"start":{"line":67,"column":8},"end":{"line":67,"column":8}},{"start":{"line":67,"column":8},"end":{"line":67,"column":8}}]},"6":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":8},"end":{"line":76,"column":8}},{"start":{"line":76,"column":8},"end":{"line":76,"column":8}}]}}}, -"contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol":{"l":{"33":170,"44":12,"56":22,"67":14,"77":10},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol","s":{"1":170,"2":12,"3":22,"4":14,"5":10},"b":{"1":[379,0],"2":[170,2],"3":[12,4],"4":[22,2],"5":[14,2],"6":[10,0]},"f":{"1":379,"2":170,"3":12,"4":22,"5":14,"6":10},"fnMap":{"1":{"name":"__ERC20SnasphotModule_init_unchained","line":21,"loc":{"start":{"line":21,"column":4},"end":{"line":23,"column":4}}},"2":{"name":"scheduleSnapshot","line":32,"loc":{"start":{"line":32,"column":4},"end":{"line":34,"column":4}}},"3":{"name":"scheduleSnapshotNotOptimized","line":43,"loc":{"start":{"line":41,"column":4},"end":{"line":45,"column":4}}},"4":{"name":"rescheduleSnapshot","line":55,"loc":{"start":{"line":52,"column":4},"end":{"line":57,"column":4}}},"5":{"name":"unscheduleLastSnapshot","line":66,"loc":{"start":{"line":64,"column":4},"end":{"line":68,"column":4}}},"6":{"name":"unscheduleSnapshotNotOptimized","line":76,"loc":{"start":{"line":74,"column":4},"end":{"line":78,"column":4}}}},"statementMap":{"1":{"start":{"line":33,"column":8},"end":{"line":33,"column":30}},"2":{"start":{"line":44,"column":8},"end":{"line":44,"column":42}},"3":{"start":{"line":56,"column":8},"end":{"line":56,"column":44}},"4":{"start":{"line":67,"column":8},"end":{"line":67,"column":36}},"5":{"start":{"line":77,"column":8},"end":{"line":77,"column":44}}},"branchMap":{"1":{"line":21,"type":"if","locations":[{"start":{"line":21,"column":61},"end":{"line":21,"column":61}},{"start":{"line":21,"column":61},"end":{"line":21,"column":61}}]},"2":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":51},"end":{"line":32,"column":51}},{"start":{"line":32,"column":51},"end":{"line":32,"column":51}}]},"3":{"line":43,"type":"if","locations":[{"start":{"line":43,"column":13},"end":{"line":43,"column":13}},{"start":{"line":43,"column":13},"end":{"line":43,"column":13}}]},"4":{"line":55,"type":"if","locations":[{"start":{"line":55,"column":13},"end":{"line":55,"column":13}},{"start":{"line":55,"column":13},"end":{"line":55,"column":13}}]},"5":{"line":66,"type":"if","locations":[{"start":{"line":66,"column":13},"end":{"line":66,"column":13}},{"start":{"line":66,"column":13},"end":{"line":66,"column":13}}]},"6":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":13},"end":{"line":76,"column":13}},{"start":{"line":76,"column":13},"end":{"line":76,"column":13}}]}}}, -"contracts/modules/wrapper/extensions/MetaTxModule.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/extensions/MetaTxModule.sol","s":{},"b":{},"f":{"1":395},"fnMap":{"1":{"name":"constructor","line":18,"loc":{"start":{"line":16,"column":4},"end":{"line":20,"column":4}}}},"statementMap":{},"branchMap":{}}, -"contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol","s":{},"b":{},"f":{"1":3},"fnMap":{"1":{"name":"constructor","line":18,"loc":{"start":{"line":16,"column":4},"end":{"line":20,"column":4}}}},"statementMap":{},"branchMap":{}}, -"contracts/test/proxy/CMTAT_PROXY_TEST.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT/contracts/test/proxy/CMTAT_PROXY_TEST.sol","s":{},"b":{},"f":{"1":1},"fnMap":{"1":{"name":"constructor","line":18,"loc":{"start":{"line":16,"column":4},"end":{"line":20,"column":4}}}},"statementMap":{},"branchMap":{}}} +"contracts/CMTAT_PROXY_UUPS.sol":{"l":{"21":9,"41":5,"45":5},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/CMTAT_PROXY_UUPS.sol","s":{"1":9,"2":5,"3":5},"b":{"1":[5,0],"2":[2,1]},"f":{"1":9,"2":5,"3":2},"fnMap":{"1":{"name":"constructor","line":19,"loc":{"start":{"line":17,"column":4},"end":{"line":22,"column":4}}},"2":{"name":"initialize","line":40,"loc":{"start":{"line":37,"column":4},"end":{"line":46,"column":4}}},"3":{"name":"_authorizeUpgrade","line":52,"loc":{"start":{"line":52,"column":4},"end":{"line":52,"column":88}}}},"statementMap":{"1":{"start":{"line":21,"column":8},"end":{"line":21,"column":29}},"2":{"start":{"line":41,"column":8},"end":{"line":41,"column":1705}},"3":{"start":{"line":45,"column":8},"end":{"line":45,"column":41}}},"branchMap":{"1":{"line":40,"type":"if","locations":[{"start":{"line":40,"column":67},"end":{"line":40,"column":67}},{"start":{"line":40,"column":67},"end":{"line":40,"column":67}}]},"2":{"line":52,"type":"if","locations":[{"start":{"line":52,"column":58},"end":{"line":52,"column":58}},{"start":{"line":52,"column":58},"end":{"line":52,"column":58}}]}}}, +"contracts/CMTAT_PROXY.sol":{"l":{"20":198},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/CMTAT_PROXY.sol","s":{"1":198},"b":{},"f":{"1":198},"fnMap":{"1":{"name":"constructor","line":18,"loc":{"start":{"line":16,"column":4},"end":{"line":21,"column":4}}}},"statementMap":{"1":{"start":{"line":20,"column":8},"end":{"line":20,"column":29}}},"branchMap":{}}, +"contracts/CMTAT_STANDALONE.sol":{"l":{"29":191},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/CMTAT_STANDALONE.sol","s":{"1":191},"b":{},"f":{"1":191},"fnMap":{"1":{"name":"constructor","line":26,"loc":{"start":{"line":20,"column":4},"end":{"line":35,"column":4}}}},"statementMap":{"1":{"start":{"line":29,"column":8},"end":{"line":29,"column":1112}}},"branchMap":{}}, +"contracts/deployment/CMTAT_BEACON_FACTORY.sol":{"l":{"24":8,"25":1,"27":7,"28":1,"30":6,"45":2,"46":2,"49":2,"50":2,"62":2,"65":2,"73":1,"84":2,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"100":4,"107":4},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/deployment/CMTAT_BEACON_FACTORY.sol","s":{"1":8,"2":7,"3":2,"4":2,"5":2,"6":2,"7":2,"8":1,"9":2,"10":2,"11":2,"12":2,"13":4},"b":{"1":[1,7],"2":[1,6],"3":[2,1]},"f":{"1":8,"2":2,"3":2,"4":1,"5":2,"6":4},"fnMap":{"1":{"name":"constructor","line":23,"loc":{"start":{"line":23,"column":4},"end":{"line":31,"column":4}}},"2":{"name":"deployCMTAT","line":44,"loc":{"start":{"line":40,"column":4},"end":{"line":51,"column":4}}},"3":{"name":"computedProxyAddress","line":58,"loc":{"start":{"line":58,"column":4},"end":{"line":66,"column":4}}},"4":{"name":"implementation","line":72,"loc":{"start":{"line":72,"column":4},"end":{"line":74,"column":4}}},"5":{"name":"_deployBytecode","line":83,"loc":{"start":{"line":83,"column":4},"end":{"line":91,"column":5}}},"6":{"name":"_getBytecode","line":97,"loc":{"start":{"line":97,"column":5},"end":{"line":108,"column":5}}}},"statementMap":{"1":{"start":{"line":24,"column":8},"end":{"line":24,"column":799}},"2":{"start":{"line":27,"column":8},"end":{"line":27,"column":935}},"3":{"start":{"line":45,"column":8},"end":{"line":45,"column":86}},"4":{"start":{"line":46,"column":8},"end":{"line":46,"column":1738}},"5":{"start":{"line":50,"column":8},"end":{"line":50,"column":20}},"6":{"start":{"line":62,"column":8},"end":{"line":62,"column":2316}},"7":{"start":{"line":65,"column":8},"end":{"line":65,"column":91}},"8":{"start":{"line":73,"column":8},"end":{"line":73,"column":38}},"9":{"start":{"line":84,"column":20},"end":{"line":84,"column":86}},"10":{"start":{"line":87,"column":20},"end":{"line":87,"column":62}},"11":{"start":{"line":89,"column":20},"end":{"line":89,"column":50}},"12":{"start":{"line":90,"column":20},"end":{"line":90,"column":32}},"13":{"start":{"line":100,"column":8},"end":{"line":100,"column":3755}}},"branchMap":{"1":{"line":24,"type":"if","locations":[{"start":{"line":24,"column":8},"end":{"line":24,"column":8}},{"start":{"line":24,"column":8},"end":{"line":24,"column":8}}]},"2":{"line":27,"type":"if","locations":[{"start":{"line":27,"column":8},"end":{"line":27,"column":8}},{"start":{"line":27,"column":8},"end":{"line":27,"column":8}}]},"3":{"line":44,"type":"if","locations":[{"start":{"line":44,"column":13},"end":{"line":44,"column":13}},{"start":{"line":44,"column":13},"end":{"line":44,"column":13}}]}}}, +"contracts/deployment/CMTAT_TP_FACTORY.sol":{"l":{"29":7,"30":5,"33":5,"35":5,"49":2,"52":2,"65":5,"66":5,"67":5,"68":5,"69":5,"70":5,"71":5,"81":7,"88":7},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/deployment/CMTAT_TP_FACTORY.sol","s":{"1":7,"2":5,"3":5,"4":2,"5":2,"6":5,"7":5,"8":5,"9":5,"10":7},"b":{"1":[7,2]},"f":{"1":9,"2":7,"3":2,"4":5,"5":7},"fnMap":{"1":{"name":"constructor","line":15,"loc":{"start":{"line":15,"column":4},"end":{"line":15,"column":129}}},"2":{"name":"deployCMTAT","line":28,"loc":{"start":{"line":23,"column":4},"end":{"line":36,"column":4}}},"3":{"name":"computedProxyAddress","line":44,"loc":{"start":{"line":44,"column":4},"end":{"line":53,"column":4}}},"4":{"name":"_deployBytecode","line":64,"loc":{"start":{"line":64,"column":4},"end":{"line":72,"column":5}}},"5":{"name":"_getBytecode","line":78,"loc":{"start":{"line":78,"column":5},"end":{"line":89,"column":5}}}},"statementMap":{"1":{"start":{"line":29,"column":8},"end":{"line":29,"column":86}},"2":{"start":{"line":30,"column":8},"end":{"line":30,"column":1235}},"3":{"start":{"line":35,"column":8},"end":{"line":35,"column":20}},"4":{"start":{"line":49,"column":8},"end":{"line":49,"column":1919}},"5":{"start":{"line":52,"column":8},"end":{"line":52,"column":91}},"6":{"start":{"line":65,"column":20},"end":{"line":65,"column":86}},"7":{"start":{"line":68,"column":20},"end":{"line":68,"column":62}},"8":{"start":{"line":70,"column":20},"end":{"line":70,"column":50}},"9":{"start":{"line":71,"column":20},"end":{"line":71,"column":32}},"10":{"start":{"line":81,"column":8},"end":{"line":81,"column":3210}}},"branchMap":{"1":{"line":28,"type":"if","locations":[{"start":{"line":28,"column":13},"end":{"line":28,"column":13}},{"start":{"line":28,"column":13},"end":{"line":28,"column":13}}]}}}, +"contracts/deployment/CMTAT_UUPS_FACTORY.sol":{"l":{"32":2,"33":2,"36":2,"38":2,"50":2,"53":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":2,"70":2,"80":4,"87":4},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/deployment/CMTAT_UUPS_FACTORY.sol","s":{"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":4},"b":{"1":[2,1]},"f":{"1":5,"2":2,"3":2,"4":2,"5":4},"fnMap":{"1":{"name":"constructor","line":18,"loc":{"start":{"line":18,"column":4},"end":{"line":18,"column":129}}},"2":{"name":"deployCMTAT","line":31,"loc":{"start":{"line":27,"column":4},"end":{"line":39,"column":4}}},"3":{"name":"computedProxyAddress","line":46,"loc":{"start":{"line":46,"column":4},"end":{"line":54,"column":4}}},"4":{"name":"_deployBytecode","line":63,"loc":{"start":{"line":63,"column":4},"end":{"line":71,"column":5}}},"5":{"name":"_getBytecode","line":77,"loc":{"start":{"line":77,"column":5},"end":{"line":88,"column":5}}}},"statementMap":{"1":{"start":{"line":32,"column":8},"end":{"line":32,"column":86}},"2":{"start":{"line":33,"column":8},"end":{"line":33,"column":1266}},"3":{"start":{"line":38,"column":8},"end":{"line":38,"column":20}},"4":{"start":{"line":50,"column":8},"end":{"line":50,"column":1853}},"5":{"start":{"line":53,"column":8},"end":{"line":53,"column":91}},"6":{"start":{"line":64,"column":20},"end":{"line":64,"column":86}},"7":{"start":{"line":67,"column":20},"end":{"line":67,"column":62}},"8":{"start":{"line":69,"column":20},"end":{"line":69,"column":50}},"9":{"start":{"line":70,"column":20},"end":{"line":70,"column":32}},"10":{"start":{"line":80,"column":8},"end":{"line":80,"column":3072}}},"branchMap":{"1":{"line":31,"type":"if","locations":[{"start":{"line":31,"column":13},"end":{"line":31,"column":13}},{"start":{"line":31,"column":13},"end":{"line":31,"column":13}}]}}}, +"contracts/deployment/libraries/CMTATFactoryBase.sol":{"l":{"19":16,"20":2,"22":14},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/deployment/libraries/CMTATFactoryBase.sol","s":{"1":16},"b":{"1":[2,14]},"f":{"1":16},"fnMap":{"1":{"name":"constructor","line":18,"loc":{"start":{"line":18,"column":4},"end":{"line":23,"column":4}}}},"statementMap":{"1":{"start":{"line":19,"column":8},"end":{"line":19,"column":575}}},"branchMap":{"1":{"line":19,"type":"if","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":8}},{"start":{"line":19,"column":8},"end":{"line":19,"column":8}}]}}}, +"contracts/deployment/libraries/CMTATFactoryInvariant.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/deployment/libraries/CMTATFactoryInvariant.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/deployment/libraries/CMTATFactoryRoot.sol":{"l":{"26":27,"27":3,"29":24,"30":15,"32":24,"33":24,"46":13,"59":11,"60":5,"61":2,"63":3,"64":3,"67":6},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/deployment/libraries/CMTATFactoryRoot.sol","s":{"1":27,"2":24,"3":24,"4":24,"5":13,"6":11,"7":5},"b":{"1":[3,24],"2":[15,9],"3":[5,6],"4":[2,3]},"f":{"1":27,"2":13,"3":11},"fnMap":{"1":{"name":"constructor","line":25,"loc":{"start":{"line":25,"column":4},"end":{"line":34,"column":4}}},"2":{"name":"CMTATProxyAddress","line":45,"loc":{"start":{"line":45,"column":4},"end":{"line":47,"column":4}}},"3":{"name":"_checkAndDetermineDeploymentSalt","line":58,"loc":{"start":{"line":58,"column":4},"end":{"line":69,"column":4}}}},"statementMap":{"1":{"start":{"line":26,"column":8},"end":{"line":26,"column":814}},"2":{"start":{"line":29,"column":8},"end":{"line":29,"column":952}},"3":{"start":{"line":32,"column":8},"end":{"line":32,"column":51}},"4":{"start":{"line":33,"column":8},"end":{"line":33,"column":52}},"5":{"start":{"line":46,"column":8},"end":{"line":46,"column":38}},"6":{"start":{"line":59,"column":7},"end":{"line":59,"column":2000}},"7":{"start":{"line":60,"column":12},"end":{"line":60,"column":2035}}},"branchMap":{"1":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":8},"end":{"line":26,"column":8}},{"start":{"line":26,"column":8},"end":{"line":26,"column":8}}]},"2":{"line":29,"type":"if","locations":[{"start":{"line":29,"column":8},"end":{"line":29,"column":8}},{"start":{"line":29,"column":8},"end":{"line":29,"column":8}}]},"3":{"line":59,"type":"if","locations":[{"start":{"line":59,"column":7},"end":{"line":59,"column":7}},{"start":{"line":59,"column":7},"end":{"line":59,"column":7}}]},"4":{"line":60,"type":"if","locations":[{"start":{"line":60,"column":12},"end":{"line":60,"column":12}},{"start":{"line":60,"column":12},"end":{"line":60,"column":12}}]}}}, +"contracts/interfaces/draft-IERC1404/draft-IERC1404.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/interfaces/engine/draft-IERC1643.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/engine/draft-IERC1643.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/interfaces/engine/IAuthorizationEngine.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/engine/IAuthorizationEngine.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/interfaces/engine/IDebtEngine.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/engine/IDebtEngine.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/interfaces/engine/IDebtGlobal.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/engine/IDebtGlobal.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/interfaces/engine/IRuleEngine.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/engine/IRuleEngine.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/interfaces/ICCIPToken.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/ICCIPToken.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/interfaces/ICMTATConstructor.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/ICMTATConstructor.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/interfaces/ICMTATSnapshot.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/ICMTATSnapshot.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/libraries/Errors.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/libraries/Errors.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/libraries/FactoryErrors.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/libraries/FactoryErrors.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}}, +"contracts/modules/CMTAT_BASE.sol":{"l":{"65":384,"85":384,"86":384,"88":384,"90":384,"91":384,"94":384,"99":384,"100":384,"102":384,"106":384,"107":382,"108":382,"110":382,"111":382,"113":382,"114":382,"120":382,"121":382,"122":382,"125":382,"128":382,"150":2,"163":10,"178":6,"179":4,"194":438,"195":17,"202":421,"203":421,"217":1389,"226":1389,"238":0},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/CMTAT_BASE.sol","s":{"1":384,"2":384,"3":384,"4":384,"5":384,"6":384,"7":384,"8":384,"9":384,"10":384,"11":384,"12":382,"13":382,"14":382,"15":382,"16":382,"17":382,"18":382,"19":382,"20":382,"21":382,"22":382,"23":2,"24":10,"25":6,"26":4,"27":438,"28":421,"29":421,"30":1389,"31":1389,"32":0},"b":{"1":[384,1],"2":[384,0],"3":[382,0],"4":[17,421]},"f":{"1":384,"2":384,"3":382,"4":2,"5":10,"6":6,"7":438,"8":1389,"9":1389,"10":0},"fnMap":{"1":{"name":"initialize","line":64,"loc":{"start":{"line":59,"column":4},"end":{"line":71,"column":4}}},"2":{"name":"__CMTAT_init","line":82,"loc":{"start":{"line":77,"column":4},"end":{"line":129,"column":4}}},"3":{"name":"__CMTAT_init_unchained","line":131,"loc":{"start":{"line":131,"column":4},"end":{"line":133,"column":4}}},"4":{"name":"decimals","line":143,"loc":{"start":{"line":143,"column":4},"end":{"line":151,"column":4}}},"5":{"name":"transferFrom","line":153,"loc":{"start":{"line":153,"column":4},"end":{"line":164,"column":4}}},"6":{"name":"burnAndMint","line":177,"loc":{"start":{"line":177,"column":4},"end":{"line":180,"column":4}}},"7":{"name":"_update","line":189,"loc":{"start":{"line":189,"column":4},"end":{"line":204,"column":4}}},"8":{"name":"_msgSender","line":211,"loc":{"start":{"line":211,"column":4},"end":{"line":218,"column":4}}},"9":{"name":"_contextSuffixLength","line":223,"loc":{"start":{"line":223,"column":4},"end":{"line":227,"column":4}}},"10":{"name":"_msgData","line":232,"loc":{"start":{"line":232,"column":4},"end":{"line":239,"column":4}}}},"statementMap":{"1":{"start":{"line":65,"column":8},"end":{"line":65,"column":2165}},"2":{"start":{"line":85,"column":8},"end":{"line":85,"column":33}},"3":{"start":{"line":86,"column":8},"end":{"line":86,"column":99}},"4":{"start":{"line":88,"column":8},"end":{"line":88,"column":32}},"5":{"start":{"line":90,"column":8},"end":{"line":90,"column":39}},"6":{"start":{"line":91,"column":8},"end":{"line":91,"column":34}},"7":{"start":{"line":94,"column":8},"end":{"line":94,"column":37}},"8":{"start":{"line":99,"column":8},"end":{"line":99,"column":44}},"9":{"start":{"line":100,"column":8},"end":{"line":100,"column":39}},"10":{"start":{"line":102,"column":8},"end":{"line":102,"column":56}},"11":{"start":{"line":106,"column":8},"end":{"line":106,"column":81}},"12":{"start":{"line":107,"column":8},"end":{"line":107,"column":41}},"13":{"start":{"line":108,"column":8},"end":{"line":108,"column":41}},"14":{"start":{"line":110,"column":8},"end":{"line":110,"column":43}},"15":{"start":{"line":111,"column":8},"end":{"line":111,"column":77}},"16":{"start":{"line":113,"column":8},"end":{"line":113,"column":37}},"17":{"start":{"line":114,"column":8},"end":{"line":114,"column":42}},"18":{"start":{"line":120,"column":8},"end":{"line":120,"column":45}},"19":{"start":{"line":121,"column":8},"end":{"line":121,"column":64}},"20":{"start":{"line":122,"column":8},"end":{"line":122,"column":56}},"21":{"start":{"line":125,"column":8},"end":{"line":125,"column":123}},"22":{"start":{"line":128,"column":8},"end":{"line":128,"column":31}},"23":{"start":{"line":150,"column":8},"end":{"line":150,"column":41}},"24":{"start":{"line":163,"column":8},"end":{"line":163,"column":70}},"25":{"start":{"line":178,"column":8},"end":{"line":178,"column":39}},"26":{"start":{"line":179,"column":8},"end":{"line":179,"column":29}},"27":{"start":{"line":194,"column":8},"end":{"line":194,"column":6702}},"28":{"start":{"line":202,"column":8},"end":{"line":202,"column":60}},"29":{"start":{"line":203,"column":8},"end":{"line":203,"column":49}},"30":{"start":{"line":217,"column":8},"end":{"line":217,"column":53}},"31":{"start":{"line":226,"column":9},"end":{"line":226,"column":64}},"32":{"start":{"line":238,"column":8},"end":{"line":238,"column":51}}},"branchMap":{"1":{"line":64,"type":"if","locations":[{"start":{"line":64,"column":21},"end":{"line":64,"column":21}},{"start":{"line":64,"column":21},"end":{"line":64,"column":21}}]},"2":{"line":82,"type":"if","locations":[{"start":{"line":82,"column":15},"end":{"line":82,"column":15}},{"start":{"line":82,"column":15},"end":{"line":82,"column":15}}]},"3":{"line":131,"type":"if","locations":[{"start":{"line":131,"column":47},"end":{"line":131,"column":47}},{"start":{"line":131,"column":47},"end":{"line":131,"column":47}}]},"4":{"line":194,"type":"if","locations":[{"start":{"line":194,"column":8},"end":{"line":194,"column":8}},{"start":{"line":194,"column":8},"end":{"line":194,"column":8}}]}}}, +"contracts/modules/internal/base/SnapshotModuleBase.sol":{"l":{"83":2,"84":2,"92":76,"93":76,"95":76,"96":68,"101":68,"102":48,"105":20,"107":8,"110":8,"112":8,"113":8,"120":28,"132":170,"134":170,"136":168,"138":94,"141":94,"142":2,"148":2,"151":164,"152":164,"159":12,"160":12,"161":10,"163":10,"164":2,"167":8,"168":2,"170":6,"173":6,"174":10,"175":10,"176":10,"179":6,"181":8,"188":22,"190":22,"191":20,"192":18,"193":2,"195":16,"196":12,"197":8,"198":8,"199":2,"205":2,"208":8,"209":4,"210":2,"216":6,"218":6,"225":14,"227":14,"228":10,"229":2,"232":8,"233":2,"235":6,"236":6,"246":10,"247":10,"249":10,"251":8,"252":6,"254":8,"282":1920,"284":1920,"285":1484,"287":436,"301":842,"302":842,"303":842,"304":36,"305":36,"315":421,"316":421,"320":421,"321":18,"322":18,"332":842,"333":834,"335":8,"346":36,"347":36,"348":36,"350":36,"354":22,"358":8,"362":6,"375":489,"376":489,"378":489,"382":403,"385":86,"386":86,"388":86,"389":116,"390":52,"391":52,"394":64,"397":86,"406":26,"407":26,"408":6,"410":20,"413":202,"414":6,"421":46,"422":6,"428":4856},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/internal/base/SnapshotModuleBase.sol","s":{"1":2,"2":2,"3":76,"4":76,"5":76,"6":68,"7":68,"8":48,"9":20,"10":8,"11":8,"12":28,"13":170,"14":170,"15":168,"16":94,"17":94,"18":92,"19":164,"20":164,"21":12,"22":12,"23":10,"24":10,"25":8,"26":2,"27":6,"28":6,"29":8,"30":22,"31":22,"32":20,"33":18,"34":16,"35":12,"36":8,"37":8,"38":6,"39":8,"40":4,"41":6,"42":14,"43":14,"44":10,"45":8,"46":6,"47":6,"48":10,"49":10,"50":10,"51":8,"52":8,"53":1920,"54":1920,"55":1484,"56":436,"57":842,"58":842,"59":842,"60":36,"61":36,"62":421,"63":421,"64":421,"65":842,"66":834,"67":8,"68":36,"69":36,"70":36,"71":36,"72":22,"73":14,"74":8,"75":6,"76":489,"77":489,"78":489,"79":403,"80":86,"81":86,"82":116,"83":86,"84":26,"85":26,"86":20,"87":202,"88":46},"b":{"1":[384,0],"2":[68,8],"3":[48,20],"4":[8,12],"5":[94,74],"6":[2,92],"7":[2,90],"8":[2,8],"9":[2,6],"10":[2,16],"11":[8,4],"12":[2,6],"13":[2,4],"14":[4,4],"15":[2,2],"16":[2,8],"17":[2,6],"18":[1484,436],"19":[36,806],"20":[18,403],"21":[834,8],"22":[22,14],"23":[8,6],"24":[403,86],"25":[403,0],"26":[52,64],"27":[6,20],"28":[6,196],"29":[6,40]},"f":{"1":384,"2":2,"3":76,"4":170,"5":12,"6":22,"7":14,"8":10,"9":1920,"10":842,"11":421,"12":842,"13":36,"14":489,"15":26,"16":202,"17":46,"18":4856},"fnMap":{"1":{"name":"__SnapshotModuleBase_init_unchained","line":70,"loc":{"start":{"line":70,"column":4},"end":{"line":73,"column":4}}},"2":{"name":"getAllSnapshots","line":82,"loc":{"start":{"line":82,"column":4},"end":{"line":85,"column":4}}},"3":{"name":"getNextSnapshots","line":91,"loc":{"start":{"line":91,"column":4},"end":{"line":121,"column":4}}},"4":{"name":"_scheduleSnapshot","line":131,"loc":{"start":{"line":131,"column":4},"end":{"line":153,"column":4}}},"5":{"name":"_scheduleSnapshotNotOptimized","line":158,"loc":{"start":{"line":158,"column":4},"end":{"line":182,"column":4}}},"6":{"name":"_rescheduleSnapshot","line":187,"loc":{"start":{"line":187,"column":4},"end":{"line":219,"column":4}}},"7":{"name":"_unscheduleLastSnapshot","line":224,"loc":{"start":{"line":224,"column":4},"end":{"line":237,"column":4}}},"8":{"name":"_unscheduleSnapshotNotOptimized","line":245,"loc":{"start":{"line":245,"column":4},"end":{"line":255,"column":4}}},"9":{"name":"_valueAt","line":264,"loc":{"start":{"line":264,"column":4},"end":{"line":289,"column":4}}},"10":{"name":"_updateSnapshot","line":297,"loc":{"start":{"line":297,"column":4},"end":{"line":307,"column":4}}},"11":{"name":"_setCurrentSnapshot","line":314,"loc":{"start":{"line":314,"column":4},"end":{"line":324,"column":4}}},"12":{"name":"_lastSnapshot","line":329,"loc":{"start":{"line":329,"column":4},"end":{"line":337,"column":4}}},"13":{"name":"_findScheduledSnapshotIndex","line":343,"loc":{"start":{"line":343,"column":4},"end":{"line":364,"column":4}}},"14":{"name":"_findScheduledMostRecentPastSnapshot","line":370,"loc":{"start":{"line":370,"column":4},"end":{"line":398,"column":4}}},"15":{"name":"_findAndRevertScheduledSnapshotIndex","line":403,"loc":{"start":{"line":403,"column":4},"end":{"line":411,"column":4}}},"16":{"name":"_checkTimeInThePast","line":412,"loc":{"start":{"line":412,"column":4},"end":{"line":419,"column":4}}},"17":{"name":"_checkTimeSnapshotAlreadyDone","line":420,"loc":{"start":{"line":420,"column":4},"end":{"line":424,"column":4}}},"18":{"name":"_getSnapshotModuleBaseStorage","line":427,"loc":{"start":{"line":427,"column":4},"end":{"line":431,"column":4}}}},"statementMap":{"1":{"start":{"line":83,"column":8},"end":{"line":83,"column":77}},"2":{"start":{"line":84,"column":8},"end":{"line":84,"column":36}},"3":{"start":{"line":92,"column":8},"end":{"line":92,"column":77}},"4":{"start":{"line":93,"column":8},"end":{"line":93,"column":65}},"5":{"start":{"line":95,"column":8},"end":{"line":95,"column":3657}},"6":{"start":{"line":96,"column":12},"end":{"line":96,"column":3755}},"7":{"start":{"line":101,"column":12},"end":{"line":101,"column":3918}},"8":{"start":{"line":102,"column":16},"end":{"line":102,"column":44}},"9":{"start":{"line":105,"column":16},"end":{"line":105,"column":4128}},"10":{"start":{"line":107,"column":20},"end":{"line":107,"column":4318}},"11":{"start":{"line":112,"column":20},"end":{"line":112,"column":4596}},"12":{"start":{"line":120,"column":8},"end":{"line":120,"column":36}},"13":{"start":{"line":132,"column":8},"end":{"line":132,"column":77}},"14":{"start":{"line":134,"column":7},"end":{"line":134,"column":31}},"15":{"start":{"line":136,"column":8},"end":{"line":136,"column":5453}},"16":{"start":{"line":138,"column":12},"end":{"line":138,"column":5564}},"17":{"start":{"line":141,"column":12},"end":{"line":141,"column":5689}},"18":{"start":{"line":147,"column":19},"end":{"line":147,"column":5942}},"19":{"start":{"line":151,"column":8},"end":{"line":151,"column":39}},"20":{"start":{"line":152,"column":8},"end":{"line":152,"column":38}},"21":{"start":{"line":159,"column":8},"end":{"line":159,"column":77}},"22":{"start":{"line":160,"column":8},"end":{"line":160,"column":32}},"23":{"start":{"line":161,"column":8},"end":{"line":161,"column":73}},"24":{"start":{"line":163,"column":8},"end":{"line":163,"column":6518}},"25":{"start":{"line":167,"column":8},"end":{"line":167,"column":6709}},"26":{"start":{"line":168,"column":12},"end":{"line":168,"column":43}},"27":{"start":{"line":170,"column":12},"end":{"line":170,"column":6833}},"28":{"start":{"line":173,"column":12},"end":{"line":173,"column":6960}},"29":{"start":{"line":181,"column":8},"end":{"line":181,"column":38}},"30":{"start":{"line":188,"column":8},"end":{"line":188,"column":77}},"31":{"start":{"line":190,"column":8},"end":{"line":190,"column":45}},"32":{"start":{"line":191,"column":8},"end":{"line":191,"column":35}},"33":{"start":{"line":192,"column":8},"end":{"line":192,"column":7691}},"34":{"start":{"line":195,"column":8},"end":{"line":195,"column":69}},"35":{"start":{"line":196,"column":8},"end":{"line":196,"column":7891}},"36":{"start":{"line":197,"column":12},"end":{"line":197,"column":71}},"37":{"start":{"line":198,"column":12},"end":{"line":198,"column":8028}},"38":{"start":{"line":204,"column":19},"end":{"line":204,"column":8286}},"39":{"start":{"line":208,"column":8},"end":{"line":208,"column":8425}},"40":{"start":{"line":209,"column":12},"end":{"line":209,"column":8467}},"41":{"start":{"line":218,"column":8},"end":{"line":218,"column":47}},"42":{"start":{"line":225,"column":8},"end":{"line":225,"column":77}},"43":{"start":{"line":227,"column":8},"end":{"line":227,"column":42}},"44":{"start":{"line":228,"column":8},"end":{"line":228,"column":9173}},"45":{"start":{"line":232,"column":8},"end":{"line":232,"column":9373}},"46":{"start":{"line":235,"column":8},"end":{"line":235,"column":34}},"47":{"start":{"line":236,"column":8},"end":{"line":236,"column":37}},"48":{"start":{"line":246,"column":8},"end":{"line":246,"column":77}},"49":{"start":{"line":247,"column":8},"end":{"line":247,"column":42}},"50":{"start":{"line":249,"column":8},"end":{"line":249,"column":66}},"51":{"start":{"line":251,"column":8},"end":{"line":251,"column":10194}},"52":{"start":{"line":254,"column":8},"end":{"line":254,"column":34}},"53":{"start":{"line":282,"column":8},"end":{"line":282,"column":58}},"54":{"start":{"line":284,"column":8},"end":{"line":284,"column":12023}},"55":{"start":{"line":285,"column":12},"end":{"line":285,"column":29}},"56":{"start":{"line":287,"column":12},"end":{"line":287,"column":50}},"57":{"start":{"line":301,"column":8},"end":{"line":301,"column":77}},"58":{"start":{"line":302,"column":8},"end":{"line":302,"column":48}},"59":{"start":{"line":303,"column":8},"end":{"line":303,"column":12661}},"60":{"start":{"line":304,"column":12},"end":{"line":304,"column":38}},"61":{"start":{"line":305,"column":12},"end":{"line":305,"column":46}},"62":{"start":{"line":315,"column":8},"end":{"line":315,"column":77}},"63":{"start":{"line":316,"column":8},"end":{"line":316,"column":13151}},"64":{"start":{"line":320,"column":8},"end":{"line":320,"column":13255}},"65":{"start":{"line":332,"column":8},"end":{"line":332,"column":13609}},"66":{"start":{"line":333,"column":12},"end":{"line":333,"column":20}},"67":{"start":{"line":335,"column":12},"end":{"line":335,"column":38}},"68":{"start":{"line":346,"column":8},"end":{"line":346,"column":77}},"69":{"start":{"line":347,"column":8},"end":{"line":347,"column":71}},"70":{"start":{"line":348,"column":8},"end":{"line":348,"column":72}},"71":{"start":{"line":350,"column":8},"end":{"line":350,"column":14239}},"72":{"start":{"line":354,"column":12},"end":{"line":354,"column":37}},"73":{"start":{"line":357,"column":13},"end":{"line":357,"column":14456}},"74":{"start":{"line":358,"column":12},"end":{"line":358,"column":38}},"75":{"start":{"line":362,"column":12},"end":{"line":362,"column":53}},"76":{"start":{"line":375,"column":8},"end":{"line":375,"column":77}},"77":{"start":{"line":376,"column":8},"end":{"line":376,"column":63}},"78":{"start":{"line":378,"column":8},"end":{"line":378,"column":15173}},"79":{"start":{"line":382,"column":12},"end":{"line":382,"column":40}},"80":{"start":{"line":385,"column":8},"end":{"line":385,"column":26}},"81":{"start":{"line":388,"column":8},"end":{"line":388,"column":15538}},"82":{"start":{"line":389,"column":12},"end":{"line":389,"column":15626}},"83":{"start":{"line":397,"column":8},"end":{"line":397,"column":34}},"84":{"start":{"line":406,"column":8},"end":{"line":406,"column":73}},"85":{"start":{"line":407,"column":8},"end":{"line":407,"column":16172}},"86":{"start":{"line":410,"column":8},"end":{"line":410,"column":20}},"87":{"start":{"line":413,"column":8},"end":{"line":413,"column":16371}},"88":{"start":{"line":421,"column":8},"end":{"line":421,"column":16674}}},"branchMap":{"1":{"line":70,"type":"if","locations":[{"start":{"line":70,"column":60},"end":{"line":70,"column":60}},{"start":{"line":70,"column":60},"end":{"line":70,"column":60}}]},"2":{"line":95,"type":"if","locations":[{"start":{"line":95,"column":8},"end":{"line":95,"column":8}},{"start":{"line":95,"column":8},"end":{"line":95,"column":8}}]},"3":{"line":101,"type":"if","locations":[{"start":{"line":101,"column":12},"end":{"line":101,"column":12}},{"start":{"line":101,"column":12},"end":{"line":101,"column":12}}]},"4":{"line":105,"type":"if","locations":[{"start":{"line":105,"column":16},"end":{"line":105,"column":16}},{"start":{"line":105,"column":16},"end":{"line":105,"column":16}}]},"5":{"line":136,"type":"if","locations":[{"start":{"line":136,"column":8},"end":{"line":136,"column":8}},{"start":{"line":136,"column":8},"end":{"line":136,"column":8}}]},"6":{"line":141,"type":"if","locations":[{"start":{"line":141,"column":12},"end":{"line":141,"column":12}},{"start":{"line":141,"column":12},"end":{"line":141,"column":12}}]},"7":{"line":147,"type":"if","locations":[{"start":{"line":147,"column":19},"end":{"line":147,"column":19}},{"start":{"line":147,"column":19},"end":{"line":147,"column":19}}]},"8":{"line":163,"type":"if","locations":[{"start":{"line":163,"column":8},"end":{"line":163,"column":8}},{"start":{"line":163,"column":8},"end":{"line":163,"column":8}}]},"9":{"line":167,"type":"if","locations":[{"start":{"line":167,"column":8},"end":{"line":167,"column":8}},{"start":{"line":167,"column":8},"end":{"line":167,"column":8}}]},"10":{"line":192,"type":"if","locations":[{"start":{"line":192,"column":8},"end":{"line":192,"column":8}},{"start":{"line":192,"column":8},"end":{"line":192,"column":8}}]},"11":{"line":196,"type":"if","locations":[{"start":{"line":196,"column":8},"end":{"line":196,"column":8}},{"start":{"line":196,"column":8},"end":{"line":196,"column":8}}]},"12":{"line":198,"type":"if","locations":[{"start":{"line":198,"column":12},"end":{"line":198,"column":12}},{"start":{"line":198,"column":12},"end":{"line":198,"column":12}}]},"13":{"line":204,"type":"if","locations":[{"start":{"line":204,"column":19},"end":{"line":204,"column":19}},{"start":{"line":204,"column":19},"end":{"line":204,"column":19}}]},"14":{"line":208,"type":"if","locations":[{"start":{"line":208,"column":8},"end":{"line":208,"column":8}},{"start":{"line":208,"column":8},"end":{"line":208,"column":8}}]},"15":{"line":209,"type":"if","locations":[{"start":{"line":209,"column":12},"end":{"line":209,"column":12}},{"start":{"line":209,"column":12},"end":{"line":209,"column":12}}]},"16":{"line":228,"type":"if","locations":[{"start":{"line":228,"column":8},"end":{"line":228,"column":8}},{"start":{"line":228,"column":8},"end":{"line":228,"column":8}}]},"17":{"line":232,"type":"if","locations":[{"start":{"line":232,"column":8},"end":{"line":232,"column":8}},{"start":{"line":232,"column":8},"end":{"line":232,"column":8}}]},"18":{"line":284,"type":"if","locations":[{"start":{"line":284,"column":8},"end":{"line":284,"column":8}},{"start":{"line":284,"column":8},"end":{"line":284,"column":8}}]},"19":{"line":303,"type":"if","locations":[{"start":{"line":303,"column":8},"end":{"line":303,"column":8}},{"start":{"line":303,"column":8},"end":{"line":303,"column":8}}]},"20":{"line":320,"type":"if","locations":[{"start":{"line":320,"column":8},"end":{"line":320,"column":8}},{"start":{"line":320,"column":8},"end":{"line":320,"column":8}}]},"21":{"line":332,"type":"if","locations":[{"start":{"line":332,"column":8},"end":{"line":332,"column":8}},{"start":{"line":332,"column":8},"end":{"line":332,"column":8}}]},"22":{"line":350,"type":"if","locations":[{"start":{"line":350,"column":8},"end":{"line":350,"column":8}},{"start":{"line":350,"column":8},"end":{"line":350,"column":8}}]},"23":{"line":357,"type":"if","locations":[{"start":{"line":357,"column":13},"end":{"line":357,"column":13}},{"start":{"line":357,"column":13},"end":{"line":357,"column":13}}]},"24":{"line":378,"type":"if","locations":[{"start":{"line":378,"column":8},"end":{"line":378,"column":8}},{"start":{"line":378,"column":8},"end":{"line":378,"column":8}}]},"25":{"line":379,"type":"cond-expr","locations":[{"start":{"line":379,"column":12},"end":{"line":379,"column":32}},{"start":{"line":380,"column":12},"end":{"line":380,"column":77}}]},"26":{"line":389,"type":"if","locations":[{"start":{"line":389,"column":12},"end":{"line":389,"column":12}},{"start":{"line":389,"column":12},"end":{"line":389,"column":12}}]},"27":{"line":407,"type":"if","locations":[{"start":{"line":407,"column":8},"end":{"line":407,"column":8}},{"start":{"line":407,"column":8},"end":{"line":407,"column":8}}]},"28":{"line":413,"type":"if","locations":[{"start":{"line":413,"column":8},"end":{"line":413,"column":8}},{"start":{"line":413,"column":8},"end":{"line":413,"column":8}}]},"29":{"line":421,"type":"if","locations":[{"start":{"line":421,"column":8},"end":{"line":421,"column":8}},{"start":{"line":421,"column":8},"end":{"line":421,"column":8}}]}}}, +"contracts/modules/internal/EnforcementModuleInternal.sol":{"l":{"65":944,"66":944,"83":22,"84":22,"85":2,"87":20,"88":20,"89":20,"101":8,"102":8,"103":2,"105":6,"106":6,"108":6,"113":974},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/internal/EnforcementModuleInternal.sol","s":{"1":944,"2":944,"3":22,"4":22,"5":2,"6":20,"7":20,"8":8,"9":8,"10":2,"11":6,"12":6},"b":{"1":[384,0],"2":[2,20],"3":[2,6]},"f":{"1":384,"2":944,"3":22,"4":8,"5":974},"fnMap":{"1":{"name":"__Enforcement_init_unchained","line":53,"loc":{"start":{"line":53,"column":4},"end":{"line":55,"column":4}}},"2":{"name":"frozen","line":64,"loc":{"start":{"line":64,"column":4},"end":{"line":67,"column":4}}},"3":{"name":"_freeze","line":79,"loc":{"start":{"line":79,"column":4},"end":{"line":90,"column":4}}},"4":{"name":"_unfreeze","line":97,"loc":{"start":{"line":97,"column":4},"end":{"line":109,"column":4}}},"5":{"name":"_getEnforcementModuleInternalStorage","line":112,"loc":{"start":{"line":112,"column":4},"end":{"line":116,"column":4}}}},"statementMap":{"1":{"start":{"line":65,"column":8},"end":{"line":65,"column":91}},"2":{"start":{"line":66,"column":8},"end":{"line":66,"column":33}},"3":{"start":{"line":83,"column":8},"end":{"line":83,"column":91}},"4":{"start":{"line":84,"column":8},"end":{"line":84,"column":2789}},"5":{"start":{"line":85,"column":12},"end":{"line":85,"column":24}},"6":{"start":{"line":88,"column":8},"end":{"line":88,"column":58}},"7":{"start":{"line":89,"column":8},"end":{"line":89,"column":19}},"8":{"start":{"line":101,"column":8},"end":{"line":101,"column":91}},"9":{"start":{"line":102,"column":8},"end":{"line":102,"column":3351}},"10":{"start":{"line":103,"column":12},"end":{"line":103,"column":24}},"11":{"start":{"line":106,"column":8},"end":{"line":106,"column":60}},"12":{"start":{"line":108,"column":8},"end":{"line":108,"column":19}}},"branchMap":{"1":{"line":53,"type":"if","locations":[{"start":{"line":53,"column":53},"end":{"line":53,"column":53}},{"start":{"line":53,"column":53},"end":{"line":53,"column":53}}]},"2":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":8},"end":{"line":84,"column":8}},{"start":{"line":84,"column":8},"end":{"line":84,"column":8}}]},"3":{"line":102,"type":"if","locations":[{"start":{"line":102,"column":8},"end":{"line":102,"column":8}},{"start":{"line":102,"column":8},"end":{"line":102,"column":8}}]}}}, +"contracts/modules/internal/ERC20SnapshotModuleInternal.sol":{"l":{"35":480,"36":480,"44":160,"45":160,"46":480,"48":160,"56":80,"57":80,"58":80,"59":80,"71":1200,"72":1200,"77":1200,"86":720,"87":720,"91":720,"106":421,"107":421,"109":77,"110":77,"112":43,"115":34,"119":344,"120":344,"128":464,"129":464,"136":378,"137":378},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/internal/ERC20SnapshotModuleInternal.sol","s":{"1":160,"2":80,"3":1200,"4":1200,"5":1200,"6":720,"7":720,"8":720,"9":421,"10":421,"11":77,"12":77,"13":43,"14":34,"15":344,"16":344,"17":464,"18":464,"19":378,"20":378},"b":{"1":[384,0],"2":[400,800],"3":[36,684],"4":[77,344],"5":[43,34]},"f":{"1":384,"2":480,"3":160,"4":80,"5":1200,"6":720,"7":421,"8":464,"9":378},"fnMap":{"1":{"name":"__ERC20Snapshot_init_unchained","line":21,"loc":{"start":{"line":21,"column":4},"end":{"line":24,"column":4}}},"2":{"name":"snapshotInfo","line":34,"loc":{"start":{"line":34,"column":4},"end":{"line":37,"column":4}}},"3":{"name":"snapshotInfoBatch","line":43,"loc":{"start":{"line":43,"column":4},"end":{"line":49,"column":4}}},"4":{"name":"snapshotInfoBatch","line":55,"loc":{"start":{"line":55,"column":4},"end":{"line":61,"column":4}}},"5":{"name":"snapshotBalanceOf","line":67,"loc":{"start":{"line":67,"column":4},"end":{"line":78,"column":4}}},"6":{"name":"snapshotTotalSupply","line":85,"loc":{"start":{"line":85,"column":4},"end":{"line":92,"column":4}}},"7":{"name":"_snapshotUpdate","line":102,"loc":{"start":{"line":102,"column":4},"end":{"line":122,"column":4}}},"8":{"name":"_updateAccountSnapshot","line":127,"loc":{"start":{"line":127,"column":4},"end":{"line":130,"column":4}}},"9":{"name":"_updateTotalSupplySnapshot","line":135,"loc":{"start":{"line":135,"column":4},"end":{"line":138,"column":4}}}},"statementMap":{"1":{"start":{"line":45,"column":8},"end":{"line":45,"column":2070}},"2":{"start":{"line":58,"column":8},"end":{"line":58,"column":2733}},"3":{"start":{"line":71,"column":8},"end":{"line":71,"column":77}},"4":{"start":{"line":72,"column":8},"end":{"line":72,"column":3316}},"5":{"start":{"line":77,"column":8},"end":{"line":77,"column":53}},"6":{"start":{"line":86,"column":8},"end":{"line":86,"column":77}},"7":{"start":{"line":87,"column":8},"end":{"line":87,"column":3868}},"8":{"start":{"line":91,"column":8},"end":{"line":91,"column":50}},"9":{"start":{"line":106,"column":8},"end":{"line":106,"column":28}},"10":{"start":{"line":107,"column":8},"end":{"line":107,"column":4593}},"11":{"start":{"line":109,"column":12},"end":{"line":109,"column":39}},"12":{"start":{"line":110,"column":12},"end":{"line":110,"column":4719}},"13":{"start":{"line":112,"column":16},"end":{"line":112,"column":41}},"14":{"start":{"line":115,"column":16},"end":{"line":115,"column":43}},"15":{"start":{"line":119,"column":12},"end":{"line":119,"column":37}},"16":{"start":{"line":120,"column":12},"end":{"line":120,"column":39}},"17":{"start":{"line":128,"column":8},"end":{"line":128,"column":77}},"18":{"start":{"line":129,"column":8},"end":{"line":129,"column":79}},"19":{"start":{"line":136,"column":8},"end":{"line":136,"column":77}},"20":{"start":{"line":137,"column":8},"end":{"line":137,"column":62}}},"branchMap":{"1":{"line":21,"type":"if","locations":[{"start":{"line":21,"column":55},"end":{"line":21,"column":55}},{"start":{"line":21,"column":55},"end":{"line":21,"column":55}}]},"2":{"line":77,"type":"if","locations":[{"start":{"line":77,"column":29},"end":{"line":77,"column":33}},{"start":{"line":77,"column":37},"end":{"line":77,"column":52}}]},"3":{"line":91,"type":"if","locations":[{"start":{"line":91,"column":29},"end":{"line":91,"column":33}},{"start":{"line":91,"column":37},"end":{"line":91,"column":49}}]},"4":{"line":107,"type":"if","locations":[{"start":{"line":107,"column":8},"end":{"line":107,"column":8}},{"start":{"line":107,"column":8},"end":{"line":107,"column":8}}]},"5":{"line":110,"type":"if","locations":[{"start":{"line":110,"column":12},"end":{"line":110,"column":12}},{"start":{"line":110,"column":12},"end":{"line":110,"column":12}}]}}}, +"contracts/modules/internal/ValidationModuleInternal.sol":{"l":{"33":384,"34":18,"35":18,"36":18,"46":32,"47":32,"63":12,"64":12,"73":6,"74":6,"85":6,"86":6,"90":60,"91":60,"97":628},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/internal/ValidationModuleInternal.sol","s":{"1":384,"2":18,"3":18,"4":32,"5":32,"6":12,"7":12,"8":6,"9":6,"10":6,"11":6,"12":60,"13":60},"b":{"1":[384,0],"2":[18,366]},"f":{"1":384,"2":32,"3":12,"4":6,"5":6,"6":60,"7":628},"fnMap":{"1":{"name":"__Validation_init_unchained","line":32,"loc":{"start":{"line":30,"column":4},"end":{"line":38,"column":4}}},"2":{"name":"ruleEngine","line":45,"loc":{"start":{"line":45,"column":4},"end":{"line":48,"column":4}}},"3":{"name":"_validateTransfer","line":58,"loc":{"start":{"line":58,"column":4},"end":{"line":65,"column":4}}},"4":{"name":"_messageForTransferRestriction","line":70,"loc":{"start":{"line":70,"column":4},"end":{"line":75,"column":4}}},"5":{"name":"_detectTransferRestriction","line":80,"loc":{"start":{"line":80,"column":4},"end":{"line":87,"column":4}}},"6":{"name":"_operateOnTransfer","line":89,"loc":{"start":{"line":89,"column":4},"end":{"line":92,"column":4}}},"7":{"name":"_getValidationModuleInternalStorage","line":96,"loc":{"start":{"line":96,"column":4},"end":{"line":100,"column":4}}}},"statementMap":{"1":{"start":{"line":33,"column":8},"end":{"line":33,"column":1219}},"2":{"start":{"line":34,"column":12},"end":{"line":34,"column":93}},"3":{"start":{"line":36,"column":12},"end":{"line":36,"column":40}},"4":{"start":{"line":46,"column":8},"end":{"line":46,"column":89}},"5":{"start":{"line":47,"column":8},"end":{"line":47,"column":28}},"6":{"start":{"line":63,"column":8},"end":{"line":63,"column":89}},"7":{"start":{"line":64,"column":8},"end":{"line":64,"column":63}},"8":{"start":{"line":73,"column":8},"end":{"line":73,"column":89}},"9":{"start":{"line":74,"column":8},"end":{"line":74,"column":75}},"10":{"start":{"line":85,"column":8},"end":{"line":85,"column":89}},"11":{"start":{"line":86,"column":8},"end":{"line":86,"column":72}},"12":{"start":{"line":90,"column":8},"end":{"line":90,"column":89}},"13":{"start":{"line":91,"column":8},"end":{"line":91,"column":64}}},"branchMap":{"1":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":15},"end":{"line":32,"column":15}},{"start":{"line":32,"column":15},"end":{"line":32,"column":15}}]},"2":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":8},"end":{"line":33,"column":8}},{"start":{"line":33,"column":8},"end":{"line":33,"column":8}}]}}}, +"contracts/modules/security/AuthorizationModule.sol":{"l":{"32":384,"33":2,"35":382,"36":382,"37":16,"38":16,"39":16,"49":2,"50":2,"61":16,"62":16,"63":4,"65":12,"66":12,"70":40,"71":40,"72":8,"73":8,"75":4,"78":36,"82":10,"83":10,"84":8,"85":8,"87":4,"90":6,"101":1283,"102":759,"104":524,"115":84},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/security/AuthorizationModule.sol","s":{"1":384,"2":382,"3":382,"4":16,"5":16,"6":2,"7":2,"8":16,"9":16,"10":12,"11":40,"12":40,"13":8,"14":8,"15":36,"16":10,"17":10,"18":8,"19":8,"20":6,"21":1283,"22":759,"23":524},"b":{"1":[384,0],"2":[2,382],"3":[16,366],"4":[16,4],"5":[4,12],"6":[40,2],"7":[8,32],"8":[4,4],"9":[10,2],"10":[8,2],"11":[4,4],"12":[759,524]},"f":{"1":384,"2":2,"3":16,"4":40,"5":10,"6":1283,"7":84},"fnMap":{"1":{"name":"__AuthorizationModule_init_unchained","line":31,"loc":{"start":{"line":30,"column":4},"end":{"line":41,"column":4}}},"2":{"name":"authorizationEngine","line":48,"loc":{"start":{"line":48,"column":4},"end":{"line":51,"column":4}}},"3":{"name":"setAuthorizationEngine","line":60,"loc":{"start":{"line":58,"column":4},"end":{"line":67,"column":4}}},"4":{"name":"grantRole","line":69,"loc":{"start":{"line":69,"column":4},"end":{"line":79,"column":4}}},"5":{"name":"revokeRole","line":81,"loc":{"start":{"line":81,"column":4},"end":{"line":91,"column":4}}},"6":{"name":"hasRole","line":96,"loc":{"start":{"line":96,"column":4},"end":{"line":105,"column":4}}},"7":{"name":"_getAuthorizationModuleStorage","line":114,"loc":{"start":{"line":114,"column":4},"end":{"line":118,"column":4}}}},"statementMap":{"1":{"start":{"line":32,"column":8},"end":{"line":32,"column":1354}},"2":{"start":{"line":35,"column":8},"end":{"line":35,"column":44}},"3":{"start":{"line":36,"column":8},"end":{"line":36,"column":1521}},"4":{"start":{"line":37,"column":12},"end":{"line":37,"column":83}},"5":{"start":{"line":39,"column":12},"end":{"line":39,"column":58}},"6":{"start":{"line":49,"column":8},"end":{"line":49,"column":79}},"7":{"start":{"line":50,"column":8},"end":{"line":50,"column":37}},"8":{"start":{"line":61,"column":8},"end":{"line":61,"column":79}},"9":{"start":{"line":62,"column":8},"end":{"line":62,"column":2578}},"10":{"start":{"line":66,"column":8},"end":{"line":66,"column":54}},"11":{"start":{"line":70,"column":8},"end":{"line":70,"column":79}},"12":{"start":{"line":71,"column":8},"end":{"line":71,"column":3034}},"13":{"start":{"line":72,"column":12},"end":{"line":72,"column":82}},"14":{"start":{"line":73,"column":12},"end":{"line":73,"column":3188}},"15":{"start":{"line":78,"column":8},"end":{"line":78,"column":64}},"16":{"start":{"line":82,"column":8},"end":{"line":82,"column":79}},"17":{"start":{"line":83,"column":8},"end":{"line":83,"column":3630}},"18":{"start":{"line":84,"column":12},"end":{"line":84,"column":83}},"19":{"start":{"line":85,"column":12},"end":{"line":85,"column":3785}},"20":{"start":{"line":90,"column":8},"end":{"line":90,"column":65}},"21":{"start":{"line":101,"column":8},"end":{"line":101,"column":4316}},"22":{"start":{"line":102,"column":12},"end":{"line":102,"column":23}},"23":{"start":{"line":104,"column":8},"end":{"line":104,"column":62}}},"branchMap":{"1":{"line":31,"type":"if","locations":[{"start":{"line":31,"column":13},"end":{"line":31,"column":13}},{"start":{"line":31,"column":13},"end":{"line":31,"column":13}}]},"2":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":8},"end":{"line":32,"column":8}},{"start":{"line":32,"column":8},"end":{"line":32,"column":8}}]},"3":{"line":36,"type":"if","locations":[{"start":{"line":36,"column":8},"end":{"line":36,"column":8}},{"start":{"line":36,"column":8},"end":{"line":36,"column":8}}]},"4":{"line":60,"type":"if","locations":[{"start":{"line":60,"column":15},"end":{"line":60,"column":15}},{"start":{"line":60,"column":15},"end":{"line":60,"column":15}}]},"5":{"line":62,"type":"if","locations":[{"start":{"line":62,"column":8},"end":{"line":62,"column":8}},{"start":{"line":62,"column":8},"end":{"line":62,"column":8}}]},"6":{"line":69,"type":"if","locations":[{"start":{"line":69,"column":70},"end":{"line":69,"column":70}},{"start":{"line":69,"column":70},"end":{"line":69,"column":70}}]},"7":{"line":71,"type":"if","locations":[{"start":{"line":71,"column":8},"end":{"line":71,"column":8}},{"start":{"line":71,"column":8},"end":{"line":71,"column":8}}]},"8":{"line":73,"type":"if","locations":[{"start":{"line":73,"column":12},"end":{"line":73,"column":12}},{"start":{"line":73,"column":12},"end":{"line":73,"column":12}}]},"9":{"line":81,"type":"if","locations":[{"start":{"line":81,"column":71},"end":{"line":81,"column":71}},{"start":{"line":81,"column":71},"end":{"line":81,"column":71}}]},"10":{"line":83,"type":"if","locations":[{"start":{"line":83,"column":8},"end":{"line":83,"column":8}},{"start":{"line":83,"column":8},"end":{"line":83,"column":8}}]},"11":{"line":85,"type":"if","locations":[{"start":{"line":85,"column":12},"end":{"line":85,"column":12}},{"start":{"line":85,"column":12},"end":{"line":85,"column":12}}]},"12":{"line":101,"type":"if","locations":[{"start":{"line":101,"column":8},"end":{"line":101,"column":8}},{"start":{"line":101,"column":8},"end":{"line":101,"column":8}}]}}}, +"contracts/modules/wrapper/controllers/ValidationModule.sol":{"l":{"44":18,"45":18,"46":3,"48":15,"49":15,"60":20,"61":20,"62":3,"67":4,"72":2,"77":2,"79":6,"81":3,"97":17,"98":17,"99":4,"101":2,"103":2,"105":6,"107":3,"116":19,"117":4,"119":15,"120":15,"121":12,"123":3,"135":457,"136":18,"138":439,"142":438,"143":14,"145":424,"146":424,"147":60,"149":364},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/controllers/ValidationModule.sol","s":{"1":18,"2":18,"3":15,"4":20,"5":20,"6":3,"7":17,"8":4,"9":13,"10":2,"11":11,"12":2,"13":9,"14":6,"15":3,"16":17,"17":17,"18":4,"19":13,"20":2,"21":11,"22":2,"23":9,"24":6,"25":3,"26":19,"27":4,"28":15,"29":15,"30":12,"31":3,"32":457,"33":18,"34":439,"35":438,"36":14,"37":424,"38":424,"39":60,"40":364},"b":{"1":[382,0],"2":[18,3],"3":[3,15],"4":[3,17],"5":[4,13],"6":[2,11],"7":[2,9],"8":[6,3],"9":[4,13],"10":[2,11],"11":[2,9],"12":[6,3],"13":[4,15],"14":[12,3],"15":[18,439],"16":[12,4],"17":[4,2],"18":[14,424],"19":[60,364]},"f":{"1":382,"2":18,"3":20,"4":17,"5":19,"6":457,"7":438},"fnMap":{"1":{"name":"__ValidationModule_init_unchained","line":28,"loc":{"start":{"line":28,"column":4},"end":{"line":30,"column":4}}},"2":{"name":"setRuleEngine","line":43,"loc":{"start":{"line":41,"column":4},"end":{"line":50,"column":4}}},"3":{"name":"messageForTransferRestriction","line":57,"loc":{"start":{"line":57,"column":4},"end":{"line":83,"column":4}}},"4":{"name":"detectTransferRestriction","line":92,"loc":{"start":{"line":92,"column":4},"end":{"line":109,"column":4}}},"5":{"name":"validateTransfer","line":111,"loc":{"start":{"line":111,"column":4},"end":{"line":124,"column":4}}},"6":{"name":"_validateTransferByModule","line":130,"loc":{"start":{"line":130,"column":4},"end":{"line":139,"column":4}}},"7":{"name":"_operateOnTransfer","line":141,"loc":{"start":{"line":141,"column":4},"end":{"line":150,"column":4}}}},"statementMap":{"1":{"start":{"line":44,"column":8},"end":{"line":44,"column":89}},"2":{"start":{"line":45,"column":8},"end":{"line":45,"column":1409}},"3":{"start":{"line":49,"column":8},"end":{"line":49,"column":36}},"4":{"start":{"line":60,"column":10},"end":{"line":60,"column":91}},"5":{"start":{"line":61,"column":8},"end":{"line":61,"column":2191}},"6":{"start":{"line":62,"column":12},"end":{"line":62,"column":35}},"7":{"start":{"line":63,"column":15},"end":{"line":63,"column":2307}},"8":{"start":{"line":67,"column":12},"end":{"line":67,"column":48}},"9":{"start":{"line":68,"column":15},"end":{"line":68,"column":2483}},"10":{"start":{"line":72,"column":12},"end":{"line":72,"column":53}},"11":{"start":{"line":73,"column":15},"end":{"line":73,"column":2669}},"12":{"start":{"line":77,"column":12},"end":{"line":77,"column":51}},"13":{"start":{"line":78,"column":15},"end":{"line":78,"column":2851}},"14":{"start":{"line":79,"column":12},"end":{"line":79,"column":66}},"15":{"start":{"line":81,"column":12},"end":{"line":81,"column":36}},"16":{"start":{"line":97,"column":8},"end":{"line":97,"column":89}},"17":{"start":{"line":98,"column":8},"end":{"line":98,"column":3641}},"18":{"start":{"line":99,"column":12},"end":{"line":99,"column":69}},"19":{"start":{"line":100,"column":15},"end":{"line":100,"column":3743}},"20":{"start":{"line":101,"column":12},"end":{"line":101,"column":74}},"21":{"start":{"line":102,"column":15},"end":{"line":102,"column":3854}},"22":{"start":{"line":103,"column":12},"end":{"line":103,"column":72}},"23":{"start":{"line":104,"column":15},"end":{"line":104,"column":3961}},"24":{"start":{"line":105,"column":12},"end":{"line":105,"column":63}},"25":{"start":{"line":107,"column":12},"end":{"line":107,"column":56}},"26":{"start":{"line":116,"column":8},"end":{"line":116,"column":4310}},"27":{"start":{"line":117,"column":12},"end":{"line":117,"column":24}},"28":{"start":{"line":119,"column":8},"end":{"line":119,"column":89}},"29":{"start":{"line":120,"column":8},"end":{"line":120,"column":4497}},"30":{"start":{"line":121,"column":12},"end":{"line":121,"column":54}},"31":{"start":{"line":123,"column":8},"end":{"line":123,"column":19}},"32":{"start":{"line":135,"column":8},"end":{"line":135,"column":4983}},"33":{"start":{"line":136,"column":12},"end":{"line":136,"column":24}},"34":{"start":{"line":138,"column":8},"end":{"line":138,"column":19}},"35":{"start":{"line":142,"column":8},"end":{"line":142,"column":5209}},"36":{"start":{"line":143,"column":12},"end":{"line":143,"column":24}},"37":{"start":{"line":145,"column":8},"end":{"line":145,"column":89}},"38":{"start":{"line":146,"column":8},"end":{"line":146,"column":5395}},"39":{"start":{"line":147,"column":12},"end":{"line":147,"column":80}},"40":{"start":{"line":149,"column":8},"end":{"line":149,"column":19}}},"branchMap":{"1":{"line":28,"type":"if","locations":[{"start":{"line":28,"column":58},"end":{"line":28,"column":58}},{"start":{"line":28,"column":58},"end":{"line":28,"column":58}}]},"2":{"line":43,"type":"if","locations":[{"start":{"line":43,"column":15},"end":{"line":43,"column":15}},{"start":{"line":43,"column":15},"end":{"line":43,"column":15}}]},"3":{"line":45,"type":"if","locations":[{"start":{"line":45,"column":8},"end":{"line":45,"column":8}},{"start":{"line":45,"column":8},"end":{"line":45,"column":8}}]},"4":{"line":61,"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":61,"column":8}},{"start":{"line":61,"column":8},"end":{"line":61,"column":8}}]},"5":{"line":63,"type":"if","locations":[{"start":{"line":63,"column":15},"end":{"line":63,"column":15}},{"start":{"line":63,"column":15},"end":{"line":63,"column":15}}]},"6":{"line":68,"type":"if","locations":[{"start":{"line":68,"column":15},"end":{"line":68,"column":15}},{"start":{"line":68,"column":15},"end":{"line":68,"column":15}}]},"7":{"line":73,"type":"if","locations":[{"start":{"line":73,"column":15},"end":{"line":73,"column":15}},{"start":{"line":73,"column":15},"end":{"line":73,"column":15}}]},"8":{"line":78,"type":"if","locations":[{"start":{"line":78,"column":15},"end":{"line":78,"column":15}},{"start":{"line":78,"column":15},"end":{"line":78,"column":15}}]},"9":{"line":98,"type":"if","locations":[{"start":{"line":98,"column":8},"end":{"line":98,"column":8}},{"start":{"line":98,"column":8},"end":{"line":98,"column":8}}]},"10":{"line":100,"type":"if","locations":[{"start":{"line":100,"column":15},"end":{"line":100,"column":15}},{"start":{"line":100,"column":15},"end":{"line":100,"column":15}}]},"11":{"line":102,"type":"if","locations":[{"start":{"line":102,"column":15},"end":{"line":102,"column":15}},{"start":{"line":102,"column":15},"end":{"line":102,"column":15}}]},"12":{"line":104,"type":"if","locations":[{"start":{"line":104,"column":15},"end":{"line":104,"column":15}},{"start":{"line":104,"column":15},"end":{"line":104,"column":15}}]},"13":{"line":116,"type":"if","locations":[{"start":{"line":116,"column":8},"end":{"line":116,"column":8}},{"start":{"line":116,"column":8},"end":{"line":116,"column":8}}]},"14":{"line":120,"type":"if","locations":[{"start":{"line":120,"column":8},"end":{"line":120,"column":8}},{"start":{"line":120,"column":8},"end":{"line":120,"column":8}}]},"15":{"line":135,"type":"if","locations":[{"start":{"line":135,"column":8},"end":{"line":135,"column":8}},{"start":{"line":135,"column":8},"end":{"line":135,"column":8}}]},"16":{"line":135,"type":"cond-expr","locations":[{"start":{"line":135,"column":12},"end":{"line":135,"column":19}},{"start":{"line":135,"column":24},"end":{"line":135,"column":35}}]},"17":{"line":135,"type":"cond-expr","locations":[{"start":{"line":135,"column":12},"end":{"line":135,"column":35}},{"start":{"line":135,"column":40},"end":{"line":135,"column":49}}]},"18":{"line":142,"type":"if","locations":[{"start":{"line":142,"column":8},"end":{"line":142,"column":8}},{"start":{"line":142,"column":8},"end":{"line":142,"column":8}}]},"19":{"line":146,"type":"if","locations":[{"start":{"line":146,"column":8},"end":{"line":146,"column":8}},{"start":{"line":146,"column":8},"end":{"line":146,"column":8}}]}}}, +"contracts/modules/wrapper/core/BaseModule.sol":{"l":{"45":382,"46":382,"47":382,"48":382,"56":10,"57":10,"61":10,"62":10,"65":8,"66":8,"75":2,"76":2,"77":2,"86":2,"87":2,"88":2,"97":2,"98":2,"99":2,"109":416},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/core/BaseModule.sol","s":{"1":382,"2":10,"3":10,"4":10,"5":10,"6":8,"7":8,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2},"b":{"1":[382,0],"2":[2,2],"3":[2,2],"4":[2,2]},"f":{"1":382,"2":10,"3":10,"4":8,"5":2,"6":2,"7":2,"8":416},"fnMap":{"1":{"name":"__Base_init_unchained","line":44,"loc":{"start":{"line":40,"column":4},"end":{"line":49,"column":4}}},"2":{"name":"tokenId","line":55,"loc":{"start":{"line":55,"column":4},"end":{"line":58,"column":4}}},"3":{"name":"terms","line":60,"loc":{"start":{"line":60,"column":4},"end":{"line":63,"column":4}}},"4":{"name":"information","line":64,"loc":{"start":{"line":64,"column":4},"end":{"line":67,"column":4}}},"5":{"name":"setTokenId","line":74,"loc":{"start":{"line":72,"column":4},"end":{"line":78,"column":4}}},"6":{"name":"setTerms","line":85,"loc":{"start":{"line":83,"column":4},"end":{"line":89,"column":4}}},"7":{"name":"setInformation","line":96,"loc":{"start":{"line":94,"column":4},"end":{"line":100,"column":4}}},"8":{"name":"_getBaseModuleStorage","line":108,"loc":{"start":{"line":108,"column":4},"end":{"line":112,"column":4}}}},"statementMap":{"1":{"start":{"line":45,"column":8},"end":{"line":45,"column":61}},"2":{"start":{"line":56,"column":8},"end":{"line":56,"column":61}},"3":{"start":{"line":57,"column":8},"end":{"line":57,"column":25}},"4":{"start":{"line":61,"column":8},"end":{"line":61,"column":61}},"5":{"start":{"line":62,"column":8},"end":{"line":62,"column":23}},"6":{"start":{"line":65,"column":8},"end":{"line":65,"column":61}},"7":{"start":{"line":66,"column":8},"end":{"line":66,"column":29}},"8":{"start":{"line":75,"column":8},"end":{"line":75,"column":61}},"9":{"start":{"line":77,"column":8},"end":{"line":77,"column":40}},"10":{"start":{"line":86,"column":8},"end":{"line":86,"column":61}},"11":{"start":{"line":88,"column":8},"end":{"line":88,"column":33}},"12":{"start":{"line":97,"column":8},"end":{"line":97,"column":61}},"13":{"start":{"line":99,"column":8},"end":{"line":99,"column":52}}},"branchMap":{"1":{"line":44,"type":"if","locations":[{"start":{"line":44,"column":15},"end":{"line":44,"column":15}},{"start":{"line":44,"column":15},"end":{"line":44,"column":15}}]},"2":{"line":74,"type":"if","locations":[{"start":{"line":74,"column":13},"end":{"line":74,"column":13}},{"start":{"line":74,"column":13},"end":{"line":74,"column":13}}]},"3":{"line":85,"type":"if","locations":[{"start":{"line":85,"column":13},"end":{"line":85,"column":13}},{"start":{"line":85,"column":13},"end":{"line":85,"column":13}}]},"4":{"line":96,"type":"if","locations":[{"start":{"line":96,"column":13},"end":{"line":96,"column":13}},{"start":{"line":96,"column":13},"end":{"line":96,"column":13}}]}}}, +"contracts/modules/wrapper/core/EnforcementModule.sol":{"l":{"43":22,"57":8},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/core/EnforcementModule.sol","s":{"1":22,"2":8},"b":{"1":[382,0],"2":[22,2],"3":[8,2]},"f":{"1":382,"2":22,"3":8},"fnMap":{"1":{"name":"__EnforcementModule_init_unchained","line":27,"loc":{"start":{"line":27,"column":4},"end":{"line":29,"column":4}}},"2":{"name":"freeze","line":42,"loc":{"start":{"line":39,"column":4},"end":{"line":44,"column":4}}},"3":{"name":"unfreeze","line":56,"loc":{"start":{"line":53,"column":4},"end":{"line":58,"column":4}}}},"statementMap":{"1":{"start":{"line":43,"column":8},"end":{"line":43,"column":39}},"2":{"start":{"line":57,"column":8},"end":{"line":57,"column":41}}},"branchMap":{"1":{"line":27,"type":"if","locations":[{"start":{"line":27,"column":59},"end":{"line":27,"column":59}},{"start":{"line":27,"column":59},"end":{"line":27,"column":59}}]},"2":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":13},"end":{"line":42,"column":13}},{"start":{"line":42,"column":13},"end":{"line":42,"column":13}}]},"3":{"line":56,"type":"if","locations":[{"start":{"line":56,"column":13},"end":{"line":56,"column":13}},{"start":{"line":56,"column":13},"end":{"line":56,"column":13}}]}}}, +"contracts/modules/wrapper/core/ERC20BaseModule.sol":{"l":{"42":382,"43":382,"54":2,"55":2,"74":10,"75":2,"79":8,"80":4,"83":4,"86":10,"90":2,"105":10,"107":2,"108":2,"111":2,"120":4,"121":4,"122":2,"124":4,"135":384},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/core/ERC20BaseModule.sol","s":{"1":382,"2":2,"3":2,"4":10,"5":8,"6":4,"7":10,"8":2,"9":10,"10":2,"11":2,"12":2,"13":4},"b":{"1":[382,0],"2":[2,8],"3":[4,4],"4":[2,0]},"f":{"1":382,"2":2,"3":10,"4":10,"5":4,"6":384},"fnMap":{"1":{"name":"__ERC20BaseModule_init_unchained","line":41,"loc":{"start":{"line":39,"column":4},"end":{"line":44,"column":4}}},"2":{"name":"decimals","line":53,"loc":{"start":{"line":53,"column":4},"end":{"line":56,"column":4}}},"3":{"name":"transferBatch","line":70,"loc":{"start":{"line":70,"column":4},"end":{"line":91,"column":4}}},"4":{"name":"transferFrom","line":100,"loc":{"start":{"line":100,"column":4},"end":{"line":112,"column":4}}},"5":{"name":"balanceInfo","line":119,"loc":{"start":{"line":119,"column":4},"end":{"line":125,"column":4}}},"6":{"name":"_getERC20BaseModuleStorage","line":134,"loc":{"start":{"line":134,"column":4},"end":{"line":138,"column":4}}}},"statementMap":{"1":{"start":{"line":42,"column":8},"end":{"line":42,"column":71}},"2":{"start":{"line":54,"column":8},"end":{"line":54,"column":71}},"3":{"start":{"line":55,"column":8},"end":{"line":55,"column":26}},"4":{"start":{"line":74,"column":8},"end":{"line":74,"column":2789}},"5":{"start":{"line":79,"column":8},"end":{"line":79,"column":3006}},"6":{"start":{"line":83,"column":8},"end":{"line":83,"column":3201}},"7":{"start":{"line":86,"column":12},"end":{"line":86,"column":70}},"8":{"start":{"line":90,"column":8},"end":{"line":90,"column":19}},"9":{"start":{"line":105,"column":8},"end":{"line":105,"column":68}},"10":{"start":{"line":107,"column":8},"end":{"line":107,"column":4151}},"11":{"start":{"line":108,"column":12},"end":{"line":108,"column":49}},"12":{"start":{"line":111,"column":8},"end":{"line":111,"column":21}},"13":{"start":{"line":121,"column":8},"end":{"line":121,"column":4644}}},"branchMap":{"1":{"line":41,"type":"if","locations":[{"start":{"line":41,"column":15},"end":{"line":41,"column":15}},{"start":{"line":41,"column":15},"end":{"line":41,"column":15}}]},"2":{"line":74,"type":"if","locations":[{"start":{"line":74,"column":8},"end":{"line":74,"column":8}},{"start":{"line":74,"column":8},"end":{"line":74,"column":8}}]},"3":{"line":79,"type":"if","locations":[{"start":{"line":79,"column":8},"end":{"line":79,"column":8}},{"start":{"line":79,"column":8},"end":{"line":79,"column":8}}]},"4":{"line":107,"type":"if","locations":[{"start":{"line":107,"column":8},"end":{"line":107,"column":8}},{"start":{"line":107,"column":8},"end":{"line":107,"column":8}}]}}}, +"contracts/modules/wrapper/core/ERC20BurnModule.sol":{"l":{"54":14,"55":12,"78":12,"79":2,"83":10,"84":4,"87":6,"88":18,"89":16,"112":4,"113":4,"114":4,"116":2,"119":2,"120":2,"123":2,"125":2,"127":2},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/core/ERC20BurnModule.sol","s":{"1":14,"2":12,"3":12,"4":10,"5":6,"6":18,"7":16,"8":4,"9":4,"10":4,"11":2,"12":2,"13":2,"14":2},"b":{"1":[382,0],"2":[14,4],"3":[12,2],"4":[2,10],"5":[4,6],"6":[4,2],"7":[2,2]},"f":{"1":382,"2":14,"3":12,"4":4},"fnMap":{"1":{"name":"__ERC20BurnModule_init_unchained","line":32,"loc":{"start":{"line":32,"column":4},"end":{"line":34,"column":4}}},"2":{"name":"burn","line":53,"loc":{"start":{"line":49,"column":4},"end":{"line":56,"column":4}}},"3":{"name":"burnBatch","line":77,"loc":{"start":{"line":73,"column":4},"end":{"line":91,"column":4}}},"4":{"name":"burnFrom","line":109,"loc":{"start":{"line":107,"column":4},"end":{"line":128,"column":4}}}},"statementMap":{"1":{"start":{"line":54,"column":8},"end":{"line":54,"column":28}},"2":{"start":{"line":55,"column":8},"end":{"line":55,"column":41}},"3":{"start":{"line":78,"column":8},"end":{"line":78,"column":2750}},"4":{"start":{"line":83,"column":8},"end":{"line":83,"column":2972}},"5":{"start":{"line":87,"column":8},"end":{"line":87,"column":3172}},"6":{"start":{"line":88,"column":12},"end":{"line":88,"column":40}},"7":{"start":{"line":89,"column":12},"end":{"line":89,"column":53}},"8":{"start":{"line":112,"column":8},"end":{"line":112,"column":38}},"9":{"start":{"line":113,"column":8},"end":{"line":113,"column":61}},"10":{"start":{"line":114,"column":8},"end":{"line":114,"column":4061}},"11":{"start":{"line":120,"column":12},"end":{"line":120,"column":62}},"12":{"start":{"line":123,"column":8},"end":{"line":123,"column":28}},"13":{"start":{"line":125,"column":8},"end":{"line":125,"column":45}},"14":{"start":{"line":127,"column":8},"end":{"line":127,"column":45}}},"branchMap":{"1":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":57},"end":{"line":32,"column":57}},{"start":{"line":32,"column":57},"end":{"line":32,"column":57}}]},"2":{"line":53,"type":"if","locations":[{"start":{"line":53,"column":13},"end":{"line":53,"column":13}},{"start":{"line":53,"column":13},"end":{"line":53,"column":13}}]},"3":{"line":77,"type":"if","locations":[{"start":{"line":77,"column":13},"end":{"line":77,"column":13}},{"start":{"line":77,"column":13},"end":{"line":77,"column":13}}]},"4":{"line":78,"type":"if","locations":[{"start":{"line":78,"column":8},"end":{"line":78,"column":8}},{"start":{"line":78,"column":8},"end":{"line":78,"column":8}}]},"5":{"line":83,"type":"if","locations":[{"start":{"line":83,"column":8},"end":{"line":83,"column":8}},{"start":{"line":83,"column":8},"end":{"line":83,"column":8}}]},"6":{"line":109,"type":"if","locations":[{"start":{"line":109,"column":8},"end":{"line":109,"column":8}},{"start":{"line":109,"column":8},"end":{"line":109,"column":8}}]},"7":{"line":114,"type":"if","locations":[{"start":{"line":114,"column":8},"end":{"line":114,"column":8}},{"start":{"line":114,"column":8},"end":{"line":114,"column":8}}]}}}, +"contracts/modules/wrapper/core/ERC20MintModule.sol":{"l":{"48":290,"49":290,"71":24,"72":2,"76":22,"77":4,"80":18,"81":54,"82":54},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/core/ERC20MintModule.sol","s":{"1":290,"2":290,"3":24,"4":22,"5":18,"6":54,"7":54},"b":{"1":[382,0],"2":[290,4],"3":[24,2],"4":[2,22],"5":[4,18]},"f":{"1":382,"2":290,"3":24},"fnMap":{"1":{"name":"__ERC20MintModule_init_unchained","line":27,"loc":{"start":{"line":27,"column":4},"end":{"line":29,"column":4}}},"2":{"name":"mint","line":47,"loc":{"start":{"line":47,"column":4},"end":{"line":50,"column":4}}},"3":{"name":"mintBatch","line":70,"loc":{"start":{"line":67,"column":4},"end":{"line":84,"column":4}}}},"statementMap":{"1":{"start":{"line":48,"column":8},"end":{"line":48,"column":28}},"2":{"start":{"line":49,"column":8},"end":{"line":49,"column":33}},"3":{"start":{"line":71,"column":8},"end":{"line":71,"column":2514}},"4":{"start":{"line":76,"column":8},"end":{"line":76,"column":2736}},"5":{"start":{"line":80,"column":8},"end":{"line":80,"column":2936}},"6":{"start":{"line":81,"column":12},"end":{"line":81,"column":40}},"7":{"start":{"line":82,"column":12},"end":{"line":82,"column":45}}},"branchMap":{"1":{"line":27,"type":"if","locations":[{"start":{"line":27,"column":57},"end":{"line":27,"column":57}},{"start":{"line":27,"column":57},"end":{"line":27,"column":57}}]},"2":{"line":47,"type":"if","locations":[{"start":{"line":47,"column":57},"end":{"line":47,"column":57}},{"start":{"line":47,"column":57},"end":{"line":47,"column":57}}]},"3":{"line":70,"type":"if","locations":[{"start":{"line":70,"column":13},"end":{"line":70,"column":13}},{"start":{"line":70,"column":13},"end":{"line":70,"column":13}}]},"4":{"line":71,"type":"if","locations":[{"start":{"line":71,"column":8},"end":{"line":71,"column":8}},{"start":{"line":71,"column":8},"end":{"line":71,"column":8}}]},"5":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":8},"end":{"line":76,"column":8}},{"start":{"line":76,"column":8},"end":{"line":76,"column":8}}]}}}, +"contracts/modules/wrapper/core/PauseModule.sol":{"l":{"51":14,"63":6,"64":6,"65":2,"67":4,"83":2,"84":2,"85":2,"86":2,"93":4,"94":4,"105":12},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/core/PauseModule.sol","s":{"1":14,"2":6,"3":6,"4":4,"5":2,"6":2,"7":2,"8":4,"9":4},"b":{"1":[382,0],"2":[14,3],"3":[6,2],"4":[2,4],"5":[2,2]},"f":{"1":382,"2":14,"3":6,"4":2,"5":4,"6":12},"fnMap":{"1":{"name":"__PauseModule_init_unchained","line":34,"loc":{"start":{"line":34,"column":4},"end":{"line":36,"column":4}}},"2":{"name":"pause","line":50,"loc":{"start":{"line":50,"column":4},"end":{"line":52,"column":4}}},"3":{"name":"unpause","line":62,"loc":{"start":{"line":62,"column":4},"end":{"line":68,"column":4}}},"4":{"name":"deactivateContract","line":81,"loc":{"start":{"line":79,"column":4},"end":{"line":87,"column":4}}},"5":{"name":"deactivated","line":92,"loc":{"start":{"line":92,"column":4},"end":{"line":95,"column":4}}},"6":{"name":"_getPauseModuleStorage","line":104,"loc":{"start":{"line":104,"column":4},"end":{"line":108,"column":4}}}},"statementMap":{"1":{"start":{"line":51,"column":8},"end":{"line":51,"column":15}},"2":{"start":{"line":63,"column":8},"end":{"line":63,"column":63}},"3":{"start":{"line":64,"column":8},"end":{"line":64,"column":2386}},"4":{"start":{"line":67,"column":8},"end":{"line":67,"column":17}},"5":{"start":{"line":83,"column":8},"end":{"line":83,"column":63}},"6":{"start":{"line":85,"column":7},"end":{"line":85,"column":14}},"7":{"start":{"line":86,"column":7},"end":{"line":86,"column":37}},"8":{"start":{"line":93,"column":8},"end":{"line":93,"column":63}},"9":{"start":{"line":94,"column":8},"end":{"line":94,"column":31}}},"branchMap":{"1":{"line":34,"type":"if","locations":[{"start":{"line":34,"column":53},"end":{"line":34,"column":53}},{"start":{"line":34,"column":53},"end":{"line":34,"column":53}}]},"2":{"line":50,"type":"if","locations":[{"start":{"line":50,"column":28},"end":{"line":50,"column":28}},{"start":{"line":50,"column":28},"end":{"line":50,"column":28}}]},"3":{"line":62,"type":"if","locations":[{"start":{"line":62,"column":30},"end":{"line":62,"column":30}},{"start":{"line":62,"column":30},"end":{"line":62,"column":30}}]},"4":{"line":64,"type":"if","locations":[{"start":{"line":64,"column":8},"end":{"line":64,"column":8}},{"start":{"line":64,"column":8},"end":{"line":64,"column":8}}]},"5":{"line":81,"type":"if","locations":[{"start":{"line":81,"column":8},"end":{"line":81,"column":8}},{"start":{"line":81,"column":8},"end":{"line":81,"column":8}}]}}}, +"contracts/modules/wrapper/extensions/DebtModule.sol":{"l":{"43":382,"44":3,"45":3,"46":3,"55":8,"56":8,"66":5,"67":5,"68":1,"70":4,"71":4,"75":3,"76":3,"77":2,"82":3,"83":3,"84":2,"95":22},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/extensions/DebtModule.sol","s":{"1":382,"2":3,"3":3,"4":8,"5":8,"6":5,"7":5,"8":4,"9":3,"10":3,"11":3,"12":3},"b":{"1":[382,0],"2":[3,379],"3":[5,1],"4":[1,4],"5":[2,1],"6":[2,1]},"f":{"1":382,"2":8,"3":5,"4":3,"5":3,"6":22},"fnMap":{"1":{"name":"__DebtModule_init_unchained","line":42,"loc":{"start":{"line":41,"column":4},"end":{"line":50,"column":4}}},"2":{"name":"debtEngine","line":54,"loc":{"start":{"line":54,"column":4},"end":{"line":57,"column":4}}},"3":{"name":"setDebtEngine","line":65,"loc":{"start":{"line":63,"column":4},"end":{"line":72,"column":4}}},"4":{"name":"debt","line":74,"loc":{"start":{"line":74,"column":4},"end":{"line":79,"column":4}}},"5":{"name":"creditEvents","line":81,"loc":{"start":{"line":81,"column":4},"end":{"line":86,"column":4}}},"6":{"name":"_getDebtModuleStorage","line":94,"loc":{"start":{"line":94,"column":4},"end":{"line":98,"column":4}}}},"statementMap":{"1":{"start":{"line":43,"column":8},"end":{"line":43,"column":1427}},"2":{"start":{"line":44,"column":12},"end":{"line":44,"column":65}},"3":{"start":{"line":46,"column":12},"end":{"line":46,"column":40}},"4":{"start":{"line":55,"column":8},"end":{"line":55,"column":61}},"5":{"start":{"line":56,"column":8},"end":{"line":56,"column":28}},"6":{"start":{"line":66,"column":8},"end":{"line":66,"column":61}},"7":{"start":{"line":67,"column":8},"end":{"line":67,"column":2257}},"8":{"start":{"line":71,"column":8},"end":{"line":71,"column":36}},"9":{"start":{"line":75,"column":8},"end":{"line":75,"column":61}},"10":{"start":{"line":76,"column":8},"end":{"line":76,"column":2584}},"11":{"start":{"line":82,"column":8},"end":{"line":82,"column":61}},"12":{"start":{"line":83,"column":8},"end":{"line":83,"column":2855}}},"branchMap":{"1":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":13},"end":{"line":42,"column":13}},{"start":{"line":42,"column":13},"end":{"line":42,"column":13}}]},"2":{"line":43,"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":43,"column":8}},{"start":{"line":43,"column":8},"end":{"line":43,"column":8}}]},"3":{"line":65,"type":"if","locations":[{"start":{"line":65,"column":15},"end":{"line":65,"column":15}},{"start":{"line":65,"column":15},"end":{"line":65,"column":15}}]},"4":{"line":67,"type":"if","locations":[{"start":{"line":67,"column":8},"end":{"line":67,"column":8}},{"start":{"line":67,"column":8},"end":{"line":67,"column":8}}]},"5":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":8},"end":{"line":76,"column":8}},{"start":{"line":76,"column":8},"end":{"line":76,"column":8}}]},"6":{"line":83,"type":"if","locations":[{"start":{"line":83,"column":8},"end":{"line":83,"column":8}},{"start":{"line":83,"column":8},"end":{"line":83,"column":8}}]}}}, +"contracts/modules/wrapper/extensions/DocumentModule.sol":{"l":{"43":382,"44":12,"45":12,"46":12,"54":28,"55":28,"65":16,"66":16,"67":2,"69":14,"70":14,"75":18,"76":18,"77":16,"79":2,"84":6,"85":6,"86":4,"97":80},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/extensions/DocumentModule.sol","s":{"1":382,"2":12,"3":12,"4":28,"5":28,"6":16,"7":16,"8":14,"9":18,"10":18,"11":16,"12":2,"13":6,"14":6},"b":{"1":[382,0],"2":[12,370],"3":[16,2],"4":[2,14],"5":[16,2],"6":[4,2]},"f":{"1":382,"2":28,"3":16,"4":18,"5":6,"6":80},"fnMap":{"1":{"name":"__DocumentModule_init_unchained","line":42,"loc":{"start":{"line":41,"column":4},"end":{"line":48,"column":4}}},"2":{"name":"documentEngine","line":53,"loc":{"start":{"line":53,"column":4},"end":{"line":56,"column":4}}},"3":{"name":"setDocumentEngine","line":64,"loc":{"start":{"line":62,"column":4},"end":{"line":71,"column":4}}},"4":{"name":"getDocument","line":74,"loc":{"start":{"line":74,"column":4},"end":{"line":81,"column":4}}},"5":{"name":"getAllDocuments","line":83,"loc":{"start":{"line":83,"column":4},"end":{"line":88,"column":4}}},"6":{"name":"_getDocumentModuleStorage","line":96,"loc":{"start":{"line":96,"column":4},"end":{"line":100,"column":4}}}},"statementMap":{"1":{"start":{"line":43,"column":8},"end":{"line":43,"column":1401}},"2":{"start":{"line":44,"column":12},"end":{"line":44,"column":73}},"3":{"start":{"line":46,"column":12},"end":{"line":46,"column":48}},"4":{"start":{"line":54,"column":8},"end":{"line":54,"column":69}},"5":{"start":{"line":55,"column":8},"end":{"line":55,"column":32}},"6":{"start":{"line":65,"column":8},"end":{"line":65,"column":69}},"7":{"start":{"line":66,"column":8},"end":{"line":66,"column":2280}},"8":{"start":{"line":70,"column":8},"end":{"line":70,"column":44}},"9":{"start":{"line":75,"column":8},"end":{"line":75,"column":69}},"10":{"start":{"line":76,"column":8},"end":{"line":76,"column":2667}},"11":{"start":{"line":77,"column":12},"end":{"line":77,"column":56}},"12":{"start":{"line":79,"column":12},"end":{"line":79,"column":30}},"13":{"start":{"line":84,"column":8},"end":{"line":84,"column":69}},"14":{"start":{"line":85,"column":8},"end":{"line":85,"column":2996}}},"branchMap":{"1":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":13},"end":{"line":42,"column":13}},{"start":{"line":42,"column":13},"end":{"line":42,"column":13}}]},"2":{"line":43,"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":43,"column":8}},{"start":{"line":43,"column":8},"end":{"line":43,"column":8}}]},"3":{"line":64,"type":"if","locations":[{"start":{"line":64,"column":15},"end":{"line":64,"column":15}},{"start":{"line":64,"column":15},"end":{"line":64,"column":15}}]},"4":{"line":66,"type":"if","locations":[{"start":{"line":66,"column":8},"end":{"line":66,"column":8}},{"start":{"line":66,"column":8},"end":{"line":66,"column":8}}]},"5":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":8},"end":{"line":76,"column":8}},{"start":{"line":76,"column":8},"end":{"line":76,"column":8}}]},"6":{"line":85,"type":"if","locations":[{"start":{"line":85,"column":8},"end":{"line":85,"column":8}},{"start":{"line":85,"column":8},"end":{"line":85,"column":8}}]}}}, +"contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol":{"l":{"34":170,"45":12,"57":22,"68":14,"78":10},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol","s":{"1":170,"2":12,"3":22,"4":14,"5":10},"b":{"1":[382,0],"2":[170,2],"3":[12,2],"4":[22,2],"5":[14,2],"6":[10,2]},"f":{"1":382,"2":170,"3":12,"4":22,"5":14,"6":10},"fnMap":{"1":{"name":"__ERC20SnasphotModule_init_unchained","line":22,"loc":{"start":{"line":22,"column":4},"end":{"line":24,"column":4}}},"2":{"name":"scheduleSnapshot","line":33,"loc":{"start":{"line":33,"column":4},"end":{"line":35,"column":4}}},"3":{"name":"scheduleSnapshotNotOptimized","line":44,"loc":{"start":{"line":42,"column":4},"end":{"line":46,"column":4}}},"4":{"name":"rescheduleSnapshot","line":56,"loc":{"start":{"line":53,"column":4},"end":{"line":58,"column":4}}},"5":{"name":"unscheduleLastSnapshot","line":67,"loc":{"start":{"line":65,"column":4},"end":{"line":69,"column":4}}},"6":{"name":"unscheduleSnapshotNotOptimized","line":77,"loc":{"start":{"line":75,"column":4},"end":{"line":79,"column":4}}}},"statementMap":{"1":{"start":{"line":34,"column":8},"end":{"line":34,"column":30}},"2":{"start":{"line":45,"column":8},"end":{"line":45,"column":42}},"3":{"start":{"line":57,"column":8},"end":{"line":57,"column":44}},"4":{"start":{"line":68,"column":8},"end":{"line":68,"column":36}},"5":{"start":{"line":78,"column":8},"end":{"line":78,"column":44}}},"branchMap":{"1":{"line":22,"type":"if","locations":[{"start":{"line":22,"column":61},"end":{"line":22,"column":61}},{"start":{"line":22,"column":61},"end":{"line":22,"column":61}}]},"2":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":51},"end":{"line":33,"column":51}},{"start":{"line":33,"column":51},"end":{"line":33,"column":51}}]},"3":{"line":44,"type":"if","locations":[{"start":{"line":44,"column":13},"end":{"line":44,"column":13}},{"start":{"line":44,"column":13},"end":{"line":44,"column":13}}]},"4":{"line":56,"type":"if","locations":[{"start":{"line":56,"column":13},"end":{"line":56,"column":13}},{"start":{"line":56,"column":13},"end":{"line":56,"column":13}}]},"5":{"line":67,"type":"if","locations":[{"start":{"line":67,"column":13},"end":{"line":67,"column":13}},{"start":{"line":67,"column":13},"end":{"line":67,"column":13}}]},"6":{"line":77,"type":"if","locations":[{"start":{"line":77,"column":13},"end":{"line":77,"column":13}},{"start":{"line":77,"column":13},"end":{"line":77,"column":13}}]}}}, +"contracts/modules/wrapper/extensions/MetaTxModule.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/extensions/MetaTxModule.sol","s":{},"b":{},"f":{"1":398},"fnMap":{"1":{"name":"constructor","line":19,"loc":{"start":{"line":17,"column":4},"end":{"line":21,"column":4}}}},"statementMap":{},"branchMap":{}}, +"contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol","s":{},"b":{},"f":{"1":3},"fnMap":{"1":{"name":"constructor","line":18,"loc":{"start":{"line":16,"column":4},"end":{"line":20,"column":4}}}},"statementMap":{},"branchMap":{}}, +"contracts/test/proxy/CMTAT_PROXY_TEST.sol":{"l":{},"path":"/home/ryan/Downloads/CM/CMTAT_old2/contracts/test/proxy/CMTAT_PROXY_TEST.sol","s":{},"b":{},"f":{"1":1},"fnMap":{"1":{"name":"constructor","line":18,"loc":{"start":{"line":16,"column":4},"end":{"line":20,"column":4}}}},"statementMap":{},"branchMap":{}}} diff --git a/doc/general/test/coverage/index.html b/doc/general/test/coverage/index.html index d20dfec4..1f7b85a2 100644 --- a/doc/general/test/coverage/index.html +++ b/doc/general/test/coverage/index.html @@ -20,14 +20,14 @@

- 99.45% + 99.72% Statements - 361/363 + 362/363
- 90.53% + 92.42% Branches - 239/264 + 244/264
99.28% @@ -35,9 +35,9 @@

138/139

- 99.57% + 99.78% Lines - 461/463 + 462/463
@@ -229,15 +229,15 @@

contracts/modules/wrapper/extensions/ -
- 96.77% - 30/31 - 77.78% - 28/36 +
+ 100% + 31/31 + 91.67% + 33/36 100% 19/19 - 97.62% - 41/42 + 100% + 42/42 @@ -259,7 +259,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/CMTAT_PROXY.sol.html b/doc/general/test/coverage/lcov-report/contracts/CMTAT_PROXY.sol.html index 18655b87..c1f44cd5 100644 --- a/doc/general/test/coverage/lcov-report/contracts/CMTAT_PROXY.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/CMTAT_PROXY.sol.html @@ -62,7 +62,10 @@

17 18 19 -20  +20 +21 +22 +23        @@ -78,7 +81,10 @@

      -197× +  +  +  +198×      
//SPDX-License-Identifier: MPL-2.0
@@ -87,6 +93,9 @@ 

  import "./modules/CMTAT_BASE.sol";   +/** +* @title CMTAT version for a proxy deployment (Transparent or Beacon proxy) +*/ contract CMTAT_PROXY is CMTAT_BASE { /** * @notice Contract version for the deployment with a proxy @@ -106,7 +115,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/CMTAT_PROXY_UUPS.sol.html b/doc/general/test/coverage/lcov-report/contracts/CMTAT_PROXY_UUPS.sol.html index a46ce9f7..215b7b65 100644 --- a/doc/general/test/coverage/lcov-report/contracts/CMTAT_PROXY_UUPS.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/CMTAT_PROXY_UUPS.sol.html @@ -92,7 +92,15 @@

47 48 49 -50  +50 +51 +52 +53 +54  +  +  +  +        @@ -146,6 +154,10 @@

pragma solidity ^0.8.20; import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; import "./modules/CMTAT_BASE.sol"; +  +/** +* @title CMTAT version for a proxy deployment with UUPS proxy +*/ contract CMTAT_PROXY_UUPS is CMTAT_BASE, UUPSUpgradeable { bytes32 public constant PROXY_UPGRADE_ROLE = keccak256("PROXY_UPGRADE_ROLE"); /** @@ -196,7 +208,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/CMTAT_STANDALONE.sol.html b/doc/general/test/coverage/lcov-report/contracts/CMTAT_STANDALONE.sol.html index 016d674d..8ba53413 100644 --- a/doc/general/test/coverage/lcov-report/contracts/CMTAT_STANDALONE.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/CMTAT_STANDALONE.sol.html @@ -76,7 +76,10 @@

31 32 33 -34  +34 +35 +36 +37        @@ -101,7 +104,10 @@

      -189× +  +  +  +191×       @@ -115,6 +121,9 @@

  import "./modules/CMTAT_BASE.sol";   +/** +* @title CMTAT version for a standalone deployment (without proxy) +*/ contract CMTAT_STANDALONE is CMTAT_BASE { /** * @notice Contract version for standalone deployment @@ -148,7 +157,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_BEACON_FACTORY.sol.html b/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_BEACON_FACTORY.sol.html index a9f007e0..8258d70f 100644 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_BEACON_FACTORY.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_BEACON_FACTORY.sol.html @@ -145,8 +145,13 @@

100 101 102 -103  -  +103 +104 +105 +106 +107 +108 +109        @@ -187,6 +192,9 @@

      +  +  +    @@ -214,6 +222,18 @@

      +  + +  +  +  +  +  +  +  +  +  +  @@ -239,22 +259,13 @@

    -  -  -  -  -  -  - -   
//SPDX-License-Identifier: MPL-2.0
 pragma solidity ^0.8.20;
  
 import "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol";
- 
+import '@openzeppelin/contracts/utils/Create2.sol';
 import '@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol';
 import "../CMTAT_PROXY.sol";
-import "../modules/CMTAT_BASE.sol";
 import "./libraries/CMTATFactoryRoot.sol";
  
  
@@ -280,6 +291,9 @@ 

beacon = new UpgradeableBeacon(implementation_, beaconOwner); }   + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ /** * @notice deploy CMTAT with a beacon proxy * @@ -311,6 +325,18 @@

cmtatArgument); return Create2.computeAddress(deploymentSalt, keccak256(bytecode), address(this) ); } +  + /** + * @notice get the implementation address from the beacon + * @return implementation address + */ + function implementation() public view returns (address) { + return beacon.implementation(); + } +  + /*////////////////////////////////////////////////////////////// + INTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/   /** * @notice Deploy CMTAT and push the created CMTAT in the list @@ -341,21 +367,13 @@

); bytecode = abi.encodePacked(type(BeaconProxy).creationCode, abi.encode(address(beacon), _implementation)); } -  - /** - * @notice get the implementation address from the beacon - * @return implementation address - */ - function implementation() public view returns (address) { - return beacon.implementation(); - } }

diff --git a/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_TP_FACTORY.sol.html b/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_TP_FACTORY.sol.html index 0508c5a1..f5293bd9 100644 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_TP_FACTORY.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_TP_FACTORY.sol.html @@ -123,7 +123,19 @@

78 79 80 -81  +81 +82 +83 +84 +85 +86 +87 +88 +89 +90  +  +  +        @@ -178,6 +190,12 @@

      +  +  +  +  +  +  @@ -208,7 +226,6 @@

  import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; import "../CMTAT_PROXY.sol"; -import "../libraries/FactoryErrors.sol"; import '@openzeppelin/contracts/utils/Create2.sol'; import "./libraries/CMTATFactoryInvariant.sol"; import "./libraries/CMTATFactoryBase.sol"; @@ -216,10 +233,14 @@

* @notice Factory to deploy CMTAT with a transparent proxy * */ -contract CMTAT_TP_FACTORY is CMTATFactoryInvariant, CMTATFactoryBase { +contract CMTAT_TP_FACTORY is CMTATFactoryBase {   constructor(address logic_, address factoryAdmin, bool useCustomSalt_) CMTATFactoryBase(logic_, factoryAdmin,useCustomSalt_){} - /** +  + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ + /** * @notice deploy a transparent proxy with a proxy admin contract */ function deployCMTAT( @@ -253,6 +274,12 @@

cmtatArgument); return Create2.computeAddress(deploymentSalt, keccak256(bytecode), address(this) ); } +  +  + /*////////////////////////////////////////////////////////////// + INTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ +    /** * @notice Deploy CMTAT and push the created CMTAT in the list @@ -289,7 +316,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_UUPS_FACTORY.sol.html b/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_UUPS_FACTORY.sol.html index 33a52f20..68ec547c 100644 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_UUPS_FACTORY.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/deployment/CMTAT_UUPS_FACTORY.sol.html @@ -130,7 +130,9 @@

85 86 87 -88  +88 +89  +        @@ -222,16 +224,14 @@

  import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import "../CMTAT_PROXY_UUPS.sol"; -import "../libraries/FactoryErrors.sol"; import '@openzeppelin/contracts/utils/Create2.sol'; -import '@openzeppelin/contracts/access/AccessControl.sol'; import "./libraries/CMTATFactoryInvariant.sol"; import "./libraries/CMTATFactoryBase.sol"; /** * @notice Factory to deploy CMTAT with a UUPS proxy * */ -contract CMTAT_UUPS_FACTORY is CMTATFactoryInvariant, CMTATFactoryBase { +contract CMTAT_UUPS_FACTORY is CMTATFactoryBase { /** * @param logic_ contract implementation * @param factoryAdmin admin @@ -239,6 +239,9 @@

constructor(address logic_, address factoryAdmin, bool useCustomSalt_) CMTATFactoryBase(logic_, factoryAdmin,useCustomSalt_){} + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ /** * @notice deploy a transparent proxy with a proxy admin contract */ @@ -310,7 +313,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/deployment/index.html b/doc/general/test/coverage/lcov-report/contracts/deployment/index.html index b4c7db02..fe5266d0 100644 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/deployment/index.html @@ -103,7 +103,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryBase.sol.html b/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryBase.sol.html index 1402b62c..af7247ce 100644 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryBase.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryBase.sol.html @@ -92,7 +92,6 @@

 
//SPDX-License-Identifier: MPL-2.0
 pragma solidity ^0.8.20;
  
-import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
 import "./CMTATFactoryRoot.sol";
  
 /**
@@ -100,8 +99,9 @@ 

* */ abstract contract CMTATFactoryBase is CMTATFactoryRoot { - // Public + /* ============ State Variables ============ */ address public immutable logic; + /* ============ Constructor ============ */ /** * @param logic_ contract implementation * @param factoryAdmin admin @@ -118,7 +118,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html b/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html index 90b86137..87c19507 100644 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryInvariant.sol.html @@ -64,7 +64,11 @@

19 20 21 -22  +22 +23 +24  +  +        @@ -92,18 +96,20 @@

import "../../interfaces/ICMTATConstructor.sol";   /** -* @notice Factory to deploy CMTAT with a transparent proxy +* @notice List of Invariant (struct, constant, events) * */ abstract contract CMTATFactoryInvariant { - /// @dev Role to deploy CMTAT - bytes32 public constant CMTAT_DEPLOYER_ROLE = keccak256("CMTAT_DEPLOYER_ROLE"); + /* ============ Structs ============ */ struct CMTAT_ARGUMENT{ address CMTATAdmin; ICMTATConstructor.ERC20Attributes ERC20Attributes; ICMTATConstructor.BaseModuleAttributes baseModuleAttributes; ICMTATConstructor.Engine engines; } + /* ============ State Variables ============ */ + /// @dev Role to deploy CMTAT + bytes32 public constant CMTAT_DEPLOYER_ROLE = keccak256("CMTAT_DEPLOYER_ROLE"); /* ============ Events ============ */ event CMTAT(address indexed CMTAT, uint256 id); }

@@ -112,7 +118,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryRoot.sol.html b/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryRoot.sol.html index c882bef0..9b9b198c 100644 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryRoot.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/CMTATFactoryRoot.sol.html @@ -103,7 +103,16 @@

58 59 60 -61  +61 +62 +63 +64 +65 +66 +67 +68 +69 +70        @@ -143,6 +152,11 @@

      +  +  +  +  +  13×     @@ -152,6 +166,10 @@

      +  +  +  +  11× @@ -166,10 +184,7 @@

 
//SPDX-License-Identifier: MPL-2.0
 pragma solidity ^0.8.20;
  
-import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
-import "../../CMTAT_PROXY.sol";
 import "../../libraries/FactoryErrors.sol";
-import '@openzeppelin/contracts/utils/Create2.sol';
 import '@openzeppelin/contracts/access/AccessControl.sol';
 import "./CMTATFactoryInvariant.sol";
 /**
@@ -177,13 +192,16 @@ 

* */ abstract contract CMTATFactoryRoot is AccessControl, CMTATFactoryInvariant { + /* ============ State Variables ============ */ // Public address[] public cmtatsList; - bool public useCustomSalt; + bool immutable public useCustomSalt; uint256 public cmtatCounterId; /// mapping mapping(uint256 => address) internal cmtats; mapping(bytes32 => bool) internal customSaltUsed; + + /* ============ Constructor ============ */ /** * @param factoryAdmin admin */ @@ -197,6 +215,11 @@

_grantRole(DEFAULT_ADMIN_ROLE, factoryAdmin); _grantRole(CMTAT_DEPLOYER_ROLE, factoryAdmin); } +  +  + /*////////////////////////////////////////////////////////////// + PUBLIC/EXTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/   /** * @notice get CMTAT proxy address @@ -205,6 +228,10 @@

function CMTATProxyAddress(uint256 cmtatCounterId_) external view returns (address) { return cmtats[cmtatCounterId_]; } +  + /*////////////////////////////////////////////////////////////// + INTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////*/ /** * @param deploymentSalt salt for deployment @@ -229,7 +256,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/index.html b/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/index.html index 1536542b..8490a669 100644 --- a/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/deployment/libraries/index.html @@ -103,7 +103,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/index.html b/doc/general/test/coverage/lcov-report/contracts/index.html index 2399575b..9ce29ff8 100644 --- a/doc/general/test/coverage/lcov-report/contracts/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/index.html @@ -103,7 +103,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/ICCIPToken.sol.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/ICCIPToken.sol.html index 34fd651f..b526f339 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/ICCIPToken.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/ICCIPToken.sol.html @@ -121,7 +121,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/ICMTATConstructor.sol.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/ICMTATConstructor.sol.html index 85ad78c9..aae2f6ee 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/ICMTATConstructor.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/ICMTATConstructor.sol.html @@ -154,7 +154,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/ICMTATSnapshot.sol.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/ICMTATSnapshot.sol.html index 4b4c5842..904f4196 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/ICMTATSnapshot.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/ICMTATSnapshot.sol.html @@ -124,7 +124,7 @@

pragma solidity ^0.8.20;   /** -* @notice interface to represent a CMTAT with snapshot +* @notice minimum interface to represent a CMTAT with snapshot */ interface ICMTATSnapshot { /** @@ -163,7 +163,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol.html index a9f17adb..082e383c 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol.html @@ -127,7 +127,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol.html index 0bb7499a..e8b5ea44 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol.html @@ -94,7 +94,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol.html index a9b84efa..66534533 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol.html @@ -103,7 +103,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/index.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/index.html index b3b35735..c3b92b57 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/draft-IERC1404/index.html @@ -103,7 +103,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IAuthorizationEngine.sol.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IAuthorizationEngine.sol.html index 3b0babb7..3c637833 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IAuthorizationEngine.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IAuthorizationEngine.sol.html @@ -63,7 +63,13 @@

18 19 20 -21  +21 +22 +23 +24  +  +  +        @@ -87,6 +93,9 @@

  pragma solidity ^0.8.20;   +/* +* @dev minimum interface to define an AuthorizationEngine +*/ interface IAuthorizationEngine { /** * @dev Returns true if the operation is authorized, and false otherwise. @@ -109,7 +118,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtEngine.sol.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtEngine.sol.html index 9fab0048..81a7c34a 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtEngine.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtEngine.sol.html @@ -59,7 +59,13 @@

14 15 16 -17  +17 +18 +19 +20  +  +  +        @@ -78,8 +84,11 @@

 
// SPDX-License-Identifier: MPL-2.0
  
 pragma solidity ^0.8.20;
-import "../IDebtGlobal.sol";
+import "./IDebtGlobal.sol";
  
+/*
+* @dev minimum interface to define a DebtEngine
+*/
 interface IDebtEngine is IDebtGlobal {
     /**
      * @dev Returns debt information
@@ -97,7 +106,7 @@ 

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/IDebtGlobal.sol.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtGlobal.sol.html similarity index 88% rename from doc/general/test/coverage/lcov-report/contracts/interfaces/IDebtGlobal.sol.html rename to doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtGlobal.sol.html index 55c69a84..9b5e6243 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/IDebtGlobal.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IDebtGlobal.sol.html @@ -1,14 +1,14 @@ - Code coverage report for contracts/interfaces/IDebtGlobal.sol + Code coverage report for contracts/interfaces/engine/IDebtGlobal.sol - - + + @@ -16,7 +16,7 @@

- all files / contracts/interfaces/ IDebtGlobal.sol + all files / contracts/interfaces/engine/ IDebtGlobal.sol

@@ -136,10 +136,10 @@

- + - + diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IRuleEngine.sol.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IRuleEngine.sol.html index 35bf495c..5c20a1d7 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IRuleEngine.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/IRuleEngine.sol.html @@ -60,7 +60,13 @@

15 16 17 -18  +18 +19 +20 +21  +  +  +        @@ -83,6 +89,9 @@

  import "../draft-IERC1404/draft-IERC1404Wrapper.sol";   +/* +* @dev minimum interface to define a RuleEngine +*/ interface IRuleEngine is IERC1404Wrapper { /** * @dev Returns true if the operation is a success, and false otherwise. @@ -100,7 +109,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/draft-IERC1643.sol.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/draft-IERC1643.sol.html index b0586cc6..de24c346 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/draft-IERC1643.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/draft-IERC1643.sol.html @@ -79,7 +79,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/index.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/index.html index be4b8cc1..68e5bddc 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/engine/index.html @@ -84,6 +84,19 @@

0/0 + + IDebtGlobal.sol +
+ 100% + 0/0 + 100% + 0/0 + 100% + 0/0 + 100% + 0/0 + + IRuleEngine.sol
@@ -116,7 +129,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/interfaces/index.html b/doc/general/test/coverage/lcov-report/contracts/interfaces/index.html index 0dc4c554..632bd98d 100644 --- a/doc/general/test/coverage/lcov-report/contracts/interfaces/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/interfaces/index.html @@ -97,26 +97,13 @@

0/0 - - IDebtGlobal.sol -
- 100% - 0/0 - 100% - 0/0 - 100% - 0/0 - 100% - 0/0 - -
diff --git a/doc/general/test/coverage/lcov-report/contracts/libraries/Errors.sol.html b/doc/general/test/coverage/lcov-report/contracts/libraries/Errors.sol.html index 3df6d18f..f24beaf0 100644 --- a/doc/general/test/coverage/lcov-report/contracts/libraries/Errors.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/libraries/Errors.sol.html @@ -185,6 +185,9 @@

  pragma solidity ^0.8.20;   +/* +* @dev CMTAT custom errors +*/ library Errors { // CMTAT error CMTAT_InvalidTransfer(address from, address to, uint256 amount); @@ -232,9 +235,6 @@

  // DebtModule error CMTAT_DebtModule_SameValue(); -  - // BaseModule - error CMTAT_BaseModule_SameValue();   // ValidationModule error CMTAT_ValidationModule_SameValue(); @@ -256,7 +256,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/libraries/FactoryErrors.sol.html b/doc/general/test/coverage/lcov-report/contracts/libraries/FactoryErrors.sol.html index 818589f8..c608b4a9 100644 --- a/doc/general/test/coverage/lcov-report/contracts/libraries/FactoryErrors.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/libraries/FactoryErrors.sol.html @@ -53,7 +53,13 @@

8 9 10 -11  +11 +12 +13 +14  +  +  +        @@ -67,6 +73,9 @@

  pragma solidity ^0.8.20;   +/* +* @dev Factory contract custom errors +*/ library FactoryErrors { error CMTAT_Factory_AddressZeroNotAllowedForFactoryAdmin(); error CMTAT_Factory_AddressZeroNotAllowedForBeaconOwner(); @@ -79,7 +88,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/libraries/index.html b/doc/general/test/coverage/lcov-report/contracts/libraries/index.html index 4604548c..e3e50a9e 100644 --- a/doc/general/test/coverage/lcov-report/contracts/libraries/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/libraries/index.html @@ -90,7 +90,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/CMTAT_BASE.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/CMTAT_BASE.sol.html index fbbcd8b4..c18f34a8 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/CMTAT_BASE.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/CMTAT_BASE.sol.html @@ -347,7 +347,7 @@

      -381× +384×       @@ -367,50 +367,50 @@

      -381× -381× +384× +384×   -381× +384×   -381× -381× +384× +384×     -381× +384×         -381× -381× +384× +384×   -381× +384×       -381× -379× -379× +384× +382× +382×   -379× -379× +382× +382×   -379× -379× +382× +382×           -379× -379× -379× +382× +382× +382×     -379× +382×     -379× +382×       @@ -499,7 +499,7 @@

      -1386× +1389×       @@ -508,7 +508,7 @@

      -1386× +1389×       @@ -769,7 +769,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/index.html b/doc/general/test/coverage/lcov-report/contracts/modules/index.html index 62d133df..f16eff78 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/index.html @@ -77,7 +77,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html index e9ec8a55..7fd178e9 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/internal/ERC20SnapshotModuleInternal.sol.html @@ -466,7 +466,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/internal/EnforcementModuleInternal.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/internal/EnforcementModuleInternal.sol.html index 8ed2e7e5..a04d6a48 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/internal/EnforcementModuleInternal.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/internal/EnforcementModuleInternal.sol.html @@ -400,7 +400,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/internal/ValidationModuleInternal.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/internal/ValidationModuleInternal.sol.html index 313ade69..8a9dd3c7 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/internal/ValidationModuleInternal.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/internal/ValidationModuleInternal.sol.html @@ -176,7 +176,7 @@

      -381× +384× 18× 18× 18× @@ -352,7 +352,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/internal/base/SnapshotModuleBase.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/internal/base/SnapshotModuleBase.sol.html index 27216dd9..f2cf0053 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/internal/base/SnapshotModuleBase.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/internal/base/SnapshotModuleBase.sol.html @@ -587,7 +587,7 @@

  -12× +       @@ -726,7 +726,7 @@

10×   -16× +     @@ -922,7 +922,7 @@

* Useful to take a snapshot of token holder balance and total supply at a specific time * Inspired by Openzeppelin - ERC20Snapshot but use the time as Id instead of a counter. * Contrary to OpenZeppelin, the function _getCurrentSnapshotId is not available - because overriding this function can break the contract. + * because overriding this function can break the contract. */   abstract contract SnapshotModuleBase is Initializable { @@ -1345,7 +1345,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/internal/base/index.html b/doc/general/test/coverage/lcov-report/contracts/modules/internal/base/index.html index 2b828b8e..6d5f9ab3 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/internal/base/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/internal/base/index.html @@ -77,7 +77,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/internal/index.html b/doc/general/test/coverage/lcov-report/contracts/modules/internal/index.html index 9f473b7d..25d642d7 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/internal/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/internal/index.html @@ -103,7 +103,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/security/AuthorizationModule.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/security/AuthorizationModule.sol.html index 7d849acf..ad289c2e 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/security/AuthorizationModule.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/security/AuthorizationModule.sol.html @@ -193,11 +193,11 @@

      -381× +384×   -379× -379× +382× +382× 16× 16× 16× @@ -262,10 +262,10 @@

      -1280× +1283× 759×   -521× +524×       @@ -406,7 +406,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/security/index.html b/doc/general/test/coverage/lcov-report/contracts/modules/security/index.html index 83fe875c..f42cc844 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/security/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/security/index.html @@ -77,7 +77,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/controllers/ValidationModule.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/controllers/ValidationModule.sol.html index 56eaa88f..380bcb96 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/controllers/ValidationModule.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/controllers/ValidationModule.sol.html @@ -502,7 +502,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/controllers/index.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/controllers/index.html index 3b3d4fcc..6b3304d3 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/controllers/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/controllers/index.html @@ -77,7 +77,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/BaseModule.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/BaseModule.sol.html index fb309d22..b07d3d33 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/BaseModule.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/BaseModule.sol.html @@ -157,8 +157,7 @@

112 113 114 -115 -116  +115        @@ -202,11 +201,10 @@

      -  -379× -379× -379× -379× +382× +382× +382× +382×       @@ -267,7 +265,7 @@

      -413× +416×       @@ -277,9 +275,8 @@

  pragma solidity ^0.8.20;   -// required OZ imports here import "../../security/AuthorizationModule.sol"; -import "../../../libraries/Errors.sol"; +  abstract contract BaseModule is AuthorizationModule { /* ============ State Variables ============ */ /** @@ -394,7 +391,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20BaseModule.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20BaseModule.sol.html index 3c458492..ec809312 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20BaseModule.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20BaseModule.sol.html @@ -174,7 +174,15 @@

129 130 131 -132  +132 +133 +134 +135 +136 +137 +138 +139 +140        @@ -207,8 +215,16 @@

      -379× -379× +  +  +  +  +  +  +  +  +382× +382×       @@ -287,7 +303,7 @@

  - +     @@ -300,7 +316,7 @@

      -381× +384×       @@ -313,6 +329,14 @@

import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import "../../../libraries/Errors.sol";   +/** + * @title ERC20Base module + * @dev + * + * Contains ERC-20 base functions and extension + * Inherits from ERC-20 + * + */ abstract contract ERC20BaseModule is ERC20Upgradeable { /* ============ Events ============ */ /** @@ -442,7 +466,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20BurnModule.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20BurnModule.sol.html index 525d94ca..4d20e959 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20BurnModule.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20BurnModule.sol.html @@ -165,7 +165,21 @@

120 121 122 -123  +123 +124 +125 +126 +127 +128 +129 +130  +  +  +  +  +  +  +        @@ -294,6 +308,13 @@

import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import "../../security/AuthorizationModule.sol"; import "../../../interfaces/ICCIPToken.sol"; +  +/** + * @title ERC20Burn module. + * @dev + * + * Contains all burn functions, inherits from ERC-20 + */ abstract contract ERC20BurnModule is ERC20Upgradeable, ICCIPBurnFromERC20, AuthorizationModule { /* ============ State Variables ============ */ bytes32 public constant BURNER_ROLE = keccak256("BURNER_ROLE"); @@ -415,7 +436,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20MintModule.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20MintModule.sol.html index 0af0174d..eae1319c 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20MintModule.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/ERC20MintModule.sol.html @@ -121,7 +121,21 @@

76 77 78 -79  +79 +80 +81 +82 +83 +84 +85 +86  +  +  +  +  +  +  +        @@ -206,6 +220,13 @@

import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import "../../security/AuthorizationModule.sol"; import "../../../interfaces/ICCIPToken.sol"; +  +/** + * @title ERC20Mint module. + * @dev + * + * Contains all mint functions, inherits from ERC-20 + */ abstract contract ERC20MintModule is ERC20Upgradeable, ICCIPMintERC20, AuthorizationModule { /* ============ State Variables ============ */ bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); @@ -283,7 +304,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/EnforcementModule.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/EnforcementModule.sol.html index b1722a25..bdd8dc50 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/EnforcementModule.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/EnforcementModule.sol.html @@ -101,7 +101,9 @@

56 57 58 -59  +59 +60  +        @@ -167,7 +169,8 @@

import "../../internal/EnforcementModuleInternal.sol";   /** - * @dev Enforcement module. + * @title Enforcement module. + * @dev * * Allows the issuer to freeze transfers from a given address */ @@ -223,7 +226,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/PauseModule.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/PauseModule.sol.html index 9cccc67c..09614f07 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/PauseModule.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/PauseModule.sol.html @@ -151,7 +151,9 @@

106 107 108 -109  +109 +110  +        @@ -267,8 +269,9 @@

import "../../security/AuthorizationModule.sol";   /** - * - * @dev Put in pause or deactivate the contract + * @title Pause Module + * @dev + * Put in pause or deactivate the contract * The issuer must be able to “pause” the smart contract, * to prevent execution of transactions on the distributed ledger until the issuer puts an end to the pause. * @@ -373,7 +376,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/index.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/index.html index 4fa59c60..c78c57db 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/core/index.html @@ -142,7 +142,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/DebtModule.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/DebtModule.sol.html index ae910c4e..25046249 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/DebtModule.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/DebtModule.sol.html @@ -25,9 +25,9 @@

12/12
- 75% + 91.67% Branches - 9/12 + 11/12
100% @@ -137,7 +137,13 @@

92 93 94 -95  +95 +96 +97 +98 +99 +100 +101        @@ -173,7 +179,13 @@

      -379× +  +  +  +  +  +  +382× @@ -205,15 +217,15 @@

      - - + +         - - + +     @@ -225,7 +237,7 @@

      -20× +22×       @@ -239,6 +251,12 @@

import "../../../libraries/Errors.sol"; import "../../../interfaces/engine/IDebtEngine.sol";   +/** + * @title Debt module + * @dev + * + * Retrieve debt and creditEvents information from a debtEngine + */ abstract contract DebtModule is AuthorizationModule, IDebtEngine { /* ============ State Variables ============ */ bytes32 public constant DEBT_ROLE = keccak256("DEBT_ROLE"); @@ -300,14 +318,14 @@

  function debt() public view returns(DebtBase memory debtBaseResult){ DebtModuleStorage storage $ = _getDebtModuleStorage(); - Eif(address($._debtEngine) != address(0)){ + if(address($._debtEngine) != address(0)){ debtBaseResult = $._debtEngine.debt(); } }   function creditEvents() public view returns(CreditEvents memory creditEventsResult){ DebtModuleStorage storage $ = _getDebtModuleStorage(); - Eif(address($._debtEngine) != address(0)){ + if(address($._debtEngine) != address(0)){ creditEventsResult = $._debtEngine.creditEvents(); } } @@ -331,7 +349,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/DocumentModule.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/DocumentModule.sol.html index 2640e420..01963048 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/DocumentModule.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/DocumentModule.sol.html @@ -20,14 +20,14 @@

- 92.86% + 100% Statements - 13/14 + 14/14
- 75% + 91.67% Branches - 9/12 + 11/12
100% @@ -35,9 +35,9 @@

6/6

- 94.74% + 100% Lines - 18/19 + 19/19
@@ -135,7 +135,24 @@

90 91 92 -93  +93 +94 +95 +96 +97 +98 +99 +100 +101 +102  +  +  +  +  +  +  +  +        @@ -168,7 +185,8 @@

      -379× +  +382× 12× 12× 12× @@ -200,17 +218,17 @@

      -16× -16× +18× +18× 16×   -  +         - - + +     @@ -222,7 +240,7 @@

      -76× +80×       @@ -234,6 +252,15 @@

import "../../security/AuthorizationModule.sol"; import "../../../libraries/Errors.sol"; import "../../../interfaces/engine/draft-IERC1643.sol"; +  +  +/** + * @title Document module + * @dev + * + * Retrieve documents from a documentEngine + */ +  abstract contract DocumentModule is AuthorizationModule, IERC1643 { /* ============ Events ============ */ /** @@ -293,16 +320,16 @@

  function getDocument(bytes32 _name) public view returns (string memory, bytes32, uint256){ DocumentModuleStorage storage $ = _getDocumentModuleStorage(); - Eif(address($._documentEngine) != address(0)){ + if(address($._documentEngine) != address(0)){ return $._documentEngine.getDocument( _name); } else{ - return ("",0x0, 0); + return ("",0x0, 0); } }   function getAllDocuments() public view returns (bytes32[] memory documents){ DocumentModuleStorage storage $ = _getDocumentModuleStorage(); - Eif(address($._documentEngine) != address(0)){ + if(address($._documentEngine) != address(0)){ documents = $._documentEngine.getAllDocuments(); } } @@ -325,7 +352,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol.html index 1b44a9d6..f0c7c091 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol.html @@ -25,9 +25,9 @@

5/5
- 83.33% + 91.67% Branches - 10/12 + 11/12
100% @@ -122,7 +122,9 @@

77 78 79 -80  +80 +81  +        @@ -209,7 +211,8 @@

import "../../internal/ERC20SnapshotModuleInternal.sol";   /** - * @dev Snapshot module. + * @title Snapshot module + * @dev * * Useful to take a snapshot of token holder balance and total supply at a specific time */ @@ -276,7 +279,7 @@

*/ function unscheduleSnapshotNotOptimized( uint256 time - ) public EonlyRole(SNAPSHOOTER_ROLE) { + ) public onlyRole(SNAPSHOOTER_ROLE) { _unscheduleSnapshotNotOptimized(time); } } @@ -286,7 +289,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/MetaTxModule.sol.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/MetaTxModule.sol.html index 6e186086..8a138cb0 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/MetaTxModule.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/MetaTxModule.sol.html @@ -64,7 +64,9 @@

19 20 21 -22  +22 +23  +        @@ -92,7 +94,8 @@

import "@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol";   /** - * @dev Meta transaction (gasless) module. + * @title Meta transaction (gasless) module. + * @dev * * Useful for to provide UX where the user does not pay gas for token exchange * To follow OpenZeppelin, this contract does not implement the functions init & init_unchained. @@ -112,7 +115,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/index.html b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/index.html index d00598d6..decf28ce 100644 --- a/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/modules/wrapper/extensions/index.html @@ -20,14 +20,14 @@

- 96.77% + 100% Statements - 30/31 + 31/31
- 77.78% + 91.67% Branches - 28/36 + 33/36
100% @@ -35,9 +35,9 @@

19/19

- 97.62% + 100% Lines - 41/42 + 42/42
@@ -63,8 +63,8 @@

100% 12/12 - 75% - 9/12 + 91.67% + 11/12 100% 6/6 100% @@ -73,15 +73,15 @@

DocumentModule.sol -
- 92.86% - 13/14 - 75% - 9/12 +
+ 100% + 14/14 + 91.67% + 11/12 100% 6/6 - 94.74% - 18/19 + 100% + 19/19 @@ -89,8 +89,8 @@

100% 5/5 - 83.33% - 10/12 + 91.67% + 11/12 100% 6/6 100% @@ -116,7 +116,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/test/proxy/CMTAT_PROXY_TEST.sol.html b/doc/general/test/coverage/lcov-report/contracts/test/proxy/CMTAT_PROXY_TEST.sol.html index 643ed222..5bc6f0c8 100644 --- a/doc/general/test/coverage/lcov-report/contracts/test/proxy/CMTAT_PROXY_TEST.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/test/proxy/CMTAT_PROXY_TEST.sol.html @@ -112,7 +112,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html b/doc/general/test/coverage/lcov-report/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html index e70a37ac..6a50bb09 100644 --- a/doc/general/test/coverage/lcov-report/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html +++ b/doc/general/test/coverage/lcov-report/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol.html @@ -112,7 +112,7 @@

diff --git a/doc/general/test/coverage/lcov-report/contracts/test/proxy/index.html b/doc/general/test/coverage/lcov-report/contracts/test/proxy/index.html index 666beb15..45758912 100644 --- a/doc/general/test/coverage/lcov-report/contracts/test/proxy/index.html +++ b/doc/general/test/coverage/lcov-report/contracts/test/proxy/index.html @@ -90,7 +90,7 @@

diff --git a/doc/general/test/coverage/lcov-report/index.html b/doc/general/test/coverage/lcov-report/index.html index d20dfec4..1f7b85a2 100644 --- a/doc/general/test/coverage/lcov-report/index.html +++ b/doc/general/test/coverage/lcov-report/index.html @@ -20,14 +20,14 @@

- 99.45% + 99.72% Statements - 361/363 + 362/363
- 90.53% + 92.42% Branches - 239/264 + 244/264
99.28% @@ -35,9 +35,9 @@

138/139

- 99.57% + 99.78% Lines - 461/463 + 462/463
@@ -229,15 +229,15 @@

contracts/modules/wrapper/extensions/ -
- 96.77% - 30/31 - 77.78% - 28/36 +
+ 100% + 31/31 + 91.67% + 33/36 100% 19/19 - 97.62% - 41/42 + 100% + 42/42 @@ -259,7 +259,7 @@

diff --git a/doc/general/test/coverage/lcov.info b/doc/general/test/coverage/lcov.info index 96f9743c..139c48ec 100644 --- a/doc/general/test/coverage/lcov.info +++ b/doc/general/test/coverage/lcov.info @@ -1,104 +1,104 @@ TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/CMTAT_PROXY_UUPS.sol -FN:15,constructor -FN:36,initialize -FN:48,_authorizeUpgrade +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/CMTAT_PROXY_UUPS.sol +FN:19,constructor +FN:40,initialize +FN:52,_authorizeUpgrade FNF:3 FNH:3 FNDA:9,constructor FNDA:5,initialize FNDA:2,_authorizeUpgrade -DA:17,9 -DA:37,5 +DA:21,9 DA:41,5 +DA:45,5 LF:3 LH:3 -BRDA:36,1,0,5 -BRDA:36,1,1,0 -BRDA:48,2,0,2 -BRDA:48,2,1,1 +BRDA:40,1,0,5 +BRDA:40,1,1,0 +BRDA:52,2,0,2 +BRDA:52,2,1,1 BRF:4 BRH:3 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/CMTAT_PROXY.sol -FN:15,constructor +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/CMTAT_PROXY.sol +FN:18,constructor FNF:1 FNH:1 -FNDA:197,constructor -DA:17,197 +FNDA:198,constructor +DA:20,198 LF:1 LH:1 BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/CMTAT_STANDALONE.sol -FN:23,constructor +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/CMTAT_STANDALONE.sol +FN:26,constructor FNF:1 FNH:1 -FNDA:189,constructor -DA:26,189 +FNDA:191,constructor +DA:29,191 LF:1 LH:1 BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/deployment/CMTAT_BEACON_FACTORY.sol -FN:24,constructor -FN:42,deployCMTAT -FN:56,computedProxyAddress -FN:69,_deployBytecode -FN:83,_getBytecode -FN:100,implementation +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/deployment/CMTAT_BEACON_FACTORY.sol +FN:23,constructor +FN:44,deployCMTAT +FN:58,computedProxyAddress +FN:72,implementation +FN:83,_deployBytecode +FN:97,_getBytecode FNF:6 FNH:6 FNDA:8,constructor FNDA:2,deployCMTAT FNDA:2,computedProxyAddress +FNDA:1,implementation FNDA:2,_deployBytecode FNDA:4,_getBytecode -FNDA:1,implementation -DA:25,8 -DA:26,1 -DA:28,7 -DA:29,1 -DA:31,6 -DA:43,2 -DA:44,2 -DA:47,2 -DA:48,2 -DA:60,2 -DA:63,2 -DA:70,2 -DA:71,2 -DA:72,2 -DA:73,2 -DA:74,2 -DA:75,2 -DA:76,2 -DA:86,4 -DA:93,4 -DA:101,1 +DA:24,8 +DA:25,1 +DA:27,7 +DA:28,1 +DA:30,6 +DA:45,2 +DA:46,2 +DA:49,2 +DA:50,2 +DA:62,2 +DA:65,2 +DA:73,1 +DA:84,2 +DA:85,2 +DA:86,2 +DA:87,2 +DA:88,2 +DA:89,2 +DA:90,2 +DA:100,4 +DA:107,4 LF:21 LH:21 -BRDA:25,1,0,1 -BRDA:25,1,1,7 -BRDA:28,2,0,1 -BRDA:28,2,1,6 -BRDA:42,3,0,2 -BRDA:42,3,1,1 +BRDA:24,1,0,1 +BRDA:24,1,1,7 +BRDA:27,2,0,1 +BRDA:27,2,1,6 +BRDA:44,3,0,2 +BRDA:44,3,1,1 BRF:6 BRH:6 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/deployment/CMTAT_TP_FACTORY.sol -FN:16,constructor -FN:25,deployCMTAT -FN:41,computedProxyAddress -FN:55,_deployBytecode -FN:69,_getBytecode +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/deployment/CMTAT_TP_FACTORY.sol +FN:15,constructor +FN:28,deployCMTAT +FN:44,computedProxyAddress +FN:64,_deployBytecode +FN:78,_getBytecode FNF:5 FNH:5 FNDA:9,constructor @@ -106,35 +106,35 @@ FNDA:7,deployCMTAT FNDA:2,computedProxyAddress FNDA:5,_deployBytecode FNDA:7,_getBytecode -DA:26,7 -DA:27,5 +DA:29,7 DA:30,5 -DA:32,5 -DA:46,2 +DA:33,5 +DA:35,5 DA:49,2 -DA:56,5 -DA:57,5 -DA:58,5 -DA:59,5 -DA:60,5 -DA:61,5 -DA:62,5 -DA:72,7 -DA:79,7 +DA:52,2 +DA:65,5 +DA:66,5 +DA:67,5 +DA:68,5 +DA:69,5 +DA:70,5 +DA:71,5 +DA:81,7 +DA:88,7 LF:15 LH:15 -BRDA:25,1,0,7 -BRDA:25,1,1,2 +BRDA:28,1,0,7 +BRDA:28,1,1,2 BRF:2 BRH:2 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/deployment/CMTAT_UUPS_FACTORY.sol -FN:20,constructor -FN:30,deployCMTAT -FN:45,computedProxyAddress -FN:62,_deployBytecode -FN:76,_getBytecode +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/deployment/CMTAT_UUPS_FACTORY.sol +FN:18,constructor +FN:31,deployCMTAT +FN:46,computedProxyAddress +FN:63,_deployBytecode +FN:77,_getBytecode FNF:5 FNH:5 FNDA:5,constructor @@ -142,30 +142,30 @@ FNDA:2,deployCMTAT FNDA:2,computedProxyAddress FNDA:2,_deployBytecode FNDA:4,_getBytecode -DA:31,2 DA:32,2 -DA:35,2 -DA:37,2 -DA:49,2 -DA:52,2 -DA:63,2 +DA:33,2 +DA:36,2 +DA:38,2 +DA:50,2 +DA:53,2 DA:64,2 DA:65,2 DA:66,2 DA:67,2 DA:68,2 DA:69,2 -DA:79,4 -DA:86,4 +DA:70,2 +DA:80,4 +DA:87,4 LF:15 LH:15 -BRDA:30,1,0,2 -BRDA:30,1,1,1 +BRDA:31,1,0,2 +BRDA:31,1,1,1 BRF:2 BRH:2 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/deployment/libraries/CMTATFactoryBase.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/deployment/libraries/CMTATFactoryBase.sol FN:18,constructor FNF:1 FNH:1 @@ -181,7 +181,7 @@ BRF:2 BRH:2 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/deployment/libraries/CMTATFactoryInvariant.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/deployment/libraries/CMTATFactoryInvariant.sol FNF:0 FNH:0 LF:0 @@ -190,10 +190,10 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/deployment/libraries/CMTATFactoryRoot.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/deployment/libraries/CMTATFactoryRoot.sol FN:25,constructor -FN:40,CMTATProxyAddress -FN:49,_checkAndDetermineDeploymentSalt +FN:45,CMTATProxyAddress +FN:58,_checkAndDetermineDeploymentSalt FNF:3 FNH:3 FNDA:27,constructor @@ -205,28 +205,28 @@ DA:29,24 DA:30,15 DA:32,24 DA:33,24 -DA:41,13 -DA:50,11 -DA:51,5 -DA:52,2 -DA:54,3 -DA:55,3 -DA:58,6 +DA:46,13 +DA:59,11 +DA:60,5 +DA:61,2 +DA:63,3 +DA:64,3 +DA:67,6 LF:13 LH:13 BRDA:26,1,0,3 BRDA:26,1,1,24 BRDA:29,2,0,15 BRDA:29,2,1,9 -BRDA:50,3,0,5 -BRDA:50,3,1,6 -BRDA:51,4,0,2 -BRDA:51,4,1,3 +BRDA:59,3,0,5 +BRDA:59,3,1,6 +BRDA:60,4,0,2 +BRDA:60,4,1,3 BRF:8 BRH:8 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/draft-IERC1404/draft-IERC1404.sol FNF:0 FNH:0 LF:0 @@ -235,7 +235,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/draft-IERC1404/draft-IERC1404EnumCode.sol FNF:0 FNH:0 LF:0 @@ -244,7 +244,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/draft-IERC1404/draft-IERC1404Wrapper.sol FNF:0 FNH:0 LF:0 @@ -253,7 +253,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/draft-IERC1643.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/engine/draft-IERC1643.sol FNF:0 FNH:0 LF:0 @@ -262,7 +262,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/IAuthorizationEngine.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/engine/IAuthorizationEngine.sol FNF:0 FNH:0 LF:0 @@ -271,7 +271,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/IDebtEngine.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/engine/IDebtEngine.sol FNF:0 FNH:0 LF:0 @@ -280,7 +280,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/engine/IRuleEngine.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/engine/IDebtGlobal.sol FNF:0 FNH:0 LF:0 @@ -289,7 +289,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/ICCIPToken.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/engine/IRuleEngine.sol FNF:0 FNH:0 LF:0 @@ -298,7 +298,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/ICMTATConstructor.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/ICCIPToken.sol FNF:0 FNH:0 LF:0 @@ -307,7 +307,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/ICMTATSnapshot.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/ICMTATConstructor.sol FNF:0 FNH:0 LF:0 @@ -316,7 +316,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/interfaces/IDebtGlobal.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/interfaces/ICMTATSnapshot.sol FNF:0 FNH:0 LF:0 @@ -325,7 +325,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/libraries/Errors.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/libraries/Errors.sol FNF:0 FNH:0 LF:0 @@ -334,7 +334,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/libraries/FactoryErrors.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/libraries/FactoryErrors.sol FNF:0 FNH:0 LF:0 @@ -343,7 +343,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/CMTAT_BASE.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/CMTAT_BASE.sol FN:64,initialize FN:82,__CMTAT_init FN:131,__CMTAT_init_unchained @@ -356,38 +356,38 @@ FN:223,_contextSuffixLength FN:232,_msgData FNF:10 FNH:9 -FNDA:381,initialize -FNDA:381,__CMTAT_init -FNDA:379,__CMTAT_init_unchained +FNDA:384,initialize +FNDA:384,__CMTAT_init +FNDA:382,__CMTAT_init_unchained FNDA:2,decimals FNDA:10,transferFrom FNDA:6,burnAndMint FNDA:438,_update -FNDA:1386,_msgSender -FNDA:1386,_contextSuffixLength +FNDA:1389,_msgSender +FNDA:1389,_contextSuffixLength FNDA:0,_msgData -DA:65,381 -DA:85,381 -DA:86,381 -DA:88,381 -DA:90,381 -DA:91,381 -DA:94,381 -DA:99,381 -DA:100,381 -DA:102,381 -DA:106,381 -DA:107,379 -DA:108,379 -DA:110,379 -DA:111,379 -DA:113,379 -DA:114,379 -DA:120,379 -DA:121,379 -DA:122,379 -DA:125,379 -DA:128,379 +DA:65,384 +DA:85,384 +DA:86,384 +DA:88,384 +DA:90,384 +DA:91,384 +DA:94,384 +DA:99,384 +DA:100,384 +DA:102,384 +DA:106,384 +DA:107,382 +DA:108,382 +DA:110,382 +DA:111,382 +DA:113,382 +DA:114,382 +DA:120,382 +DA:121,382 +DA:122,382 +DA:125,382 +DA:128,382 DA:150,2 DA:163,10 DA:178,6 @@ -396,16 +396,16 @@ DA:194,438 DA:195,17 DA:202,421 DA:203,421 -DA:217,1386 -DA:226,1386 +DA:217,1389 +DA:226,1389 DA:238,0 LF:33 LH:32 -BRDA:64,1,0,381 +BRDA:64,1,0,384 BRDA:64,1,1,1 -BRDA:82,2,0,381 +BRDA:82,2,0,384 BRDA:82,2,1,0 -BRDA:131,3,0,379 +BRDA:131,3,0,382 BRDA:131,3,1,0 BRDA:194,4,0,17 BRDA:194,4,1,421 @@ -413,7 +413,7 @@ BRF:8 BRH:6 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/base/SnapshotModuleBase.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/internal/base/SnapshotModuleBase.sol FN:70,__SnapshotModuleBase_init_unchained FN:82,getAllSnapshots FN:91,getNextSnapshots @@ -434,7 +434,7 @@ FN:420,_checkTimeSnapshotAlreadyDone FN:427,_getSnapshotModuleBaseStorage FNF:18 FNH:18 -FNDA:381,__SnapshotModuleBase_init_unchained +FNDA:384,__SnapshotModuleBase_init_unchained FNDA:2,getAllSnapshots FNDA:76,getNextSnapshots FNDA:170,_scheduleSnapshot @@ -464,7 +464,7 @@ DA:105,20 DA:107,8 DA:110,8 DA:112,8 -DA:113,12 +DA:113,8 DA:120,28 DA:132,170 DA:134,170 @@ -517,7 +517,7 @@ DA:246,10 DA:247,10 DA:249,10 DA:251,8 -DA:252,16 +DA:252,6 DA:254,8 DA:282,1920 DA:284,1920 @@ -566,7 +566,7 @@ DA:422,6 DA:428,4856 LF:112 LH:112 -BRDA:70,1,0,381 +BRDA:70,1,0,384 BRDA:70,1,1,0 BRDA:95,2,0,68 BRDA:95,2,1,8 @@ -628,7 +628,7 @@ BRF:58 BRH:56 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/EnforcementModuleInternal.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/internal/EnforcementModuleInternal.sol FN:53,__Enforcement_init_unchained FN:64,frozen FN:79,_freeze @@ -636,7 +636,7 @@ FN:97,_unfreeze FN:112,_getEnforcementModuleInternalStorage FNF:5 FNH:5 -FNDA:381,__Enforcement_init_unchained +FNDA:384,__Enforcement_init_unchained FNDA:944,frozen FNDA:22,_freeze FNDA:8,_unfreeze @@ -658,7 +658,7 @@ DA:108,6 DA:113,974 LF:15 LH:15 -BRDA:53,1,0,381 +BRDA:53,1,0,384 BRDA:53,1,1,0 BRDA:84,2,0,2 BRDA:84,2,1,20 @@ -668,7 +668,7 @@ BRF:6 BRH:5 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/ERC20SnapshotModuleInternal.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/internal/ERC20SnapshotModuleInternal.sol FN:21,__ERC20Snapshot_init_unchained FN:34,snapshotInfo FN:43,snapshotInfoBatch @@ -680,7 +680,7 @@ FN:127,_updateAccountSnapshot FN:135,_updateTotalSupplySnapshot FNF:9 FNH:9 -FNDA:381,__ERC20Snapshot_init_unchained +FNDA:384,__ERC20Snapshot_init_unchained FNDA:480,snapshotInfo FNDA:160,snapshotInfoBatch FNDA:80,snapshotInfoBatch @@ -719,7 +719,7 @@ DA:136,378 DA:137,378 LF:28 LH:28 -BRDA:21,1,0,381 +BRDA:21,1,0,384 BRDA:21,1,1,0 BRDA:77,2,0,400 BRDA:77,2,1,800 @@ -733,7 +733,7 @@ BRF:10 BRH:9 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/internal/ValidationModuleInternal.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/internal/ValidationModuleInternal.sol FN:32,__Validation_init_unchained FN:45,ruleEngine FN:58,_validateTransfer @@ -743,14 +743,14 @@ FN:89,_operateOnTransfer FN:96,_getValidationModuleInternalStorage FNF:7 FNH:7 -FNDA:381,__Validation_init_unchained +FNDA:384,__Validation_init_unchained FNDA:32,ruleEngine FNDA:12,_validateTransfer FNDA:6,_messageForTransferRestriction FNDA:6,_detectTransferRestriction FNDA:60,_operateOnTransfer FNDA:628,_getValidationModuleInternalStorage -DA:33,381 +DA:33,384 DA:34,18 DA:35,18 DA:36,18 @@ -767,15 +767,15 @@ DA:91,60 DA:97,628 LF:15 LH:15 -BRDA:32,1,0,381 +BRDA:32,1,0,384 BRDA:32,1,1,0 BRDA:33,2,0,18 -BRDA:33,2,1,363 +BRDA:33,2,1,366 BRF:4 BRH:3 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/security/AuthorizationModule.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/security/AuthorizationModule.sol FN:31,__AuthorizationModule_init_unchained FN:48,authorizationEngine FN:60,setAuthorizationEngine @@ -785,17 +785,17 @@ FN:96,hasRole FN:114,_getAuthorizationModuleStorage FNF:7 FNH:7 -FNDA:381,__AuthorizationModule_init_unchained +FNDA:384,__AuthorizationModule_init_unchained FNDA:2,authorizationEngine FNDA:16,setAuthorizationEngine FNDA:40,grantRole FNDA:10,revokeRole -FNDA:1280,hasRole +FNDA:1283,hasRole FNDA:84,_getAuthorizationModuleStorage -DA:32,381 +DA:32,384 DA:33,2 -DA:35,379 -DA:36,379 +DA:35,382 +DA:36,382 DA:37,16 DA:38,16 DA:39,16 @@ -818,18 +818,18 @@ DA:84,8 DA:85,8 DA:87,4 DA:90,6 -DA:101,1280 +DA:101,1283 DA:102,759 -DA:104,521 +DA:104,524 DA:115,84 LF:30 LH:30 -BRDA:31,1,0,381 +BRDA:31,1,0,384 BRDA:31,1,1,0 BRDA:32,2,0,2 -BRDA:32,2,1,379 +BRDA:32,2,1,382 BRDA:36,3,0,16 -BRDA:36,3,1,363 +BRDA:36,3,1,366 BRDA:60,4,0,16 BRDA:60,4,1,4 BRDA:62,5,0,4 @@ -847,12 +847,12 @@ BRDA:83,10,1,2 BRDA:85,11,0,4 BRDA:85,11,1,4 BRDA:101,12,0,759 -BRDA:101,12,1,521 +BRDA:101,12,1,524 BRF:24 BRH:23 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/controllers/ValidationModule.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/controllers/ValidationModule.sol FN:28,__ValidationModule_init_unchained FN:43,setRuleEngine FN:57,messageForTransferRestriction @@ -862,7 +862,7 @@ FN:130,_validateTransferByModule FN:141,_operateOnTransfer FNF:7 FNH:7 -FNDA:379,__ValidationModule_init_unchained +FNDA:382,__ValidationModule_init_unchained FNDA:18,setRuleEngine FNDA:20,messageForTransferRestriction FNDA:17,detectTransferRestriction @@ -906,7 +906,7 @@ DA:147,60 DA:149,364 LF:35 LH:35 -BRDA:28,1,0,379 +BRDA:28,1,0,382 BRDA:28,1,1,0 BRDA:43,2,0,18 BRDA:43,2,1,3 @@ -948,410 +948,410 @@ BRF:38 BRH:37 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/BaseModule.sol -FN:45,__Base_init_unchained -FN:56,tokenId -FN:61,terms -FN:65,information -FN:75,setTokenId -FN:86,setTerms -FN:97,setInformation -FN:109,_getBaseModuleStorage +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/core/BaseModule.sol +FN:44,__Base_init_unchained +FN:55,tokenId +FN:60,terms +FN:64,information +FN:74,setTokenId +FN:85,setTerms +FN:96,setInformation +FN:108,_getBaseModuleStorage FNF:8 FNH:8 -FNDA:379,__Base_init_unchained +FNDA:382,__Base_init_unchained FNDA:10,tokenId FNDA:10,terms FNDA:8,information FNDA:2,setTokenId FNDA:2,setTerms FNDA:2,setInformation -FNDA:413,_getBaseModuleStorage -DA:46,379 -DA:47,379 -DA:48,379 -DA:49,379 +FNDA:416,_getBaseModuleStorage +DA:45,382 +DA:46,382 +DA:47,382 +DA:48,382 +DA:56,10 DA:57,10 -DA:58,10 +DA:61,10 DA:62,10 -DA:63,10 +DA:65,8 DA:66,8 -DA:67,8 +DA:75,2 DA:76,2 DA:77,2 -DA:78,2 +DA:86,2 DA:87,2 DA:88,2 -DA:89,2 +DA:97,2 DA:98,2 DA:99,2 -DA:100,2 -DA:110,413 +DA:109,416 LF:20 LH:20 -BRDA:45,1,0,379 -BRDA:45,1,1,0 -BRDA:75,2,0,2 -BRDA:75,2,1,2 -BRDA:86,3,0,2 -BRDA:86,3,1,2 -BRDA:97,4,0,2 -BRDA:97,4,1,2 +BRDA:44,1,0,382 +BRDA:44,1,1,0 +BRDA:74,2,0,2 +BRDA:74,2,1,2 +BRDA:85,3,0,2 +BRDA:85,3,1,2 +BRDA:96,4,0,2 +BRDA:96,4,1,2 BRF:8 BRH:7 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/EnforcementModule.sol -FN:26,__EnforcementModule_init_unchained -FN:41,freeze -FN:55,unfreeze +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/core/EnforcementModule.sol +FN:27,__EnforcementModule_init_unchained +FN:42,freeze +FN:56,unfreeze FNF:3 FNH:3 -FNDA:379,__EnforcementModule_init_unchained +FNDA:382,__EnforcementModule_init_unchained FNDA:22,freeze FNDA:8,unfreeze -DA:42,22 -DA:56,8 +DA:43,22 +DA:57,8 LF:2 LH:2 -BRDA:26,1,0,379 -BRDA:26,1,1,0 -BRDA:41,2,0,22 -BRDA:41,2,1,2 -BRDA:55,3,0,8 -BRDA:55,3,1,2 +BRDA:27,1,0,382 +BRDA:27,1,1,0 +BRDA:42,2,0,22 +BRDA:42,2,1,2 +BRDA:56,3,0,8 +BRDA:56,3,1,2 BRF:6 BRH:5 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/ERC20BaseModule.sol -FN:33,__ERC20BaseModule_init_unchained -FN:45,decimals -FN:62,transferBatch -FN:92,transferFrom -FN:111,balanceInfo -FN:126,_getERC20BaseModuleStorage +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/core/ERC20BaseModule.sol +FN:41,__ERC20BaseModule_init_unchained +FN:53,decimals +FN:70,transferBatch +FN:100,transferFrom +FN:119,balanceInfo +FN:134,_getERC20BaseModuleStorage FNF:6 FNH:6 -FNDA:379,__ERC20BaseModule_init_unchained +FNDA:382,__ERC20BaseModule_init_unchained FNDA:2,decimals FNDA:10,transferBatch FNDA:10,transferFrom FNDA:4,balanceInfo -FNDA:381,_getERC20BaseModuleStorage -DA:34,379 -DA:35,379 -DA:46,2 -DA:47,2 -DA:66,10 -DA:67,2 -DA:71,8 -DA:72,4 -DA:75,4 -DA:78,10 -DA:82,2 -DA:97,10 -DA:99,2 -DA:100,2 -DA:103,2 -DA:112,4 -DA:113,4 -DA:114,6 -DA:116,4 -DA:127,381 +FNDA:384,_getERC20BaseModuleStorage +DA:42,382 +DA:43,382 +DA:54,2 +DA:55,2 +DA:74,10 +DA:75,2 +DA:79,8 +DA:80,4 +DA:83,4 +DA:86,10 +DA:90,2 +DA:105,10 +DA:107,2 +DA:108,2 +DA:111,2 +DA:120,4 +DA:121,4 +DA:122,2 +DA:124,4 +DA:135,384 LF:20 LH:20 -BRDA:33,1,0,379 -BRDA:33,1,1,0 -BRDA:66,2,0,2 -BRDA:66,2,1,8 -BRDA:71,3,0,4 -BRDA:71,3,1,4 -BRDA:99,4,0,2 -BRDA:99,4,1,0 +BRDA:41,1,0,382 +BRDA:41,1,1,0 +BRDA:74,2,0,2 +BRDA:74,2,1,8 +BRDA:79,3,0,4 +BRDA:79,3,1,4 +BRDA:107,4,0,2 +BRDA:107,4,1,0 BRF:8 BRH:6 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/ERC20BurnModule.sol -FN:25,__ERC20BurnModule_init_unchained -FN:46,burn -FN:70,burnBatch -FN:102,burnFrom +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/core/ERC20BurnModule.sol +FN:32,__ERC20BurnModule_init_unchained +FN:53,burn +FN:77,burnBatch +FN:109,burnFrom FNF:4 FNH:4 -FNDA:379,__ERC20BurnModule_init_unchained +FNDA:382,__ERC20BurnModule_init_unchained FNDA:14,burn FNDA:12,burnBatch FNDA:4,burnFrom -DA:47,14 -DA:48,12 -DA:71,12 -DA:72,2 -DA:76,10 -DA:77,4 -DA:80,6 -DA:81,18 -DA:82,16 -DA:105,4 -DA:106,4 -DA:107,4 -DA:109,2 -DA:112,2 -DA:113,2 +DA:54,14 +DA:55,12 +DA:78,12 +DA:79,2 +DA:83,10 +DA:84,4 +DA:87,6 +DA:88,18 +DA:89,16 +DA:112,4 +DA:113,4 +DA:114,4 DA:116,2 -DA:118,2 +DA:119,2 DA:120,2 +DA:123,2 +DA:125,2 +DA:127,2 LF:18 LH:18 -BRDA:25,1,0,379 -BRDA:25,1,1,0 -BRDA:46,2,0,14 -BRDA:46,2,1,4 -BRDA:70,3,0,12 -BRDA:70,3,1,2 -BRDA:71,4,0,2 -BRDA:71,4,1,10 -BRDA:76,5,0,4 -BRDA:76,5,1,6 -BRDA:102,6,0,4 -BRDA:102,6,1,2 -BRDA:107,7,0,2 -BRDA:107,7,1,2 +BRDA:32,1,0,382 +BRDA:32,1,1,0 +BRDA:53,2,0,14 +BRDA:53,2,1,4 +BRDA:77,3,0,12 +BRDA:77,3,1,2 +BRDA:78,4,0,2 +BRDA:78,4,1,10 +BRDA:83,5,0,4 +BRDA:83,5,1,6 +BRDA:109,6,0,4 +BRDA:109,6,1,2 +BRDA:114,7,0,2 +BRDA:114,7,1,2 BRF:14 BRH:13 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/ERC20MintModule.sol -FN:20,__ERC20MintModule_init_unchained -FN:40,mint -FN:63,mintBatch +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/core/ERC20MintModule.sol +FN:27,__ERC20MintModule_init_unchained +FN:47,mint +FN:70,mintBatch FNF:3 FNH:3 -FNDA:379,__ERC20MintModule_init_unchained +FNDA:382,__ERC20MintModule_init_unchained FNDA:290,mint FNDA:24,mintBatch -DA:41,290 -DA:42,290 -DA:64,24 -DA:65,2 -DA:69,22 -DA:70,4 -DA:73,18 -DA:74,54 -DA:75,54 +DA:48,290 +DA:49,290 +DA:71,24 +DA:72,2 +DA:76,22 +DA:77,4 +DA:80,18 +DA:81,54 +DA:82,54 LF:9 LH:9 -BRDA:20,1,0,379 -BRDA:20,1,1,0 -BRDA:40,2,0,290 -BRDA:40,2,1,4 -BRDA:63,3,0,24 -BRDA:63,3,1,2 -BRDA:64,4,0,2 -BRDA:64,4,1,22 -BRDA:69,5,0,4 -BRDA:69,5,1,18 +BRDA:27,1,0,382 +BRDA:27,1,1,0 +BRDA:47,2,0,290 +BRDA:47,2,1,4 +BRDA:70,3,0,24 +BRDA:70,3,1,2 +BRDA:71,4,0,2 +BRDA:71,4,1,22 +BRDA:76,5,0,4 +BRDA:76,5,1,18 BRF:10 BRH:9 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/core/PauseModule.sol -FN:33,__PauseModule_init_unchained -FN:49,pause -FN:61,unpause -FN:80,deactivateContract -FN:91,deactivated -FN:103,_getPauseModuleStorage +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/core/PauseModule.sol +FN:34,__PauseModule_init_unchained +FN:50,pause +FN:62,unpause +FN:81,deactivateContract +FN:92,deactivated +FN:104,_getPauseModuleStorage FNF:6 FNH:6 -FNDA:379,__PauseModule_init_unchained +FNDA:382,__PauseModule_init_unchained FNDA:14,pause FNDA:6,unpause FNDA:2,deactivateContract FNDA:4,deactivated FNDA:12,_getPauseModuleStorage -DA:50,14 -DA:62,6 +DA:51,14 DA:63,6 -DA:64,2 -DA:66,4 -DA:82,2 +DA:64,6 +DA:65,2 +DA:67,4 DA:83,2 DA:84,2 DA:85,2 -DA:92,4 +DA:86,2 DA:93,4 -DA:104,12 +DA:94,4 +DA:105,12 LF:12 LH:12 -BRDA:33,1,0,379 -BRDA:33,1,1,0 -BRDA:49,2,0,14 -BRDA:49,2,1,3 -BRDA:61,3,0,6 -BRDA:61,3,1,2 -BRDA:63,4,0,2 -BRDA:63,4,1,4 -BRDA:80,5,0,2 -BRDA:80,5,1,2 +BRDA:34,1,0,382 +BRDA:34,1,1,0 +BRDA:50,2,0,14 +BRDA:50,2,1,3 +BRDA:62,3,0,6 +BRDA:62,3,1,2 +BRDA:64,4,0,2 +BRDA:64,4,1,4 +BRDA:81,5,0,2 +BRDA:81,5,1,2 BRF:10 BRH:9 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/extensions/DebtModule.sol -FN:36,__DebtModule_init_unchained -FN:48,debtEngine -FN:59,setDebtEngine -FN:68,debt -FN:75,creditEvents -FN:88,_getDebtModuleStorage +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/extensions/DebtModule.sol +FN:42,__DebtModule_init_unchained +FN:54,debtEngine +FN:65,setDebtEngine +FN:74,debt +FN:81,creditEvents +FN:94,_getDebtModuleStorage FNF:6 FNH:6 -FNDA:379,__DebtModule_init_unchained +FNDA:382,__DebtModule_init_unchained FNDA:8,debtEngine FNDA:5,setDebtEngine -FNDA:2,debt -FNDA:2,creditEvents -FNDA:20,_getDebtModuleStorage -DA:37,379 -DA:38,3 -DA:39,3 -DA:40,3 -DA:49,8 -DA:50,8 -DA:60,5 -DA:61,5 -DA:62,1 -DA:64,4 -DA:65,4 -DA:69,2 -DA:70,2 -DA:71,2 -DA:76,2 +FNDA:3,debt +FNDA:3,creditEvents +FNDA:22,_getDebtModuleStorage +DA:43,382 +DA:44,3 +DA:45,3 +DA:46,3 +DA:55,8 +DA:56,8 +DA:66,5 +DA:67,5 +DA:68,1 +DA:70,4 +DA:71,4 +DA:75,3 +DA:76,3 DA:77,2 -DA:78,2 -DA:89,20 +DA:82,3 +DA:83,3 +DA:84,2 +DA:95,22 LF:18 LH:18 -BRDA:36,1,0,379 -BRDA:36,1,1,0 -BRDA:37,2,0,3 -BRDA:37,2,1,376 -BRDA:59,3,0,5 -BRDA:59,3,1,1 -BRDA:61,4,0,1 -BRDA:61,4,1,4 -BRDA:70,5,0,2 -BRDA:70,5,1,0 -BRDA:77,6,0,2 -BRDA:77,6,1,0 +BRDA:42,1,0,382 +BRDA:42,1,1,0 +BRDA:43,2,0,3 +BRDA:43,2,1,379 +BRDA:65,3,0,5 +BRDA:65,3,1,1 +BRDA:67,4,0,1 +BRDA:67,4,1,4 +BRDA:76,5,0,2 +BRDA:76,5,1,1 +BRDA:83,6,0,2 +BRDA:83,6,1,1 BRF:12 -BRH:9 +BRH:11 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/extensions/DocumentModule.sol -FN:33,__DocumentModule_init_unchained -FN:44,documentEngine -FN:55,setDocumentEngine -FN:65,getDocument -FN:74,getAllDocuments -FN:87,_getDocumentModuleStorage +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/extensions/DocumentModule.sol +FN:42,__DocumentModule_init_unchained +FN:53,documentEngine +FN:64,setDocumentEngine +FN:74,getDocument +FN:83,getAllDocuments +FN:96,_getDocumentModuleStorage FNF:6 FNH:6 -FNDA:379,__DocumentModule_init_unchained +FNDA:382,__DocumentModule_init_unchained FNDA:28,documentEngine FNDA:16,setDocumentEngine -FNDA:16,getDocument -FNDA:4,getAllDocuments -FNDA:76,_getDocumentModuleStorage -DA:34,379 -DA:35,12 -DA:36,12 -DA:37,12 -DA:45,28 -DA:46,28 -DA:56,16 -DA:57,16 -DA:58,2 -DA:60,14 -DA:61,14 +FNDA:18,getDocument +FNDA:6,getAllDocuments +FNDA:80,_getDocumentModuleStorage +DA:43,382 +DA:44,12 +DA:45,12 +DA:46,12 +DA:54,28 +DA:55,28 +DA:65,16 DA:66,16 -DA:67,16 -DA:68,16 -DA:70,0 -DA:75,4 -DA:76,4 -DA:77,4 -DA:88,76 +DA:67,2 +DA:69,14 +DA:70,14 +DA:75,18 +DA:76,18 +DA:77,16 +DA:79,2 +DA:84,6 +DA:85,6 +DA:86,4 +DA:97,80 LF:19 -LH:18 -BRDA:33,1,0,379 -BRDA:33,1,1,0 -BRDA:34,2,0,12 -BRDA:34,2,1,367 -BRDA:55,3,0,16 -BRDA:55,3,1,2 -BRDA:57,4,0,2 -BRDA:57,4,1,14 -BRDA:67,5,0,16 -BRDA:67,5,1,0 -BRDA:76,6,0,4 -BRDA:76,6,1,0 +LH:19 +BRDA:42,1,0,382 +BRDA:42,1,1,0 +BRDA:43,2,0,12 +BRDA:43,2,1,370 +BRDA:64,3,0,16 +BRDA:64,3,1,2 +BRDA:66,4,0,2 +BRDA:66,4,1,14 +BRDA:76,5,0,16 +BRDA:76,5,1,2 +BRDA:85,6,0,4 +BRDA:85,6,1,2 BRF:12 -BRH:9 +BRH:11 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol -FN:21,__ERC20SnasphotModule_init_unchained -FN:32,scheduleSnapshot -FN:43,scheduleSnapshotNotOptimized -FN:55,rescheduleSnapshot -FN:66,unscheduleLastSnapshot -FN:76,unscheduleSnapshotNotOptimized +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/extensions/ERC20SnapshotModule.sol +FN:22,__ERC20SnasphotModule_init_unchained +FN:33,scheduleSnapshot +FN:44,scheduleSnapshotNotOptimized +FN:56,rescheduleSnapshot +FN:67,unscheduleLastSnapshot +FN:77,unscheduleSnapshotNotOptimized FNF:6 FNH:6 -FNDA:379,__ERC20SnasphotModule_init_unchained +FNDA:382,__ERC20SnasphotModule_init_unchained FNDA:170,scheduleSnapshot FNDA:12,scheduleSnapshotNotOptimized FNDA:22,rescheduleSnapshot FNDA:14,unscheduleLastSnapshot FNDA:10,unscheduleSnapshotNotOptimized -DA:33,170 -DA:44,12 -DA:56,22 -DA:67,14 -DA:77,10 +DA:34,170 +DA:45,12 +DA:57,22 +DA:68,14 +DA:78,10 LF:5 LH:5 -BRDA:21,1,0,379 -BRDA:21,1,1,0 -BRDA:32,2,0,170 -BRDA:32,2,1,2 -BRDA:43,3,0,12 -BRDA:43,3,1,4 -BRDA:55,4,0,22 -BRDA:55,4,1,2 -BRDA:66,5,0,14 -BRDA:66,5,1,2 -BRDA:76,6,0,10 -BRDA:76,6,1,0 +BRDA:22,1,0,382 +BRDA:22,1,1,0 +BRDA:33,2,0,170 +BRDA:33,2,1,2 +BRDA:44,3,0,12 +BRDA:44,3,1,2 +BRDA:56,4,0,22 +BRDA:56,4,1,2 +BRDA:67,5,0,14 +BRDA:67,5,1,2 +BRDA:77,6,0,10 +BRDA:77,6,1,2 BRF:12 -BRH:10 +BRH:11 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/modules/wrapper/extensions/MetaTxModule.sol -FN:18,constructor +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/modules/wrapper/extensions/MetaTxModule.sol +FN:19,constructor FNF:1 FNH:1 -FNDA:395,constructor +FNDA:398,constructor LF:0 LH:0 BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/test/proxy/CMTAT_PROXY_TEST_UUPS.sol FN:18,constructor FNF:1 FNH:1 @@ -1362,7 +1362,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/home/ryan/Downloads/CM/CMTAT/contracts/test/proxy/CMTAT_PROXY_TEST.sol +SF:/home/ryan/Downloads/CM/CMTAT_old2/contracts/test/proxy/CMTAT_PROXY_TEST.sol FN:18,constructor FNF:1 FNH:1 diff --git a/test/common/DebtModule/DebtModuleSetDebtEngineCommon.js b/test/common/DebtModule/DebtModuleSetDebtEngineCommon.js index a595f577..9ab8a2dc 100644 --- a/test/common/DebtModule/DebtModuleSetDebtEngineCommon.js +++ b/test/common/DebtModule/DebtModuleSetDebtEngineCommon.js @@ -25,6 +25,14 @@ function DebtModuleSetDebtEngineCommon () { .to.be.revertedWithCustomError(this.cmtat, 'AccessControlUnauthorizedAccount') .withArgs(this.address1.address, DEBT_ROLE) }) + + it("testGetEmptyDebtIfNoDebtEngine", async function () { + const debt = await this.cmtat.debt(); + const events = await this.cmtat.creditEvents(); + + expect(events.flagDefault).to.equal(false); + expect(debt.interestRate).to.equal(0); + }); }) } module.exports = DebtModuleSetDebtEngineCommon diff --git a/test/common/DocumentModule/DocumentModuleSetDocumentEngineCommon.js b/test/common/DocumentModule/DocumentModuleSetDocumentEngineCommon.js index 78991899..b178edc2 100644 --- a/test/common/DocumentModule/DocumentModuleSetDocumentEngineCommon.js +++ b/test/common/DocumentModule/DocumentModuleSetDocumentEngineCommon.js @@ -25,6 +25,21 @@ function DocumentModuleSetDocumentEngineCommon () { .to.be.revertedWithCustomError(this.cmtat, 'AccessControlUnauthorizedAccount') .withArgs(this.address1.address, DOCUMENT_ROLE) }) + + it("testGetEmptyDocumentsIfNoDocumentEngine", async function () { + const name = ethers.encodeBytes32String("doc1"); + // act + const [storedUri, storedHash, lastModified] = await this.cmtat.getDocument(name); + // Assert + expect(storedUri).to.equal(""); + expect(storedHash).to.equal(ethers.encodeBytes32String("")); + expect(lastModified).to.equal(0); + + // Act + const documentNames = await this.cmtat.getAllDocuments(); + // Assert + expect(documentNames.length).to.equal(0); + }); }) } module.exports = DocumentModuleSetDocumentEngineCommon diff --git a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js index 3b7edefa..c3400c4d 100644 --- a/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js +++ b/test/common/ERC20SnapshotModuleCommon/ERC20SnapshotModuleCommonUnschedule.js @@ -123,7 +123,7 @@ function ERC20SnapshotModuleCommonUnschedule () { expect(snapshots.length).to.equal(1) expect(snapshots[0]).to.equal(SNAPSHOT_TIME) // Act - await expect( this.cmtat.connect(this.address1).scheduleSnapshotNotOptimized(SNAPSHOT_TIME)) + await expect( this.cmtat.connect(this.address1).unscheduleSnapshotNotOptimized(SNAPSHOT_TIME)) .to.be.revertedWithCustomError(this.cmtat, 'AccessControlUnauthorizedAccount') .withArgs(this.address1.address, SNAPSHOOTER_ROLE) // Assert